d2_pinball_score#

sklearn.metrics.d2_pinball_score(y_true, y_pred, *, sample_weight=None, alpha=0.5, multioutput='uniform_average')[Quelle]#

D² Regressions-Score-Funktion, Bruchteil des erklärten Pinball-Verlusts.

Der beste mögliche Score ist 1,0 und er kann negativ sein (da das Modell beliebig schlechter sein kann). Ein Modell, das immer das empirische Alpha-Quantil von y_true als konstante Vorhersage verwendet und die Eingabemerkmale ignoriert, erzielt einen \(D^2\)-Score von 0,0.

Lesen Sie mehr im Benutzerhandbuch.

Hinzugefügt in Version 1.1.

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.

alphafloat, standardmäßig 0.5

Steigung der Pinball-Devianz. Sie bestimmt das Quantil-Niveau alpha, für das die Pinball-Devianz und auch D2 optimal sind. Der Standardwert alpha=0.5 ist äquivalent zu d2_absolute_error_score.

multioutput{‘raw_values’, ‘uniform_average’} oder array-ähnlich mit Form (n_outputs,), Standard=‘uniform_average’

Definiert die Aggregation mehrerer Ausgabe-Werte. Ein Array-ähnlicher Wert definiert die Gewichte, die zur Mittelung der Scores verwendet werden.

„raw_values“

Gibt einen vollständigen Satz von Fehlern im Falle einer Multioutput-Eingabe zurück.

„uniform_average“

Scores aller Ausgaben werden mit einheitlichem Gewicht gemittelt.

Gibt zurück:
scorefloat oder ndarray aus floats

Der \(D^2\)-Score mit einer Pinball-Devianz oder ein ndarray von Scores, wenn multioutput='raw_values'.

Anmerkungen

Wie \(R^2\) kann der \(D^2\)-Score negativ sein (er muss nicht tatsächlich das Quadrat einer Größe D sein).

Diese Metrik ist für einen einzelnen Punkt nicht gut definiert und gibt NaN zurück, wenn n_samples kleiner als zwei ist.

Diese Metrik ist kein integrierter String-Name-Scorer, der zusammen mit Tools wie GridSearchCV oder RandomizedSearchCV verwendet werden kann. Stattdessen können Sie ein Scorer-Objekt mit make_scorer mit beliebigen gewünschten Parametereinstellungen erstellen. Siehe den Abschnitt Beispiele für Details.

Referenzen

[2]

Gleichung (3.11) von Hastie, Trevor J., Robert Tibshirani und Martin J. Wainwright. „Statistical Learning with Sparsity: The Lasso and Generalizations.“ (2015). https://hastie.su.domains/StatLearnSparsity/

Beispiele

>>> from sklearn.metrics import d2_pinball_score
>>> y_true = [1, 2, 3]
>>> y_pred = [1, 3, 3]
>>> d2_pinball_score(y_true, y_pred)
0.5
>>> d2_pinball_score(y_true, y_pred, alpha=0.9)
0.772...
>>> d2_pinball_score(y_true, y_pred, alpha=0.1)
-1.045...
>>> d2_pinball_score(y_true, y_true, alpha=0.1)
1.0

Erstellen eines Scorer-Objekts mit make_scorer

>>> import numpy as np
>>> from sklearn.metrics import make_scorer
>>> from sklearn.model_selection import GridSearchCV
>>> from sklearn.linear_model import QuantileRegressor
>>> X = np.array([[1], [2], [3], [4]])
>>> y = np.array([2.5, 0.0, 2, 8])
>>> pinball_95_scorer = make_scorer(d2_pinball_score, alpha=0.95)
>>> grid = GridSearchCV(
...     QuantileRegressor(quantile=0.95),
...     param_grid={"fit_intercept": [True, False]},
...     scoring=pinball_95_scorer,
...     cv=2,
... ).fit(X, y)
>>> grid.best_params_
{'fit_intercept': True}