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 раздел для подробностей.

Ссылки

[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}