SelectKBest nasıl çalışır?


15

Bu eğiticiye bakıyorum: https://www.dataquest.io/mission/75/improving-your-submission

Bölüm 8'de en iyi özellikleri bularak aşağıdaki kodu gösterir.

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

Asla kullanılmadığı için k = 5 ne yapıyor (k = 1 veya k = "all" olsun, grafik hala tüm özellikleri listeliyor)? En iyi özellikleri nasıl belirler, kullanmak istedikleri yöntemden bağımsız mıdır (lojistik regresyon, rastgele ormanlar ya da her neyse)?


Göre özellikleri seçin k en yüksek puanları.
Srini

Yanıtlar:


11

SelectKBest sınıfı yalnızca bir işlev kullanarak özellikleri puanlar (bu durumda f_classif, ancak diğerleri olabilir) ve sonra "k en yüksek puanlama özellikleri hariç tümünü kaldırır". http://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.SelectKBest.html#sklearn.feature_selection.SelectKBest

Yani bir tür sarıcı, burada önemli olan özellik puanlamak için kullandığınız işlevdir.

Sklearn'deki diğer özellik seçme teknikleri için http://scikit-learn.org/stable/modules/feature_selection.html

Ve evet, f_classif ve chi2 kullandığınız öngörme yönteminden bağımsızdır.


2

Özellik kümesinin en iyi 'k' değerine düşürüldüğü yeni bir dizi döndürecek olan selector.fit_transform () yöntemini kullanıyorsanız k parametresi önemlidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.