머신러닝 scikit-learn 주요 모듈
<사이킷런의 주요 모듈>
분류 | 모듈명 | 설명 |
예제데이터 | sklearn.datasets | 내장되어 있는 예제로 제공하는 데이터 세트 |
피처 처리 | sklearn.preprocessing | 데이터 전처리에 필요한 다양한 가공 기능(정규화, 스케일링 등) |
sklearn.feature_selection | 알고리즘에 큰 영향을 미치는 피처를 우선순위대로 셀렉션 작업을 수행하는 기능 등등을 제공 | |
sklearn.feature_extraction | 텍스트/이미지 데이터의 벡터화된 피처를 추출 텍스트는 sklearn.feature_extraction.text 모듈 이미지는 sklearn.feature_extraction.image 모듈에 API가 있음. |
|
피처 처리& 차원 축소 | sklearn.decomposition | 차원 축소 관련 알고리즘 지원. PCA, NMF, Truncated SVD 등 통해 기능 수행 가능 |
평가 | sklearn.metrics | 분류/회귀/클러스터링/페어와이지(Pairwise)에 대한 다양한 성능 측정 방법 제공 Accuracy, Precision, Recall, ROC-AUC, RSME 등 제공 |
ML 알고리즘 | sklearn.ensemble | 앙상블 알고리즘. 랜덤 포레스트/에이다 부스트/그래디언트 부스팅 등 제공 |
sklearn.linear_model | 주로 선형 회귀,릿지(Ridge),라쏘(Lasso), 로지스틱 회귀 등 회귀 관련 알고리즘 지원. SGD(Stochastic Gradient Descent) 관련 알고리즘도 지 |
|
sklearn.naive_bayes | 나이브 베이즈 알고리즘 제공. 가우시안 NB, 다항 분호 NB 등 | |
sklearn.neightbors | 최근접 이웃 알고리즘 제공(K-NN 등) | |
sklearn.svm | 서포트 벡터 머신 알고리즘 | |
sklearn.cluster | 비지도 클러스터링 알고리즘(K-평균, 계층형, DBSCAN 등) |
▶ 요고가 주요하게 사용되고
이거 말고도 다양한 모듈들이 있음.
포인트는 ML 모델을 구축하는 주요 프로세스를 지우너하기 위해 매우 편리한 모듈 지원
<내장된 예제 데이터 세트>
- 내부에 좋은 데이터 세트들을 가지고 있는 사이킷런
API명 | 설명 |
datasets.load_boston() | 회귀 용도. 보스턴의 집 피처들과 가격에 대한 세트 |
datasets.load_breast_cancer() | 분류 용도. 위스콘신 유방암 피처들과 악/음성 레이블 데이터 세트 |
datasets.load_diabetes() | 회귀 용도. 당뇨 데이터 세트 |
datasets.load_digits() | 분류 용도. 0~9까지의 이미지 픽셀 데이터 세트 |
datasets.load_iris() | 분류 용도. 붓꽃에 대한 피처 가진 데이터 세트 |
▶ 이 외에도 인터넷이 연결되어 있다면 scikit_learn_data라는 서브 디렉터리에 저장후 불러들일 수 있는 데이터도 많음
ex) fetch_covtype() / fetch_rcv1() 등등
** 그리고 분류와 클러스터링을 위한 표본 데이터 생성기도 있음.
API명 | 설명 |
datasets.make_classifications() | 분류를 위한 데이터 세트 만듬. 높은 상관도/불필요한 속성 등 노이즈 효과를 위한 데이터를 무작위로 생성해줌 |
datasets.make_blobs() | 클러스터링을 위한 데이터 세트를 무작위로 생성해줌. 군집 지정 개수에 따라 여러가지 클러스터링을 위한 데이터 세트를 쉽게 만들어줌. |
▶ 대부분 여기에 있는 데이터 세트는 주로 딕셔너리 형태로 되어 있음.
▷ key는 주로 아래와 같음.
▶ data (피처의 데이터 세트) / target(분류시 레이블 값, 회귀시 숫자 결괏값 데이터 세트) / target_names(개별 레이블 이름) / feature_names(피처의 이름) / DESCR(데이터 세트와 각 피처의 설명)
: data, target은 넘파이배열 타입이고 target_names, feature_names()는 넘파이 배열 or list임.
: 데이터 값을 반환받을려면 Key값을 지정하면됨.
▶ Bunch 클래스는 파이썬 딕셔너리 자료형과 유사.
그래서 key값을 확인해보면 위와 같이 나옴.
▷ 데이터 키 = 피처들의 데이터 값 : 그래서 값 추출하려면 < 데이터세트.data (or 데이터 세트['data'])
<예시>
iris는 이러한 데이터 값들이 들어가 있다.