2 minute read

앙상블 기법

큰 수의 법칙

앞면이 나올 확률이 51%인 동전이 있다고 가정하고 이 동전을 10회 던지는 것을 10000번 반복했을 때

이것의 누적값을 구해보면 51%수렴하는 것을 볼 수 있다.

투표 기반 분류기

여러 가지 분류기로 분류 모델을 예측 한 다음(로지스틱 회귀, SVM, 랜덤 포레스트, K-최근접 이웃 등) 가장 많이 선택된 클래스를 예측하는 것

다수결 투표로 정해지는 분류기를 직접 투표 분류기라고 한다.

약한 학습기? 강한 학습기

배깅과 페이스팅

각기 다른 훈련 알고리즘을 사용하는 것

훈련 세트에서 중복을 허용하여 샘플링하는 방식을 배깅(boostrap aggergating)이라 하며

중복을 허용하지 않고 샘플링하는 방식을 페이스팅(pasting) 이라고 한다.

랜덤 패치와 랜덤 서브스페이스

이미지처럼 매우 고차원의 데이터셋을 다룰 때 유용하다 훈련 특성과 샘플을 모드 샘츨링하는 것을 랜덤 패치 방식이라고 한다.

훈련 샘츨을 모두 사용하고 특성은 샘플링하는 것을 랜덤 서브스페이스 방식 이라고 한다.

샘플링?

랜덤 포레스트

배깅 또는 페이스팅을 적용한 결정 트리의 앙상블이다.

트리의 노드를 분할할 때 전체 특성 중에서 최선의 특성을 찾는 대신 무작위로 선택한 특성 후보 중에서 최적의 특성을 찾는 식으로 무작위성을 더 주입한다.

트리를 더 다양하게 만들고 편향을 손해보는 대신 분산응ㄹ 낮추어 전체적으로 더 훌륭한 모뎅를 만들어낸다.

엑스트라 트리

랜덤 포레스트에서 트리를 만들 때 각 노드는 무작위로 특성의 서브셋을 만들어 분할에 사용한다.

트리를 더욱 더 무작위하게 만들기 위해서 최적의 임곗값을 찾는 대신 후보 특성을 사용해 무작위로 분할한 다음 그 중에서 최상의 분할을 선택한다.

극단적으로 무작위한 랜덤 포레스트를 익스트림 랜덤 트리(extremely randomized trees)앙상블 즉 엑스트라 트리라고 부른다.

엑스트라 트리 또한 편향이 늘어나지만 분산을 낮추게 된다.

모든 노드 특성마다 가장 최적의 임곗값을 찾는 것이 트리 알고리즘에서 가장 시간이 많이 소요되는 작업 중 하나이므로 일반적인 랜덤 포레스트보다 엑스트라 트리가 훨씬 빠르다.

** 혼공머신에서는 엑스트라 트리는 배깅 방식을 사용하지 않는 것이 랜덤 포레스트와의 차리라고 하였는데 핸즈온 머신러닝에서는 무작위한 랜덤 포레스트가 익스트림 랜덤 트리라고 한 이유 찾아보기**

특성 중요도

랜덤 포레스트의 장점은 특성의 상대적 중요도를 측정하기 쉽다는 점이 있다.

어떤 특성을 사용한 노드가 평균적으로 불순도을 얼마나 감소시키는지 확인하여 특성의 중요도를 측정한다.

** 가중치 평균이며 각 노드의 가중치는 연관된 훈련 샘플 수와 같습니다.** 의미 이해 안감

사이킷런은 훈련이 끝난 뒤 특성마다 자동으로 이 점수를 계산하고 중요도의 전체 합이 1이 되도록 결괏값을 정규화한다.

특성을 선택해야 할 때 빠르게 알 수 있는 장점이 있다.

부스팅

약한 학습기를 여러 개 연결하여 강한 학습기를 만드는 앙상블 방법을 말한다.

부스팅 방법의 아이디어는 앞의 모델을 보완해나가면서 일련의 예측기를 학습시키는 것이다.

에이다부스트

알고리즘이 기반이 되는 첫 번째 불류기를 훈련 세트에서 훈련시키고 예측을 만든다

알고리즘이 잘못 분류된 훈련 샘플의 가중치를 상대적으로 높힌다

두 번째 분류기는 업데이트된 가중치를 사용해 훈련 세트에서 훈련하고 다시 예측을 만든다.

다시 가중치를 업데이트하는 식으로 계속된다.

첫 번쨰 분류기의 오류로부터 다음 분류기는 더 정확한 예측을 하게 된다.

경사 하강법이 비용함수를 최소화하기 위해서 파라미터를 조정하는것 처럼 에이다부스트도 비슷하게 앙상블에 예측기를 추가한다.

그레이디언트 부스트

그레이디언트 부스트 또한 앙상블에 이전까지의 오차를 보정하도록 예측기를 순차적으로 추가한다.

에이다부스트와의 다른 점은 반복마다 샘플의 가중치를 수정하는 대신에 이전 예측기가 만든 잔여 오차(residual error)에 새로운 예측기를 학습시킨다.

XGBoost

extreme gradient boosting

이 패키지의 목표는 빠른 속도 확장성 이식성이다.

스태킹

앙상블에 속한 모든 예측기의 예측을 취합하는 간단한 함수를 사용하는 대신 취합하는 모델을 훈련시키는 방법

블랜더를 학습시키는 일반적인 방법은 홀드 아웃 세트를 사용하는 것이다.

훈련 세트를 두 개의 서브셋으로 나누고

첫 번째 서브셋은 첫 번째 레이어의 예측을 훈련시키기 위해 사용한다.

첫 번째 레이어의 예측기를 사용해 두 번째 세트에 대한 예측을 만든다.

예측기들이 훈련하는 동안 이 샘플들을 전혀 보지 못했기 때문에 만들어진 예측은 완전히 새로운 것이 된다.

홀드 아웃 세트에 각 샘플에 대한 세 개의 예측값이 있게 된다.

타깃값은 그대로 사용하고 예측한 값은 입력 특성으로 사용하는 새로운 훈련 세트를 만들 수 있다.

블랜더가 새 훈련 세트로 훈련된다.

첫 번째 레이어의 에측을 가지고 타깃값을 예측하도록 학습된다.