如何使用交叉验证方法制作决策树?
Posted
技术标签:
【中文标题】如何使用交叉验证方法制作决策树?【英文标题】:How a decision tree is made using cross-validation approach? 【发布时间】:2019-09-12 15:20:35 【问题描述】:我很想知道当我们使用交叉验证时如何制作决策树,在教程中我读过交叉验证尝试找到最佳准确度或最低错误率,但决策树的制作方式是不清楚。
例如在 K=10 中,是从其他 10 棵树中选择最好的树吗?
或者它试图选择树中的所有冗余边?
我的意思是我不明白最终的树是如何由另外 10 棵树组成的。
问候。
【问题讨论】:
【参考方案1】:我相信这是一个类似的问题:Help Understanding Cross Validation and Decision Trees。
交叉验证用于更好地估计您想要查看的任何性能指标,以评估 ML 算法的性能。使用 K=10,您将在不同的数据拆分上重做 10 次树构建算法(例如 ID3),每次您在 9 个部分上训练模型并评估其余部分(验证集)的性能。然后可以表明,现在 10 组的平均值作为性能估计的偏差将更小。
假设我们在训练和验证集中拆分数据集。训练集上的错误将过于乐观,因为部分可能是由于过度拟合。验证错误会更好,但是很糟糕,我们不能使用验证集中的信息来训练我们的模型,尤其是当我们的数据可用性有限时。您可以将交叉验证视为仍然利用所有可用数据的巧妙方法。
【讨论】:
【参考方案2】:Cross Validation 不是寻找最优模型的方法,而是“推导出对模型预测性能的更准确估计”。
因此,它并不是要输出可能的最佳决策树,但您可以例如评估不同的超参数设置(导致不同的决策树),以具有更高的统计显着性。
【讨论】:
以上是关于如何使用交叉验证方法制作决策树?的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用rpart包构建决策树模型选择合适的树大小(复杂度)检查决策树对象的cptable内容(树的大小由分裂次数定义预测误差)使用plotcp函数可视化决策树复杂度参数与交叉验证错误的关系