explained_variance_score#

sklearn.metrics.explained_variance_score(y_true, y_pred, *, sample_weight=None, multioutput='uniform_average', force_finite=True)[source]#

Erklärte Varianz-Regressions-Score-Funktion.

Der bestmögliche Score ist 1.0, niedrigere Werte sind schlechter.

Im speziellen Fall, wenn y_true konstant ist, ist der Explained Variance Score nicht endlich: er ist entweder NaN (perfekte Vorhersagen) oder -Inf (unvollkommene Vorhersagen). Um zu verhindern, dass solche nicht-endlichen Zahlen höherstufige Experimente wie Grid-Search-Kreuzvalidierung "verschmutzen", werden diese Fälle standardmäßig durch 1.0 (perfekte Vorhersagen) bzw. 0.0 (unvollkommene Vorhersagen) ersetzt. Wenn force_finite auf False gesetzt ist, fällt dieser Score auf die ursprüngliche \(R^2\)-Definition zurück.

Hinweis

Der Explained Variance Score ähnelt dem R^2 Score, aber ersterer berücksichtigt keine systematischen Abweichungen bei der Vorhersage (wie z.B. den Achsenabschnitt bei linearen Modellen, d.h. unterschiedliche Achsenabschnitte ergeben denselben Explained Variance Score). Meistens sollte der R^2 Score bevorzugt werden.

Mehr dazu im Benutzerhandbuch.

Parameter:
y_truearray-ähnlich mit Form (n_samples,) oder (n_samples, n_outputs)

Wahrheitsgetreue (korrekte) Zielwerte.

y_predarray-ähnlich mit Form (n_samples,) oder (n_samples, n_outputs)

Geschätzte Zielwerte.

sample_weightarray-like der Form (n_samples,), Standardwert=None

Stichprobengewichte.

multioutput{‘raw_values’, ‘uniform_average’, ‘variance_weighted’} oder array-like der Form (n_outputs,), default=’uniform_average’

Definiert die Aggregation mehrerer Ausgabewerte. Ein Array-like-Wert definiert die Gewichte, die zur Mittelung der Scores verwendet werden.

‘raw_values’

Gibt einen vollständigen Satz von Scores im Falle eines Multioutput-Inputs zurück.

‘uniform_average’

Scores aller Ausgaben werden mit einheitlichem Gewicht gemittelt.

‘variance_weighted’

Scores aller Ausgaben werden gemittelt, gewichtet nach den Varianzen jeder einzelnen Ausgabe.

force_finitebool, default=True

Flag, das angibt, ob NaN- und -Inf-Scores, die aus konstanten Daten resultieren, durch reelle Zahlen ersetzt werden sollen (1.0 bei perfekter Vorhersage, ansonsten 0.0). Standard ist True, eine praktische Einstellung für Hyperparameter-Suchverfahren (z.B. Grid-Search-Kreuzvalidierung).

Hinzugefügt in Version 1.1.

Gibt zurück:
scorefloat oder ndarray aus floats

Die erklärte Varianz oder ein ndarray, wenn 'multioutput' 'raw_values' ist.

Siehe auch

r2_score

Ähnliche Metrik, die jedoch systematische Abweichungen in der Vorhersage berücksichtigt.

Anmerkungen

Dies ist keine symmetrische Funktion.

Beispiele

>>> from sklearn.metrics import explained_variance_score
>>> y_true = [3, -0.5, 2, 7]
>>> y_pred = [2.5, 0.0, 2, 8]
>>> explained_variance_score(y_true, y_pred)
0.957...
>>> y_true = [[0.5, 1], [-1, 1], [7, -6]]
>>> y_pred = [[0, 2], [-1, 2], [8, -5]]
>>> explained_variance_score(y_true, y_pred, multioutput='uniform_average')
0.983...
>>> y_true = [-2, -2, -2]
>>> y_pred = [-2, -2, -2]
>>> explained_variance_score(y_true, y_pred)
1.0
>>> explained_variance_score(y_true, y_pred, force_finite=False)
nan
>>> y_true = [-2, -2, -2]
>>> y_pred = [-2, -2, -2 + 1e-8]
>>> explained_variance_score(y_true, y_pred)
0.0
>>> explained_variance_score(y_true, y_pred, force_finite=False)
-inf