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_truearray-like формы (n_samples,) или (n_samples, n_outputs)

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

y_predarray-like формы (n_samples,) или (n_samples, n_outputs)

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

sample_weightarray-like формы (n_samples,), по умолчанию None

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

multioutput{‘raw_values’, ‘uniform_average’, ‘variance_weighted’} или array-like формы (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–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.metrics.explained_variance_score.html

Spec-Zone.ru

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