Là so sánh các tính năng sử dụng F-regression
giống như các tính năng tương quan với nhãn riêng lẻ và quan sát giá trị ?
Tôi thường thấy các đồng nghiệp của mình sử dụng một F regression
lựa chọn tính năng trong đường ống học máy của họ từ sklearn
:
sklearn.feature_selection.SelectKBest(score_func=sklearn.feature_selection.f_regression...)`
Một số xin vui lòng cho tôi biết - tại sao nó cho kết quả tương tự như chỉ tương quan với biến / nhãn phụ thuộc?
Tôi không rõ lợi thế của việc sử dụng F_regression
trong lựa chọn tính năng.
Đây là mã của tôi: Tôi đang sử dụng mtcars
bộ dữ liệu từ 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'])
Như nghi ngờ, thứ hạng của các tính năng hoàn toàn giống nhau:
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
Như bạn có thể thấy, tính năng thứ hai được xếp hạng cao nhất, tính năng thứ nhất là thứ hai, tính năng thứ tư là thứ ba và tính năng thứ ba là cuối cùng, trong cả hai trường hợp.
Có bao giờ một trường hợp mà F_regression
sẽ cho kết quả khác nhau, hoặc sẽ xếp hạng các tính năng khác nhau theo một cách nào đó?
EDIT: Để tóm tắt, tôi muốn biết liệu hai bảng xếp hạng các tính năng này có cho kết quả khác nhau không:
1) tính năng xếp hạng theo thống kê F của họ khi hồi quy chúng với kết quả riêng lẻ (đây là những gì sklearn làm) VÀ,
2) xếp hạng các tính năng theo giá trị bình phương R của chúng khi hồi quy chúng với kết quả, một lần nữa riêng lẻ.
sklearn
gọi nó là hồi quy F, có lẽ hơi sai lệch vì đây thực sự là một thử nghiệm. scikit-learn.org/urdy/modules/generated/ từ