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