测试预测值相对于已知值的准确性

时间:2018-03-15 17:08:29

标签: machine-learning statistics regression analysis prediction

如果我想根据已知值评估预测值的准确性,可以执行以下操作:

result =absolutevalue((known value -  predicted value)/known value) 
0.054 =absolutevalue((37 -  39)/37)

因为结果接近于零,这意味着它非常准确 同样,如果我有一列值知道值,那么一列预测预测值可以通过

进行
(cumulative known values - cumulative predicted values) /cumulative known values

如果有人可以解释它,那会很有帮助,因为我的模型看起来相当准确,但它所描绘的分数根本不准确。

1 个答案:

答案 0 :(得分:0)

您应该避免评估错误相互抵消的模型。如果您将累积值与累积预测进行比较,则可能会发生这种情况。

这是一个例子

> 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

您也可以使用类似结果计算Mean absolute error

> sum(abs(df$known - df$predict)) / nrow(df)
[1] 5.25