2016-11-22 31 views
1

我得到兩套不同的p值當我使用scikit學習的Scikit瞭解feature_selection給予不同的p值

predKbest= SelectKBest(sklearn.feature_selection.f_regression, k=i).fit(X_train, y_train) 

predKbest.pvalues_ 

predKbest= SelectKBest(sklearn.feature_selection.chi2, k=i).fit(X_train, y_train)  
predKbest.pvalues_ 
在相同的數據X_train和y_train

。他們是否應該是不同的p值?

+0

Chi2做了Chi2測試,而f_regression是fischer測試。它們意味着不同。 –

+0

@MohamedALANI我知道。我的問題是,如果這兩個選項的pvalues在相同函數SelectKBest中的計算方式不同? – dbm

+0

我明白了,我沒有很好地閱讀你的問題,對此抱歉。 我相信他們的計算方式是一樣的。在選擇兩個不同的功能後,您是否有相同數量的變量? –

回答

1

根據您輸入的測試結果,SelectKBest會根據重要性選擇頂部i變量:Fischer或Chi2。

F_regression用於迴歸,而chi2用於分類,因此使用相同的輸入變量來使用它們是很奇怪的。你應該退後一步,研究你真正想要做的事情。 一切是公這裏解釋:http://scikit-learn.org/stable/modules/feature_selection.html

f_regression P_VALUE港島線計算各回歸和靶之間的線性扶養。

「chi2測試」測量隨機變量之間的依賴關係,所以使用這個函數「清除」最有可能獨立於類的特徵,因此與分類無關。 X必須包含非負面特徵,例如布爾值或頻率。

您打印的p_values在這裏是被「轉換」爲p_values的chi2和f_regression的結果,因此它們是不同的100%正常。