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