2016-04-05 8 views
-1

Ich versuche, die Leistung eines Modells zu bewerten, und ich kann nicht scheinen zu erfassen, welche Punktzahl tatsächlich zurückkehrt. Die Dokumentation sagt:Ausgabe der Score-Funktion für das Modell in sklearn

Returns the mean accuracy on the given test data and labels. 
In multi-label classification, this is the subset accuracy which is a harsh 
metric since you require for each sample that each label set be correctly predicted. 

Dies ist nicht intuitiv - was ist Genauigkeit hier? Ich möchte Werte des mittleren quadratischen Fehlers sehen, um das Modell zu überprüfen. Wenn mein Modell also einen MSE von 30% hat, bedeutet das, dass seine "Punktzahl" 70% beträgt? Wenn ich das a-Modell verwende, das Parameter durch Kreuzvalidierung mit der auf mean_squared_error eingestellten Bewertungsfunktion auswählt, wird diese "Punktzahl" basierend darauf berechnet?

Ich kann keine Dokumentation zu diesem Thema finden - und ich würde die Hilfe wirklich schätzen.

Vielen Dank!

Antwort

0

Die accuracy ist der Prozentsatz der Beispiele korrekt klassifiziert.

>>> from sklearn.metrics import accuracy_score 
>>> y_pred = [0, 2, 1, 3] 
>>> y_true = [0, 1, 2, 3] 
>>> accuracy_score(y_true, y_pred) 
0.5 

Hier haben Sie 2 Beispiele von 4 korrekt klassifiziert, so dass die Genauigkeit ist 2/4 = 0,5

Wenn Sie die mean_squared_error dann verwenden Ihr Problem ein Regressionsproblem ist. Mit dieser Metrik in Ihrem GridSearch finden Sie den niedrigsten Fehler.

Der Trick besteht darin, bei der Cross-Validierung von Gridsearch das Ziel, die Score-Funktion zu maximieren. Aber die Maximierung des Fehlers wird eine schlechte Idee sein, also um mit der sklearn API konsistent zu sein, nehmen sie das Gegenteil von Ihrem Fehler als das Ergebnis. Auf diese Weise maximieren Sie Ihre Punktzahl, indem Sie den Fehler minimieren.

Also, wenn Sie Ihre Fehler angezeigt werden soll, stellen Sie sicher, dass Sie den absoluten Wert der Partitur nehmen

>>> abs(grid_search.best_score_) 
3.2 
Verwandte Themen