sklearn.metrics.r2_score

sklearn.metrics.r2_score(y_true, y_pred, *, sample_weight=None, multioutput='uniform_average')

R^2(确定系数)回归得分函数。

最佳可能得分为1.0,并且可能为负(因为该模型可能会更差)。 不管输入特征如何,始终预测y的期望值的常数模型将获得0.0的R^2分数。

用户指南中阅读更多内容。

参数 说明
y_true array-like of shape (n_samples,) or (n_samples, n_outputs)
真实目标值。
y_pred array-like of shape (n_samples,) or (n_samples, n_outputs)
预测目标值。
sample_weight array-like of shape (n_samples,), optional
样本权重。
multioutput string in [‘raw_values’, ‘uniform_average’, ‘variance_weighted’] or None or array-like of shape (n_outputs)
定义多个输出分数的汇总。类数组值定义用于平均分数的权重。 默认值为“ uniform_average”。

- ‘raw_values’:
如果是多输出格式的输入,则返回完整的分数集。
- ‘uniform_average’:
所有产出的分数均以统一权重平均。
- ‘variance_weighted’:

将所有输出的分数平均,并按每个单独输出的方差加权。

在版本0.19中更改:多输出的默认值为“ uniform_average”。
返回值 说明
z float or ndarray of floats
如果‘multioutput’为‘raw_values’,则为R^2分数或分数的ndarray。

这不是对称函数。

与大多数其他分数不同,R^2分数可能为负(实际上不必为数量R的平方)。

这个度量标准没有为单个样本定义,如果n_samples小于2,则将返回NaN值。

参考

1 Wikipedia entry on the Coefficient of determination

示例

>>> from sklearn.metrics import r2_score
>>> y_true = [3-0.527]
>>> y_pred = [2.50.028]
>>> r2_score(y_true, y_pred)
0.948...
>>> y_true = [[0.51], [-11], [7-6]]
>>> y_pred = [[02], [-12], [8-5]]
>>> r2_score(y_true, y_pred,
...          multioutput='variance_weighted')
0.938...
>>> y_true = [123]
>>> y_pred = [123]
>>> r2_score(y_true, y_pred)
1.0
>>> y_true = [123]
>>> y_pred = [222]
>>> r2_score(y_true, y_pred)
0.0
>>> y_true = [123]
>>> y_pred = [321]
>>> r2_score(y_true, y_pred)
-3.0