均值绝对误差(Mean Absolute Error, MAE)是一种常用的回归损失函数,用于衡量预测值与实际值之间的差异。它通过计算所有样本的预测误差的平均值来评估模型的性能。MAE的值越小,表示模型的预测越准确。
MAE函数的参数包括:
y_true
:真实值,可以是形状为(n_samples,)或(n_samples, n_outputs)的数组。y_pred
:预测值,可以是形状为(n_samples,)或(n_samples, n_outputs)的数组。sample_weight
:可选参数,形状为(n_samples,)的数组,用于指定每个样本的权重。默认为None。multioutput
:可选参数,可以是'raw_values'、'uniform_average'或形状为(n_outputs,)的数组。用于指定多输出值的聚合方式。默认为'uniform_average'。其中,multioutput
参数的取值说明如下:
MAE函数的返回值包括:
multioutput
为'raw_values'时,返回每个输出的MAE值。multioutput
为'uniform_average'或数组时,返回所有输出的加权平均MAE值。MAE的输出是一个非负浮点数,最佳值为0.0。
以下是使用MAE函数的示例代码:
from sklearn.metrics import mean_absolute_error
# 示例1:单输出
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
# 示例2:多输出
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
# 示例3:多输出,指定输出权重
print(mean_absolute_error(y_true, y_pred, multioutput=[0.3, 0.7])) # 输出:0.85
MAE回归损失函数在多种场景下都有应用,例如: