中位数绝对误差回归损失计算

中位数绝对误差(Median Absolute Error, MAE)是一种衡量回归模型预测精度的指标。它计算的是预测值与真实值之间绝对差值的中位数。中位数绝对误差的值是非负浮点数,最佳值为0.0。在机器学习sklearn中,可以使用median_absolute_error函数来计算这一指标。

该函数的参数包括:

  • y_true:真实目标值,形状为(n_samples,)或(n_samples, n_outputs)的数组。
  • y_pred:预测目标值,形状与y_true相同。
  • multioutput:定义多输出值的聚合方式,默认为'uniform_average'。可选值为'raw_values'或形状为(n_outputs,)的数组。
  • sample_weight:样本权重,形状为(n_samples,)的数组,默认为None。

multioutput参数中,'raw_values'表示在多输出输入的情况下返回完整的错误集合,而'uniform_average'表示所有输出的错误以统一权重平均。此外,也可以传入一个数组来定义用于平均错误的权重。

函数返回值:

  • multioutput为'raw_values'时,返回每个输出的中位数绝对误差。
  • multioutput为'uniform_average'或权重数组时,返回所有输出错误的加权平均值。

示例代码

以下是使用sklearn库中的median_absolute_error函数计算中位数绝对误差的示例代码。

from sklearn.metrics import median_absolute_error # 单输出示例 y_true = [3, -0.5, 2, 7] y_pred = [2.5, 0.0, 2, 8] print(median_absolute_error(y_true, y_pred)) # 输出: 0.5 # 多输出示例 y_true = [[0.5, 1], [-1, 1], [7, -6]] y_pred = [[0, 2], [-1, 2], [8, -5]] print(median_absolute_error(y_true, y_pred)) # 输出: 0.75 # 返回每个输出的中位数绝对误差 print(median_absolute_error(y_true, y_pred, multioutput='raw_values')) # 输出: [0.5, 1.] # 使用自定义权重计算加权平均误差 print(median_absolute_error(y_true, y_pred, multioutput=[0.3, 0.7])) # 输出: 0.85

注意事项

在解释线性模型的系数时,常见的误区包括:

  • 系数的符号和大小直接反映了变量的影响程度。
  • 系数的显著性检验可以完全确定变量的重要性。
  • 模型的解释能力完全取决于系数的统计显著性。

此外,对目标变量进行变换(如对数变换、标准化等)可能会影响模型的解释和预测性能。在实际应用中,需要根据具体情况选择合适的变换方法。

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