미식가의 개발 일기

[머신러닝] 앙상블 본문

ML, DL

[머신러닝] 앙상블

대체불가 핫걸 2024. 8. 29. 17:34
앙상블이란?
"여러 모델의 예측 결과들을 종합해 정확도를 높이는 기법이다"
(단 각 모델 간의 상호 연관성이 낮아야 정확도가 높아진다.)

 

보팅(Voting)

  • 동일한 데이터셋에 서로 다른 종류의 모델의 예측 결과를 합쳐 최종 결과를 도출

 

하드보팅

예측한 클래스중 가장 많이 선택된 클래스가 최종 예측으로 선택

 

소프트보팅

각 모델의 클래스 확률 예측을 평균내어 최종 예측으로 선택
 

 

 

배깅(Bagging)

  • 원본 데이터에서 샘플링된 부트스트랩 샘플에 같은 모델 적용한 후 최종 모델 도출
  • 분산 감소가 목적, 병렬적 수행

(※ 부트스트랩 샘플: 원본 데이터에서 중복을 허용하는 무작위 샘플링을 통해 만들어진 여러 개의 데이터셋)

 

부스팅(Boosting)

  • 이전 모델이 잘못 예측한 데이터를 다음 모델이 중점적으로 학습하도록 가중치 조정
  • 성능이 좋지 않은 약한 학습기를 결합하여 성능이 뛰어난 강한 학습기로 만드는 기법
  • 편항 감소가 목적, 순차적 수행

< 부스팅 알고리즘 종류>

AdaBoost 약한 모델의 오류 데이터에 가중치 부여
GBM(Gradient Boost Machine) 손실 함수의 기울기를 통해 오답에 가중치 부여, Greedy -> 과적합 발생
XGBoost GBM 병렬 학습 지원, 뛰어난 예측 성능, GBM에 비해 빠름
LightGBM XGBoost 대비 빠르고, 대용량 데이터 학습 가능

 

캐글 데이터를 활용한 실습
 

[머신러닝] LightGBM과 Gradient Boosting(광고 클릭 예측하기 with 캐글)

캐글 -> DataSets -> Click Through Rate csv 파일 다운로드 후 실습 진행Gradient Boosting이란?앙상블 학습(여러 개의 모델을 결합해 더 나은 성능을 얻는 기법) 방법의 하나로 예측 정확도를 높이기 위해 여러

irreplaceablehotgirl.tistory.com

 

 

 

랜덤포레스트(Random Forest)

  • 배깅과 결정 트리를 결합한 기법
  • 배깅보다 더 많은 무작위성을 가지며 여러 개의 약한 학습기(결정 트리)를 결합하여 최종 모델 도출
캐글 데이터를 활용한 실습
 

[머신러닝] 회사 합격 여부 예측하기(분류: 결정 트리, 랜덤 포레스트)

캐글 -> Datasets -> Recruitment Data 검색 -> csv 파일 다운로드 후 실습 진행 데이터 불러온 후 확인import pandas as pdtrain = pd.read_csv('datas/recruitment_data.csv')display(train.head()) # 앞에 5줄 보기display(len(train)) #

irreplaceablehotgirl.tistory.com

 

 

 

스태킹(Stacking)

  • 예측값으로 실제값을 다시 예측하는 기법
    • 기본 모델: 여러 개의 개별 모델이 서로 다른 알고리즘을 사용해 학습한다.
    • 메타 모델: 기본 학습기의 예측 결과를 입력으로 받아 최종 예측을 수행한다.   

 

  • 단계
  1. 기본 모델 학습
  2. 기본 모델 예측
  3. 메타 모델 학습
  4. 최종 예측
반응형