[python] scikit-learn을 사용한 상관 계수 기반 피처 선택

소개

피처 선택은 머신 러닝에서 중요한 작업 중 하나입니다. 피처 선택을 통해 불필요한 피처를 제거하고 모델의 성능을 향상시킬 수 있습니다. 이번 블로그 포스트에서는 scikit-learn을 사용하여 상관 계수 기반 피처 선택을 수행하는 방법을 알아보겠습니다.

상관 계수란?

상관 계수는 두 변수 간의 선형 관계의 강도와 방향을 측정하는 통계적인 지표입니다. 상관 계수는 -1과 1 사이의 값을 가지며, 1에 가까울수록 강한 양의 선형 관계를 의미하고, -1에 가까울수록 강한 음의 선형 관계를 의미합니다. 0에 가까울수록 두 변수 사이에는 선형 관계가 없다는 것을 의미합니다.

코드 예시

다음은 scikit-learn을 사용하여 상관 계수 기반 피처 선택을 수행하는 예시 코드입니다.

from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import f_classif

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

# 피처 선택
k = 2
selector = SelectKBest(f_classif, k=k)
X_new = selector.fit_transform(X, y)

# 결과 출력
print("Selected features:", selector.get_support(indices=True))

위 코드에서는 iris 데이터셋을 로드하고, SelectKBest 클래스를 사용하여 상관 계수 기반의 피처 선택을 수행합니다. k는 선택할 피처의 개수를 의미합니다. 위 예시에서는 k=2로 설정했습니다. fit_transform 메서드를 호출하여 실제로 피처 선택을 수행하고, get_support 메서드를 통해 선택된 피처의 인덱스를 출력합니다.

결론

scikit-learn을 사용하여 상관 계수 기반 피처 선택을 수행하는 방법을 알아보았습니다. 피처 선택은 모델의 복잡성을 줄이고 성능을 향상시키는 데 도움이 됩니다. 상관 계수 기반의 피처 선택은 피처 간의 선형 관계를 고려하여 가장 중요한 피처를 선택하는 방법 중 하나입니다.