랜덤 포레스트(Random Forest)에서 다중공선성(Multi-collinearity) 탐색하기

2024. 2. 26. 19:29연구 동향

랜덤 포레스트에서 다중공선성 탐색하기

 

랜덤 포레스트에서 상관 관계가 높은 변수는
정확도(Accuracy)와 피처 선택(Feature Selection)에 안 좋은 영향을 줄까요?

 

 

간단히 말해, 대답은 "아니요, 그렇지 않습니다."입니다.

 

Introduction

강력한 앙상블 모델인 랜덤 포레스트(RF)는 분류 및 회귀 작업에 자주 사용됩니다.

RF가 다중공선성을 처리하는 방법을 자세히 알아보기 전에 이 모델의 복잡성에 대해 간략히 살펴보겠습니다.

 

 

Understanding Multicollinearity

다중공선성은 회귀 모델에서 두 개 이상의 설명 변수가 높은 상관관계를 가질 때 발생합니다.
이 문제는 독립 변수 간의 독립성 가정이 손상되어 왜곡된 결과를 초래하므로 회귀 모델에 중대한 문제를 제기합니다.

 

본질적으로 다중공선성은 변수의 추정 오차를 부풀려 모델의 정확성에 대한 신뢰를 떨어뜨릴 수 있습니다.


예를 들어, 상호 연관된 변수의 계수는 유사한 정보의 영향을 공유하고 나누기 때문에 너무 작게 나타날 수 있습니다.

다중공선성을 완화하기 위해 기존 회귀 모델에서는 상관관계가 높은 변수를 제거하는 등의 전처리 단계가 필요한 경우가 많습니다.

 

 

Why Random Forest Escapes the Pitfalls of Multicollinearity

랜덤 포레스트는 모델 구조 내에서 서브샘플링, 가지치기, 집계의 조합을 통해 상관관계가 높은 변수로 인한 문제를 회피합니다.


Subsampling

서브샘플링 과정에서 RF는 배깅이라는 기술을 사용하여 하위 집합을 생성합니다.

이러한 하위 집합은 병렬(균일) 구조를 공유하지만 각 하위 집합에 포함된 특징(변수)의 수는 하이퍼파라미터 'max_features'로 제어할 수 있습니다.


'max_features'를 총 피처 수보다 작은 값으로 설정하면 RF는 다양한 의사 결정 트리를 생성합니다.

일부 트리에는 상관관계가 높은 변수가 하나만 포함될 수도 있고, 대부분의 변수가 포함될 수도 있습니다.

 

또는, scikit-learn 라이브러리에서 'max_depth' 또는 트리 수('n_estimate')를 조정해도 비슷한 효과를 얻을 수 있습니다.
이러한 서브샘플링 전략을 통해 RF는 집단 투표 메커니즘을 통해 상관관계가 높은 변수의 잠재적으로 해로운 영향을 중화합니다.


Pruning

의사 결정 트리 모델에서 정규화의 한 형태인 가지 치기는 중요하지 않은 잎(leaf)을 제거하여 모델을 단순화하고 속도를 높이는 데 도움이 됩니다. RF에서는 재귀적 특징 제거가 가지 치기 메커니즘으로 작용하여 상관관계가 높은 변수의 일부를 제거합니다.
두 가지 특징 선택 방법인 RFE(재귀적 특징 제거)와 RFECV(교차 검증을 통한 재귀적 특징 제거)는 다중공선성 문제를 해결합니다.

특히 RFECV를 사용하면 정확도와 같은 성능 메트릭을 기반으로 모델이 최적의 특징 조합을 식별할 수 있습니다.

 

 

Oblique Variables

RF는 sparse oblique 를 구현하여 중복된 특징을 집계함으로써 상관관계가 높은 변수를 처리합니다.

이 방법은 PCA의 차원 축소와 유사하며, 희귀 경사 분할이 활성화된 경우('split_axis = SPARSE_OBLIQUE') 소수의 특징을 하나의 분할로 집계합니다.

 


Conclusion

RF는 구조적 특성 덕분에 다중공선성 문제에 탄력적으로 대응할 수 있습니다. 그러나 데이터와 특징의 중요도를 해석할 때는 상관관계를 고려하여 주의를 기울이는 것이 중요합니다.

 


Reference

  1. Stack Exchange - Highly Correlated Variables in Random Forest
  2. Statistics by Jim - Multicollinearity in Regression Analysis
  3. Analytics Vidhya - Understand Random Forest Algorithms With Examples
  4. Scikit-Learn - Recursive Feature Elimination
  5. TensorFlow Decision Forests - Random Forest Model