랜덤 포레스트(Random Forest)는 별다른 Hyper-Parameter Tuning을 하지 않아도 Tree개수만 충분하면 성능이 잘 나오는 장점이 있다. 반면에 몇가지 단점이 있는 데 그 중 하나가 바로 외삽법(Extrapolation)에 매우 취약하다는 점이다.
내연장(내삽)의 확장으로 함수 f(x)의 값이 알려져 있는 점을 포함하는 구간 밖에서 f(x)를 추정하는 것. 보외(補外)라고도 한다.
Source: Naver 용어해설
어떤 Machine Learning 알고리즘이든 원칙적으로 Extrapolation은 매우 조심해야 하며, Random Forest는 특히 더 취약하다.
아래 그림을 보면 Random Forest의 경우 학습한 Feature Space 바깥의 영역에 대해서는 Constant한 값을 주는 것을 볼 수 있다.
![](https://15.164.228.147/wp-content/uploads/2022/10/random_forest_prediction.png)
이와 같은 특징이 나오는 이유는 Decision Tree 알고리즘의 특성 때문이다.(이 말은 Random Forest 뿐만 아니라 Decision Tree 기반의 알고리즘 들은 모두 비슷한 문제를 가지고 있다.) Decision Tree는 Feature Space를 최적으로 쪼개는 방식으로 찾아가며 가지를 치는데, 최종적으로 쪼개진 Feature Space는 다 같은 값(Regression에서는 평균)을 갖게 된다.
![](https://15.164.228.147/wp-content/uploads/2022/10/random_forest_feature_space.png)
알려진 바와 같이 Random Forest는 Bootstrap한 데이터 세트들에 대하여 Decision Tree를 여러 개 생성한 뒤 각 Decision Tree의 결과를 평균 내는 방식이므로, 데이터가 없는 바깥 영역은 쪼개질 수가 없기 때문에 어떤 Tree든 Feature 값 변화와 상관없이 Constant하다고 예측해버리는 문제가 발생한다. 바깥으로 가면 Feature에 대해 Sensitivity가 없어지는 것이다.
설사 학습한 Feature Space의 바깥이 아니더라도 학습한 Layout에서 Constant 간 배치에 대한 Feature가 데이터가 없는 영역이라면, Decision Tree에서 해당하는 영역은 Feature 값 변화에 따라 Constant 하다고 예측 할 수도 있다.
결국, 실제 데이터의 간격보다 훨씬 작은 양을 움직이면서 어떻게 바뀌는지 Sensitivity를 보고자 한다면 Random Forest는 적절한 알고리즘이 아니다.
정리해보면
1. Extrapolation을 하는 상황이라면…
2. Extrapolation이 아니더라도 학습 데이터의 Feature 간격이 너무 멀다면…
Tuning이 좀 까다롭더라도 Neural Network을 사용하는 것이 좋은 방향이 될 것이다.
Source: freerangestats