训练误差和测试误差之间的差异有多大被认为是合适的?

我正在处理一个回归问题,我使用了带有决策树的AdaBoost进行回归,并使用R²作为评估指标。我想知道训练R²和测试R²之间的差异有多大被认为是合适的。我的训练R²是0.9438,测试R²是0.877。这是过拟合还是表现良好?我只想知道训练和测试之间的差异具体有多大被认为是可接受合适的?


回答:

你的问题有几个问题。

首先,R²绝对推荐作为预测问题的性能评估指标;引用我在另一个Stack Overflow帖子中的回答:

R-squared的整个概念实际上直接来自统计学界,那里强调的是解释性模型,而在机器学习的背景下,它在预测模型中几乎没有用处;至少据我所知,除了某些非常入门的课程之外,我从未(我指的是从未…)见过使用R-squared进行任何类型性能评估的预测建模问题;也不仅仅是巧合,受欢迎的机器学习介绍,如Andrew Ng在Coursera上的机器学习课程,甚至都没有提到它。而且,正如在上面的Github线程中所指出的(强调增加):

特别是在使用测试集时,我不太清楚R^2的意义。

我完全同意这一点。

第二:

我的训练R²是0.9438,测试R²是0.877。这是过拟合还是表现良好?

训练和测试分数之间的差异本身并表示过拟合。这只是泛化差距,即训练集和验证集之间性能的预期差距;引用Google AI最近的一篇博客文章

理解泛化的重要概念是泛化差距,即模型在训练数据上的表现与其在来自相同分布的未见数据上的表现之间的差异。

过拟合的典型特征是,当你的验证损失开始增加,而你的训练损失继续减少时,即:

enter image description here

(图片改编自维基百科关于过拟合的条目 – 水平轴可能代表不同的东西,例如这里是提升树的数量)

我只想知道训练和测试之间的差异具体有多大被认为是可接受合适的?

这个问题没有普遍的答案;一切都取决于你的数据细节和你试图解决的业务问题。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注