决策树过拟合检验

我目前正在处理很容易过度拟合的数据,因此我通过测试每个深度的 roc_auc 分数来编写函数,因为我在 sklearn 上读到 max_深度通常是树过度拟合的原因。但我不确定我的想法是否正确,这里有我的结果图片:

https://img1.sycdn.imooc.com/658a81db0001736012440523.jpg

https://img1.sycdn.imooc.com/658a81e700019ee912601049.jpg

我也尝试使用后修剪方法,但我的图表看起来与我在互联网上找到的其他图表有很大不同,所以我不确定它给了我什么


https://img1.sycdn.imooc.com/658a81f20001f89903920277.jpg

蝴蝶不菲
浏览 56回答 1
1回答

尚方宝剑之说

您正在寻找的术语是交叉验证。基本思想很简单:将数据集分成训练集和验证(或测试)集。然后,您在训练集上训练模型并在验证集上测试它。如果您的模型过度拟合,它将在训练集上表现良好,但在验证集上表现不佳。在这种情况下,最好降低模型复杂性或添加所谓的正则化(例如树修剪)。注 1:在某些情况下(例如在神经网络中),同时存在验证集和测试集(除了训练集之外)。我不会在这里详细介绍,但请不要与不同上下文中的这些术语相混淆。注2:交叉验证是一个非常标准的事情,它甚至给另一个StackExchange站点起了一个名字——Cross Validated,在这里你可以得到更多关于统计数据的答案。另一个也许更合适的网站有一个不言自明的名称——数据科学。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python