- 모델의 가정과 매개변수의 의미를 제대로 이해하는 것이 중요
알고리즘 | 종류 | 특징 | 전처리 | 중요 매개변수 |
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 |
댓글