You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keras中MSE损失下准确率定义及val_acc指标含义问询

Keras中MSE损失下val_acc指标的疑问解答

咱们把你提到的问题拆开来,一步步说清楚:

1. Keras用MSE做损失时,准确率由什么函数定义?

首先得明确:Keras里的accuracy(也就是你看到的acc/val_acc)本质是分类任务的专属指标,默认逻辑是统计预测类别和真实类别一致的样本比例。但如果是回归任务(比如你的模型用了linear激活函数、损失设为MSE),要是编译模型时没指定合适的回归指标,反而保留了默认的accuracy,那这个指标的计算逻辑就变成了:判断每个样本的预测值和真实值的绝对差是否小于一个极小阈值(比如1e-7),然后统计满足这个条件的样本占总样本数的比例。

简单说,这个“准确率”是把分类任务的逻辑硬套在了连续值的回归任务上,其实完全不适用。

2. 这个准确率的定义是什么?是不是MAPE?

绝对不是MAPE!

  • 这个默认acc的定义刚才说了:满足预测值与真实值的绝对差小于极小阈值的样本占比,是0到1之间的比例值。
  • 而MAPE(平均绝对百分比误差)是计算每个样本的|真实值-预测值|/真实值的平均值,衡量的是预测值相对于真实值的百分比误差,和这个“准确率”完全不是一回事。

3. 你的训练输出里val_acc: 0.3250代表什么?

这个0.3250的意思是:在你的验证集里,有32.5%的样本的预测值和真实值的绝对差小于Keras默认的极小阈值(比如1e-7)。但这个指标对你的回归任务来说几乎没有参考价值——毕竟连续数值的预测很难刚好接近到这个程度,它根本反映不了模型的回归效果。

小建议

回归任务应该用专门的回归指标来评估,比如直接看MSE(均方误差)、MAE(平均绝对误差)、MAPE这些。你可以在编译模型的时候显式指定这些指标,比如:

model.compile(optimizer='adam', loss='mean_squared_error', metrics=['mae', 'mape'])

这样训练时输出的就是对你有用的回归评估指标了。

内容的提问来源于stack exchange,提问作者Endre Moen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:03:44