데이터 전처리에 필요한 다양한 가공 기능 제공 (문자열을 숫자형 코드값으로 인코딩, 정규화, 스케일링 등)
sklearn.feature_selection
알고리즘에 큰 영향을 미치는 피처를 우선 순위대로 셀렉션 작업을 수행하는 다양한 기능 제공
sklearn.feature_extraction
텍스트 데이터나 이미지 데이터의 벡터화된 피처를 추출하는데 사용. 예를 들어 텍스트 데이터에서 Count Vectorizer 나 TF-IDF Vectorizer 등을 생성하는 기능 제공. 텍스트 데이터의 피처 추출은 sklearn.feature_extraction.text, 이미지 데이터의 피처 추출은 sklearn.feature_extraction.image 모듈에 지원 API 가 있음
피처 처리 & 차원 축소
sklearn.decomposition
차원 축소와 관련한 알고리즘을 지원하는 모듈임. PCA, NMF, Truncated SVD 등을 통해 차원 축소 기능을 수행할 수 있음.
데이터 분리, 검증 & 패러미터 튜닝
sklearn.model_selection
교차 검증을 위한 학습용/테스트용 분리, 그리드 서치 (Grid Search) 로 최적 패러미터 추출 등의 API 제공
평가
sklearn.metrics
분류, 회구, 클러스터링, 페어와이즈 (Pairwise) 에 대한 다양한 성능 측정 방법 제공. Accuracy, Precision, Recall, ROC_AUC, RMSE 등 제공
ML 알고리즘
sklearn.ensemble
앙상블 알고리즘 제공. 랜덤포레스트, 에이다 부스트, 그레디언트 부스팅 등을 제공
sklearn.linear_model
주로 선형회귀, ridge, lasso 및 로지스틱 회귀 등 회귀 관련 알고리즘을 지원. 또한 SGD 관련 알고리즘도 제공
sklearn.naïve_baes
나이브 베이즈 알고리즘 제공. 가우시안 NB, 다항분포 NB 등
sklearn.neighbors
최근접이웃 알고리즘 제공. K-NN 등
sklearn.svm
서포트 벡터 머신 알고리즘 제공
sklearn.tree
의사결정트리 알고리즘 제공
sklearn.cluster
비지도 클러스터링 알고리즘 제공 (K-평균, 계층형, DBSCAN 등)
유틸리티
sklearn.pipeline
피처 처리 등의 변환과 ML 알고리즘 학습, 예측 등을 함께 묶어 실행할 수 있는 유틸리티 제공
train_test_split(shuffle=True, stratify=True)KFold(n_splits, shuffle, random_state) # split(X) 만으로 가능StratifiedKFold(n_splits, shuffle, random_state) # split(X,y) 처럼 y가 필수cross_val_score() #평가지표 1개만cross_validate() #평가지표 여러개, 학습 데이터에 대한 성능평가지표, 수행시간GridSearchCV() #패러미터는 dict 로 넘김LabelEncoder()LabelEncoder.classes_LabelEncoder.inverse_transformOneHotEncoder()OneHotEncoder().toarray()'''default 가 shuffle=True 다.시계열에서는 섞이면 안되므로, shuffle=False 로 변경해야 한다.분류 문제라면 무조건 `StratifiedKFold`.회귀 문제라면 일반 `KFold` (타겟값이 연속적인 숫자이므로 비율을 나눌 기준이 모호)Null 값이 얼마 되지 않는다면 피처의 평균값 등으로 간단히 대체할 수 있다Null 값이 일정 이상이라면 해당 피처는 드랍하는 것이 낫다레이블 인코딩은 숫자를 순서대로 먹이므로, 대소가 없는 명목형에서도 인코딩 이후에 숫자값의 크고 작음에 대한 특성이 생기게 된다. 모델에 이 크고 작음에 대한 성질이 반영되어 모델이 뒤틀릴 수 있음따라서 선형회귀와 같은 ML 알고리즘에서는 적용하면 안된다.트리 계열의 ML 알고리즘은 숫자의 이러한 특성을 반영하지 않으므로 별 문제가 없다.'''