如何使用IPython / NumPy计算RMSE?

时间:2014-02-21 05:28:40

标签: numpy ipython-notebook

我在尝试使用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():行之前,是否需要建立数组?

3 个答案:

答案 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 必须具有相同的形状。