d2_pinball_score#
- sklearn.metrics.d2_pinball_score(y_true, y_pred, *, sample_weight=None, alpha=0.5, multioutput='uniform_average')[источник]#
\(D^2\) функция оценки регрессии, доля объяснённой потери пинбола.
Наилучший возможный результат равен 1.0, и он может быть отрицательным (поскольку модель может быть произвольно хуже). Модель, которая всегда использует эмпирический альфа-квантиль
y_trueкак постоянное предсказание, игнорируя входные признаки, получает \(D^2\) оценка 0.0.Подробнее в Руководство пользователя.
Добавлено в версии 1.1.
- Параметры:
- y_truearray-like формы (n_samples,) или (n_samples, n_outputs)
Истинные (правильные) целевые значения.
- y_predarray-like формы (n_samples,) или (n_samples, n_outputs)
Оцененные целевые значения.
- sample_weightarray-like формы (n_samples,), по умолчанию=None
Веса выборок.
- alphafloat, по умолчанию=0.5
Наклон девиации пинбола. Он определяет уровень квантиля alpha, для которого девиация пинбола, а также D2 оптимальны. По умолчанию
alpha=0.5эквивалентноd2_absolute_error_score.- multioutput{‘raw_values’, ‘uniform_average’} или массив формы (n_outputs,), по умолчанию ‘uniform_average’
Определяет агрегирование нескольких выходных значений. Массивоподобное значение определяет веса, используемые для усреднения оценок.
- 'raw_values' :
Возвращает полный набор ошибок в случае многоцелевого ввода.
- 'uniform_average' :
Оценки всех выходов усредняются с равномерным весом.
- Возвращает:
- scorefloat или ndarray из floats
The \(D^2\) оценка с отклонением пинбола или ndarray оценок, если
multioutput='raw_values'.
Примечания
Как \(R^2\), \(D^2\) оценка может быть отрицательной (она не обязательно должна быть квадратом величины D).
Эта метрика не определена для одной точки и вернёт значение NaN, если n_samples меньше двух.
Эта метрика не является встроенной строка имени скорера для использования вместе с такими инструментами, как
GridSearchCVилиRandomizedSearchCV. Вместо этого вы можете создать объект оценки используяmake_scorer, с любыми желаемыми настройками параметров. См.Examplesраздел для подробностей.Ссылки
[1]Уравнение (7) из Koenker, Roger; Machado, José A. F. (1999). “Goodness of Fit and Related Inference Processes for Quantile Regression”
[2]Уравнение (3.11) из Hastie, Trevor J., Robert Tibshirani and Martin J. Wainwright. "Statistical Learning with Sparsity: The Lasso and Generalizations." (2015). https://hastie.su.domains/StatLearnSparsity/
Примеры
>>> 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
Создание объекта оценки с
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}