이번에 참여한 캐글에서 상위권 인원이 사용한 기법이 스태킹 기법이였습니다.
저는 원래 앙상블 기법으로 배깅, 부스팅, 보팅 이렇게 세 가지만 알고있었는데, 새로운 앙상블 기법을 보자 생소했습니다.
이에 앙상블에대해 간략히 학습하고 스태킹에대해 알아보았습니다.
앙상블이란?
앙상블(Ensemble) 학습은 여러 개의 모델(개별 학습기)을 결합하여 예측 성능을 향상시키는 기법입니다. 개별 모델들이 서로 다른 특성과 약점을 가지고 있기 때문에, 이들을 결합하면 단일 모델보다 더 안정적이고 성능이 높은 예측 결과를 얻을 수 있습니다. 앙상블 학습은 머신 러닝에서 중요한 기법으로, 다양한 분야에서 널리 사용되고 있습니다.
앙상블의 주요 기법
- 배깅(Bagging, Bootstrap Aggregating):
- 여러 개의 학습 데이터를 샘플링하여 각각의 모델을 훈련시키고, 그 결과를 평균내거나 다수결 투표를 통해 최종 예측을 만드는 방법입니다.
- 대표적인 예로 랜덤 포레스트(Random Forest)가 있습니다. 랜덤 포레스트는 여러 개의 결정 트리를 배깅하여 사용합니다.
- 부스팅(Boosting):
- 일련의 모델을 순차적으로 훈련시키고, 각 모델은 이전 모델의 오류를 수정하는 방식으로 예측 성능을 개선합니다.
- 대표적인 예로 에이다부스트(AdaBoost), 그래디언트 부스팅(Gradient Boosting), XGBoost, LightGBM, CatBoost 등이 있습니다.
- 스태킹(Stacking):
- 여러 개의 모델(기저 학습기)을 훈련시키고, 이들 모델의 예측 결과를 다시 메타 학습기(meta-learner)에 입력하여 최종 예측을 만드는 방법입니다.
- 메타 학습기는 기저 학습기의 예측 결과를 입력으로 사용하여 최종 출력을 생성합니다.
- 보팅(Voting):
- 여러 개의 모델의 예측 결과를 조합하여 최종 예측을 만드는 방법입니다.
- 다수결 투표(Hard Voting)와 가중치가 부여된 평균(Soft Voting) 방식이 있습니다.
앙상블의 장점
- 성능 향상: 여러 모델의 예측 결과를 결합하여 단일 모델보다 더 높은 예측 성능을 얻을 수 있습니다.
- 안정성: 모델들이 상호 보완적으로 작동하여 예측의 안정성과 신뢰성을 높일 수 있습니다.
- 과적합 방지: 다양한 모델을 결합하여 과적합을 줄일 수 있습니다.
앙상블의 단점
- 복잡성 증가: 여러 모델을 결합하므로 구현과 유지 관리가 복잡해질 수 있습니다.
- 계산 비용: 여러 모델을 훈련시키고 예측을 결합해야 하므로 계산 비용이 증가할 수 있습니다.
- 설명력 부족: 앙상블 모델은 개별 모델에 비해 왜 특정 예측이 이루어졌는지 설명하기 어렵습니다.
스태킹이란?
스태킹(Stacking)은 앙상블 학습 방법 중 하나로, 여러 개의 개별 모델(기저 학습기, base learners)로부터 예측을 만들고, 이러한 예측을 결합하여 최종 예측을 만드는 방법입니다. 스태킹은 보통 두 단계로 구성됩니다:
- 기저 학습기 훈련 및 예측:
- 여러 개의 서로 다른 머신 러닝 모델을 훈련시킵니다. 이들 모델은 서로 다른 알고리즘이나 하이퍼파라미터를 사용하여 다양성을 갖도록 합니다.
- 각 기저 학습기는 훈련 데이터로부터 예측을 생성합니다.
- 기저 학습기들의 예측 결과를 모아 새로운 데이터셋(메타 데이터셋)을 만듭니다. 이 데이터셋의 특성(feature)은 각 기저 학습기의 예측값입니다.
- 메타 학습기 훈련 및 최종 예측:
- 메타 데이터셋을 사용하여 메타 학습기(meta-learner)를 훈련시킵니다. 메타 학습기는 보통 간단한 모델(예: 선형 회귀, 로지스틱 회귀 등)을 사용합니다.
- 훈련된 메타 학습기는 각 기저 학습기의 예측을 결합하여 최종 예측을 만듭니다.
스태킹의 장점
- 성능 향상: 다양한 모델의 장점을 결합하여 단일 모델보다 더 나은 예측 성능을 얻을 수 있습니다.
- 유연성: 여러 종류의 모델을 결합할 수 있어 다양한 데이터 특성에 대응할 수 있습니다.
- 과적합 방지: 서로 다른 모델들이 상호 보완적으로 동작하여 과적합을 줄일 수 있습니다.
스태킹의 단점
- 복잡성 증가: 여러 모델을 훈련시키고 결합해야 하므로 구현과 튜닝이 복잡할 수 있습니다.
- 계산 비용: 많은 모델을 훈련시켜야 하므로 계산 비용이 증가할 수 있습니다.
- 데이터 필요량: 기저 학습기와 메타 학습기를 훈련시키기 위해 더 많은 데이터가 필요할 수 있습니다.
'데이터 사이언스 > 캐글' 카테고리의 다른 글
결측치를 처리하는 방법 (0) | 2024.08.16 |
---|---|
Pandas Dataset 용량 줄이기 (0) | 2024.08.01 |
캐글 데이터 셋 코랩에서 사용하기. kaggle data on colab (0) | 2024.07.16 |
처음 시도하는 캐글 (0) | 2024.07.05 |