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 알고리즘 학습, 예측 등을 함께 묶어서 실행할 수 있는 유틸리티를 제공 |
'Machine Learning' 카테고리의 다른 글
사이킷런으로 시작하는 머신러닝 - Model Selection 모듈(2)- (0) | 2020.04.09 |
---|---|
사이킷런으로 시작하는 머신러닝 - Model Selection 모듈(1)- (0) | 2020.04.09 |
데이터프레임(DataFrame) 다루기 ◑_◐ (0) | 2020.04.07 |
판다스(Pandas)의 자료구조 (0) | 2020.04.06 |
넘파이(Numpy)에 대해 알아보자! (0) | 2020.04.03 |