Spec-Zone.ru › scikit-learn

explained_variance_score

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

Функция оценки регрессии на основе объяснённой дисперсии.

Наилучшая возможная оценка — 1.0; меньшие значения хуже.

В частности, если y_true является константой, оценка объяснённой дисперсии не является конечной: она равна либо NaN (идеальные предсказания), либо -Inf (неидеальные предсказания). Чтобы такие бесконечные значения не влияли на эксперименты более высокого уровня, например на перекрёстную проверку при поиске по сетке, по умолчанию в этих случаях они заменяются соответственно на 1.0 (идеальные предсказания) или 0.0 (неидеальные предсказания). Если force_finite установлено в False, эта оценка использует исходное определение \(R^2\).

Примечание

Оценка объяснённой дисперсии похожа на R^2 score, но первая не учитывает систематические смещения в предсказании (например, свободный член в линейных моделях: разные свободные члены дают одинаковую оценку объяснённой дисперсии). В большинстве случаев предпочтительнее использовать R^2 score.

Подробнее см. в руководстве пользователя.

Параметры:
y_trueмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)

Истинные (корректные) значения целевой переменной.

y_predмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)

Оценённые значения целевой переменной.

sample_weightмассивоподобный объект формы (n_samples,), по умолчанию None

Веса образцов.

multioutput{‘raw_values’, ‘uniform_average’, ‘variance_weighted’} или массивоподобный объект формы (n_outputs,), по умолчанию ’uniform_average’

Задаёт способ агрегирования оценок для нескольких выходов. Значение в виде массивоподобного объекта задаёт веса, используемые для усреднения оценок.

‘raw_values’ :

В случае входных данных с несколькими выходами возвращает полный набор оценок.

‘uniform_average’ :

Оценки для всех выходов усредняются с одинаковыми весами.

‘variance_weighted’ :

Оценки для всех выходов усредняются с весами, пропорциональными дисперсиям каждого отдельного выхода.

force_finitebool, по умолчанию True

Флаг, указывающий, следует ли заменять оценки NaN и -Inf, полученные для константных данных, конечными числами (1.0 при идеальном предсказании, 0.0 в противном случае). По умолчанию установлено True — это удобно при процедурах поиска гиперпараметров (например, при перекрёстной проверке с поиском по сетке).

Добавлено в версии 1.1.

Возвращает:
scorefloat или массив ndarray из значений float

Объяснённая дисперсия или массив ndarray, если ‘multioutput’ имеет значение ‘raw_values’.

См. также

r2_score

Похожая метрика, которая учитывает систематические смещения в предсказании.

Примечания

Эта функция не является симметричной.

Примеры

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

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.explained_variance_score.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API