explained_variance_score#

sklearn.metrics.explained_variance_score(y_true, y_pred, *, sample_weight=None, multioutput='uniform_average', force_finite=True)[源]#

解释方差回归评分函数。

最佳可能得分为 1.0,较低的值表示较差。

y_true 为常数的情况下,解释方差得分不是有限的:它要么是 NaN(完美预测),要么是 -Inf(不完美预测)。为了防止此类非有限数污染更高层次的实验(例如网格搜索交叉验证),默认情况下,这些情况分别被替换为 1.0(完美预测)或 0.0(不完美预测)。如果将 force_finite 设置为 False,则此分数将回退到原始的 \(R^2\) 定义。

注意

解释方差得分与 R^2 得分 相似,但值得注意的是它不考虑预测中的系统性偏差。通常应优先使用 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浮点数或浮点数数组

解释方差,如果 ‘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