0. Ensemble
의사 결정 나무 (Decision Tree)는 과적합 문제가 발생할 수 있다는 문제가 있다.
=> 실제로 처음 decision tree 배우고 주피터로 코드 돌려봤는데,
이러한 그림이 나온 적이 있다...
- voting : 서로 다른 알고리즘을 가진 결과를 다수결 / 평균으로 결정
- bagging : 같은 알고리즘을 사용해 데이터를 랜덤으로 추출
- 다양한 서브 데이터셋 생성
- 이 데이터셋들을 병렬적으로 학습
- boosting : 같은 알고리즘을 사용
- 앞서 학습된 결과를 다음 학습기가 순차적으로 학습
- 오차(잔차) 를 줄여나감
1. Random Forest (bagging 기법)
"여러 데이터셋을 잘 예측하는 모델"
=> 다양한 서브 데이터셋 을 랜덤으로 생성
: 이때 전체 특성 개수(n)의 제곱근만큼의 개수로 특성을 랜덤으로 추출
=> 여러 개의 decision tree가 각각의 데이터셋을 학습 => 그 결과를 취합
=> 단일 의사결정나무가 가질 수 있는 과적합 문제를 해결 가능
분류 :
1. 지니계수 / 엔트로피가 가장 낮아지는 방향으로 학습
2. 최종 분기된 leaf node의 확률값들의 평균으로 예측을 수행
회귀 :
1. MSE가 최소인 분기점 찾기
2. 각 tree의 결과를 평균한 값으로 예측 수행
2. Gradient Boosting (boosting 기법)
"순차적으로 학습기 (tree)를 통과하며 이전 학습기의 잔차를 학습
=> 점점 이 잔차를 줄여나가는 방향으로 성능 확대"
pre pruning : 학습을 일찍 멈추도록 함
Grid Search : hyper parameter 들을 순차적으로 적용해보며 성능이 가장 좋았던 값으로 결정
학습법
0. 초기화
1. tree1이 MSE 학습
=> 각 leaf의 최종 예측값 (Combined Prediction) = 각 leaf의 값들의 평균
2. tree2가 MSE 학습
=> 각 leaf의 최종 예측값 (Combined Prediction) = 각 leaf의 값들의 평균
=> |tree2의 Combined Prediction| < |tree1의 Combined Prediction|
임을 확인할 수 있을 것이다!
...
N. treeN까지의 모든 Prediction 값들을 더한 값이 최종 leaf값이 된다.
그니까
=> Prediction0 + Prediction1 + Prediction2 + ... + PredictionN까지 한 값이 마지막 leaf의 최종 예측값이 되는 것이다.
(설명하기 귀찮아서 블로그에서 그림 퍼왔다)
'étude > AI' 카테고리의 다른 글
23'f Transformer NLP (2) | 2024.01.31 |
---|---|
Model Explanation : SHAP values (2) | 2023.11.22 |
Unsupervised Learning : k-means Clustering, DBSCAN (1) | 2023.11.22 |
Model Evaluation and Improvement : Cross - Validation (0) | 2023.11.19 |
transfer learning (upstream, downstream) (0) | 2023.11.15 |