-1

我在 Keras 中实现了一个关注 LSTM 来重现这篇论文。奇怪的行为很简单:我有一个 MSE 损失函数和一个 MAPE 和 MAE 作为指标。在训练期间,MAPE 正在爆炸,但 MSE 和 MAE 似乎训练正常:

Epoch 1/20
275/275 [==============================] - 191s 693ms/step - loss: 0.1005 - mape: 15794.8682 - mae: 0.2382 - val_loss: 0.0334 - val_mape: 24.9470 - val_mae: 0.1607
Epoch 2/20
275/275 [==============================] - 184s 669ms/step - loss: 0.0099 - mape: 6385.5464 - mae: 0.0725 - val_loss: 0.0078 - val_mape: 11.3268 - val_mae: 0.0803
Epoch 3/20
275/275 [==============================] - 186s 676ms/step - loss: 0.0025 - mape: 5909.3735 - mae: 0.0369 - val_loss: 0.0131 - val_mape: 14.9827 - val_mae: 0.1061
Epoch 4/20
275/275 [==============================] - 187s 678ms/step - loss: 0.0015 - mape: 4746.2788 - mae: 0.0278 - val_loss: 0.0142 - val_mape: 16.1894 - val_mae: 0.1122
Epoch 5/20
 30/275 [==>...........................] - ETA: 2:38 - loss: 0.0012 - mape: 9.3647 - mae: 0.0246

MAPE 在每个 epoch 结束时都在爆炸。这种特定行为的原因可能是什么?

MAPE 仍然随着每个时期而减少,所以这不是真正的问题,因为它没有阻碍训练过程吗?

4

1 回答 1

3

你的损失和 MAPE 正在减少,所以听起来不错。但是,如果您担心 MAPE 中的高值,您可以判断 Y 值是否接近零。因为 MAPE 是一个百分比误差。

MAPE 结果可能具有误导性。来自维基百科

虽然 MAPE 的概念听起来非常简单和令人信服,但它在实际应用中存在重大缺陷,并且有很多关于 MAPE 的缺点和误导性结果的研究。

  1. 如果有零值(例如在需求数据中有时会发生),则不能使用它,因为会被零除。
  2. 对于过低的预测,误差百分比不能超过 100%,但对于过高的预测,误差百分比没有上限。
  3. MAPE 对消极错误的惩罚比对积极错误的惩罚更重。

为了克服 MAPE 的这些问题,文献中提出了一些其他措施:

  • 平均绝对比例误差 (MASE)
  • 对称平均绝对百分比误差 (sMAPE)
  • 平均方向精度 (MDA)
  • 平均反正切绝对百分比误差 (MAAPE)
于 2020-09-29T12:42:11.693 回答