랜덤 포레스트란 무엇인가?
랜덤 포레스트(Random Forest)는 의사결정 트리(Decision Tree) 분류기를 위해 특별히 설계된 앙상블(Ensemble) 기법의 한 종류입니다. 여러 개의 결정 트리가 내린 예측 결과를 통합하는 방식으로 작동하며, 각 트리는 서로 다른 무작위 벡터(random vector) 집합의 값을 기반으로 생성됩니다.
AdaBoost와의 차이점
랜덤 포레스트의 무작위 벡터는 고정된(constant) 확률 분포로부터 생성된다는 점이 특징입니다. 이는 AdaBoost처럼 분류하기 어려운 인스턴스에 맞춰 확률 분포를 적응적으로 조정하는 방식과는 뚜렷한 대조를 이룹니다. 즉, 랜덤 포레스트는 학습 과정 전반에 걸쳐 일관된 무작위성을 유지합니다.
배깅(Bagging)과 랜덤 포레스트의 관계
배깅을 적용한 결정 트리는 랜덤 포레스트의 대표적인 사례입니다. 배깅에서는 원래 학습 데이터셋으로부터 N개의 샘플을 복원 추출(with replacement) 방식으로 무작위 선택함으로써 모델 구축 과정에 무작위성을 부여합니다. 또한 배깅은 전체 모델 구축 단계에서 부트스트랩 샘플을 생성할 때 균등한(uniform) 확률 분포를 사용한다는 점도 랜덤 포레스트와 같습니다.
Forest-RI: 무작위 입력 선택 방식
각 결정 트리는 고정된 확률 분포에서 생성된 무작위 벡터를 필요로 하며, 이를 트리 성장 과정에 통합하는 방법은 여러 가지가 있습니다. 첫 번째 방법은 결정 트리의 각 노드에서 분할(split)에 사용할 F개의 입력 특징(feature)을 무작위로 선택하는 것입니다.
그 결과, 사용 가능한 모든 특징을 일일이 검토하는 대신 노드 분할 여부는 이렇게 선별된 특징만을 바탕으로 결정됩니다. 트리는 가지치기(pruning) 없이 끝까지 완전하게 성장시키는데, 이렇게 하면 최종적으로 만들어지는 트리의 편향(bias)을 줄이는 데 도움이 됩니다.
모든 트리가 구축되면 다수결 투표(majority voting) 방식으로 예측 결과를 결합합니다. 이 접근법은 Forest-RI라고 불리며, RI는 무작위 입력 선택(Random Input selection)을 의미합니다. 무작위성을 더욱 강화하고 싶다면 배깅을 활용해 Forest-RI용 부트스트랩 샘플을 생성할 수도 있습니다.
F 값이 랜덤 포레스트 성능에 미치는 영향
랜덤 포레스트의 견고성(robustness)과 트리 간 상관관계는 F의 크기에 따라 달라집니다. F가 충분히 작으면 트리들 사이의 상관관계가 낮아져 앙상블의 다양성이 높아지고, 반대로 F가 커질수록 개별 트리 분류기의 강도(strength)는 향상되는 경향이 있습니다. 따라서 두 요소 사이의 균형을 고려해 적절한 F 값을 선택하는 것이 중요합니다.
Forest-RC: 특징 공간 확장 기법
그런데 원본 특징의 수 d가 너무 작으면, 결정 트리를 구축하기 위해 서로 다른 무작위 특징 집합을 선택하는 것이 어려워집니다. 이런 경우 특징 공간을 확장하는 한 가지 방법은 입력 특징들의 선형 조합(linear combination)을 만드는 것입니다.
구체적으로는 각 노드에서 L개의 입력 특징을 무작위로 선택해 새로운 특징을 생성합니다. 이때 입력 특징들은 [-1, 1] 범위의 균등 분포에서 추출한 계수를 사용해 선형적으로 결합됩니다. 매 노드마다 이렇게 무작위로 조합된 새로운 특징 F개를 만들고, 그중 가장 분할에 적합한 것을 최종적으로 선택해 노드를 나눕니다. 이 접근법은 Forest-RC(Random Linear Combination)라고 합니다.