[python] scikit-learn을 활용한 피처 중요도 기반 피처 선택

개요

피처 선택은 머신러닝 모델을 학습시키는데 사용되는 피처들 중에서 중요한 피처들을 선택하는 과정입니다. 이를 통해 모델의 성능을 향상시키고, 불필요한 피처로 인한 차원의 저주를 피할 수 있습니다. scikit-learn은 피처 선택 기법 중 피처 중요도를 기반으로 피처를 선택할 수 있는 다양한 기능을 제공합니다.

피처 중요도란?

피처 중요도는 피처가 모델의 예측 결과에 얼마나 영향을 미치는지를 나타내는 값입니다. 일반적으로 높은 피처 중요도를 가진 피처는 모델의 예측에 큰 영향을 준다는 의미입니다. 피처 중요도를 기반으로 피처를 선택하면, 모델의 예측 성능을 개선하고 모델 학습 시간을 단축할 수 있습니다.

scikit-learn을 사용한 피처 중요도 기반 피처 선택 예제

from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier

# Iris 데이터셋 로드
iris = load_iris()
X, y = iris.data, iris.target

# 랜덤 포레스트 분류기를 사용하여 피처 중요도 계산
clf = RandomForestClassifier(n_estimators=100, random_state=0)
clf.fit(X, y)

# 피처 중요도를 기반으로 피처 선택
selector = SelectFromModel(clf, threshold=0.1)
X_new = selector.fit_transform(X, y)

# 선택된 피처 출력
print(f"Selected features: {X_new.shape[1]}")

위 예제 코드는 scikit-learn의 SelectFromModel 클래스를 사용하여 랜덤 포레스트 분류기로부터 피처 중요도를 계산하고, 중요도가 기준 값보다 큰 피처들을 선택합니다. 선택된 피처의 개수는 X_new.shape[1]로 확인할 수 있습니다.

결론

scikit-learn을 활용하여 피처 중요도 기반의 피처 선택을 수행할 수 있습니다. 이를 통해 불필요한 피처를 제거하고 모델의 성능을 향상시킬 수 있습니다. 다양한 피처 선택 기법을 활용하여 최적의 피처를 선택하여 머신러닝 모델을 구축해보세요.

참고 자료