SelectKBest는 어떻게 작동합니까?


15

이 자습서를보고 있습니다 : https://www.dataquest.io/mission/75/improving-your-submission

섹션 8에서 최상의 기능을 찾으면 다음 코드가 표시됩니다.

import numpy as np
from sklearn.feature_selection import SelectKBest, f_classif

predictors = ["Pclass", "Sex", "Age", "SibSp", "Parch", "Fare", "Embarked", "FamilySize", "Title", "FamilyId"]

# Perform feature selection
selector = SelectKBest(f_classif, k=5)
selector.fit(titanic[predictors], titanic["Survived"])

# Get the raw p-values for each feature, and transform from p-values into scores
scores = -np.log10(selector.pvalues_)

# Plot the scores.  See how "Pclass", "Sex", "Title", and "Fare" are the best?
plt.bar(range(len(predictors)), scores)
plt.xticks(range(len(predictors)), predictors, rotation='vertical')
plt.show()

k = 5는 사용되지 않기 때문에 무엇을하고 있습니까 (그래도 k = 1을 사용하든 k = "all"을 사용하든 그래프에는 여전히 모든 기능이 나열되어 있습니까?) 최상의 기능을 결정하는 방법은 무엇입니까 (로지스틱 회귀, 임의 포리스트 등) 사용하려는 방법과 무관합니까?


k 개의 최고 점수 에 따라 기능을 선택하십시오 .
Srini

답변:


11

SelectKBest 클래스는 함수 (이 경우 f_classif이지만 다른 함수일 수 있음)를 사용하여 기능의 점수를 매긴 다음 "k 개의 가장 높은 점수 기능을 제외한 모든 기능을 제거합니다". http://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.SelectKBest.html#sklearn.feature_selection.SelectKBest

래퍼의 종류 인 여기서 중요한 것은 기능을 평가하는 데 사용하는 함수입니다.

sklearn의 다른 기능 선택 기술은 http://scikit-learn.org/stable/modules/feature_selection.html을 참조하십시오.

그리고 예, f_classif와 chi2는 사용하는 예측 방법과 무관합니다.


2

selector.fit_transform ()을 사용하는 경우 k 매개 변수가 중요합니다. 그러면 기능 세트가 최고 'k'로 축소 된 새 배열이 리턴됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.