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 score ,与显着的区别是,它没有考虑在预测的系统偏移。最常见的 R^2 score 应该是首选。

阅读更多的 User Guide .

参数:
y_true形状的类似阵列(n_samples,)或(n_samples,n_outputs)

地面真相(正确)目标值。

y_pred形状的类似阵列(n_samples,)或(n_samples,n_outputs)

估计目标值。

sample_weight形状类似数组(n_samples,),默认=无

样本重量。

multioutput' raw_values '、' unique_average '、'、'方差_加权'}或 形状类似数组(n_outputs,),默认=' unique_average '

定义多个输出分数的聚合。类似数组的值定义用于平均分数的权重。

“raw_values”:

在多输出输入的情况下返回完整的分数集。

'uniform_average':

所有输出的分数以统一的权重进行平均。

“方差_weighted”:

所有输出的分数均为平均值,并通过每个单独输出的方差加权。

force_finite布尔,默认=True

标志,指示是否 NaN-Inf 由常数数据得出的分数应替换为实数 (1.0 如果预测完美, 0.0 否则)。默认值为 True ,超参数搜索过程(例如网格搜索交叉验证)的方便设置。

Added in version 1.1.

返回:
score浮动或浮动数组

如果“多输出”为“raw_values”,则解释方差或nd数组。

参见

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