- 결정 트리(Decision Tree)
: 데이터에 있는 규칙을 학습하여 자동으로 찾아내 트리 기반의 분류 규칙을 만드는 것
(스무고개와 유사)
- 결정 트리 구조
- 규칙 노드 : 규칙 조건
- 리프 노드 : 결정된 클래스 값
- 결정 트리 분류 기준
: 정보 균일도 ( 가장 비슷한 데이터끼리 분류하는 것이 목표 )
- 지니 계수 : 낮을수록 균일
- 정보 이득 : 높을수록 균일
지니 계수가 낮거나 정보 이득이 높은 조건을 찾아 반복적으로 분할한다.
데이터가 모두 특정 분류에 속하게 되면 분할을 멈추고 분류를 결정한다.
- 결정 트리 장단점
- 장점
: '균일도'라는 명확한 기준을 가지고 분류
: 쉽다, 직관적이다.
: 피처의 스케일링이나 정규화 등의 사전 가공 영향도가 크지 않음
- 단점
: 많은 규칙이 들어가면 과적합으로 이어질 수 있다. → 트리의 크기를 사전에 제한하기
- 결정 트리 파라미터
- min_samples_split : 노드를 분할하기 위한 최소한의 샘플 데이터 수(과적합 방지)
- min_samples_leaf : 말단 노드가 되기 위한 최소한의 샘플 데이터 수(과적합 방지)
- max_features : 최대 피처 개수, 디폴트는 모든 피처 사용
- max_depth : 트리의 최대 깊이
- max_leaf_nodes : 말단 노드의 최대 개수(과적합 방지)
- 결정 트리 모델 시각화
- Graphviz
- visualize_boundary()
- 앙상블 학습
: 여러 개의 분류기를 생성하여 그 예측을 결합함으로써 보다 정확한 최종 예측 도출하는 기법
- 보팅
: 서로 다른 알고리즘을 가진 분류기를 결합
- 배깅
: 같은 유형의 알고리즘 기반이지만, 데이터 샘플링을 서로 다르게
- 부트스트래핑
: 개별 classifier 에게 데이터를 샘플링해서 추출하는 방식
: 중복을 허용함
- 부스팅
: 여러 개의 분류기가 순차적으로 학습을 수행하되, 앞에서 학습한 분류기가 예측이 틀린 데이터에 대해 올바르게 예측할 수 있도록 다음 분류기에게 가중치 부여
ex) 그래디언트 부스트 , XGBoost, LightGBM
- 보팅 유형 - 하드 보팅 vs 소프트 보팅
하드 : 다수결의 원칙과 비슷하게 예측한 결괏값들중 다수의 분류기가 결정한 예측값을 최종 보팅 결괏값으로 선정
소프트 : 분류기들의 레이블 값의 결정 확률을 모두 더하고 이를 평균해서 확률이 가장 높은 레이블 값을 최종 보팅 결괏값으로 선정
- 랜덤 포레스트(RandomForest)
: 배깅의 대표적인 알고리즘
: 전체 데이터에서 배깅 방식으로 각자의 데이터를 샘플링해 개별적으로 학습을 수행한 뒤, 최종적으로 모든 분류기가 보팅을 통해 예측 결정을 함
- 랜덤 포레스트의 파라미터
- n_estimators : 결정 트리의 개수
- max_features : 결정 트리와 동일, 단 디폴트가 전체 피처가 아님
- max_depth : 결정 트리와 동일
- min_samples_leaf : 결정 트리와 동일
- GridSearchCV
'AI > Machine Learning' 카테고리의 다른 글
[Tave 7기 캐글스터디] 단순선형회귀, 경사하강법 (0) | 2021.04.07 |
---|---|
[Tave 7기 캐글스터디] AdaBoost, XGBoost, LGBM (0) | 2021.04.07 |
[Tave 7기 캐글스터디] 정확도 측정 지표 (0) | 2021.04.07 |
2장 분류 (0) | 2021.02.18 |
정규화 / 회귀 알고리즘 평가 지표 (0) | 2021.02.03 |