Jak działa SelectKBest?


15

Patrzę na ten samouczek: https://www.dataquest.io/mission/75/improving-your-submission

W sekcji 8, znajdując najlepsze funkcje, pokazuje następujący kod.

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()

Co robi k = 5, ponieważ nigdy nie jest używane (wykres nadal pokazuje wszystkie funkcje, niezależnie od tego, czy używam k = 1, czy k = „wszystkie”)? W jaki sposób określa najlepsze funkcje, czy są one niezależne od metody, którą chcemy zastosować (regresji logistycznej, losowych lasów itp.)?


Wybierz funkcje zgodnie z k najwyższymi wynikami.
Srini,

Odpowiedzi:


11

Klasa SelectKBest po prostu ocenia funkcje za pomocą funkcji (w tym przypadku f_classif, ale mogą to być inne), a następnie „usuwa wszystkie funkcje oprócz k o najwyższym wyniku”. http://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.SelectKBest.html#sklearn.feature_selection.SelectKBest

Więc jest to rodzaj opakowania, ważna jest tutaj funkcja używana do oceniania funkcji.

Aby zapoznać się z innymi technikami wyboru funkcji w sklearn, przeczytaj: http://scikit-learn.org/stable/modules/feature_selection.html

I tak, f_classif i chi2 są niezależne od metody predykcyjnej, której używasz.


2

Parametr k jest ważny, jeśli używasz selector.fit_transform (), który zwróci nową tablicę, w której zestaw funkcji został zredukowany do najlepszego „k”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.