在 DecisionTreeClassifier 中 max_features 参数如何工作?

数据挖掘 scikit-学习 决策树
2021-09-26 05:12:42

负责的参数是什么max_featuresDecisionTreeClassifier

我认为它定义了树用于生成其节点的特征数量。但是,尽管这个参数的值不同(n = 1 和 2),但我的树使用了我所拥有的两个特征。有什么变化?

max_features = 2

在此处输入图像描述

max_features = 1

在此处输入图像描述

您可以看到x1x2在两种情况下都使用

1个回答

Max_feature 是每次做出拆分决策时要考虑的特征数。假设您的数据维度为 50,max_feature 为 10,每次需要查找拆分时,您随机选择 10 个特征并使用它们来决定这 10 个特征中的哪一个是最好使用的特征。当您转到下一个节点时,您将随机选择另外 10 个,依此类推。

该机制用于控制过拟合。事实上,它类似于随机森林中使用的技术,除了在随机森林中,我们也从数据中采样开始,并生成多棵树。

因此,即使您将数字设置为 10,如果深入,您最终将使用所有功能,但每次您将设置限制为 10。

如果你比较决策树和随机森林中最大特征的定义,你会发现它们是一样的。

https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html

https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html