Bagaimana cara kerja SelectKBest?


15

Saya melihat tutorial ini: https://www.dataquest.io/mission/75/improving-your-submission

Pada bagian 8, menemukan fitur terbaik, itu menunjukkan kode berikut.

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

Apa yang k = 5 lakukan, karena tidak pernah digunakan (grafik masih mencantumkan semua fitur, apakah saya menggunakan k = 1 atau k = "semua")? Bagaimana cara menentukan fitur terbaik, apakah mereka terlepas dari metode yang ingin digunakan (apakah regresi logistik, hutan acak, atau apa pun)?


Pilih fitur sesuai dengan skor tertinggi k .
Srini

Jawaban:


11

Kelas SelectKBest hanya menilai fitur menggunakan fungsi (dalam hal ini f_classif tetapi bisa menjadi yang lain) dan kemudian "menghapus semua kecuali fitur penilaian tertinggi k". http://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.SelectKBest.html#sklearn.feature_selection.SelectKBest

Jadi jenis pembungkusnya, yang penting di sini adalah fungsi yang Anda gunakan untuk menilai fitur.

Untuk teknik pemilihan fitur lainnya di sklearn baca: http://scikit-learn.org/stable/modules/feature_selection.html

Dan ya, f_classif dan chi2 tidak tergantung pada metode prediksi yang Anda gunakan.


2

Parameter k penting jika Anda menggunakan selector.fit_transform (), yang akan mengembalikan array baru di mana set fitur telah direduksi menjadi 'k' terbaik.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.