为什么决策树的根节点不能随机初始化?

我刚开始学习决策树,所以问题可能有点傻。

选择根节点的想法有点令人困惑。为什么我们不能随机选择根节点?似乎唯一的区别是它会使决策树更长、更复杂,但最终会得到相同的结果。

另外,作为决策树中特征选择过程的延伸,为什么我们不能使用特征与目标之间的简单相关性或卡方检验来决定从哪个特征开始?


回答:

为什么我们不能随机选择根节点?

我们可以,但这也可以扩展到它的子节点和子节点的子节点,依此类推…

似乎唯一的区别是它会使决策树更长、更复杂,但最终会得到相同的结果。

树越复杂,它的方差就越大,这意味着两件事:

  • 训练数据集中的小变化可能会极大地影响树的形状
  • 它会过度拟合训练集

这些都不好,即使你在每一步都选择了基于熵或基尼不纯度指数的合理选择,你最终可能会得到比你想要的更大的树。是的,那棵树在训练集上可能有很好的准确性,但它可能会过度拟合训练集。

大多数使用决策树的算法都有自己的方法来应对这种方差,以一种或另一种方式。如果你考虑简单的决策树算法本身,减少方差的方法是先训练树,然后修剪树,使其更小,减少过拟合。随机森林通过对大量树进行平均,同时在每次必须做出决策时随机限制可以考虑的预测器来解决这个问题。

所以,随机选择根节点最终会导致相同的结果,但只在训练集上,并且只有当过拟合如此极端,以至于树简单地以100%的准确性预测一切时。但树对训练集的过拟合越多,它在测试集上的准确性就越低(一般来说),我们关心的是测试集上的准确性,而不是训练集上的准确性。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注