Scikit learn Scikit学习功能_选择提供不同的p值

Scikit learn Scikit学习功能_选择提供不同的p值,scikit-learn,feature-selection,p-value,Scikit Learn,Feature Selection,P Value,当我使用scikit learn时,我得到了两组不同的p值 predKbest= SelectKBest(sklearn.feature_selection.f_regression, k=i).fit(X_train, y_train) predKbest.pvalues_ 及 在相同的数据X_列和y_列上。它们应该是不同的p值吗 SelectKBest将根据您输入的测试,按重要性选择前i个变量:Fischer或Chi2 F_回归用于回归,而chi2用于分类,所以很奇怪的是,您将这两种方法

当我使用scikit learn时,我得到了两组不同的p值

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

predKbest.pvalues_


在相同的数据X_列和y_列上。它们应该是不同的p值吗

SelectKBest将根据您输入的测试,按重要性选择前i个变量:Fischer或Chi2

F_回归用于回归,而chi2用于分类,所以很奇怪的是,您将这两种方法用于相同的输入变量。你应该退后一步,研究你真正想做的事情。 这里对一切都有很好的解释:

f_回归p_值将计算每个回归因子与目标之间的线性相关性

chi2测试“测量随机变量之间的依赖性,因此使用此函数“剔除”最可能独立于类别的特征,因此与分类无关。”X必须包含非负特征,如布尔值或频率


这里打印的p_值是chi2和f_回归的结果,它们被“转换”为p_值,因此它们的不同是100%正常的。

chi2进行chi2测试,而f_回归是费歇尔测试。他们注定是不同的。@MohamedALANI我知道这一点。我的问题是,在同一个函数SelectKBest中,这两个选项的pv值计算是否不同?我明白了,我没有很好地阅读你的问题,对此表示抱歉。我相信他们的计算方法是一样的。在选择了两个不同的特征后,变量的数量是否相同?@MohamedALANI,是的,它们是完全相同的数据。这可能是因为他们有不同的假设。然而,到目前为止,我似乎不清楚与这些职能有关的文件。
predKbest= SelectKBest(sklearn.feature_selection.chi2, k=i).fit(X_train, y_train)    
predKbest.pvalues_