一尘不染

帮助了解交叉验证和决策树

algorithm

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

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

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

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

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

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


阅读 426

收藏
2020-07-28

共1个答案

一尘不染

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

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

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

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

2020-07-28