본문 바로가기
개발 관련 공부/머신러닝

bagging(배깅)이란?

by swlotto 2024. 12. 25.

※[오늘의 공부]

앙상블에서 중요한 bagginng(배깅)에 대해 공부해보고자 한다.

 

▶ 배깅이란

앙상블의 핵심 키워드는 다양성이다.

다양성에는 데이터의 다양성과 모델의 다양성 2개가 존재하는데 배깅의 경우 데이터의 다양성을 주제로 한다.

Bagging(Bootstrap Aggregating)이란 기존 학습 데이터로부터 랜덤하게 복원추출하여 동일한 사이즈의 데이터 세트를 여러개 만들어 앙상블을 구성하는 여러 모델을 학습시키는 방법이다.

 

※ 복원 추출 예시

 

  * 여기서 bootstrap은 복원추출로 만들어진 새로운 데이터 세트이다.

  * 우리가 원하는 개수만큼 복원추출을 통해 Bootstrap을 생성이 가능하다.

▶ bootstrap 효과

(1) 학습관점: 데이터가 갖는 분포를 좋은 쪽으로 왜곡시킴. -> 기존의 노이즈와 조금 다른 노이즈 분포를 갖게 하고 반복적인 학습 및 모델 결합을 통해 종속적인 모델 생성을 방지할 수 있음.

(2) 검증관점: 주어진 데이터를 한번 이상 사용함으로써(Train으로 학습/ oob 검증 => 이 과정 반복) 높은 일반화 성능을 확보.

 

샘플링의 확률은 N이 일정 수준 이상으로 큰 수이면 러프하게 2/3bootstrap1회 이상 샘플링, 1/30회 샘플링 되는데 0회 샘플링 되는 것을 Out Of Bag(OOB)라고 한다.

배깅은 Variance가 높은 상대적으로 복잡도 높은 알고리즘과 합이 잘맞는다.

 

색깔 선들은 분류 경계선, 색깔 도형은 Bootstrap 포함 데이터, 흰색은 포함되지 않은 데이터이다.

그림을 봤을 때 개별 모델의 성능은 떨어지지만 결합하였을 때 좀 더 정확한 성능을 나타내는 것을 볼 수 있다.

 

▶ 배깅을 통해 예측값을 취합하여 좋은 예측 성능을 가지는 방법

방법을 설명하기 전 가정을 설명하지면 모델의 OOB 적용 정확도 ,10bootstrap으로 만든 모델, 새로운 객체를 모델 적용 시 1번 범주에 속할 확률, 0.5를 기준으로 높으면 1, 낮으면 0인 범주

 

(1) Majority Voting(분류): 가장 단순한 방식으로 말 그대로 다수결의 원칙을 적용하여 결과를 취합하는 방식이며, 위 그림에서 모델 10개 중 1이 결과 값인 모델이 90이 결과 값인 모델 1개 해서 정확도 0.91번을 반환한다.

 

(2) Weighted Voting(분류): Majority Voting에 가중치를 곱하여 결과를 취합하는 방식이다.

 

1번 범주에 해당할 acc/전체 acc를 통해 계산하고, 0번도 똑같이 계산하여 더 큰 쪽을 선정하는 방식이다.

 

(3) Stacking: 개별 모델들의 분류값(결과값)을 입력으로 받아 최종 결과값을 출력하는 학습 모델을 하나 더 만드는 것이다.

 

 

▶ 참고자료

 

https://sungkee-book.tistory.com/9