解释方差回归评分函数

机器学习领域,评估预测模型的性能是非常重要的一环。解释方差回归评分函数是一种衡量模型预测准确性的工具。它通过比较模型预测值与实际值之间的方差,来评估模型的解释能力。最佳可能的评分是1.0,数值越低表示模型的预测性能越差。

在特殊情况下,如果实际值y_true是常数,那么解释方差评分将不是有限值:它可能是NaN(完美预测)或-Inf(不完美的预测)。为了防止这些非有限值影响更高层次的实验,比如网格搜索交叉验证,这些情况默认会被替换为1.0(完美预测)或0.0(不完美预测)。如果设置force_finite为False,评分将回退到原始的R^2定义。

解释方差评分与R^2评分相似,但有一个显著的区别是它不考虑预测中的系统性偏差。通常情况下,R^2评分更受青睐。

参数说明:

y_true: array-like of shape (n_samples,) or (n_samples, n_outputs) 实际的目标值。 y_pred: array-like of shape (n_samples,) or (n_samples, n_outputs) 预测的目标值。 sample_weight: array-like of shape (n_samples,), default=None 样本权重。 multioutput: {'raw_values', 'uniform_average', 'variance_weighted'} or array-like of shape (n_outputs,), default='uniform_average' 定义多输出评分的聚合方式。 force_finite: bool, default=True 如果设置为True,将替换由于数据为常数导致的NaN和-Inf评分。

返回值:

score: float or ndarray of floats 解释方差评分,或者是ndarray,如果'multioutput'设置为'raw_values'。

需要注意的是,这不是一个对称函数。以下是一些使用示例:

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
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485