在MATLAB中计算对称平均百分比误差(SMAPE)

时间:2013-02-01 13:28:26

标签: matlab

我正在尝试编写一些代码,这些代码会自动计算与一系列预测相关的(所谓的)对称平均百分比误差。

此处描述了相关等式here

我已编写以下代码来完成此任务。

SMAPE =(sum(abs(结果(:,3))./((abs(结果(:,1))+ abs(结果(:,2)))/ 2)))*((numel(结果(:,3)))^( - 1));

我的代码有效但受到批评的理由是它太长而且难以阅读,我同意它很难阅读。我可以用更简单的方式完成同样的事情

2 个答案:

答案 0 :(得分:1)

如何定义变量y和f,那就简单如下:

y = Results(:,2);
f = Results(:,3);
0.5*mean(abs(y-f)./(abs(y)+abs(f)))

答案 1 :(得分:1)

我认为会是

2.0*mean(abs(y-f)./(abs(y)+abs(f)))