ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 앙상블 학습과 랜덤 포레스트
    전공 서적/핸즈온 머신러닝 2018. 9. 23. 22:46
    1. 앙상블 학습과 랜덤 포레스트
      1. 일련의 예측기로부터 예측을 수집하면 가장 좋은 모델 하나보다 좋은 예측을 얻을 있다.
        , 일련의 예측기를 앙상블이라고 부르기 때문에 이를 앙상블 학습이라고 하며, 앙상블 학습 알고리즘을 앙상블 방법이라고 한다.
    2. 투표 기반 분류기
      1. 좋은 분류기를 만드는 매우 간단한 방법은 분류기의 예측을 모아 가장 많이 선택된 클래스를 예측하는 것이다.
        이렇게 다수결 투표로 정해지는 분류기를 직접 투표 분류기라고 한다.
      2. 직접 투표 분류기의 예측
        1. 직접 투표 분류기가 앙상블에 포함된 개별 분류기 가장 뛰어난 것보다 정확도가 높을 경우가 많다.
          분류기가 약한 학습기라도 충분하게 많고 다양하다면 앙상블은 강한 학습기 있다.
           
      3. 모든 분류기가 클래스의 확률의 예측할 있으면 개별 분류기의 예측을 평균 내어 확률이 가장 높은 클래스를 예측할 있다.

    이를 간접 투표라고 한다.

    1. 배깅과 페이스팅
      1. 배깅과 페이스팅
        1. 같은 알고리즘을 사용하지만 훈련 세트의 서브셋을 무작위로 구성하여 분류기를 각기 다르게 학습시킬 있다.
        2. 배깅 : 훈련 세트에서 중복을 허용하여 샘플링 하는 방식
        3. 페이스팅 : 중복을 허용하지 않고 샘플링하는 방식
        4. 페이스팅, 배깅의 훈련 세트 샘플링과 훈련
        5. 모든 예측기가 훈련을 마치면 앙상블은 모든 예측기의 예측을 모아서 새로운 샘플에 대한 예측을 만든다.
          수집 함수는 분류에는 통계적 최빈값, 회귀에 대해서는 평균 계산한다.
        6. 개별 예측기는 원본 훈련 세트로 훈련시킨 것보다 훨씬 크게 편향되어 있지만 수집 함수를  통과하면 편향과 분산이 모두 감소한다.
        7. 예측기는 모두 동시에 다른 CPU 코어나 서버에서 병렬로 학습시킬 있으며, 예측도 병렬로 수행할 있다.
        8. 단일 결정 트리와 500 트리로 만든 배깅 앙상블 비교
      2. oob 평가
        1. 배깅을 사용할 경우 어떤 샘플은 여러번 샘플링되고 어떤 것은 전혀 선택되지 않을 있다.

    선택되지 않은 샘플을 oob 샘플이라고 부른다.

    1. 예측기가 훈련되는 동안 oob 샘플을 사용하지 않으므로 oob 샘플을 사용해 평가할 있다.
    1. 랜덤 패치와 랜덤 서브스페이스
      1. scikit-learn 특성에 대한 샘플링도 지원한다.

    예측기는 무작위로 선택한 입력 특성의 일부분으로 훈련된다. 이는 이미지와 같은 매우 고차원의 데이터셋을 다룰 유용하다.

    1. 랜덤 패치 방식 : 훈련 샘플, 특성을 모두 샘플링 하는 방식
    2. 랜덤 서브스페이스 방식 : 훈련 샘플은 모두 사용하고 특성만을 샘플링 하는 방식

    특성 샘플링은 다양한 예측기를 만들며 편향을 늘리는 대신 분산을 낮춘다.

    1. 랜덤 포레스트
      1. 랜덤 포레스트
        1. 랜덤 포레스트는 일반적으로 배깅 방법을 적용한 결정 트리의 앙상블이다.
        2. 랜덤 포레스트 알고리즘은 전체 특성 중에서 최선의 특성을 찾는 대신
          무작위로 선택한 특성 후보 최적의 특성을 찾는 방식으로 무작위성을 주입한다.
      2. 엑스트라 트리
        1. 트리를 더욱 무작위하게 만들기 위해 최적의 임계값을 찾는 대신 무작위로 분할한 다음 최상의 분할을 선택하는 방법
        2. 모든 노드의 특성마다 가장 최적의 임계값을 찾는 것이 트리 알고리즘에서 가장 많은 시간이 소요되므로
          일반적인 랜덤 포레스트보다 엑스트라 트리가 훨씬 빠르다.
      3. 특성 중요도
        1. 랜덤 포레스트는 특성의 상대적 중요도를 측정하기가 쉽다.
          결정 트리의 특성 중요도는 일부 특성을 완전히 배제시키지만,
          무작위성이 주입된 랜덤 포레스트는 거의 모든 특성에 대해 평가할 기회를 가진다.
        2. 특성을 선택해야 어떤 특성이 중요한지 빠르게 확인할 있다.
    2. 부스팅
      1. 부스팅
        1. 약한 학습기를 여러 연결하여 강한 학습기를 만드는 앙상블 방법
      2. 에이다부스트
        1. 번째 모델에서 잘못 분류된 훈련 샘플의 가중치를 높인다.
          번째 모델은 잘못 예측한 데이터를 분류하는 집중한다.

    번째 모델은 번째, 번째 모델이 잘못 예측한 데이터를 분류하는 집중한다.

    1. 모든 예측기가 훈련을 마치면 배깅이나 페이스팅과 비슷한 방식으로 예측을 만든다.
      가중치가 적용된 훈련 세트의 전반적인 정확도에 따라 예측기마다 다른 가중치가 적용된다.
    2. 이전 예측기가 훈련되고 평가된 후에 학습될 있기 때문에 병렬화를 없다.
    3. 에이다부스트 동작 과정
    4. 샘플의 가중치를 업데이트하면서 순차적으로 학습하는 에이다부스트
    1. 그래디언트 부스팅
      1. 앙상블에 이전까지의 오차를 보정하도록 예측기를 순차적으로 추가한다.
      2. 반복마다 이전 예측기가 만든 잔여 오차 새로운 예측기를 학습시킨다.
      3. 그래디언트 부스팅
      4. 확률적 그래디언트 부스팅 : 트리를 학습시킬 무작위로 선택한 샘플을 사용해 학습하는 방법
    1. 스태킹
      1. 앙상블에 속한 모든 예측기의 예측을 취합하는 모델을 훈련시키는 방법
      2. 블렌더 : 여러 예측기의 값들을 입력으로 받아 최종 예측을 만든다.
      3. 블렌딩 예측기를 사용한 예측 취합
      4. 블렌더를 학습시키는 일반적인 방법에는 홀드 아웃 세트를 사용하는 방법이 있다.


    '전공 서적 > 핸즈온 머신러닝' 카테고리의 다른 글

    인공 신경망 소개  (0) 2018.11.04
    차원 축소  (0) 2018.09.25
    결정 트리  (0) 2018.09.13
    서포트 벡터 머신  (0) 2018.09.12
    모델 훈련  (0) 2018.08.30

    댓글