为什么逐步计算mse不会产生与MSE函数相同的解决方案?

时间:2019-06-01 19:42:55

标签: r variance mse tradeoff

我尝试通过MLmetrics软件包中的MSE函数手动计算测试集的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函数的结果。

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

1 个答案:

答案 0 :(得分:0)

我不明白为什么要加上(Bias)^ 2和Variance。 MSE等于:

平均值(根据定义,((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