- 앙상블 학습(ensemble learning)
: 여러 개의 분류기를 생성하고, 그 예측을 결합함으로써 보다 정확한 예측을 도출하는 기법, 정형 데이터를 다루는 데 가장 뛰어난 성과를 내는 알고리즘
-> 대부분 결정 트리를 기반으로 만들어져 있다.
- 랜덤 포레스트(Random Forest)
: 훈련을 통해 구성해놓은 다수의 나무들로부터 분류결과를 취합해서 결론을 얻는 방법,
앙상블 학습의 대표 주자 중 하나로 안정적인 성능 덕분에 널리 사용되고 있다.
- 부트스트랩 샘플(bootstrap sample)
: 중복 가능 샘플

data를 만들고, sklearn.ensemble / RandomForestClassifier 객체 모델을 만들고, 교차 검증을 하였다.
모델을 학습하고, 각 특성별 중요도를 출력해보면, 이전 결정트리와 다르게 비교적 중요도가 치우치지 않았다.
-> 랜덤 포레스트가 특성의 일부를 랜덤하게 선택하여 결정 트리를 훈련하기 때문입니다.
OOB(Out of Bag) 샘플
: 부트스트랩 샘플에 포함되지 않고 남는 샘플

OOB 샘플로 검증 세트와 역할로 결정 트리를 평가한 점수를 받을 수 있다.
oob_score_ 인자에 저장되어 있다.
- 엑스트라 트리(Extra Trees)
: 랜덤 포레스트와 비슷하게 100개의 결정 트리를 훈련하고, 대부분 매개변수를 지원하지만, 부트스트랩 샘플이 아니라 전체 훈련 세트를 사용한다.
대신 노드를 분할할 때 가장 좋은 분할을 찾는 것이 아니라 무작위로 분할한다.
-> DecisionTreeClassifier의 splitter 매개변수를 'random'인 결정 트리

- 그레이디언트 부스팅(gradient boosting)
: 깊이가 얕은 결정 트리를 사용하여 이전 트리의 오차를 보완하는 방식으로 앙상블 하는 방법
사이킷런의 GradientBoostingClassifier는 기본적으로 깊이가 3인 결정 트리 100개를 사용한다.

과대 적합이 거의 일어나지 않는다.

결정 트리 개수를 5배 늘려도 과대적합을 잘 억제한다.
학습률 learning_rate의 기본값은 0.1이다.
- 히스토그램 기반 그레이디언트 부스팅(Histogram-based Gradient Boosting)
: 정형 데이터를 다루는 머신러닝 알고리즘 중에 가장 인기가 높은 앍리즘
먼저 입력 특성을 256개 구간을 나눈다. -> 노드를 분할할 때 최적의 분할을 매우 빠르게 찾을 수 있다.
이중 하나를 떼어 놓고 누락된 값을 위해서 사용된다.

sklearn.ensemble / HistGradientBoostingClassifier
기본 매개변수로 트리 개수 지정하는데 n_estimators 대신 부스팅 반속 횟수 지정하는 max_inter를 사용해서 성능을 높인다.

특성 중요도를 계산하기 위해 permutation_importance함수를 사용한다.
n_repeats 매개변수는 랜덤하게 섞을 횟수를 지정합니다.
반환하는 객체는 특성중요도, 평균, 표준 편차를 담고 있다.
테스트 세트도 비슷한 결과가 나온다.
회귀버전은 HistGradientBoosting Regressor 클래스로 구현.
사이킷런이 아니라 다른 라이브러리로는 XGBoost나 LightGBM으로 히스토그램 기반 그레이디언트 부스팅 라이브러리.




- 앙상블 학습
- 랜덤 포레스트
- 엑스트라 트리
- 그레이디언트 부스팅
- 히스토그램 기반 그레이디언트 부스팅
'DATA & AI > HG ML&DL' 카테고리의 다른 글
| [HG ML&DL] 06. 비지도 학습 (2) - k-평균 (0) | 2023.05.09 |
|---|---|
| [HG ML&DL] 06. 비지도 학습 (1) - 군집 알고리즘 (0) | 2023.05.03 |
| [HG ML&DL] 05. 트리 알고리즘 (2) - 교차 검증과 그리드 서치 (0) | 2023.05.02 |
| [HG ML&DL] 05. 트리 알고리즘 (1) - 결정 트리 (0) | 2023.05.02 |
| [HG ML&DL] 04. 다양한 분류 알고리즘 (2) - 확률적 경사 하강법 (0) | 2023.05.02 |