Book Title : Hands-On Machine Learning with Scikit-Learn, Keras & TF
지은이 : 오렐리아 제롱
옮긴이 : 박해선
출판사 : 한빛미디어
코드 출처
https://github.com/rickiepark/handson-ml2
7. 앙상블 학습과 랜덤 포레스트
앙상블
- 무작위로 선택된 수천 명의 사람에게 복잡한 질문을 하고 대답을 모아 결정하는 것이 한 명의 전문가의 답보다 좋음.
- 이를 대중의 지혜(wisdom of the crowd)라고 함
- 이와 비슷하게 일련의 예측기 여러개로붜 예측을 수집하면 가장 좋은 모델 하나보다 더 좋은 예측을 얻을 수 있음.
- 앙상블 방식에는 Bagging, Boosting, Stacking이 있음
Hard Voting(직접 투표)
- 각 분류기의 예측을 모아서 가장 많이 선택된 클래스를 예측하는 것
Sotf Voting(간접 투표)
- 모든 분류기가 클래스의 확률을 예측할 수 있으면, 개별 분류기의 예측을 평균 내어 확률이 가장 높은 클래스를 예측하는 것
Bagging(bootstrap aggregating)
- 훈련 세트에서 중복을 허용하여 샘플링 하는 방식
Pasting
- 훈련 세트에서 중복을 허용하지 않고 샘플링 하는 방식
Bagging vs Pasting
전반적으로 배깅이 더 나은 모델을 만들기 때문에 일반적으로 선호한다고 함
하지만, 시간과 CPU파워에 여유가 있으면 교차 검증으로 두 개의 방식 모두 사용해서 더 나은 쪽 선택할 것
랜덤 포레스트 vs 엑스트라 트리
- 극단적으로 무작위한 트리의 랜덤 포레스트를 엑스트라 트리라고 부르며, 편향을 늘어나지만 대신 분산을 낮춤
- 랜덤 포레스트보다 엑스트라 트리가 빠름
- 자세한 차이점은 그저께 포스팅을 참고
ExtraTreesClassifier vs RandomForestClassifier 차이점
Boosting(부스팅)
- 원래는 가설 부스팅(hypothesis boosting)이라고 불렸으며, 약한 학습기를 여러 개 연결하여 강한 학습기를 만드는 앙상블 방법
- 대표적으로 AdaBoosting과 GradientBoosting이 있음
자세한 차이점은 아래 포스팅을 참고
[Study] AdaBoosting vs GradientBoosting 차이점
Stacking(스태킹)
- stacked generalization의 줄임말
- 각기 다른 분류기들이 예측한 데이터를 다시 training set으로 마지막 예측기(Blender 혹은 메타 학습기)를 학습시켜 최종 예측을 하는 것
Q. oob 평가의 장점은?
oob 평가를 사용하면 배경 앙상블의 각 예측기가 훈련에 포함되지 않은 샘플을 사용해 평가됨.
이는 추가적인 검증 세트가 없어도 편향되지 않게 앙상블을 평가하도록 도와줌
결론적으로 훈련에 더 많은 샘플을 사용할 수 있어서 앙상블의 성능은 조금 더 향상할 것
'Study > Hands-On Machine Learning' 카테고리의 다른 글
[Book] 9. 비지도 학습(군집) (0) | 2022.05.01 |
---|---|
[Book] 8. 차원 축소 (0) | 2022.04.30 |
[Book] 6. 결정 트리 (0) | 2022.04.23 |
[Book] 5. 서포트 벡터 머신 (0) | 2022.04.21 |
[Book] 4. 모델 훈련 (0) | 2022.04.20 |