0

我尝试手动计算测试集的 mse 值,并使用 MLmetrics 包中的 MSE 函数,但得到不同的结果。

这是一个可重现的示例:

ActualValuesExample <- c(1,1,3,3,2,5,1)
MSE(PredictionExample,ActualValuesExample)
Bias <- mean(PredictionExample-ActualValuesExample)
Variance <- mean((PredictionExample-ActualValuesExample)^2)
# MSE = Bias^2 + Variance
(Bias)^2 + Variance

0.4489796 是手动计算的结果,0.4285714 是 MSE 函数的结果。

我的错误在哪里,为什么我得到相同的结果?

4

1 回答 1

0

我不明白您为什么要添加 (Bias)^2 和 Variance。MSE 简单地等于:

mean((PredictionExample-ActualValuesExample)^2) 根据定义。这是您示例中的方差变量。更明确地说,MSE 是平方误差的平均值。这里的误差是指(实际 - 预测)。我尝试了一个人工值集并得到了相同的结果。下面是代码:

> ActualValuesExample <- c(1,1,3,3,2,5,1)
> PredictionExample <-   c(3,1,2,4,3,2,2)
> MSE(PredictionExample,ActualValuesExample) == mean((PredictionExample-ActualValuesExample)^2)
[1] TRUE
于 2019-06-01T21:22:23.580 回答