均方根误差有什么问题?
What is wrong with Root Mean Square Error?
我不明白我的 rMSE 实现有什么问题。我正在使用 MSE 作为损失函数和相同的指标来训练我的模型。训练后,我使用 evaluate
函数在测试集中评估我的模型,然后使用 predict
函数获取值。然后我应用 rMSE。我的代码是:
obs= model.compile(loss='mse', optimizer=keras.optimizers.Adam(lr=0.001),metrics=['mse'])
.......
test_eval = model.evaluate(X_test, Y_test, verbose=1)
print('Test loss (MSE):', test_eval[0])
predicted= model.predict(X_test, verbose=0)
rMSE = np.sqrt(pow(np.mean(predited- Y_test), 2))
print(rMSE)
我得到了这个结果:
Test loss (MSE): 12.0075311661
2.90274470011
但是 12.0075311661 的平方不是 2.90274470011。那么,有什么问题吗?
在求均值之前对差异进行元素平方。你想求平方差的平均值,而不是平均距离的平方。
我不明白我的 rMSE 实现有什么问题。我正在使用 MSE 作为损失函数和相同的指标来训练我的模型。训练后,我使用 evaluate
函数在测试集中评估我的模型,然后使用 predict
函数获取值。然后我应用 rMSE。我的代码是:
obs= model.compile(loss='mse', optimizer=keras.optimizers.Adam(lr=0.001),metrics=['mse'])
.......
test_eval = model.evaluate(X_test, Y_test, verbose=1)
print('Test loss (MSE):', test_eval[0])
predicted= model.predict(X_test, verbose=0)
rMSE = np.sqrt(pow(np.mean(predited- Y_test), 2))
print(rMSE)
我得到了这个结果:
Test loss (MSE): 12.0075311661
2.90274470011
但是 12.0075311661 的平方不是 2.90274470011。那么,有什么问题吗?
在求均值之前对差异进行元素平方。你想求平方差的平均值,而不是平均距离的平方。