Ist sklearn.Metriken.mean_squared_error die größer desto besser (negiert)?
Im Allgemeinen, die mean_squared_error
ist je kleiner, desto besser.
Wenn ich mit der sklearn Metriken Paket, heißt es in dem Dokument Seiten: http://scikit-learn.org/stable/modules/model_evaluation.html
Alle scorer Objekte Folgen der Konvention, dass höhere Werte zurückgegeben werden
besser als niedrigere Werte zurück. Also Metriken, die Messung der
Abstand zwischen dem Modell und den Daten, wie
Metriken.mean_squared_error, sind als neg_mean_squared_error
die Rückkehr der negierten Wert der Metrik.
und
Allerdings, wenn ich gehen Sie zu: http://scikit-learn.org/stable/modules/generated/sklearn.metrics.mean_squared_error.html#sklearn.metrics.mean_squared_error
Er sagt, es ist die Mean squared error regression loss
nicht sagen, es wird negiert.
Und wenn ich schaute in den Quellcode und überprüft das Beispiel dort:https://github.com/scikit-learn/scikit-learn/blob/a24c8b46/sklearn/metrics/regression.py#L183 tut es die normale mean squared error
, d.h. je kleiner, desto besser.
So Frage ich mich, wenn ich nichts übersehen habe über den negierten Teil in das Dokument. Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die eigentliche Funktion
"mean_squared_error"
nicht alles, was über den negativen Teil. Aber die Funktion implementiert, wenn Sie versuchen, 'neg_mean_squared_error' gibt eine negierte version der Partitur.Bitte überprüfen Sie den Quellcode, wie das definiert in der source-code:
Beobachten, wie die param
greater_is_better
eingestellt istFalse
.Nun alle diese Partituren/Verluste werden in verschiedenen anderen Dinge wie cross_val_score, cross_val_predict, GridSearchCV etc. Zum Beispiel, in den Fällen von "accuracy_score' oder 'f1_score', die höhere Punktzahl ist besser, aber im Fall von Verlust (Fehler), niedrigere Punktzahl ist besser. Behandeln Sie beide in gleicher Weise, es gibt die negativen.
Also dieses Dienstprogramm ist für die Handhabung des scores und Verluste in gleicher Weise, ohne den Quellcode ändern zu müssen für den spezifischen Verlust oder die Partitur.
So, Sie wollte nichts verpassen. Sie müssen nur aufpassen das Szenario, wo Sie wollen, verwenden Sie die Verlust-Funktion. Wenn Sie nur wollen, um die Berechnung der mean_squared_error können Sie
mean_squared_error
nur. Aber wenn Sie es benutzen wollen zu optimieren Ihrer Modelle, oder cross_validate mithilfe der Dienstprogramme vorhanden in scikit, verwenden Sie'neg_mean_squared_error'
.Vielleicht fügen Sie einige details über das, und ich werde mehr erklären.
Es ist eine Konvention für die Umsetzung Ihrer eigenen scoring-Objekt [Eins]. Und es muss positiv sein, denn Sie können erstellen Sie ein nicht-Verlust-Funktion zur Berechnung einer benutzerdefinierten positives Ergebnis. Das bedeutet, dass durch die Verwendung eines Verlust-Funktion (für eine score-Objekt), müssen Sie den negativen Wert ein.
Bereich von einem Verlust der Funktion ist:
(optimum) [0. ... +] (e.g. unequal values between y and y')
. Zum Beispiel überprüfen Sie die Formel der mittlere quadratische Fehler, es ist immer positiv:Bild Quelle: http://scikit-learn.org/stable/modules/model_evaluation.html#mean-squared-error