앙상블 기법: 두 판 사이의 차이

IT위키
(앙상블 학습 문서로 넘겨주기)
태그: 새 넘겨주기
 
(앙상블 학습에 대한 넘겨주기를 제거함)
태그: 넘겨주기 제거
 
1번째 줄: 1번째 줄:
#넘겨주기 [[앙상블 학습]]
[[분류:인공지능]][[분류:데이터 과학]]
;Ensemble Learning
;하나의 데이터를 여러개의 분류기를 통해 다수의 학습 모델을 만들어 학습시키고 학습 결과를 결합함으로써 과적합을 방지하고 정확도를 높이는 학습 기법
 
== 유형 ==
* '''보팅''': 앙상블 학습의 기본, 하위 모든 기법들이 보팅 사용
* '''배깅''': 하나의  데이터를 여러개로 나누어 학습하는 앙상블 학습법
** 보팅을 하나의 고유한 학습법으로 보고 배깅과 구분하자면, 일반적으로 보팅은 하나의 데이터에 여러 알고리즘 적용, 배깅은 여러개로 나누어진 데이터에 하나의 알고리즘을 적용하는 것으로 구분
** 하지만 여러개로 나누어진 데이터를 이용하는 배깅에서도, 최종 예측값을 선택하는 행위는 '보팅'이라 함
* '''부스팅''': 병렬로 수행되는 배깅과 달리, 각 결과값을 이용하여 순차적으로 결합
* '''랜덤 포레스트''': 배깅 + [[의사결정 나무]]
 
=== 보팅 ===
;여러 모델에서 구해진 예측값들을 대상으로 다수결 투표를하여 최종 클래스를 예측
[[파일:앙상블 학습.png|400px]]
 
* 하드 보팅과 소프트 보팅
{| class="wikitable"
|-
! 하드 보팅 !! 소프트 보팅
|-
| [[파일:하드 보팅.png|350px]] || [[파일:소프트 보팅.png|350px]]
|-
| 예측 결과를 그대로 보팅 || 예측 확률의 평균값으로 보팅
|}
 
=== 배깅 ===
;배깅(Bagging)은 Bootstrap Aggregating의 줄임말로, 부트스트래핑을 이용한 앙상블 학습법
[[파일:배깅(Bagging).png]]
* 부트스트래핑과 패이스팅
** 부트스트래핑: 학습 데이터셋에서 중복을 허용하여 랜덤하게 추출하는 방식(aka. 리샘플링)
** 페이스팅: 학습 데이터셋에서 중복 없이 랜덤하게 추출하는 방식
* 부트스트래핑 장단점
** '''장점''': 분산 감소
** '''단점''': 중복으로 인해, 특정 샘플은 사용되지 않고 특정 샘플은 여러번 사용되어 편향될 가능성
*** '''[[OOB 샘플|OOB(Out-of-Bag) 샘플]]''': 샘플링 되지 않은 나머지 샘플
 
=== 부스팅 ===
;성능이 약한 학습기(weak learner)를 여러 개 연결하여 순차적으로 학습함으로써 강한 학습기(strong learner)를 만드는 앙상블 학습기법
[[파일:부스팅(Boosting).png]]
* 장단점
** '''장점''': 오답에 대해 높은 가중치를 부여하고 정답에 대해 낮은 가중치를 부여하여 오답에 더욱 집중
** '''단점''': 이상치(Outlier)에 취약
* 종류
{| class="wikitable"
|-
! 종류 !! 설명
|-
| 아다부스팅
(AdaBoost)
||
* Adaptive Boosting
* [[언더피팅]] 됐던 학습 데이터 샘플의 가중치를 높여감
|-
| 그래디언트 부스팅
(Gradient Boosting)
||
* 가중치 업데이트를 경사 하강법(Gradient Descent)을 이용
* 학습 전단계 모델에서의 잔여 오차에 대해 새로운 모델을 학습시키는 방법
|}
 
=== [[랜덤 포레스트]] ===
;배깅을 적용한 [[의사결정 나무]] 앙상블 학습 기법
 
== 참고 문헌 ==
* [https://excelsior-cjh.tistory.com/166 앙상블 학습 및 랜덤 포레스트]

2020년 12월 14일 (월) 09:25 기준 최신판

Ensemble Learning
하나의 데이터를 여러개의 분류기를 통해 다수의 학습 모델을 만들어 학습시키고 학습 결과를 결합함으로써 과적합을 방지하고 정확도를 높이는 학습 기법

유형[편집 | 원본 편집]

  • 보팅: 앙상블 학습의 기본, 하위 모든 기법들이 보팅 사용
  • 배깅: 하나의 데이터를 여러개로 나누어 학습하는 앙상블 학습법
    • 보팅을 하나의 고유한 학습법으로 보고 배깅과 구분하자면, 일반적으로 보팅은 하나의 데이터에 여러 알고리즘 적용, 배깅은 여러개로 나누어진 데이터에 하나의 알고리즘을 적용하는 것으로 구분
    • 하지만 여러개로 나누어진 데이터를 이용하는 배깅에서도, 최종 예측값을 선택하는 행위는 '보팅'이라 함
  • 부스팅: 병렬로 수행되는 배깅과 달리, 각 결과값을 이용하여 순차적으로 결합
  • 랜덤 포레스트: 배깅 + 의사결정 나무

보팅[편집 | 원본 편집]

여러 모델에서 구해진 예측값들을 대상으로 다수결 투표를하여 최종 클래스를 예측

앙상블 학습.png

  • 하드 보팅과 소프트 보팅
하드 보팅 소프트 보팅
하드 보팅.png 소프트 보팅.png
예측 결과를 그대로 보팅 예측 확률의 평균값으로 보팅

배깅[편집 | 원본 편집]

배깅(Bagging)은 Bootstrap Aggregating의 줄임말로, 부트스트래핑을 이용한 앙상블 학습법

배깅(Bagging).png

  • 부트스트래핑과 패이스팅
    • 부트스트래핑: 학습 데이터셋에서 중복을 허용하여 랜덤하게 추출하는 방식(aka. 리샘플링)
    • 페이스팅: 학습 데이터셋에서 중복 없이 랜덤하게 추출하는 방식
  • 부트스트래핑 장단점
    • 장점: 분산 감소
    • 단점: 중복으로 인해, 특정 샘플은 사용되지 않고 특정 샘플은 여러번 사용되어 편향될 가능성

부스팅[편집 | 원본 편집]

성능이 약한 학습기(weak learner)를 여러 개 연결하여 순차적으로 학습함으로써 강한 학습기(strong learner)를 만드는 앙상블 학습기법

부스팅(Boosting).png

  • 장단점
    • 장점: 오답에 대해 높은 가중치를 부여하고 정답에 대해 낮은 가중치를 부여하여 오답에 더욱 집중
    • 단점: 이상치(Outlier)에 취약
  • 종류
종류 설명
아다부스팅

(AdaBoost)

  • Adaptive Boosting
  • 언더피팅 됐던 학습 데이터 샘플의 가중치를 높여감
그래디언트 부스팅

(Gradient Boosting)

  • 가중치 업데이트를 경사 하강법(Gradient Descent)을 이용
  • 학습 전단계 모델에서의 잔여 오차에 대해 새로운 모델을 학습시키는 방법

랜덤 포레스트[편집 | 원본 편집]

배깅을 적용한 의사결정 나무 앙상블 학습 기법

참고 문헌[편집 | 원본 편집]