본문 바로가기
Data Anlaytist

변수 선택법(feature selection)의 feature importance와 RFE 개념 비교 정리

by goemgoem-i 2025. 4. 23.
반응형

 

모델링 작업을 할 때 제일 시간이 오래 걸리는 작업이 변수 선택과 전처리 작업이다

어떤 변수를 사용할지에 따라서 성능의 영향이 크기에 이번에 통계와 머신러닝 모델의 종류를 모델링하면서

변수 중요도를 선정하는 방식에도 찾아보는 일이 많아져 이번 기회에 한 번 정리해봤다

 

1. Feature Importance 기반 방법

모델이 학습하는 과정에서 각 변수(feature)가 예측에 기여한 정도를 수치로 나타낸 것

 

특히 트리 기반 모델(RandomForest, XGBoost, LightGBM 등)은 학습할 때 변수의 분기(split / 보통은 5로 나눠짐)에 따른 불순도 감소(impurity decrease)를 기준으로 중요도를 자동으로 계산한다

 * 불순도 감도 : 데이터가 얼마나 섞여 있는가 / 트리 기반에서는 데이터 분할 할 때마다 불순도를 줄이는 방향으로 나눔 

 

1-1. 작동 원리

  • 트리 기반 모델은 데이터를 분할할 때 정보 이득, 지니 불순도 감소 등을 기준으로 결정함
  • 어떤 변수가 많이, 그리고 높은 수준에서 데이터를 나눌수록 중요하다고 판단
  • 모델 학습 후 .feature_importances_ 속성이나 plot_importance() 함수로 확인 가능\
model = RandomForestClassifier()
model.fit(X_train, y_train)
importances = model.feature_importances_

 

1-2. 장점

  • 빠르고 직관적
  • 모델 학습 후 바로 얻을 수 있음 (.feature_importances_)
  • 중요도 기준 상위 N개 변수만 골라서 재학습 가능

 

1-3. 단점

  • 변수 간 상관관계(다중공선성) 고려하지 않음
    • 그래서 보통 다중공선성을 먼저 고려한 후에 feature importance를 고려했다
  • 모델 의존적임 (다른 모델에선 중요하지 않을 수도 있음)
  • 스케일 영향 거의 없지만, 일부 모델에선 표준화 필요.

 

 

 

 

2. RFE (Recursive Feature Elimination)

변수를 하나씩 제거하면서 모델 성능을 평가해 가장 성능이 좋은 변수 조합을 찾는 방식이야. 일종의 후진 선택법(backward selection)과 동일하다

 

2-1. 작동 원리

  1. 전체 변수를 사용해서 모델을 학습
  2. 변수 중요도나 계수를 기준으로 가장 덜 중요한 변수 제거
  3. 남은 변수들로 다시 모델 학습 → 성능 평가
  4. 지정된 수만큼 변수 남을 때까지 반복 (보통은 10개 또는 15개로 지정)
from sklearn.feature_selection import RFE
selector = RFE(estimator=model, n_features_to_select=10)
selector.fit(X_train, y_train)

 

2-2. 장점

  • 변수 간 상호작용을 고려하면서 선택 가능
  • 모델 성능 기준으로 선택되기 때문에 일반화 성능에 가까움

2-3. 단점

  • 계산 비용 큼 (변수 수 많으면 시간 오래 걸림)
  • 모델마다 결과가 다름
  • overfitting 위험도 있음 (과적합 모델 쓰면)

 

 

 

 

3. Feature Importance vs RFE

변수 수가 적고 빠르게 중요한 변수만 확인하고 싶다 Feature Importance
변수 조합의 영향이나 상호작용까지 고려하고 싶다 RFE
변수 수가 너무 많다 (수백 개 이상) Feature Importance → 중요한 것들로 줄인 후 RFE 적용
모델 성능과 변수 해석력을 둘 다 높이고 싶다 둘 다 비교해서 교집합 또는 성능 기준 선택

 

최근에 모델링 했을 때는 모델의 성능과 변수 간의 연관성 둘다 중요했어서

둘다 작업해서 진행한 후에 정확도나 AUC 아니면 recall을 보고 판단해서 

모델별로  더 적합한 성능이 나온 변수 방식을 골랐다 

 

 

반응형