什么是好的 RMSE 值?

机器算法验证 回归 错误
2022-01-24 00:14:27

假设我有一些数据集。我对其进行了一些回归。我有一个单独的测试数据集。我在这个集合上测试回归。在测试数据上找到 RMSE。我应该如何断定我的学习算法做得很好,我的意思是我应该查看数据的哪些属性来得出结论我得到的 RMSE 对数据有好处?

4个回答

我认为你有两种不同类型的问题。一件事是您在标题中提出的问题:“什么是好的 RMSE 值?” 另一件事是如何使用 RMSE 比较具有不同数据集的模型。

对于第一个问题,即标题中的问题,重要的是要记住 RMSE 与因变量 (DV) 具有相同的单位。这意味着没有绝对的好坏阈值,但是您可以根据您的 DV 定义它。对于范围从 0 到 1000 的数据,0.7 的 RMSE 很小,但如果范围从 0 到 1,则不再那么小了。然而,虽然 RMSE 越小越好,但您可以通过了解您的研究领域对您的 DV 的期望,对 RMSE 水平做出理论上的主张。请记住,您始终可以标准化 RMSE。

对于第二个问题,即关于使用 RMSE 比较具有不同数据集的两个模型,您可以这样做,前提是两个模型中的 DV 相同。在这里,越小越好,但请记住,这些 RMSE 之间的微小差异可能不相关甚至不显着。

如果你建立了一个好的模型,你的训练集和测试集的 RMSE 应该非常相似。如果测试集的 RMSE 远高于训练集的 RMSE,则很可能您严重过度拟合数据,即您创建的模型在样本中测试良好,但在测试时几乎没有预测价值样本外。

尽管这是一个旧线程,但我希望我的回答能帮助任何正在寻找同一问题答案的人。

当我们谈论时间序列分析时,大多数时候我们指的是 ARIMA 模型(及其变体)的研究。因此,我将首先在我的答案中假设相同。

首先,正如前面的评论者 R. Astur 解释的那样,没有好的 RMSE 这样的东西,因为它是尺度相关的,即取决于你的因变量。因此,不能将通用数称为良好的 RMSE。

即使您采用 MAPE 或 MASE 等无标度拟合度量,您仍然不能声称良好的阈值。这只是一种错误的做法。您不能说“我的 MAPE 如此这般,因此我的适合/预测很好”。我认为您应该如何解决您的问题如下。首先找到几个“可能的最佳”模型,使用诸如循环 R 中的 arima() 函数输出之类的逻辑,并根据最低 RMSE 或 MAPE 或 MASE 选择最佳的 n 个估计模型。由于我们谈论的是一个特定的系列,而不是试图做出普遍的主张,因此您可以选择这些措施中的任何一个。当然,您必须进行残差诊断,并确保您的最佳模型产生具有良好 ACF 图的白噪声残差。现在你有几个好的候选人,测试每个模型的样本外 MAPE,

生成的模型是最好的模型,因为它:

  1. 为您提供良好的样本内拟合,与低误差测量和 WN 残差相关。
  2. 并通过为您提供最佳的样本外预测精度来避免过度拟合。

现在,一个关键点是,可以通过包含因变量或残差项的足够滞后来估计具有 ARIMA(或其变体)的时间序列。但是,那个拟合的“最佳”模型可能只是过度拟合,并且给你一个非常低的样本外精度,即满足我的要点 1 但不满足 2。

在这种情况下,您需要做的是:

  1. 添加一个外生解释变量并选择 ARIMAX,
  2. 添加一个内生解释变量并选择 VAR/VECM,
  3. 或者将您的方法完全更改为非线性机器学习模型,并使用交叉验证方法将它们拟合到您的时间序列中。例如,将神经网络或随机森林拟合到您的时间序列。并重复样本内和样本外的性能比较。这是时间序列的一种趋势方法,我所看到的论文都对机器学习模型的卓越(样本外)预测性能表示赞赏。

希望这可以帮助。

您无法修复 RMSE 的特定阈值。我们必须查看测试数据集和训练数据集的 RMSE 比较。如果您的模型很好,那么您的测试数据的 RMSE 与训练数据集非常相似。否则满足以下条件。

测试的 RMSE > 火车的 RMSE => 数据的过拟合。
测试的 RMSE < 火车的 RMSE => 数据拟合不足。