[ML] 재귀적 특성 제거 RFE

youngchae·2022년 8월 24일
0

ML

목록 보기
1/4
post-thumbnail

자동적으로 최선의 특성을 선택하고 싶을 때 사용할 수 있는 feature selection 방법. 재귀적으로 특성을 제거하여 최적의 변수만을 남겨 가장 좋은 특성들만을 남길 수 있다.

RFE (Recursive Feature Elemination)

from sklearn.feature_selection import RFE

rfe = RFE(estimator=ols, n_features_to_select=3)
rfe.fit(features, target)
rfe.transform(features)

RFECV(Recursive Feature Elemination Cross Validation)

재귀적 특성 제거 (RFE : Recursive Feature Elemination)를 교차검증(CV)으로 수행 모델 성능이 나빠질 때까지 특성을 제거하면서 반복적으로 모델 훈련

CV사용 → RFE 과정에서 남길 특성의 최적 개수 찾을 수 있음

# import
from sklearn.datasets import make_regression
from sklearn.feature_selection import RFECV
from sklearn import datasets, linear_model

# 특성 행렬과 타깃 벡터를 생성
features, target = make_regression(n_samples = 10000,
                                   n_features = 100,
                                   n_informative = 2,
                                   random_state = 1)

# 모델 생성
ols = linear_model.LinearRegression()

# RFECV를 사용하여 특성 제거
rfecv = RFECV(estimator=ols, step=1, scoring="neg_mean_squared_error")
rfecv.fit(features, target)
rfecv.transform(features)
  • parameter
parameterDescription
estimator특성을 선택할 모델
step매 스텝 제거될 feature 수 (default=1)
min_features_to_select선택될 최소한의 feature 수 (default=1)
cvcross validation (default=5) (version 0.22부터 default가 3에서 5로 바뀜)
  • attribute
attributeDescription
estimator_feature를 고르는 데 사용된 모델
n_features_최적의 feature 수
ranking_feature의 순위
support_선택된 feature 특성이 표시된 boolean mask

[참고]

profile
we_need_to_talk_about_ds

0개의 댓글