[RandomForest] 랜덤 포레스트란?

2020. 4. 27. 21:41Artificial Intelligence

Photo by  Julien R  on  Unsplash

 

랜덤 포레스트란? 

 

랜덤 포레스트는 오늘날 쓰이는 머신 러닝 알고리즘 중에서 가장 강력한 성능을 자랑하는 알고리즘 중 하나입니다. 랜덤 포레스트는 앙상블 학습 방법의 구체적인 여러 구현 중 하나라고 생각할 수 있습니다. 앙상블 학습을 설명한 포스팅에서 배깅과 페이스팅에 대한 설명을 간단하게 언급했었는데, 랜덤 포레스트는 이 중 배깅 방법을 적용한 결정트리(Decision Tree)의 앙상블입니다.

 

 

랜덤포레스트 알고리즘은 결정트리(Decision Tree)분류기 여러 개를 훈련시켜서 그 결과들을 가지고 예측을 하는데, 각각의 결정트리를 훈련시킬 때 배깅(Bagging), 즉, 전체 훈련 세트에서 중복을 허용하여 샘플링한 데이터셋을 개별 결정트리 분류기의 훈련 세트로 하여 훈련시키는 방식입니다. 앙상블 방식을 사용하기 때문에 몇몇의 결정트리들이 과대적합되거나 과소적합되어도 해당하는 오차가 상대적으로 무시되는 경향이 있어서 일반적으로 의사결정트리 하나를 사용한 모델보다 좋은 성능을 보입니다.

 

 

 

 

랜덤 포레스트는 훈련을 통해 구성해 놓은 다수의 의사결정트리들로부터

분류 결과를 취합해서 예측하는 앙상블 모델 이라고 할 수 있습니다.

 

 

 

 

 

 

 

랜덤 포레스트 알고리즘은 결정 트리들로 이루어지기 때문에 각각의 결정 트리들을 학습하는 과정이 필요합니다. 일반적으로 결정트리를 학습시킬 때는 최적의 특성(노드 분할의 기준이 되는)을 찾고, 해당 특성으로 잘 나눌 수 있는 최적의 임계점을 찾는 방식을 사용하지만, 랜덤 포레스트 방식에서는 무작위로 선택한 특성 후보들 중에서 최적의 특성을 찾는 방법을 사용합니다.

 

 

이렇게 무작위로 선택한 특성 후보들 중에서 최적의 특성을 사용하게 되면 훈련 속도도 항상 최적의 특성을 찾는 방식보다 빠르게 되고, 분산이 작아져서 의미있는 결정경계를 만드는데 도움을 준다는 이점이 있습니다. 

 

 

 

 

 

 

 

 

 

엑스트라 트리(Extra Tree)

 

 

정리하면, 결정트리에서 무작위성(Random feature)를 추가한 것이 랜덤 포레스트라고 이야기할 수 있는데, 이 랜덤 포레스트에서 무작위성을 더 추가한 방식이 또 존재합니다. 무작위성을 극단적으로 추구한다고 해서 극단적인 결정트리, (Extreme Randomized Tree)라고 부르며 줄여서 엑스트라 트리(Extra Tree)라고도 부릅니다.

 

 

엑스트라 트리는 트리를 더욱 무작위하게 만들기 위해 랜덤 포레스트 방식처럼 최적의 임계값을 찾는 대신, 랜덤 포레스트 방식에서 임의로 뽑은 후보 특성들을 사용하여 무작위로 트리를 분할한 다음에 그 중에서 최상의 분할을 선택하는 방식을 택합니다.

 

 

이 방식도 역시 편향이 상대적으로 큰 대신에 분산이 작다는 이점이 있고, 최적의 임계값을 찾는데 많은 시간을 소비하는 랜덤포레스트 방식과 비교했을때 빠른 시간에 학습이 가능하다는 이점도 있습니다.

 

 

 

반응형

'Artificial Intelligence' 카테고리의 다른 글

[FSDL] CNNs  (0) 2021.10.01
[Ensemble] 앙상블 학습  (0) 2020.04.27
[RNN] Vanila RNN을 이용한 SPAM Filter구현  (0) 2020.04.19
[SVM] SVM으로 MNIST 분류하기  (0) 2020.04.18
[SPAM FILTER] 간단한 스팸 분류기  (1) 2020.04.15