TOP
class="layout-aside-left paging-number">
본문 바로가기
데이터분석 만능열쇠 [파이썬]/<파이썬 머신러닝>

[파이썬] 사이킷런 주요 모듈

by 기록자_Recordian 2024. 5. 30.
728x90
반응형
시작에 앞서
해당 내용은 '<파이썬 머신러닝 완벽 가이드> 권철민 지음. 위키북스' 를 토대로 작성되었습니다. 보다 자세한 내용은 해당 서적에 상세히 나와있으니 서적을 참고해 주시기 바랍니다.
 

네이버 도서

책으로 만나는 새로운 세상

search.shopping.naver.com


 Estimator 이해 및 fit( ), predict( ) 메서드

 

사이킷런은 ML 모델 학습을 위해 fit( ), 학습된 모델의 예측을 위해 predict( ) 메서드 제공.'

 

◆ 지도학습에서의 사이킷런 클래스(분류, 회귀, Estimator)

지도학습의 주요 두 축인 분류와 회귀의 다양한 알고리즘을 구현한 모든 사이킷런 클래스는 위의 두 메서드만을 이용해 간단하게 학습과 예측 결과를 반환한다.

  • Classifier: 분류 알고리즘을 구현한 클래스
  • Regressor: 회귀 알고리즘을 구현한 클래스
  • Estimator = Classifier + Regressor

지도학습의 모든 알고리즘을 구현한 클래스를 통칭하여 Estimator 라고 지칭. (fit, predict 메서드를 내부에서 구현)

 

◆ 비지도학습에서의 사이킷런 클래스(fit, transform)

사이킷런에서 비지도학습인 차원 축소, 클러스터링, 피처 추출(Feature Extraction) 등을 구현한 클래스 역시 대부분 fit( )과 transform( )을 적용.

※ 비지도학습에서의 fit( )은 지도학습의 fit( ) 처럼 학습을 의미하는 것이 아니라 입력 데이터의 형태에 맞춰 데이터를 변환하기 위한 사전 구조를 맞추는 작업이다.

fit( )으로 변환을 위한 사전 구조를 맞추면 이후 입력 데이터의 차원 변환, 클러스터링, 피처 추출 등의 실제 작업은 transform( )으로 수행

 

fit+transform = fit_transform

fit_transform( )은 fit( )과 transform( )을 별도로 호출할 필요를 줄여주지만, 사용상의 주의 필요

  1. 훈련 데이터와 테스트 데이터 분리: fit_transform()을 훈련 데이터에 사용한 후, 테스트 데이터에는 동일한 변환을 적용하기 위해 fit()을 사용해서는 안 된다. 이는 데이터 누수(Data Leakage)를 초래할 수 있다. 훈련 데이터에는 fit_transform()을 사용하고, 테스트 데이터에는 transform()을 사용해야 한다
  2. 적용 범위: fit_transform()은 한 번에 fit과 transform을 수행하기 때문에, 특정 상황에서는 두 단계로 나눠서 처리하는 것이 더 적합할 수 있다. 예를 들어, 여러 데이터셋에 동일한 스케일링을 적용하려면 fit()을 한 번만 사용하고 각 데이터셋에 transform()을 사용하는 것이 좋다
  3. 적용 데이터: fit_transform()을 사용할 때, 변환할 데이터의 특성을 정확히 파악하고 있어야 한다. 데이터의 특성이 변하면 fit()을 다시 호출해야 할 수 있기 때문이다.


사이킷런의 주요 모듈

 

분류 모듈명 설명
예제 데이터 sklearn.datasets 사이킷런에 내장되어 예제로 제공하는 데이터 세트
피처 처리 sklearn.preprocessing 데이터 전처리에 필요한 다양한 가공 기능 제공
(문자열을 숫자 형 코드 값으로 인코딩, 정규화, 스케일링 등)
sklearn.feature_selection 알고리즘에 큰 영향을 미치는 피처를 우선순위대로 셀렉션 작업을 수행하는 다양한 기능 제공
sklearn.feature_extraction 텍스트 데이터나 이미지 데이터의 벡터화된 피처를 추출
(텍스트 데이터에서 Count Vectorizer나 Tf-idf Vectorizer 등을 생성하는 기능 제공)
텍스트 데이터의 피처 추출: sklearn.feature_extraction.text
이미지 데이터의 피처 추출: sklearn.feature_extraction.image
피처 처리
& 차원 축소
sklearn.decomposition 차원 축소와 관련한 알고리즘을 지원하는 모듈.
PCA, NMF, Truncated SVD 등을 통해 차원 축소 기능 수행
데이터 분리. 검증
& 파라미터 튜닝
sklearn.model_selection 교차 검증을 위한 학습용/테스트용 분리.
그리드 서치(Grid Search)로 최적 파라미터 추출 등의 API 제공
평가 sklearn.matrics 분류, 회귀, 클러스터링, 페어와이즈(Pairwise)에 대한 다양한 성능 측정 방법 제공
Accuracy, Precision, Recall, ROC-AUC, RMSE 등 제공
ML 알고리즘 sklearn.ensemble 앙상블 알고리즘 제공
랜덤 포레스트, 에이다 부스트, 그래디언트 부스팅 등 제공
sklearn.linear_model 주로 선형 회귀, 릿지(Ridge), 라쏘(Lasso) 및 로지스틱 회귀 등 회귀 관련 알고리즘을 지원.
GSD(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 알고리즘 학습/예측 수행, 모델 평가의 단계를 반복적으로 수행하는 것이다.

 

사이킷런 패키지는 머신러닝 모델을 구축하는 주요 프로세스를 지원하기 위해 매우 편리하고 유연하고 다양한 모델을 지원한다.


다음글

[파이썬] 사이킷런에 내장된 예제 데이터 세트

728x90
반응형