앞선 포스트(DT)에서는 Decision Tree가 왜 데이터의 아주 작은 변화나 feature 공간의 회전만으로도 트리 구조와 decision boundary가 크게 달라지는지, 즉 과적합이 발생하는 근본적인 이유를 중심으로 정리하였다.
이번 포스트에서는 그 문제의식에서 출발해 Random Forest가 왜 등장했는지, 그리고 앙상블(Ensemble) 학습의 관점에서 Random Forest가 어떻게 Decision Tree의 약점을 보완하는지를 흐름 중심으로 정리한다.
Ensemble(앙상블)은 여러 개의 모델을 함께 사용해 예측 성능을 높이는 방법이다.
직관적으로 보면, 한 전문가의 판단보다 여러 전문가의 의견을 종합한 판단이 더 안정적인 경우가 많다. 머신러닝에서도 마찬가지로, 하나의 모델이 낸 예측보다 여러 모델의 예측을 결합한 결과가 일반적으로 더 좋은 성능을 낸다. 이 아이디어가 바로 앙상블의 출발점이다.
Decision Tree는 단독 모델로 보면 불안정하지만,
앙상블의 base model로서는 매우 적합한 특성을 가진다.
즉,
불안정하지만 만들기 쉬운 모델
→ 여러 개를 모아 쓰기에 이상적
앙상블이 효과를 내기 위한 핵심 조건은 다양성과 무작위성이다.
다음 두 조건이 만족될 때,
ensemble model은 base model보다 우수해진다.
Random Forest는 다양성과 무작위성을 확보하기 위해 Bagging과 Random subspace라는 두 가지 개념을 도입한다.
Bagging의 첫 단계는 bootstrap sampling이다.
이렇게 만들어진 데이터셋을 bootstrap set이라 부른다.
각 Decision Tree는
여러 트리가 예측한 결과는 하나로 합쳐야 한다.
Random Forest 분류에서는
Bagging만 사용하면,
이를 방지하기 위해 Random Forest는
Random Subspace 기법을 추가로 사용한다.
즉,
각 트리는 서로 다른 데이터 + 서로 다른 feature 공간에서 학습

각각의 DT는 과적합될 수 있지만, Random Forest는 그 수가 충분히 많을 때 큰 수의 법칙에 의해 전체 에러는 바운드 된다. 즉 전체 에러는 일정 수준 이하로 안정화된다고 이해하면 된다.
이 식에서 중요한 요소는 두 가지이다.
Random Forest에서는 Bagging(bootstrap sampling) 과 Random Subspace(무작위 feature 선택) 를 통해 트리들 사이의 상관관계를 낮춘다.
→ 를 작게 만드는 것이 핵심 전략이다.
Random Forest는 각 트리를 충분히 성장시켜 기본적인 예측 성능(s)을 확보한다.
-> 전체 Generalization Error는 감소한다.
즉, Random Forest는 “잘 맞히는 트리를 많이 만들되, 서로 다르게 만들자” 라는 전략을 수식으로 뒷받침하는 모델이다.
Decision Tree의 과적합 문제
↓
하나의 트리는 불안정하다는 인식
↓
여러 개의 트리를 결합하는 Ensemble 아이디어
↓
Bagging으로 데이터 다양성 확보
↓
Random Subspace로 feature 다양성 확보
↓
트리 간 상관관계 감소
↓
Random Forest 탄생
이번 내용을 정리하면서 느낀 점은 Random Forest가 단순히 DT를 여러 개 모아놓은 모델은 아니라는 것이다.
Decision Tree가 가지는
이러한 약점을 정확히 이해하고, 이를 다양성과 무작위성을 바탕으로 한 앙상블(Ensemble) 이라는 아이디어로 해결한 모델이 바로 Random Forest라는 생각이 들었다.
특히 DT의 한계를 먼저 이해하고 나니 Random Forest는 새로운 알고리즘이라기보다 자연스러운 확장이라는 생각이 들었다.
평소 공부할 때 개별 개념들을 따로 외우기보다는, 각 개념이 왜 등장했는지, 개념들 간의 연관성은 무엇인지 그 흐름을 이해하는 것을 중요하게 생각하는 편인데, Random Forest는 그런 관점에서 특히 인상적인 모델이었다.