728x90
개요
RFE(Recursive Feature Elimination)는 Feature Extraction 기법으로, 모델 성능 기준으로 중요도가 낮은 Feature를 반복적으로 제거하면서 최종적으로 지정한 수의 Feature만을 남기는 방식이다.
내용
RFE는 모든 Feature를 활용하여 데이터를 학습했을 때의 각 Feature의 Feature Importance를 도출한다. 그리고 Feature Importance가 낮은 Feature 부터 하나씩 제거하면서 원하는 Feature가 남을 때까지 이를 반복한다.
선형 모델, 트리 기반 등의 다양한 모델에서 사용할 수 있으며, 모델이 제공하는 Feature Importance 기준에 따라 제거 순서가 달라진다. Backward Elimination 방식의 대표적 예로, 불필요한 특성을 제거하여 모델의 복잡도를 낮추고 과적합을 방지할 수 있다.
다양한 이점을 제공하지만, 반복적 학습으로 인한 비용과 최적 특성 개수 선정의 어려움이 있다.
예시
from sklearn.feature_selection import RFE
from sklearn.tree import DecisionTreeClassifier
rfe = RFE(estimator=DecisionTreeClassifier(), n_features_to_select=5)
rfe.fit(X, y)
print(rfe.support_) # 선택된 특성
print(rfe.ranking_) # 각 특성의 순위
728x90