如果我想根据已知值评估预测值的准确性,可以执行以下操作:
result =absolutevalue((known value - predicted value)/known value)
0.054 =absolutevalue((37 - 39)/37)
因为结果接近于零,这意味着它非常准确同样,如果我有一列值知道值,那么一列预测的预测值可以通过以下方式做同样的事情
(cumulative known values - cumulative predicted values) /cumulative known values
如果有人可以解释它会很有帮助,因为我的模型看起来相当准确,但它描述的分数根本不准确。
应避免评估错误相互抵消的模型。如果将累积值与累积预测进行比较,则可能会发生这种情况。
这是一个例子
> df <- data.frame(known = c(5,17,11,24), predict = c(10,12,15,17))
> df
known predict
1 5 10
2 17 12
3 11 15
4 24 17
>
> df$known - df$predict
[1] -5 5 -4 7
>
累积相对差异低...
> abs(sum(df$known) - sum(df$predict)) / sum(df$known)
[1] 0.052631579
。但是如果你计算RMSE,你会发现你的预测有5个以上的单位差异
> sqrt(mean((df$known - df$predict)^2))
[1] 5.3619026
。归一化为您的值平均值要高得多
> sqrt(mean((df$known - df$predict)^2)) / mean (df$known)
[1] 0.37627387
您也可以计算具有类似结果的平均绝对误差
> sum(abs(df$known - df$predict)) / nrow(df)
[1] 5.25