平均绝对误差回归损失计算

平均绝对误差(Mean Absolute Error, MAE)是一种衡量回归模型预测准确度的指标,它通过计算预测值与真实值之间的绝对差的平均值来评估模型性能。在机器学习领域,MAE是一个常用的损失函数,用于训练过程中的误差反馈。

参数说明

在计算平均绝对误差时,需要指定以下参数:

  • y_true:真实目标值,可以是一维数组,也可以是二维数组,形状为(n_samples,)或(n_samples, n_outputs)。
  • y_pred:预测目标值,与真实目标值具有相同的形状。
  • sample_weight:可选参数,样本权重,用于调整每个样本在误差计算中的权重。
  • multioutput:多输出处理方式,可以是'raw_values'、'uniform_average'或形状为(n_outputs,)的数组。

其中,multioutput参数定义了如何处理多输出值的聚合。如果设置为'raw_values',则返回每个输出的单独误差;如果设置为'uniform_average',则所有输出的误差将被均匀加权平均;如果提供数组,则使用数组中的权重来平均误差。

返回值

计算结果为一个浮点数或浮点数数组。如果multioutput参数设置为'raw_values',则返回每个输出的平均绝对误差;如果设置为'uniform_average'或权重数组,则返回加权平均误差。MAE的输出是一个非负浮点数,最佳值为0.0。

示例代码

以下是使用Python的scikit-learn库计算平均绝对误差的示例代码:

from sklearn.metrics import mean_absolute_error # 单输出示例 y_true = [3, -0.5, 2, 7] y_pred = [2.5, 0.0, 2, 8] print(mean_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(mean_absolute_error(y_true, y_pred)) # 输出: 0.75 # 使用raw_values print(mean_absolute_error(y_true, y_pred, multioutput='raw_values')) # 输出: [0.5, 1. ] # 使用自定义权重 print(mean_absolute_error(y_true, y_pred, multioutput=[0.3, 0.7])) # 输出: 0.85

平均绝对误差回归损失在多个领域有广泛的应用,包括但不限于:

  • 时间序列预测:通过滞后特征来预测未来值。
  • 泊松回归:在非正态损失下进行回归分析。
  • 分位数回归:预测给定分位数的响应变量值。
  • Tweedie回归:在保险索赔分析中的应用。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485