IT/ML
[sklearn] 사이킷런 (scikit-learn) 주요 모듈
aram
2022. 11. 20. 23:55
- sklearn.datasets : 예제로 제공하는 데이터 세트
>> sklearn.datasets.make_regression()
: 선형 회귀에 사용할 데이터 셋 생성 (선형으로 분산된 데이터를 생성, 가우스 노이즈의 표준 편차, 원하는 피쳐의 수 지정 가능)
>> sklearn.datasets.make_classification()
: 분류에 필요한 모의 데이터 셋 생성, 실수 특성 행렬과 클래스의 소속을 나타내는 정수 타깃 벡터를 반환
>> sklearn.datasets.make_blobs() - 군집 알고리즘에 적용할 데이터셋 생성 (n개의 무작위 데이터 클러스터를 생성)
>> sklearn.datasets.make_circles() - 두개의 차원에 작은 원을 포함하는 큰 원이 포함된 임의의 데이터셋을 생성, - sklearn.preprocessing : 데이터 전처리에 필요한 다양한 가공 기능 제공(문자열을 숫자형 코드 값으로 인코딩, 정규화, 스케일링 등)
- sklearn.feature_selection : 알고리즘에 큰 영향을 미치는 피처를 우선순위대로 셀렉션 작업을 수행 하는 다양한 기능 제공
- sklearn.feature_extraction : 텍스트 데이터나 이미지 데이터의 벡터화된 피처를 추출하는데 사용됨
> sklearn.feature_extraction.text : 텍스트 데이터의 피처 추출
> sklearn.feature_extraction.image : 이미지 데이터의 피처 추출 - sklearn.decomposition : 차원 축소와 관련한 알고리즘을 지원하는 모듈, PCA, NMF, Truncated SVD 등을 통해 차원 축소 기능을 수행 할 수 있음
1. 데이터 분할 – 모델을 학습시키기 위한 데이터셋과 모델의 성능을 테스트하기 위한 데이터셋으로 분리한다
- sklearn.model_selection : 교차 검증을 위한 학습용/테스트용 분리, 그리드 서치(Grid Search)로 최적 파라미터 추출 등의 API 제공
2. 모델 생성 – 예측 목적에 맞는 모델 생성, 하이퍼파라미터 설정
하이퍼파라미터 – 학습에 의해 찾는 값이 아닌 개발자가 직접 설정해야 하는 파라미터
- sklearn.ensemble : 앙상블 알고리즘 제공 랜덤 / 포레스트, 에이다 부스트, 그레디언트 부스팅 등을 제공
- sklearn.linear_model : 주로 선형 회귀, 릿지(Ridge), 라쏘(Lasso) 및 로지스틱 회귀 등 회귀 관련 알고리즘을 지원, SGD(Stocastic Gradient Descent) 관련 알고리즘 제공
- sklearn.naïve_bayes : 나이브 베이즈 알고리즘 제공, 가우시안 NB, 다항 분포 NB 등
sklearn.neighbors : 최근접 이웃 알고리즘 제공, K-NN 등
sklearn.svm : 서프트 벡터 머신 알고리즘 제공
sklearn.tree : 의사 결정 츠리 알고리즘 제공
sklearn.cluster : 비지도 클러스터링 알고리즘 제공 (K-평균, 계층형, DBSCAN 등) - sklearn.pipeline : 피처 처리 등의 변환과 ML 알고리즘 학습, 예측 등을 함께 묶어서 실행할 수 있는 유틸리트 제공
3. 모델 학습 - fit, 훈련 데이터로 모델 학습 또는 특징 추출
4. 예측 – predict / predict_prob(예측), transform(변환) 테스트 데이터셋 예측 또는 변환
5. 평가 – 모델 성능 평가 정확도, AUC, R2, MSE 등 목적에 맞는 적절한 평가 함수를 이용해 결과 확인
- sklearn.metrics
: 분류, 회귀, 클러스터링, 페어와이즈(Pairwise)에 대한 다양한 성능 측정 방법 제공
: Accuracy, Precision, Recal, ROC-AUC, RMSE 등 제공