사이킷런에서 비지도학습인 차원 축소, 클러스터링, 피처 추출(feature extraction) 등을 구현한 클래스 역시 대부분 fit()과 transform() 적용
비지도학습과 피처 추출에서의 fit()은 지도학습의 fit()과 같이 학습을 의미하는 것이 아니라 입력 데이터의 형태에 맞춰 데이터를 변환하기 위한 사전구조 맞춤
fit()으로 변환을 위한 사전 구조를 맞추면 이후 입력 데이터의 차원 변환, 클러스터링 , 피처 추출 등의 실제 작업은 transform()
사이킷런은 fot()과 transform()을 하나로 결합한 fit_transform()도 함께 제공. fit_transform()은 fit()과 transform()을 별도로 호출할 필요를 줄여주지만
차이가 있음
예제
sklearn.datasets - 사이킷 런에 내장된 예제로 제공하는 데이터 세트
피처 처리
sklearn.preprocessing - 데이터 전처리에 필요한 다양한 가공 기능 제공 ( 문자열을 숫자형 코드 값으로 인코딩, 정규화, 스케일링 등)
sklearn.feature_selection - 알고리즘에 큰 영향을 미치는 피처를 우선순위대로 셀렉션 작업을 수행하는 다양한 기능 제공
sklearn.feature_extraction - 텍스트 데이터나 이미지 데이터의 벡터화된 피처를 추출하는데 사용됨.
-ex) 텍스트 데이터에서 count vectorizer나 tf-ldf vectorizer 등을 생성하는 기능 제공
- 텍스트 데이터의 피처 추출은 sklearn.feature_extraction.text 모듈에
- 이미지 데이터의 피처 추출은 sklearn.feature_extraction.image 모듈에 지원 API가 있음
피처 처리 & 차원 축소
sklearn.decomposotion - 차원 축소와 관련한 알고리즘을 지원하는 모듈임 . PCA, NMF, Truncated SVD등을 통해 차원 축소 기능을 수행할 수 있음
데이터 분리, 검증 & 파라미터 튜닝
sklearn.model_selection - 교차 검증을 위한 학습용/테스트용 분리, 그리드 서치(Grid Search)로 최적 파라미터 추출 등의 API 제공
평가
sklearn.metrics - 분류, 회귀, 클러스터링, 페어와이즈(Pairwise)에 대한 다양한 성능 측정 방법 제공
ML 알고리즘
sklearn.ensemble - 앙상블 알고리즘 제공. 랜덤 포레스트, 에이다 부스트, 그래디언트 부스팅 등을 제공
sklearn.linear_model - 주로 선형 회귀, 릿지(Ridge), 라쏘(Lasso) 및 로지스틱 회귀 등 회귀 관련 알고리즘을 지원. 또한 SGD(Stochastic Gradient Descent) 관련 알고리즘도 제공
sklearn.naive_bayes - 나이브 베이즈 알고리즘 제공. 가우시안 NB, 다항 분포 NB 등.
sklearn.neighbors - 최근점 이웃 알고리즘 제공. K-NN 등
sklearn.svm - 서포트 벡터 머신 알고리즘 제공
sklearn.tree - 의사 결정 트리 알고리즘 제공
sklearn.cluster 비지도 클러스터링 알고리즘 제공(K-평균 , 계층형, DBSCAN 등)
유틸리티
sklearn.pipeline - 피처 처리 등의 변환과 ML 알고리즘 학습, 예측 등을 함께 묶어서 실행할 수 있는 유틸리티 제공
일반적으로 머신러닝 모델을 구축하는 주요 프로세스:
피처의 가공, 변경, 추출을 수행하는 피처 처리(feature processing), ML 알고리즘 학습/예측 수행, 모델 평가의 단계를 반복수행