机器学习基础-监督学习-目标函数之平均绝对误差(Mean Absolute Error,MAE)
平均绝对误差(Mean Absolute Error,MAE)是一种用于衡量回归问题中预测值与真实值之间平均绝对差异的目标函数。它可以衡量预测值与真实值之间的平均误差大小,具有较好的鲁棒性。下面详细讲解 MAE,并提供一个示例代码和公式。
MAE 的计算公式如下:
MAE=1N∑i=1N∣yi−y^i∣MAE = \frac{1}{N}\sum_{i=1}^{N}\left \vert y_i-\hat y_i \right \vertMAE=N1i=1∑N∣yi−y^i∣
其中,N 表示样本数量,yiy_iyi 是真实值,y^i\hat y_iy^i 是预测值。
MAE 的值越小,表示预测值与真实值之间的平均差异越小,即预测的准确性越高。
下面是一个使用 Python 计算 MAE 的示例代码:
import numpy as np
def mean_absolute_error(y_true, y_pred):
N = len(y_true)
mae = np.sum(np.abs(y_true - y_pred)) / N
return mae
在示例代码中,y_true 是一个 NumPy 数组,表示真实值;y_pred 是一个 NumPy 数组,表示预测值。代码通过求取绝对值差异的平均值来计算 MAE。
使用示例代码,你可以计算实际问题中的 MAE,对于给定的真实值和预测值。
当计算平均绝对误差(MAE)时,可以使用不同的编程语言和库来实现。以下是另一个示例,使用 Scikit-learn 库来计算 MAE。
from sklearn.metrics import mean_absolute_error
# 示例真实值和预测值
y_true = [2.5, 1.5, 3.0, 2.1, 3.6]
y_pred = [2.0, 1.8, 2.5, 2.2, 3.2]
# 计算MAE
mae = mean_absolute_error(y_true, y_pred)
print("MAE:", mae)
在这个示例中,y_true 是一个包含真实值的列表,y_pred 是一个包含对应预测值的列表。通过调用 mean_absolute_error 函数,并传递真实值和预测值,可以计算出 MAE 的值。
需要注意的是,Scikit-learn 库还提供了其他回归性能度量的函数,例如均方误差(Mean Squared Error,MSE)、R 平方(R-squared)等,你可以根据需要选择合适的度量来评估回归模型的性能。
无论是使用自定义代码还是使用现有库,计算 MAE 都是一种简单且常用的评估回归模型性能的方法。它衡量了预测值与真实值之间的平均差异,可以帮助你评估模型的准确性和精度。
转载自:https://juejin.cn/post/7249627865426247735