解释方差得分#
- 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\)定义。在用户指南中阅读更多内容。
- 参数:
- 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_finite布尔值,默认为 True
标志指示是否将由常量数据导致的
NaN
和-Inf
分数替换为实数(如果预测完美则为1.0
,否则为0.0
)。默认为True
,这是超参数搜索过程(例如网格搜索交叉验证)的便捷设置。1.1 版中新增。
- 返回:
- score浮点数或浮点数的 ndarray
如果 'multioutput' 为 'raw_values',则为解释方差或浮点数的 ndarray。
另请参阅
R方得分
类似的指标,但考虑了预测中的系统性偏移。
备注
这不是一个对称函数。
示例
>>> 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