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_trueals 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.5ist äquivalent zud2_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
GridSearchCVoderRandomizedSearchCVverwendet werden kann. Stattdessen können Sie ein Scorer-Objekt mitmake_scorermit beliebigen gewünschten Parametereinstellungen erstellen. Siehe den AbschnittBeispielefür Details.Referenzen
[1]Gleichung (7) in Koenker, Roger; Machado, José A. F. (1999). „Goodness of Fit and Related Inference Processes for Quantile Regression“
[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}