Sklearn 공부

SelectFromModel

특성 선택 : 모델 훈련이 끝난 후 사용자가 지정한 threshold를 기반으로 feature selection

from sklearn.ensemble import RandomForestClassifier

# 분류기
forest = RandomForestClassifier(n_estimators = 500, random_state = 23)

forest.fit(X_train, y_train)
importances = forest.feature_importances_
  • RandomForestClassifier 모델을 통해 특성을 선택함
  • 먼저 500개의 결정 트리에서 평균적인 불순도 감소를 기반으로 해당 데이터셋에서 가장 판별력이 좋은 특성을 추출
  • importances 변수에 해당 특성들이 담겨 있음

SelectFromModel 적용

from sklearn.feature_selection import SelectFromModel

sfm = SelectFromModel(forest, threshold = 0.1, prefit = True)
# forest 모델 내 특성 중 지니계수 혹은 엔트로피 등 기준의 값이 0.1 이상인 특징을 선택

x_selected = sfm.transform(x_train)