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\) 定义.阅读更多的 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