Özelliklerin F-regression
etiketle ilişkilendirilmesi ile aynı özellikleri kullanarak karşılaştırmak ve değerini gözlemlemek mi?
Sık sık meslektaşlarımın F regression
makine öğrenme kanalında bir özellik seçimi için kullandığını gördüm sklearn
:
sklearn.feature_selection.SelectKBest(score_func=sklearn.feature_selection.f_regression...)`
Bazıları bana söyle - neden sadece etiket / bağımlı değişkenle ilişkilendirmekle aynı sonuçları veriyor?
F_regression
Özellik seçiminde kullanmanın avantajı bana açık değil .
İşte benim kod: Ben gelen mtcars
veri kümesi kullanıyorum R
:
import pandas as pd
import numpy as np
from sklearn import feature_selection
from sklearn.linear_model import LinearRegression
#....load mtcars dataset into a pandas dataframe called "df", not shown here for conciseness
# only using these numerical columns as features ['mpg', 'disp', 'drat', 'wt']
# using this column as the label: ['qsec']
model = feature_selection.SelectKBest(score_func=feature_selection.f_regression,\
k=4)
results = model.fit(df[columns], df['qsec'])
print results.scores_
print results.pvalues_
# Using just correlation coefficient:
columns = ['mpg', 'disp', 'drat', 'wt']
for col in columns:
lm = LinearRegression(fit_intercept=True)
lm.fit(df[[col]], df['qsec'])
print lm.score(df[[col]], df['qsec'])
Şüphelendiğiniz gibi, özelliklerin sıralaması tamamen aynıdır:
scores using f_regression:
[ 6.376702 6.95008354 0.25164249 0.94460378]
scores using coefficient of determination:
0.175296320261
0.18809385182
0.00831830818303
0.0305256382746
Gördüğünüz gibi, her iki durumda da ikinci özellik en yüksek, birinci özellik ikinci, dördüncü özellik üçüncü ve üçüncü özellik son.
F_regression
Farklı sonuçlar verecek veya özellikleri bir şekilde farklı sıralayacak bir durum var mı ?
DÜZENLEME: Özetlemek gerekirse, bu iki özellik sıralamasının farklı sonuçlar verip vermediğini bilmek istiyorum:
1) sonuçları ayrı ayrı gerilediğinde özellikleri F istatistiklerine göre sıralamak (sklearn'in yaptığı budur) VE,
2) sonuçla birlikte tekrar bireysel olarak regresyon yaparken özellikleri R-kare değerine göre sıralamak.
sklearn
aslında bir test olduğu için belki biraz yanıltıcı olan F-regresyonu olarak adlandırır. scikit-learn.org/stable/modules/generated/…