我在尝试使用NumPy计算IPython中的均方根误差时遇到问题。我很确定该函数是正确的,但是当我尝试输入值时,它会给我以下TypeError消息:
TypeError: unsupported operand type(s) for -: 'tuple' and 'tuple'
这是我的代码:
import numpy as np
def rmse(predictions, targets):
return np.sqrt(((predictions - targets) ** 2).mean())
print rmse((2,2,3),(0,2,6))
显然我的输入有问题。在将数组放入rmse():
行之前,是否需要建立数组?
答案 0 :(得分:13)
在rmse函数中,尝试:
return np.sqrt(np.mean((predictions-targets)**2))
答案 1 :(得分:6)
它表示没有为元组定义减法。
尝试
print rmse(np.array([2,2,3]), np.array([0,2,6]))
代替。
答案 2 :(得分:0)
RMSE 是根据测量数据和每次测量的预测或地面实况数据计算得出的。
rmse = np.linalg.norm(measured - truth) / len(truth)
measured 和 truth 必须具有相同的形状。