240921 TIL #495 AI Tech #33 앙상블

김춘복·2024년 9월 21일
0

TIL : Today I Learned

목록 보기
497/543
post-custom-banner

Today I Learned

오늘 공부한 내용은 앙상블!


앙상블

여러 모델을 결합해 더 나은 성능을 얻는 기법

  • 개별 모델이 가진 약점을 보완해 전체적인 성능을 향상시킨다.
    여러 모델의 예측 결과를 합치는 방식이다.
    단, 성능 좋은 모델을 합쳐야 좋게 나온다.

  • bias(편향) : 실제 값과 예측 값의 차이
    variance(분산) : 모델의 예측값이 같은 샘플에 대해 얼마나 달라지는지 차이
    error = bias + variance + 데이터 내재 오차
    bias가 높으면 과소적합, variance가 높으면 과대적합(모델이 복잡해 일반화 x)

  • 일반적으로 단일 모델에서 bias와 variance는 trade-off관계다.
    그래서 앙상블로 각 모델의 예측을 결합하면 단점(high bias or variance)을 보완해서 성능을 높인다.


Bagging

같은 알고리즘을 사용해 여러 모델을 학습시키고 각각의 모델이 서로 다른 학습 데이터를 사용해 예측한다. 그 후 각 모델의 결과를 평균 or voting로 결합해 최종 예측을 만든다.

  • high bias를 줄일 수 있다.

  • 분류문제의 voting 방식에선 hard voting과 soft voting이 있다.
    hard는 각 모델의 결과물 label로 판단, soft는 각 label의 확률을 보고 결과를 낸다.

  • Random Forest가 대표적인 bagging.


Boosting

여러 weak learner를 순차적으로 학습시켜 이전 모델이 틀린 예측을 다음 모델이 더 잘 맞출 수 있도록 weight를 조정하는 방식이다.

  • high variance를 줄일 수 있다.

  • AdaBoost, Gradient Boosting, XGBoost 등이 대표적인 Boosting


교차 검증 앙상블

  • k-fold CV를 통해 각 폴드에서 학습을 진행하고 각 폴드별로 예측 결과를 낸 뒤에 voting을 통해서 학습된 모델들의 예측을 취합해 최종 예측을 수행한다.

  • 과적합을 막고 일반화 성능을 높일 수 있다. 다만 시간과 비용이 많이 든다.
    그리고 이 방식을 쓰려면 데이터가 충분히 많아야 한다.


스태킹 앙상블

서로 다른 모델을 결합해 성능을 향상시키는 방법

  • 동일한 학습 데이터로 여러개의 서로 다른 모델을 base learner로 학습한다.
    여기서 생성된 각 모델의 예측 결과를 컬럼으로 쌓아 새로운 학습데이터로 meta learner를 학습한다.
    meta learner는 각 base learner의 예측 결과에 가중치를 부여해 결합해서 최종 예측을 한다.
profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글