我刚开始学习决策树,所以问题可能有点傻。
选择根节点的想法有点令人困惑。为什么我们不能随机选择根节点?似乎唯一的区别是它会使决策树更长、更复杂,但最终会得到相同的结果。
另外,作为决策树中特征选择过程的延伸,为什么我们不能使用特征与目标之间的简单相关性或卡方检验来决定从哪个特征开始?
回答:
为什么我们不能随机选择根节点?
我们可以,但这也可以扩展到它的子节点和子节点的子节点,依此类推…
似乎唯一的区别是它会使决策树更长、更复杂,但最终会得到相同的结果。
树越复杂,它的方差就越大,这意味着两件事:
- 训练数据集中的小变化可能会极大地影响树的形状
- 它会过度拟合训练集
这些都不好,即使你在每一步都选择了基于熵或基尼不纯度指数的合理选择,你最终可能会得到比你想要的更大的树。是的,那棵树在训练集上可能有很好的准确性,但它可能会过度拟合训练集。
大多数使用决策树的算法都有自己的方法来应对这种方差,以一种或另一种方式。如果你考虑简单的决策树算法本身,减少方差的方法是先训练树,然后修剪树,使其更小,减少过拟合。随机森林通过对大量树进行平均,同时在每次必须做出决策时随机限制可以考虑的预测器来解决这个问题。
所以,随机选择根节点最终会导致相同的结果,但只在训练集上,并且只有当过拟合如此极端,以至于树简单地以100%的准确性预测一切时。但树对训练集的过拟合越多,它在测试集上的准确性就越低(一般来说),我们关心的是测试集上的准确性,而不是训练集上的准确性。