dask_ml.metrics.r2_score
dask_ml.metrics.r2_score¶
- dask_ml.metrics.r2_score(y_true: dask_ml._typing.ArrayLike, y_pred: dask_ml._typing.ArrayLike, sample_weight: Optional[dask_ml._typing.ArrayLike] = None, multioutput: Optional[str] = 'uniform_average', compute: bool = True) dask_ml._typing.ArrayLike [源代码]¶
\(R^2\) (决定系数) 回归评分函数。
此文档字符串是从 sklearn.metrics.r2_score 复制的。
Dask 版本可能存在一些不一致性。
最佳可能得分是1.0,它也可能是负的(因为模型可能任意地更差)。在一般情况下,当真实的y是非恒定的,一个总是预测平均y而忽略输入特征的恒定模型将得到一个 \(R^2\) 得分为0.0。
在
y_true
为常数的特定情况下,\(R^2\) 分数不是有限的:它要么是NaN``(完美预测),要么是 ``-Inf``(不完美预测)。为了防止这些非有限数污染更高级别的实验,例如网格搜索交叉验证,默认情况下这些情况分别被替换为 1.0(完美预测)或 0.0(不完美预测)。你可以将 ``force_finite
设置为False
以防止此修复发生。注意:当预测残差具有零均值时,\(R^2\) 分数与
解释方差分数
相同。更多信息请参阅 用户指南。
- 参数
- y_true形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组
地面实况(正确)的目标值。
- y_pred形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组
估计的目标值。
- sample_weight类似数组的形状 (n_samples,),默认=None
样本权重。
- 多输出{‘raw_values’, ‘uniform_average’, ‘variance_weighted’}, 数组形式,形状为 (n_outputs,) 或 None, 默认=’uniform_average’
定义多个输出分数的聚合。类似数组的值定义了用于平均分数的权重。默认是 “uniform_average”。
- ‘原始值’ :
在多输出输入的情况下,返回完整的分数集。
- ‘uniform_average’ :
所有输出的分数以均匀权重进行平均。
- ‘variance_weighted’ :
所有输出的分数被平均,并根据每个单独输出的方差进行加权。
在 0.19 版更改: 多输出默认值为 ‘uniform_average’。
- force_finitebool, 默认=True (Dask 不支持)
指示是否应将由常量数据产生的
NaN
和-Inf
分数替换为实数(如果预测完美则为1.0
,否则为0.0
)的标志。默认值为True
,这是超参数搜索程序(例如网格搜索交叉验证)的便捷设置。1.1 新版功能.
- 返回
- z浮点数或浮点数数组
如果 ‘multioutput’ 是 ‘raw_values’,则为 \(R^2\) 分数或分数的 ndarray。
注释
这不是一个对称函数。
与大多数其他分数不同,\(R^2\) 分数可能是负的(它实际上不一定是某个量 R 的平方)。
对于单个样本,此指标定义不明确,如果 n_samples 小于两个,将返回 NaN 值。
参考文献
示例
>>> 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