scikit-learn - Scikit Learn feature_selection 给出不同的 p 值

标签 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_

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

在相同的数据 X_train 和 y_train 上。它们应该是不同的 p 值吗?

最佳答案

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

F_regression 用于回归,而 chi2 用于分类,因此将它们与相同的输入变量一起使用是很奇怪的。你应该退后一步,研究一下你真正想做的事情。 一切都在这里得到了很好的解释:http://scikit-learn.org/stable/modules/feature_selection.html

f_regression p_value 将计算每个回归量与目标之间的线性依赖性。

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

您打印的 p_values 是 chi2 和 f_regression “转换”为 p_values 的结果,因此它们不同是 100% 正常的。

关于scikit-learn - Scikit Learn feature_selection 给出不同的 p 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40749638/

相关文章:

python - 从数据集中删除异常值

python - 使用mutual_info回归进行特征选择时的 reshape 错误

r - 在计算逐步多项式回归之前如何消除p值> 0.7的变量?

r - fisher.test() 的 p 值与 phyper() 不匹配

python - cross_validation.cross_val_score 返回什么样的分数?

python - sklearn.preprocessing.normalize 中的范数参数

Scala随机森林特征重要性提取与名称(标签)

安卓条件权限

r - 数学函数的非数字参数

python - 词向量列表上的 T-SNE 可视化