中位数绝对误差(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
在解释线性模型的系数时,常见的误区包括:
此外,对目标变量进行变换(如对数变换、标准化等)可能会影响模型的解释和预测性能。在实际应用中,需要根据具体情况选择合适的变换方法。