当 R2 分数非常好时,为什么要获得非常高的 MSE/MAE/MAPE 值

机器算法验证 回归 机器学习 r平方 准确性
2022-04-06 10:02:14

我在一些著名的数据集(自行车共享、糖尿病患者等)上应用了不同的回归模型(RF、Knn 等)。的价值R2非常好。从 R2 分数,我们可以说该模型运行良好(尽管并非对每种情况都如此)。所以,我有MSE,MAEMAPE方法。但是,MAE/MAPE/MSE 的值非常高,这意味着模型的预测非常糟糕,并且与实际值(真实标签)相差甚远。

数据集的准确度得分

Name        MAE      MAPE      R2     MSE  
Bike        24.56    0.34      0.95   1615
Diabetics   0.06     2321.20   0.87   0.03  

用于计算 MAPE 的公式

MAPE = np.mean(np.abs(predictions - y_test) / (y_test + 1e-5))

我想知道,当 R2 值很好(非常高)时,同时模型的预测如何可能非常糟糕(我们可以从 MSE/MAPE/MAE 分数中得到)

数据集的描述

Name     Count Mean    Std     Min    Max
Bike     17379 189.46  181.38  1.00   977
Diabetics 768   0.34    0.47    0      1
2个回答

我看不出您如何从这些指标中看出结果“非常糟糕”。将指标与平均值、范围或标准差等指标进行比较,在所有情况下,MSE 或 RMSE(MSE 的平方根)都远小于数据的可变性。

这些指标没有绝对的数值,因此您需要对它们进行某种基准测试。最小化平方误差的最简单的模型是预测所有样本的平均值,在这种情况下,RMSE 将等于标准偏差,您的模型比这更好。对于 MAE,微不足道的模型将预测中位数,MAE 等于 MAD,我猜你还是更好。对于不那么简单的模型,您可以将结果与线性回归之类的结果进行比较。

唯一的例外是 MAPE,它对于第二个数据集非常高,但数据集中有零,在这种情况下,您不应该使用 MAPE 作为指标,因为无论您除以接近零的值,它都会是极高并破坏指标。例如,假设真实值为 0,而您预测它的均值:

> abs(0.34 - 0) / (0 + 1e-5)
[1] 34000

请参阅平均绝对百分比误差 (MAPE) 的缺点是什么?有关更多详细信息,但 MAPE 是一个棘手的指标,不应盲目使用。

快速的答案是,与总是猜测测量方差的减少,无论预测变量如何。你的结果告诉我的是,总是猜测的差异是如此巨大,即使是仍然不能让你得到你想要或需要的应用程序的准确度。也许您的任务需要(方差减少一万倍)。R2y¯y¯R20.90.99R2>0.9999