A.I/Study

Random Forest

궁선이 2019. 1. 28. 17:38

Random Forest

1. Decision Tree(의사결정트리) 의 단점

  • 주어진 학습 데이터에 따라 생성되는 의사결정트리의 모델이 일정하지 않아 일반화를 할 수 없다.
  • 상위 노드의 에러가 다음 노드로 전파된다.
  • 의사결정트리를 활용한 학습결과가 일정하지 않다.

2. Random Forest의 정의

  • 랜덤 포레스트는 여러 개의 의사결정트리들을 임의적으로 학습하는 방식의 앙상블 학습법.

앙상블 학습법이란 데이터를 사용해 n개의 데이터 집합을 만든 뒤, m개의 모델에 나누어 학습시킨 뒤 각 결과들을 종합하는 학습법(n =< m)

3. Random Forest의 장점

  • 월등히 높은 정확성
  • 간편하고 빠른 학습 및 테스트 알고리즘
  • 변수소거 없이 수천 개의 입력 변수들을 다루는 것이 가능
  • 임의화를 통한 좋은 일반화 성능
  • 다중 클래스 알고리즘 특성

4. Random Forest의 특징

  • 랜덤 포레스트의 가장 핵심적인 특징은 임의성(randomness)에 의해 서로 조금씩 다른 특성을 갖는 트리들로 구성된다는 것이다. 이 특징은 각 트리들의 예측(prediction)들이 비상관화(decorrelation) 되게하며, 결과적으로 일반화(generalization) 성능을 향상시킨다. 또한, 임의화(randomization)는 포레스트가 노이즈가 포함된 데이터에 대해서도 강인하게 만들어 준다. 임의화는 각 트리들의 훈련 과정에서 진행되며, 가장 널리 쓰이는 두 가지 방법으로는 임의 학습 데이터 추출 방법을 이용한 앙상블 학습법인 배깅(bagging)과 임의 노드 최적화(randomized node optimization)가 있다. 이 두 가지 방법은 서로 동시에 사용되어 임의화 특성을 더욱 증진 시킬 수 있다.

5. Bagging

  • 배깅(bagging) 은 bootstrap aggregating의 약자로, 부트스트랩(bootstrap)을 통해 조금씩 다른 훈련 데이터에 대해 훈련된 기초 분류기(base learner)들을 결합(aggregating)시키는 방법이다(앙상블).

  • 부트스트랩 이란, 주어진 훈련 데이터에서 중복을 허용하여 원 데이터와 같은 크기의 데이터를 만드는 과정을 말한다.

  • 트리는 작은 편향(bias)과 큰 분산(variance)을 갖기 때문에, 매우 깊이 성장한 트리는 훈련 데이터에 대해 오버피팅하게 된다. 부트스트랩 과정은 트리들의 편향은 그대로 유지하면서, 분산은 감소시키기 때문에 포레스트의 성능을 향상시킨다. 즉, 한 개의 결정 트리의 경우 훈련 데이터에 있는 노이즈에 대해서 매우 민감하지만, 트리들이 서로 상관화(correlated)되어 있지 않다면 여러 트리들의 평균은 노이즈에 대해 강인해진다. 포레스트를 구성하는 모든 트리들을 동일한 데이터 집합으로만 훈련시키게 되면, 트리들의 상관성(correlation)은 굉장히 커질 것이다. 따라서 배깅은 서로 다른 데이터 집합들에 대해 훈련 시킴으로써, 트리들을 비상관화시켜 주는 과정이다.

6. Bagging을 이용한 Random Forest 학습법

  1. 주어진 트레이닝 데이터에서 중복을 허용하여 N개를 선택한다.(부트스트랩)
  2. 선택한 N개의 데이터 샘플에서 특성값을 중복없이 d개를 선택한다.
  3. 1~2 단계를 T번 반복하여 T개의 훈련 데이터 집합을 생성한다.
  4. T개의 트리들을 훈련시킨다.
  5. T개의 트리들에서 예측된 결과들을 평균이나(앙상블) 가장 많이 예측된 결과를 선택하여 최종 결과로 결정한다.

7. 주요 Hyperparameter

  • 포레스트의 크기 (트리의 개수) T

    • 총 포레스트를 몇 개의 트리로 구성할 지를 결정하는 매개변수이다. 포레스트가 작으면 트리들을 구성하고 테스트 하는데 걸리는 시간이 짧은 대신, 일반화 능력이 떨어져 임의의 입력 데이터 포인트에 대해 틀린 결과를 내놓을 확률이 높다. 반면에 포레스트의 크기가 크다면 훈련과 테스트 시간은 증가하지만, 포레스트의 결과값은 각 트리의 결과들에 평균을 취한 것으로 큰 포레스트의 결과값은 작은 포레스트보다 비교적 연속적이며 일반화 능력이 우수하다.
  • 최대 허용 깊이 D

    • 하나의 트리에서 루트 노드부터 종단 노드까지 최대 몇개의 노드(테스트)를 거칠 것인지를 결정하는 매개변수이다. 최대 허용 깊이가 작으면 과소적합(underfitting)이 일어나고, 최대 허용 깊이가 크면 과대적합(overfitting)이 일어나기 때문에 적절한 값을 설정하는 것이 중요하다.
  • Subsampling 추출 속성 수 (d)

    • 회귀 문제에서 1/3 정도의 속성을 추천
    • 분류에서는 전체 속성 개수의 제곱근을 추천