-
앙상블 학습과 랜덤 포레스트전공 서적/핸즈온 머신러닝 2018. 9. 23. 22:46
- 앙상블 학습과 랜덤 포레스트
- 일련의 예측기로부터 예측을 수집하면 가장 좋은 모델 하나보다 더 좋은 예측을 얻을 수 있다.
이 때, 일련의 예측기를 앙상블이라고 부르기 때문에 이를 앙상블 학습이라고 하며, 앙상블 학습 알고리즘을 앙상블 방법이라고 한다. - 투표 기반 분류기
- 더 좋은 분류기를 만드는 매우 간단한 방법은 각 분류기의 예측을 모아 가장 많이 선택된 클래스를 예측하는 것이다.
이렇게 다수결 투표로 정해지는 분류기를 직접 투표 분류기라고 한다. - 직접 투표 분류기의 예측
- 직접 투표 분류기가 앙상블에 포함된 개별 분류기 중 가장 뛰어난 것보다 정확도가 높을 경우가 많다.
각 분류기가 약한 학습기라도 충분하게 많고 다양하다면 앙상블은 강한 학습기가 될 수 있다.
- 모든 분류기가 클래스의 확률의 예측할 수 있으면 개별 분류기의 예측을 평균 내어 확률이 가장 높은 클래스를 예측할 수 있다.
이를 간접 투표라고 한다.
- 배깅과 페이스팅
- 배깅과 페이스팅
- 같은 알고리즘을 사용하지만 훈련 세트의 서브셋을 무작위로 구성하여 분류기를 각기 다르게 학습시킬 수 있다.
- 배깅 : 훈련 세트에서 중복을 허용하여 샘플링 하는 방식
- 페이스팅 : 중복을 허용하지 않고 샘플링하는 방식
- 페이스팅, 배깅의 훈련 세트 샘플링과 훈련
- 모든 예측기가 훈련을 마치면 앙상블은 모든 예측기의 예측을 모아서 새로운 샘플에 대한 예측을 만든다.
수집 함수는 분류에는 통계적 최빈값, 회귀에 대해서는 평균을 계산한다. - 개별 예측기는 원본 훈련 세트로 훈련시킨 것보다 훨씬 크게 편향되어 있지만 수집 함수를 통과하면 편향과 분산이 모두 감소한다.
- 예측기는 모두 동시에 다른 CPU 코어나 서버에서 병렬로 학습시킬 수 있으며, 예측도 병렬로 수행할 수 있다.
- 단일 결정 트리와 500개 트리로 만든 배깅 앙상블 비교
- oob 평가
- 배깅을 사용할 경우 어떤 샘플은 여러번 샘플링되고 어떤 것은 전혀 선택되지 않을 수 있다.
이 때 선택되지 않은 샘플을 oob 샘플이라고 부른다.
- 예측기가 훈련되는 동안 oob 샘플을 사용하지 않으므로 oob 샘플을 사용해 평가할 수 있다.
- 랜덤 패치와 랜덤 서브스페이스
- scikit-learn은 특성에 대한 샘플링도 지원한다.
각 예측기는 무작위로 선택한 입력 특성의 일부분으로 훈련된다. 이는 이미지와 같은 매우 고차원의 데이터셋을 다룰 때 유용하다.
- 랜덤 패치 방식 : 훈련 샘플, 특성을 모두 샘플링 하는 방식
- 랜덤 서브스페이스 방식 : 훈련 샘플은 모두 사용하고 특성만을 샘플링 하는 방식
특성 샘플링은 더 다양한 예측기를 만들며 편향을 늘리는 대신 분산을 낮춘다.
- 랜덤 포레스트
- 랜덤 포레스트
- 랜덤 포레스트는 일반적으로 배깅 방법을 적용한 결정 트리의 앙상블이다.
- 랜덤 포레스트 알고리즘은 전체 특성 중에서 최선의 특성을 찾는 대신
무작위로 선택한 특성 후보 중 최적의 특성을 찾는 방식으로 무작위성을 주입한다. - 엑스트라 트리
- 트리를 더욱 무작위하게 만들기 위해 최적의 임계값을 찾는 대신 무작위로 분할한 다음 그 중 최상의 분할을 선택하는 방법
- 모든 노드의 특성마다 가장 최적의 임계값을 찾는 것이 트리 알고리즘에서 가장 많은 시간이 소요되므로
일반적인 랜덤 포레스트보다 엑스트라 트리가 훨씬 빠르다. - 특성 중요도
- 랜덤 포레스트는 특성의 상대적 중요도를 측정하기가 쉽다.
결정 트리의 특성 중요도는 일부 특성을 완전히 배제시키지만,
무작위성이 주입된 랜덤 포레스트는 거의 모든 특성에 대해 평가할 기회를 가진다. - 특성을 선택해야 할 때 어떤 특성이 중요한지 빠르게 확인할 수 있다.
- 부스팅
- 부스팅
- 약한 학습기를 여러 개 연결하여 강한 학습기를 만드는 앙상블 방법
- 에이다부스트
- 첫 번째 모델에서 잘못 분류된 훈련 샘플의 가중치를 높인다.
두 번째 모델은 잘못 예측한 데이터를 분류하는 데 집중한다.
세 번째 모델은 첫 번째, 두 번째 모델이 잘못 예측한 데이터를 분류하는 데 집중한다.
- 모든 예측기가 훈련을 마치면 배깅이나 페이스팅과 비슷한 방식으로 예측을 만든다.
가중치가 적용된 훈련 세트의 전반적인 정확도에 따라 예측기마다 다른 가중치가 적용된다. - 이전 예측기가 훈련되고 평가된 후에 학습될 수 있기 때문에 병렬화를 할 수 없다.
- 에이다부스트 동작 과정
- 샘플의 가중치를 업데이트하면서 순차적으로 학습하는 에이다부스트
- 그래디언트 부스팅
- 앙상블에 이전까지의 오차를 보정하도록 예측기를 순차적으로 추가한다.
- 반복마다 이전 예측기가 만든 잔여 오차에 새로운 예측기를 학습시킨다.
- 그래디언트 부스팅
- 확률적 그래디언트 부스팅 : 각 트리를 학습시킬 때 무작위로 선택한 샘플을 사용해 학습하는 방법
- 스태킹
- 앙상블에 속한 모든 예측기의 예측을 취합하는 모델을 훈련시키는 방법
- 블렌더 : 여러 예측기의 값들을 입력으로 받아 최종 예측을 만든다.
- 블렌딩 예측기를 사용한 예측 취합
- 블렌더를 학습시키는 일반적인 방법에는 홀드 아웃 세트를 사용하는 방법이 있다.
댓글