我相信我在纯python中计算RMSE时出错了。下面是代码。
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
e = abs(np.matrix(y_pred) - np.matrix(y_true)).A1
ee = np.dot(e,e)
np.sqrt(ee.sum()/3)
This returns: 0.707
然而,当我尝试使用Sklearn时
mean_squared_error(np.matrix(y_true),np.matrix(y_pred))**0.5
This returns: 0.612
知道发生了什么事吗?很确定我的python代码是正确的。
答案 0 :(得分:6)
你没有犯错误。您除以3
,sklearn
除以4
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
e = abs(np.matrix(y_pred) - np.matrix(y_true)).A1
ee = np.dot(e,e)
np.sqrt(ee.sum()/4)
0.61237243569579447
除以n-1
为您提供无偏估计,并在计算样本的第二时刻时使用。在计算人口的这些相同时刻时,我们除以n
。以下是可能相关的链接Wikipedia Some other link
答案 1 :(得分:2)