帮助了解交叉验证和决策树
machine-learning
5
0

我一直在阅读“决策树”和“交叉验证”,并且我理解这两个概念。但是,我在理解交叉验证方面遇到了麻烦,因为它与决策树有关。本质上,交叉验证使您可以在数据集相对较小时在训练和测试之间进行切换,以最大程度地提高错误估计率。一个非常简单的算法是这样的:

  1. 确定所需的折数(k)
  2. 将您的数据集细分为k折
  3. 使用k-1折作为训练集以构建树。
  4. 使用测试集估计有关树中错误的统计信息。
  5. 保存结果供以后使用
  6. 重复步骤3-6,进行k次,为测试集留出不同的折痕。
  7. 对迭代中的误差取平均值,以预测整体误差

我不知道的问题是最后您将拥有k个决策树,这些决策树可能都略有不同,因为它们可能无法以相同的方式拆分,依此类推。您选择哪棵树?我的一个想法是选择一个误差最小的想法(尽管这并不能使它达到最佳效果-也许使用分层效果可能会更好-也许使用分层会有所帮助,但我读过的所有内容都说它只会有所帮助)。

据我了解,交叉验证的重点是计算节点统计信息,以后可以将其用于修剪。因此,实际上,树中的每个节点都会根据为其提供的测试集为其计算统计信息。重要的是节点统计中的这些,但是如果您平均出错的话。当每棵树的分割内容可能不同时,如何将这些统计信息合并到k棵树的每个节点中。

计算每次迭代的总体误差有什么意义?在修剪过程中不能使用这种方法。

任何帮助与这个小皱纹将不胜感激。

参考资料:
Stack Overflow
收藏
评论
共 4 个回答
高赞 时间 活跃

对于第一部分,就像其他人指出的那样,我们通常使用整个数据集来构建最终模型,但是我们使用交叉验证 (CV)来更好地估计新的看不见的数据的泛化误差。

对于第二部分,我认为您正在将CV与验证集混淆,当验证集上计算的某些函数值在拆分前后没有增加时,通过修剪节点来避免过拟合树。

收藏
评论

使用交叉验证的要点是,当在不同数据上使用交叉验证时,可以更好地估计已训练模型的性能。

你选哪棵树?一种选择是您使用所有数据作为训练集来建立新树。

收藏
评论

我不知道的问题是最后您将拥有k个决策树,这些决策树可能都略有不同,因为它们可能无法以相同的方式拆分,依此类推。您选择哪棵树?

交叉验证的目的不是帮助选择分类器的特定实例 (或决策树,或任何自动学习应用程序),而是使模型合格,即提供诸如平均错误率,相对于此的偏差之类的度量。平均值等,对确定应用程序可以期望的精度水平很有用。交叉验证可以帮助断言的一件事是训练数据是否足够大。

关于选择特定树 ,您应该改为对100%可用的训练数据进行另一次训练,因为这通常会产生更好的树。 (交叉验证方法的缺点是,我们需要将[通常很少]的训练数据划分为“折叠”,正如您在问题中暗示的那样,这可能导致特定数据实例的树过拟合或欠拟合) 。

在决策树的情况下,我不确定您对节点中收集的统计信息的引用与用于修剪决策树的引用有关。也许是交叉验证相关技术的一种特殊用法?

收藏
评论

已经提到过,交叉验证的目的是使模型合格。换句话说,交叉验证为我们提供了使用所选“参数”生成的模型的误差/准确性估计,而与所使用的数据无关。可以使用不同的参数重复进行corss验证过程,直到我们对性能满意为止。然后,我们可以在整个数据上训练具有最佳参数的模型。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号