Scikit-learn은 파이썬에서 머신러닝을 위한 대표적인 라이브러리로, 다양한 머신러닝 알고리즘을 간편하게 활용할 수 있도록 지원합니다.

1. 특징
- 간편한 사용: 직관적인 API 제공으로 쉽게 학습 및 활용 가능
- 다양한 알고리즘 지원: 지도학습, 비지도학습, 군집화, 차원 축소 등 포함
- 사전 처리 기능 제공: 데이터 정규화, 결측치 처리, 특성 공학 등
- 모델 평가 및 튜닝 기능: 교차 검증, 하이퍼파라미터 튜닝 지원
- 확장성: NumPy, Pandas, SciPy 등과 호환
2. 주요 기능
① 지도 학습 (Supervised Learning)
- 회귀 (Regression)
LinearRegression
(선형 회귀)Ridge
,Lasso
(정규화 회귀)SVR
(서포트 벡터 회귀)RandomForestRegressor
,GradientBoostingRegressor
- 분류 (Classification)
LogisticRegression
(로지스틱 회귀)SVC
(서포트 벡터 머신)RandomForestClassifier
,GradientBoostingClassifier
KNeighborsClassifier
(KNN)MLPClassifier
(다층 퍼셉트론 신경망)
② 비지도 학습 (Unsupervised Learning)
- 클러스터링 (Clustering)
KMeans
DBSCAN
AgglomerativeClustering
(계층적 군집화)
- 차원 축소 (Dimensionality Reduction)
PCA
(주성분 분석)t-SNE
,UMAP
(비선형 차원 축소)
③ 데이터 전처리 (Preprocessing)
StandardScaler
(표준화)MinMaxScaler
(정규화)OneHotEncoder
(범주형 데이터 변환)SimpleImputer
(결측치 처리)
④ 모델 평가 및 선택 (Model Selection & Evaluation)
train_test_split()
(데이터 분할)cross_val_score()
(교차 검증)GridSearchCV
,RandomizedSearchCV
(하이퍼파라미터 최적화)classification_report
,confusion_matrix
(분류 평가)mean_squared_error
,r2_score
(회귀 평가)
3. 예제 코드
1) 데이터 로드 및 분할
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
# 데이터 로드
iris = load_iris()
X, y = iris.data, iris.target
# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
2) 모델 학습 및 평가
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# 모델 생성 및 학습
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# 예측 및 평가
y_pred = model.predict(X_test)
print(f"Accuracy: {accuracy_score(y_test, y_pred):.2f}")
3) 하이퍼파라미터 튜닝
from sklearn.model_selection import GridSearchCV
# 하이퍼파라미터 설정
param_grid = {'n_estimators': [50, 100, 150], 'max_depth': [3, 5, 7]}
grid_search = GridSearchCV(RandomForestClassifier(random_state=42), param_grid, cv=5)
grid_search.fit(X_train, y_train)
# 최적의 하이퍼파라미터 출력
print(grid_search.best_params_)
4. 활용 분야
- 금융: 신용 평가, 사기 탐지
- 의료: 질병 진단, 유전자 분석
- 마케팅: 고객 분류, 추천 시스템
- 제조: 품질 검사, 예측 유지보수
5. 주요 모듈 소개
sklearn- 데이터 전처리
데이터 가공과 변환을 위한 도구 제공
모듈 | 설명 | 상세 | 예시 |
---|---|---|---|
preprocessing | 다양한 데이터 전처리 | 변환, 정규화, 스케일링 등 | – StandardScaler – MinMaxScaler – OneHotEncoder |
feature_selection | 특징(feature) 선택 | 중요한 특성을 선택 | – SelectKBest – f_classif |
feature_extraction | 특징(feature) 추출 | 벡터화 (텍스트, 이미지) | – TfidfVectorizer – PatchExtractor |
sklearn – 다양한 모델
다양한 머신 러닝 알고리즘 제공
모듈 | 설명 | 예시 |
---|---|---|
linear_model | 다양한 선형 모델 | 선형 회귀, Ridge, Lasso, 로지스틱 회귀 등 |
svm | 서포트 벡터 머신 알고리즘 | SVC, SVR 등 |
neighbors | 최근접 이웃 알고리즘 | kNN 등 |
naive_bayes | 나이브 베이즈 알고리즘 | 가우시안 NB, 다항 분포 NB 등 |
tree | 의사 결정 트리 알고리즘 | 의사결정나무 분류, 회귀 등 |
cluster | 클러스터링 알고리즘 | kMeans, 계층형 클러스터링, DBSCAN 등 |
decomposition | 차원 축소 관련 알고리즘 | PCA, NMF, Truncated SVD 등 |
ensemble | 앙상블 알고리즘 | VotingClassifier, Random Forest, AdaBoost, GradientBoost 등 |
sklearn – 모델 평가와 최적화
모델 성능 평가및 하이퍼파라미터 최적화 기법
모듈 | 설명 | 예시 |
---|---|---|
model_selection | 교차검증, 학습/테스트 분리, 파라미터 최적화 | train_test_split, GridSearch 등 |
metrics | 다양한 성능 측정 방법 | Accuracy, Precision, Recall, ROC-AUC, RMSE 등 |
scikit-learn – 유틸리티
데이터 파이프라인, 예제 데이터셋 등
모듈 | 설명 | 예시 |
sklearn.pipeline | 여러 기능을 묶어서 실행 | |
sklearn.datasets | 내장된 다양한 예제 데이터셋 | 붓꽃, 당뇨병, 와인 데이터셋 등 |
scikit-learn은 머신러닝을 쉽게 시작할 수 있는 강력한 라이브러리입니다.