think deeply
[머신러닝] 앙상블(ensemble) 기본 개념 정리 (feat. 보팅, 배깅, 부스팅, 스태킹) 본문
앙상블 학습(ensemble leaning)
앙상블 알고리즘은 학습 방식에 따라 보팅, 배깅, 부스팅, 스태킹으로 나뉜다.
보팅 voting
여러 개의 분류기가 투표를 통해 최종 예측 결과를 결정하는 방법
보팅은 크게 하드 보팅과 소프트 보팅으로 나뉨
하드 보팅 :
다수결 투표라고 볼 수 있음
최종 예측을 각 개별 모델이 예측한 것 중 가장 많은 모델에서 예측되는 클래스 레이블로 함
소프트 보팅:
앙상블의 각 개별 모델이 주어진 입력에 대해 클래스에 대한 확률 분포를 에측하는 투표 유형
최종 예측은 모든 모델에서 평균 확률이 가장 높은 클래스 레이블로 함
배깅 bagging
주어진 데이터셋을 랜덤 샘플링하여 새로운 데이터셋을 만들어내는 것을 의미.
샘플을 여러 번 봅아 각 모델을 학습 시켜 결과물을 집계하는 방식.
categorical data는 투표 방식으로 결과를 도출
continuous data는 각 모델의 예측값 평균으로 최종 예측값 도출
배깅을 활용한 대표적 모델 : 랜덤 포레스트 random forest
부스팅 boosting
처음 모델이 예측하면 그 예측 결과에 따라 데이터에 가중치가 부여되고, 부여된 가중치가 다음 모델에 영향을 줌.
오분류된 데이터에 집중하여 새로운 분류 규칙을 만드는 단계를 반복.
위 그림은 분류 문제의 예시이고,
회귀 문제에서는 예측값과 실제값의 에러를 줄여나가는 방식으로 식을 조금씩 업데이트.
부스팅을 활용한 대표적 모델 : XGBoost, LightGBM
스태킹 staking
여러 모델의 예측값을 최종 모델의 학습 데이터로 사용하여 예측하는 방법
예를 들어,
logistic regression, KNN, LightGBM 모델을 사용해 3종류 예측값을 구한 후,
이 예측값을 최종 모델의 학습 데이터로 사용한다.
근데 실무에서는 잘 사용하지 않는다고..
'rainbow > etc.' 카테고리의 다른 글
[Git] Conflict(충돌) 났을 때 해결방법 2가지_강제 pull 하기 (0) | 2023.06.22 |
---|---|
[python] melt함수 (feat. matrix 구조를 table 구조로 바꾸기) (0) | 2023.04.11 |
RSS란 (0) | 2023.03.29 |
[Python] where()함수 - 조건에 맞는 값 위치 or 값 변경 (데이터프레임 특정 칼럼) (0) | 2023.02.20 |
[python] 문자열 거꾸로 출력하는 방법 (feat. reverse, reversed) (0) | 2023.01.07 |