การเปรียบเทียบคุณสมบัติต่าง ๆ โดยใช้คุณลักษณะF-regression
เดียวกับการเชื่อมโยงคุณสมบัติกับฉลากแต่ละรายการและการสังเกตค่าหรือไม่
ฉันมักจะเห็นเพื่อนร่วมงานของฉันใช้F regression
สำหรับการเลือกคุณสมบัติในการเรียนรู้ของเครื่องจากsklearn
:
sklearn.feature_selection.SelectKBest(score_func=sklearn.feature_selection.f_regression...)`
บางคนบอกฉัน - ทำไมมันให้ผลลัพธ์เช่นเดียวกับที่สัมพันธ์กับตัวแปรฉลาก / depedendent?
ข้อได้เปรียบของการใช้งาน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) คุณสมบัติการจัดอันดับโดยสถิติ F ของพวกเขาเมื่อถอยหลังพวกเขาด้วยผลเป็นรายบุคคล (นี่คือสิ่งที่ sklearn ทำ) และ
2) คุณสมบัติการจัดอันดับตามค่า R-squared เมื่อทำการถดถอยด้วยผลลัพธ์
sklearn
อ้างถึงว่าเป็นการถดถอยแบบ F ซึ่งอาจทำให้เข้าใจผิดเล็กน้อยเนื่องจากเป็นการทดสอบจริง ๆ scikit-learn.org/stable/modules/generated/…