[sklearn] 사이킷런 기반 프레임워크
23 Mar 2020 | Scikit--LearnEstimator
Classsfication(분류), Regression(회귀) 문제를 사이킷런에서는 Classifier와 Regressor 클래스로 제공한다. 즉, 지도학습의 모든 알고리즘을 구현한 클래스를 통칭해서 Estimator 클래스라고 부른다. Fit( )을 통해 모델 학습, predict( )을 통해 학습된 모델의 예측을 진행.
비지도학습인 차원 축소(PCA), 클러스터링, 피처 추출 등을 구현한 클래스들 역시 대부분 fit( )과 transform( )을 적용한다. 하지만 여기서의 fit( )은 학습을 의미하는 것이 아니라 입력 데이터의 형태에 맞춰 데이터를 변환하기 위한 사전 구조를 맞추는 작업이다. fit( )으로 변환을 위한 사전 구조를 맞추면 이후 입력 데이터의 차원 변환, 클러스터링, 피처 추출 등의 실제 작업은 transform( )으로 수행한다. 이 2개의 메서드를 합친 fit_transform( )도 존재한다.
사이킷런 주요 모듈
예제 데이터
- sklearn.datasets : 예제로 제공하는 데이터 세트
피처 처리
- sklearn.preprocessing : 데이터 전처리에 필요한 가공 기능 제공 (문자열->숫자형 코드 값 인코딩, 정규화, 스케일링 등)
- sklearn.feature_selection : 알고리즘에 큰 영향을 미치는 피처를 우선순위대로 셀렉션 작업을 수행하는 다양한 기능 제공
- sklearn.feature_extraction : 텍스트 데이터나 이미지 데이터의 벡터화된 피처를 추출. 이미지 데이터 피처 추출은 sklearn.feature_extraction.image 모듈에 API가 있음.
피처 처리 & 차원 축소
- sklearn.decomposition : 차원 축소와 관련한 알고리즘을 지원하는 모듈. PCA, NMF, Truncated SVD 등.
데이터 분리, 검증 & 파라미터 튜닝
- sklearn.model_selection : 교차 검증을 위한 학습용/테스트용 분리, 그리드 서치(Grid Search)로 최적 파라미터 추출 등.
평가
- sklearn.metrics : 분류, 회귀, 클러스터링, 페어와이즈에 대한 다양한 성능 측정 방법 제공. Accuracy, Precision, Recall, ROC-AUC, RMSE 등.
ML 알고리즘
- sklearn.ensemble : 앙상블 알고리즘 제공. 랜덤 포레스트, 에이다 부스트, 그래디언트 부스팅등을 제공
- sklearn.linear_model : 주로 선형회귀, Ridge, Lasso 및 로지스틱 회귀 등 회귀 관련 알고리즘을 지원. 또한 SGD 관련 알고리즘도 제공.
- sklearn.naive_bayes : 나이브 베이즈 알고리즘 제공. Gaussian NB, 다항 분포 NB 등.
- sklearn.neighbors : 최근접 이웃 알고리즘 제공. K-NN 등.
- sklearn.svm : 서포트 벡터 머신 알고리즘 제공.
- sklearn.tree : 의사 결정 트리 알고리즘 제공
- sklearn.cluster : 비지도 클러스터링 알고리즘 제공 (K-평균, 계층형, DBSCAN 등)
유틸리티
- sklearn.pipeline : 피처 처리 등의 변환과 ML 알고리즘 학습, 예측등을 함께 묶어서 실행할 수 있는 유틸리티 제공
Comments