我尝试通过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函数的结果。
我的错误在哪里,为什么我会得到相同的结果?
答案 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