본문 바로가기
Machine Learning

사이킷런으로 시작하는 머신러닝 - 사이킷런의 기반 프레임워크 익히기-

by rubyda 2020. 4. 9.
728x90
파이썬 머신러닝 완벽 가이드: 다양한 캐글 예제와 함께 기초 알고리즘부터 최신 기법까지 배우는/권철민 지음을 참고하여 공부하고 정리하는 스터디 포스팅입니다.

 

사이킷런이란?

- 사이킷런은 파이썬 머신러닝 라이브러리 중에서도 가장 많이 사용되는 라이브러리입니다. 사이킷럿은 파이썬 기반의 머신러닝을 위한 가장 쉽고 효율적인 라이브러리를 제공하여 줍니다.
- 파이썬 기반의 다른 머신러닝 패키지도 사이킷런 스타일의 API를 지향할 정도로 쉬운 API를 제공하여 줍니다.
- 머신러닝을 위한 매우 다양한 알고리즘과 개발을 위한 편리한 API를 제공하여 줍니다.
- 오랜 기간 실전 황경에서 검증이 되었으며, 매우 많은 환경에서 사용이 되는 성숙한 라이브러리 입니다.

 

In

import sklearn
print(sklearn.__version__)

Out

0.20.3

 

1. 사이킷런의 프레임워크

2-1 Estimator 이해와 fit(), predict()함수

  • 사이킷런은 ML 모델 학습을 위해서 **fit()**, 학습된 모델을 예측하기 위해서 **predict()**함수를 제공합니다.  사이킷런에서는 분류 알고리즘을 구현한 클래스를 Classifier, 회귀 알고리즘을 구현한 클래스를 Regressor로 지칭합니다. 
  • Classifier과 Regressor 두 클래스를 합쳐서 **Estimator**이라고 부릅니다. 다시 말하자면 **지도학습의 모든 알고리즘을 구현한 클래스를 Estimator**이라고 부릅니다.  

 

  • 사이킷런에서 비지도 학습인 차원 축소, 클러스터링, 피처 추출등을 구현한 클래스의 대부분은 fit()과 transform()을 적용합니다. 비지도학습과 피처 추출에서 fit()은 지도학습에서의 학습과 같은 의미가 아닌 **입력 데이터의 형태에 맞춰 데이터를 변환하기 위한 사전 작업**이라고 말할수 있습니다.

2-2 사이킷럿의 주요 모듈 예시

아래표는 사이킷런의 주요 모듈을 요약한 것입니다. 주로 자주 쓰이는 핵심 모듈을 위주로 정리하였습니다.

 

분류 모듈명 설명
예제 데이터 sklearn.datasets 사이킷런에 내장되어 있는 예제 데이터 세트
피처 처리 sklearn.preprocessing 데이터 전처리에 필요한 다양한 가공 기능을 제공
sklearn.feature_selection 알고리즘에 큰 영향을 미치는 피처를 우선순위로 셀렉션 작업을 수행하는 기능을 제공
sklearn.feature_extraction

텍스트 데이터나 이미지 데이터의 백터화된 피처를 추출하는데 사용

피처처리 & 차원 축소 sklearn.decomposition

차원 축소와 관련된 알고리즘을 지원하는 모듈

PCA, NMF, Truncated SVD 등을 통해서 차원 축소 기능 수행 가능

데이터 분리, 검증 & 파라미터 튜닝 sklearn.model_selection 교차 검증을 위한 학습용/테스트용 분리, 그리드 서치로 최적 파라미터 추출 등의 API 제공
평가 sklearn.metrics

분류, 회귀, 클러스터링, 페어와이즈에 대한 다양한 성능 측정 방법 제공

ex) Accuracy, Precision, Recall, ROC-AUC 등

ML 알고리즘 sklearn.ensemble

앙상블 알고리즘 제공

랜던 포레스트, 에이다 부스트, 그래디언트 부스팅 등

sklearn.linear_model 주료 선형 회귀, 릿지, 라쏘 및 로지스특 회귀 등 회귀 관련 알고리즘을 지원
sklearn.naive_bayes

나이브 베이즈 알고리즘 제공

가우시안 NB, 다항 분포 NB 등

sklearn.neighbors

최근접 이웃 알고리즘 제공

K-NN 등

sklearn.svm 서포트 벡터 머신 알고리즘 제공
sklearn.tree 의사 결정 트리 알고리즘 제공
sklearn.cluster

비지도 클러스터링 알고리즘 제공

(K-평균, 계층형, DBSCAN 등)

유틸리티 sklearn.pipeline 피처 처리 등의 변환과 ML 알고리즘 학습, 예측 등을 함께 묶어서 실행할 수 있는 유틸리티를 제공