我使用 c4.5 算法创建了一个决策树模型。创建模型后,我使用 10 折交叉验证评估模型,并使用测试数据对模型进行分类以获得准确性。然后我用 REP 运行 prune tree。
我的问题是我应该使用哪些数据来比较准确性(修剪后和修剪前)以决定移除叶子?我从哪里得到准确性?使用交叉验证或分类测试数据?
我使用 c4.5 算法创建了一个决策树模型。创建模型后,我使用 10 折交叉验证评估模型,并使用测试数据对模型进行分类以获得准确性。然后我用 REP 运行 prune tree。
我的问题是我应该使用哪些数据来比较准确性(修剪后和修剪前)以决定移除叶子?我从哪里得到准确性?使用交叉验证或分类测试数据?
减少错误修剪策略的工作方式如下:
使用新数据(剪枝数据集)的目的是检查拆分是否有用,或者数据中的噪声是否覆盖了拆分给出的信号。
要评估两个模型在修剪前后的性能,您需要另一个不同的数据集,名为验证数据。要了解方式,您必须了解修剪实际上也是扩展训练的一部分。与普通学习的唯一区别是,在使用 REM 进行训练时,您将学习如何使用一些数据进行扩展,并且您将学习如何使用其他一些数据来取消学习。
如果您使用来自训练的相同数据进行修剪,您根本不会进步(您可以提前停止)。用于修剪数据集以进行测试将使您的模型选择标准无效,因为修剪树几乎总是表现得更好(原始树从训练数据集中学习,修剪树从两者中学习)。我敢说,如果你想利用预测误差,你将不得不使用不同的数据集,或者将所有内容都包含在交叉验证中。