머신러닝/개념익히기

머신러닝 scikit-learn 주요 모듈

ADELA_J 2023. 7. 30. 21:28

 

<사이킷런의 주요 모듈>

 

분류 모듈명 설명
예제데이터 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는 이러한 데이터 값들이 들어가 있다.