explained_variance_score#

sklearn.metrics.explained_variance_score(y_true, y_pred, *, sample_weight=None, multioutput='uniform_average', force_finite=True)[источник]#

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

Наилучший возможный результат равен 1.0, меньшие значения хуже.

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

Примечание

Объясненная дисперсия похожа на R^2 score, но первый не учитывает систематические смещения в предсказании (такие как свободный член в линейных моделях, т.е. разные свободные члены дают одинаковый показатель Explained Variance). Чаще всего 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 из floats

Объясненная дисперсия или 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