⚙️ Tech/ML

[ML/python] 필터링 기반 특징 선택 (Feature selection, Filter Method, SelectKBest)

fiftyline 2025. 2. 10. 00:02

 

특징 선택은 특징 간 중복을 줄이고 예측 성능은 높이는 최적의 특징 부분 집합을 구성하기위한 작업이다.

특징을 선택하는 방법은 필터 방법, 래퍼 뱅법, 임베디드 방법이 있고, 지금은 필터 방법을 설명한다.

 

SelectKBest

필터 방법 중 하나로, 중요도가 높은 K개의 특징을 선택한다.

개별 특징을 통계적으로 평가하여 빠르고 간단하지만, 특징 간의 상호작용을 고려하지 않는다.

from sklearn.feature_selection import *

selector = SelectKBest(f_classif, k = 10) #f통계량이 큰 10개 
selector.fit(X_train, y_train)
selected_features = X_train.columns[selector.get_support()] #transform대신 get_support()는 df컬럼 보존, 인스턴스 대신 특징이름만 저장가능
Z_train = X_train.loc[:, selected_features]
Z_test = X_test.loc[:, selected_features]

 

특징 및 라벨에 따라 적절한 scoring_func를 사용한다.

통계량 특징 유형 라벨 scoring_func
카이제곱 통계량 binary binary chi2
상호정보량 binary binary mutual_info_classif
continuous
binary continuous mutual_info_regression
continuous
F-통계량 continuous binary f_classif
continuous continuous f_regression



 

 

 

참고 서적 : GIL's LAB, 「파이썬을 활용한 머신러닝 자동화 시스템 구축」, 위키북스(2022)