앙상블 기법
앙상블 기법은 여러 개의 모델을 합쳐서 더 좋은 결과를 얻는 방법입니다.
즉, 다양한 분류기의 예측 결과를 결합함으로써 단일 분류기보다 신뢰성이 높은 예측 값을 얻을 수 있습니다.
그렇다면 분류기 마다 서로 다른 예측값이 나왔을 경우 어떻게 할 것인가가 문제입니다.
이 문제 해결은 Hard voting과 Soft voting으로 해결 됩니다.
1. Hard voting:
- 여러 분류기가 각자 예측한 결과 중에서 가장 많이 나온 답을 선택하는 방법입니다.
- 예를 들어, 3개의 분류기가 있고 각각 '고양이', '강아지', '고양이' 예측 하였습니다. 이 때 고양이가 2번 나왔으므로 고양이로 최종 예측하는 것입니다.
2. Soft voting:
- 각 분류기가 예측한 값에 대해 확률을 고려하는 방법입니다.
- 분류기들이 "고양이일 확률이 70%"라든지, "강아지일 확률이 30%"처럼 확률을 말해주면, 이 확률들을 다 더해서 확률이 가장 높은 것을 선택합니다. 예를 들어 고양이일 확률이 더 높다면 고양이를 최종 예측으로 하는 것입니다.
Bagging
Bagging 과정
1. 여러 개의 데이터 셋을 만듭니다.
- 원래 데이터를 가지고 여러 개의 서브 데이터셋을 만듭니다. 이 때는 데이터 셋에서 중복을 허용해서 랜덤하게 샘플을 뽑아옵니다. 즉, 한 데이터가 여러 번 뽑힐 수도 있고, 안 뽑힐 수도 있습니다.
- 예를 들어, 100명의 학생 중에서 랜덤하게 70명을 뽑아 작은 반을 여러 개 만드는 거야. 여기서 몇몇 학생은 여러 반에 들어갈 수 있어.
2. 여러 모델 학습 시키기:
- 각 서브 데이터셋에 대해 하나의 모델을 학습시킵니다. 즉, 여러 개의 모델이 만들어지게 되는 것입니다. 모델들이 서로 다른 데이터를 보고 배우기 때문에 다양한 모델이 생기게 됩니다.
3. 결과 합치기
- 마지막으로, 이 여러 모델이 예측한 결과를 투표하거나 평균을 내서 최종 예측을 결정합니다. 이 때, Hard voting이나 Soft voting을 사용할 수 있습니다.
Bagging은 각 모델이 독립적으로 학습하기 때문에 병렬로 처리할 수 있으며, 과적합을 줄이는 데 도움을 줍니다. 대표적인 방법으로는 랜덤 포레스트(Random Forest)가 있습니다.
Boosting
Boosting은 각 모델이 순차적으로 학습하는 방식입니다.
이전 모델이 틀린 부분을 다음 모델이 보완하면서 점점 더 좋은 성능을 내게 됩니다.
부스팅은 순차적으로 진행되기 떄문에 더 복잡한 문제를 해결하는데 효과적이지만, 과적합이 될 가능성이 있습니다.
대표적인 방법으로는 XGBoost, AdaBoost가 있습니다.
Random Forest(랜덤 포레스트)
우선 부트스트래핑은 원래 데이터를 복원 추출 방식으로 무작위로 샘플링하여 새로운 데이터셋을 여러 개 만드는 것을 말합니다.
랜덤 포레스트는 이 부트스트래핑을 사용해 각 결정 나무에 서로 다른 데이터 셋을 제공 합니다.
같은 알고리즘으로 구현하는 배깅의 대표적인 방법입니다.
앙상블 방법 중에서 비교적 속도가 빠르며 다양한 영역에서 높은 성능을 보여주고 있습니다.
랜덤 포레스트는 결정 나무를 기본으로 합니다.
이상으로 앙상블 기법(Bagging, Boosting)에 대해 알아보았습니다.
다음 글에서는 HAR 데이터 세트를 사용하고 앙상블 기법을 통해 모델이 얼마나 정확한지 성능 평가를 해보겠습니다.
이 글은 제로베이스 데이터 분석 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
'Data Analyst > ML' 카테고리의 다른 글
[Zero-base] 주성분 분석(PCA, Principal Component Analysis) - 1 (0) | 2024.10.10 |
---|---|
[Zero-Base] 앙상블 기법 - 2 (1) | 2024.10.08 |
[Zero-base] KNN(KNeighbors Classifier) - 2 (0) | 2024.10.07 |
[Zero-base] KNN(KNeighbors Classifier) - 1 (0) | 2024.10.07 |
[Zero-base] Precision and Recall (0) | 2024.10.07 |