2014-02-21 13 views
6

Ich habe Probleme beim Berechnen des quadratischen Mittelfehlers in IPython mit NumPy. Ich bin mir ziemlich sicher, dass die Funktion richtig ist, aber wenn ich versuche und Eingabewerte, es gibt mir die folgende Typeerror-Nachricht:Wie berechne ich RMSE mit IPython/NumPy?

TypeError: unsupported operand type(s) for -: 'tuple' and 'tuple' 

Hier ist mein Code:

import numpy as np 

def rmse(predictions, targets): 
    return np.sqrt(((predictions - targets) ** 2).mean()) 

print rmse((2,2,3),(0,2,6)) 

Offensichtlich stimmt etwas nicht mit meinem Eingaben. Muss ich das Array einrichten, bevor ich es in die rmse(): Zeile einfüge?

+1

hier besser solutionss ist: http://stackoverflow.com/questions/17197492/root-mean-square-error-in-python – mrgloom

+0

Mögliches Duplikat von [ Root Mean Square Fehler in Python] (https://stackoverflow.com/questions/17197492/root-mean-square-error-in-python) – phunehehe

Antwort

6

Es besagt, dass die Subtraktion für Tupel nicht definiert ist.

Versuchen

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

statt.

4

In der rmse Funktion versuchen:

return np.sqrt(np.mean((predictions-targets)**2))