r2_score
- sklearn.metrics.r2_score(y_true, y_pred, *, sample_weight=None, multioutput='uniform_average', force_finite=True)[source]
-
Функция расчета коэффициента детерминации \(R^2\) для регрессии.
Идеальное значение равно 1.0, может быть отрицательным (поскольку модель может быть произвольно хуже). В общем случае, когда истинное значение y не является постоянным, константная модель, которая всегда предсказывает среднее значение y, игнорируя входные признаки, получит значение \(R^2\) равное 0.0.
В частном случае, когда
y_trueявляется постоянным, значение \(R^2\) не является конечным: оно либоNaN(идеальные предсказания), либо-Inf(неидеальные предсказания). Для предотвращения влияния таких бесконечных чисел на эксперименты более высокого уровня, такие как поиск по сетке с перекрестной проверкой, по умолчанию эти случаи заменяются на 1.0 (идеальные предсказания) или 0.0 (неидеальные предсказания) соответственно. Вы можете установитьforce_finiteнаFalse, чтобы предотвратить эту корректировку.Примечание: когда остатки прогноза имеют нулевое среднее значение, значение \(R^2\) идентично значению
Explained Variance score.Подробнее см. в Руководстве пользователя.
- Parameters:
-
- y_truearray-like of shape (n_samples,) or (n_samples, n_outputs)
-
Истинные (верные) целевые значения.
- y_predarray-like of shape (n_samples,) or (n_samples, n_outputs)
-
Оценённые целевые значения.
- sample_weightarray-like of shape (n_samples,), default=None
-
Веса выборок.
- multioutput{‘raw_values’, ‘uniform_average’, ‘variance_weighted’}, array-like of shape (n_outputs,) or None, default=’uniform_average’
-
Определяет агрегирование нескольких результатов оценки. Массивоподобное значение определяет веса, используемые для усреднения результатов. По умолчанию — “uniform_average”.
- ‘raw_values’ :
-
Возвращает полный набор оценок в случае многомерного входного значения.
- ‘uniform_average’ :
-
Оценки всех выходных данных усредняются с равными весами.
- ‘variance_weighted’ :
-
Оценки всех выходных данных усредняются, взвешенные дисперсиями каждого отдельного выходного значения.
Изменено в версии 0.19: Значение по умолчанию для multioutput — ‘uniform_average’.
- force_finitebool, default=True
-
Флаг, указывающий, следует ли заменять
NaNи-Infоценки, полученные от постоянных данных, на вещественные числа (1.0если прогноз идеален,0.0в противном случае). Значение по умолчанию —True, удобный параметр для процедур поиска гиперпараметров (например, перекрестная проверка с подбором по сетке).Добавлена в версии 1.1.
- Returns:
-
- zfloat or ndarray of floats
-
Значение \(R^2\) или массив значений, если ‘multioutput’ равно ‘raw_values’.
Примечания
Функция несимметрична.
В отличие от большинства других оценок, значение \(R^2\) может быть отрицательным (он не обязательно должен быть квадратом величины R).
Эта метрика не определена для отдельных выборок и вернёт NaN, если n_samples меньше двух.
Ссылки
Примеры
>>> from sklearn.metrics import r2_score >>> y_true = [3, -0.5, 2, 7] >>> y_pred = [2.5, 0.0, 2, 8] >>> r2_score(y_true, y_pred) 0.948... >>> y_true = [[0.5, 1], [-1, 1], [7, -6]] >>> y_pred = [[0, 2], [-1, 2], [8, -5]] >>> r2_score(y_true, y_pred, ... multioutput='variance_weighted') 0.938... >>> y_true = [1, 2, 3] >>> y_pred = [1, 2, 3] >>> r2_score(y_true, y_pred) 1.0 >>> y_true = [1, 2, 3] >>> y_pred = [2, 2, 2] >>> r2_score(y_true, y_pred) 0.0 >>> y_true = [1, 2, 3] >>> y_pred = [3, 2, 1] >>> r2_score(y_true, y_pred) -3.0 >>> y_true = [-2, -2, -2] >>> y_pred = [-2, -2, -2] >>> r2_score(y_true, y_pred) 1.0 >>> r2_score(y_true, y_pred, force_finite=False) nan >>> y_true = [-2, -2, -2] >>> y_pred = [-2, -2, -2 + 1e-8] >>> r2_score(y_true, y_pred) 0.0 >>> r2_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.r2_score.html