2014-02-21 2 views
6

У меня возникли проблемы с вычислением ошибки среднеквадратичного квадрата в IPython с помощью NumPy. Я уверен, что эта функция правильно, но когда я пытаюсь и входные значения, она дает мне следующее TypeError сообщение:Как рассчитать RMSE с помощью IPython/NumPy?

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():?

+1

Вот лучше solutionss: http://stackoverflow.com/questions/17197492/root-mean-square-error-in-python – mrgloom

+0

Возможный дубликат [ Корневая среднеквадратическая ошибка в python] (https://stackoverflow.com/questions/17197492/root-mean-square-error-in-python) – phunehehe

ответ

6

В нем говорится, что вычитание не определено для кортежей.

Попробуйте

print rmse(np.array([2,2,3]), np.array([0,2,6])) 

вместо этого.

4

В функции RMSE, попробуйте:

return np.sqrt(np.mean((predictions-targets)**2)) 
Смежные вопросы