क्या F-regression
व्यक्तिगत रूप से लेबल के साथ सहसंबंधी विशेषताओं का उपयोग करके सुविधाओं की तुलना करना और मान का अवलोकन करना है ?
मैंने अक्सर देखा है कि मेरे सहकर्मी F regression
अपनी मशीन लर्निंग पाइपलाइन में फ़ीचर चयन के लिए उपयोग करते हैं sklearn
:
sklearn.feature_selection.SelectKBest(score_func=sklearn.feature_selection.f_regression...)`
कुछ कृपया मुझे बताएं - यह लेबल / डिपेंडेंट वेरिएबल के साथ सहसंबंध रखने के समान परिणाम क्यों देता है?
यह मेरे लिए F_regression
सुविधा चयन में उपयोग करने का लाभ स्पष्ट नहीं है ।
यहाँ मेरा कोड है: मैं mtcars
डेटासेट का उपयोग कर रहा हूँ 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'])
जैसा कि संदेह है, सुविधाओं की रैंकिंग बिल्कुल समान है:
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
जैसा कि आप देख सकते हैं, दूसरी विशेषता को सर्वोच्च स्थान दिया गया है, पहली विशेषता दूसरी है, चौथी विशेषता तीसरी है, और तीसरी विशेषता दोनों मामलों में अंतिम है।
क्या कभी कोई ऐसा मामला है, जो F_regression
अलग-अलग परिणाम देगा, या सुविधाओं को किसी तरह से अलग करेगा?
संपादित करें: संक्षेप में बताने के लिए, मैं जानना चाहता हूं कि क्या ये दो रैंकिंग की विशेषताएं कभी अलग परिणाम देती हैं:
1) व्यक्तिगत रूप से परिणाम के साथ उन्हें पुन: प्राप्त करते समय उनकी एफ-आँकड़ा द्वारा रैंकिंग सुविधाएँ (यह वही है जो स्केलेरन करता है) और,
2) उनके R- चुकता मूल्य से रैंकिंग सुविधाओं जब उन्हें परिणाम के साथ फिर से, व्यक्तिगत रूप से।
sklearn
इसे एफ-रिग्रेशन के रूप में संदर्भित करता है, जो शायद थोड़ा भ्रामक है क्योंकि यह वास्तव में एक परीक्षण है। scikit-learn.org/stable/modules/generated/…