본문 바로가기
Analysis/ML

[sklearn] 지도학습

by 5ole 2021. 5. 10.

 

  • 모델의 가정과 매개변수의 의미를 제대로 이해하는 것이 중요

 

알고리즘 종류 특징 전처리 중요 매개변수
KNN

최근접 이웃
(회귀), (분류) 작은 데이터셋
기본 모델
설명하기 용이
특성이 많을 때는 부적절
희소한 데이터셋에 잘 작동
스케일링 O
metric 거리 재는 법
n_neighbors 이웃 수
Linear Model

선형 모형
(회귀)
Linear Regression
Ridge
Lasso

(분류)
Logistic Regression
Linear SVC
첫번째 시도 알고리즘
속도가 빠름

희소한 큰 데이터셋 잘 작동

대용량 데이터셋은
Logistic과 Ridge에

solver ='sag' 옵션 줌

선형 모델 대용량 처리버전으로 나온
SGD회귀/분류 사용


특성이 많을수록 잘 작동 
스케일링 O

L1,L2 - 주로 L2

(회귀)
alpha 클수록 단순
로그 스케일 조정 (0.01,0.1)

(분류)
C 작을수록 모델 단순
로그 스케일 조정 (0.01,0.1)
Naive Bayes

나이브베이즈
(분류)

Gaussian NB (연속)


< 텍스트 >
Bernoulli NB (이진)
Multinomial NB (카운트)
분류만 가능
속도가 빠름
희소한 큰 데이터셋 잘 작동
매개변수 민감하지 않음
  (Bernoulli, Multinomial)
alpha 클수록 단순
성능 향상에 크게 기여 X

Decision Tree

결정 트리
(회귀), (분류) 쉽게 모델 시각화 가능
이해하기 쉬움

이진 특성, 연속 특성 혼합되어도 잘됨

과적합으로 일반화 성능이 낮음
희소한 큰 데이터셋은 부적절
스케일링 X (사전 가지치기)
max_depth, max_leaf_nodes, min_samples_leaf 중 하나

Random Forest

랜덤 포레스트

(회귀), (분류) 결정 트리 기반 - 장점 그대로
튜닝하지 않아도 잘 작동
특성의 일부만 사용
큰 데이터셋에 잘 작동
희소한 큰 데이터셋은 부적절
속도가 느림
스케일링 X n_jobs 코어 지정 가능

random_state로 모델 고정 필요

n_estimators 클수록 좋음
But 많은 메모리와 훈련시간

max_features
트리의 무작위 정도 결정
- 과적합 방지, 기본값 사용
(분류) sqrt(n_features)
(회귀) n_features
Gradient Boosting

그래디언트
부스팅
(회귀), (분류) 이전 트리 오차 보완
결정 트리 기반 - 장점 그대로
매개변수 조정에 민감
RF보다 긴 훈련 시간
예측은 RF보다 빠름
희소한 큰 데이터셋은 부적절
스케일링 X 두 매개변수 깊게 연관성
학습률 낮추면 트리 개수 추가
1. 트리개수 설정 2. 학습률

n_estimators
 클수록 과적합

learning_rate 오차 보정 강도

(조기 종료)
validation_fraction
(0.1)비율로 검증데이터 사용

n_iter_no_change 반복해
검증 점수 향상없으면 종료


max_depth 작게 설정 (<5)

n_jobs 지원 안함 - 순차 학습
Bagging 

배깅 
(회귀), (분류) Bootstrap aggregating
중복 허용한 랜덤 샘플링으로 분류기 학습
분류기 지정 - 로지스틱, 결정트리, RF..
스케일링 X  n_estimators 분류기 갯수

oob_score 훈련 모델 평가
- 로지스틱, RF

max_samples
부트스트랩 샘플 크기 지정
AdaBoost

에이다부스트
(회귀), (분류) 이전 모델이 잘못 분류한 샘플에
가중치 높여 다음 모델 훈련

각 모델은 성능에 따라 가중치 부여해
가장 높은 값 레이블 선택
스케일링 X base_estimator 결정트리 기본값

n_jobs
 지원 안함 - 순차 학습
SVM

커널 서포트 벡터
(회귀) SVR
(분류) SVC
저차원, 고차원 모두 잘 작동
샘플이 많을 시에는 잘 안맞음(>100,000)
전처리, 매개변수 신경 많이 써야함
스케일링 O C 규제변수, 클수록 복잡

kernel
- RBF = 가우시안
(gamma 클수록 복잡)
MLP

다층 퍼셉트론
(회귀), (분류) 피드포워드 신경망, 신경망
매우 복잡한 모델도 가능
오랜 시간 소요
전처리, 매개변수 신경 많이 써야함
스케일링 O solver 최적화 알고리즘
- adam (스케일 민감)
- lgfgs (오랜 시간)
- sgd (튜닝)

은닉층 수
은닉층 유닛 개수
alpha L2 페널티 규제

 

 

 

  • 사이킷런 분류 불확실성 추정 기능 - argmax로 예측 결과 재현 가능

 

1. decision_function 결정함수

  • Shape (n_samples, n_classes)
  • 출력 범위가 임의의 값, 실수라 이해하기 어려움 shape
  • 이진 분류일 경우에는 Shape  (n_samples, ) 열 한개 - 양성 클래스에만 대응

 

2. predict_proba 예측확률

  • Shape (n_samples, n_classes) 
  • 각 클래스에 대한 확률 - 과적합이면 잘못된 예측이어도 강한 확신 나타남

 

 

 

 

 

 

 

+ 참고 자료 및 출처

 

(한빛미디어) 안드레아스 뮐러, 세라 가이도  < 파이썬 라이브러리를 활용한 머신러닝 > 

 

 

'Analysis > ML' 카테고리의 다른 글

[sklearn] 교차 검증  (0) 2021.05.11
[sklearn] 특성 공학  (0) 2021.05.11
[sklearn] 비지도학습  (0) 2021.05.10
[sklearn / statsmodels] 선형회귀 Linear Regression  (0) 2021.01.31

댓글