python - Scikit-Learn 在 RFECV() 中手动指定 .max_features - 有多少特征得到排名?

标签 python python-2.7 machine-learning scikit-learn

我已经关注了这个Scikit-Learn example在Python中从森林估计器获取.feature_importances_。在该示例中,使用了 ExtraTreesClassifier() 及其默认值 超参数设置 - 这意味着 max_features='auto'。此示例的输出是 10 个特征的重要性图。

问题 1:

当我使用 max_features=2 重新运行此示例时,该图仍然显示所有 10 个特征的特征重要性。应该只显示 2 个特征的重要性吗?

问题2:

现在,我想将 ExtraTreesClassifier(max_features=2)RFECV() 结合使用。来自 RFECV() docs ,它表示 RFECV() 为最佳特征分配了 1 的等级 - 我们可以在 RFECV().ranking_ 属性中看到这一点。但是,如果我将估计器指定为 ExtraTreesClassifier(max_features=2),那么 RFECV() 是否在其估计器中使用 2 个特征,并且仅返回 2 个特征的排名?或者它是否忽略 max_features 并返回所有功能的排名?

最佳答案

max_features 指定学习算法在决定哪个特征提供树节点中的最佳分割时查看的特征数量。为每个节点随机选择特征。所以决策树仍然使用所有特征。这只是加快学习速度的一种方法。

关于python - Scikit-Learn 在 RFECV() 中手动指定 .max_features - 有多少特征得到排名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36970311/

相关文章:

python - "not in"比较未按预期工作

r - 如何在 R 中计算 KNN 变量重要性

machine-learning - 测试集上的接收器操作特性 (ROC)

Python - 基于键/值标识的分组/合并字典

python Decimal - 检查是否为整数

python - 无法导入 Decimal 模块

python - 获取 IndexError : tuple index out of range

python - 在 Python 中启用和禁用调试消息

python - Beautiful Soup 和 UnicodeDecodeError

machine-learning - 关系型 Fisher 内核实现