【发布时间】:2011-01-19 20:49:03
【问题描述】:
我一直在阅读决策树和交叉验证,我理解这两个概念。但是,我无法理解与决策树有关的交叉验证。本质上,交叉验证允许您在数据集相对较小时在训练和测试之间交替,以最大化您的错误估计。一个非常简单的算法是这样的:
- 决定你想要的折叠次数(k)
- 将数据集细分为 k 折
- 对训练集使用 k-1 折叠来构建树。
- 使用测试集估计有关树中错误的统计信息。
- 保存结果以备后用
- 将步骤 3-6 重复 k 次,为您的测试集留出不同的折叠。
- 对迭代中的误差进行平均以预测总体误差
我无法弄清楚的问题是,最后你会有 k 个决策树,它们可能都略有不同,因为它们可能不会以相同的方式拆分,等等。你选择哪棵树?我的一个想法是选择错误最小的那个(尽管这并不能使它成为最佳选择,只是它在给出的折叠中表现最好 - 也许使用分层会有所帮助,但我读过的所有内容都说它只有一点点帮助)。
据我了解,交叉验证的重点是计算节点统计信息,以便以后用于修剪。所以实际上树中的每个节点都会根据给它的测试集计算出统计数据。重要的是节点统计数据中的这些,但如果你平均你的错误。当每棵树的选择拆分对象可能不同时,如何在 k 树的每个节点中合并这些统计信息等。
计算每次迭代的总体误差有什么意义?这不是修剪过程中可以使用的东西。
对于这个小皱纹的任何帮助将不胜感激。
【问题讨论】:
标签: algorithm machine-learning decision-tree