Scikit Learn feature_selection给出不同的p值

时间:2016-11-22 18:58:20

标签: scikit-learn feature-selection p-value

当我使用scikit learn's

时,我得到两组不同的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值吗?

1 个答案:

答案 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%正常,它们是不同的。