详细解释一下平均绝对误差(Mean Absolute Error,MAE)
时间: 2023-03-24 10:01:52 浏览: 497
平均绝对误差(MAE)是一种用于评估预测模型的性能的指标。MAE表示预测值与真实值之间的平均绝对差异,它是绝对误差的平均值。
MAE越小,表示模型的预测能力越好。MAE的计算公式如下:
$$ MAE = \frac{1}{n}\sum_{i=1}^n|y_i - \hat{y_i}| $$
其中,$y_i$表示真实值,$\hat{y_i}$表示模型预测值,$n$表示样本数量。
举个例子,假设有5个房屋的实际售价和模型预测的售价如下表所示:
| 房屋编号 | 真实售价 | 预测售价 |
| -------- | -------- | -------- |
| 1 | 200万 | 180万 |
| 2 | 300万 | 280万 |
| 3 | 400万 | 390万 |
| 4 | 500万 | 510万 |
| 5 | 600万 | 590万 |
则MAE的计算如下:
$$ MAE = \frac{1}{5}\sum_{i=1}^5|y_i - \hat{y_i}| = \frac{1}{5}(|200-180| + |300-280| + |400-390| + |500-510| + |600-590|) = 14 $$
因此,这个模型的MAE为14,表示它的平均预测误差为14万元。
相关问题
用R语言写,采用平均绝对误差(mean absolute error,MAE)选 用 个 指 标 分 别 对 ARIMA 和ARIMA_SVR 模型的预测性能进行评估
您好!感谢您的提问。关于您的问题,我可以给出以下回答:
首先,您提到的ARIMA和ARIMA_SVR模型都是时间序列预测模型,其预测性能可以采用平均绝对误差(MAE)进行评估。MAE是一个常用的评价指标,它衡量的是预测值与实际值之间的平均绝对误差,可以用来评估模型的预测精度。
如果您使用R语言进行模型开发和预测,可以使用forecast包中的accuracy函数来计算MAE指标。具体来说,您可以按照以下步骤进行:
1. 首先,使用arima函数或者arima模型中的auto.arima函数来训练ARIMA模型,并使用predict函数进行预测。
2. 然后,使用svm函数或者e1071包中的svm函数来训练ARIMA_SVR模型,并使用predict函数进行预测。
3. 最后,使用accuracy函数来计算MAE指标,代码如下:
```R
# 计算ARIMA模型的MAE指标
library(forecast)
arima_mae <- accuracy(arima_pred, test_data)[2]
# 计算ARIMA_SVR模型的MAE指标
library(e1071)
svm_fit <- svm(train_data, train_label)
svm_pred <- predict(svm_fit, test_data)
svm_mae <- mean(abs(svm_pred - test_label))
```
其中,arima_pred和svm_pred分别为ARIMA模型和ARIMA_SVR模型的预测结果,test_data和test_label为测试集的特征和标签,train_data和train_label为训练集的特征和标签。
需要注意的是,MAE越小表示模型的预测精度越高。因此,您可以通过比较ARIMA和ARIMA_SVR模型的MAE指标来评估它们的预测性能,选择更好的模型进行预测。
mean absolute error
平均绝对误差(Mean Absolute Error, MAE)是统计学中用来衡量成对观察之间误差的度量指标。它表示散点图中每个点与Y=X线之间的平均绝对垂直或水平距离。换句话说,MAE是X和Y之间的平均绝对差值。每个误差对MAE的贡献与误差的绝对值成正比。与均方根误差(RMSE)相比,MAE更简单且更容易解释。因为RMSE涉及对误差进行平方,所以较大的误差会使RMSE增加的程度更大。\[1\]
在Python中,可以使用以下代码计算平均绝对误差:
```python
def calculate_the_MAE(predicted_data, actual_data):
the_sum_of_error = 0
for i in range(len(actual_data)):
the_sum_of_error += abs(predicted_data\[i\] - actual_data\[i\])
MAE = the_sum_of_error / float(len(actual_data))
return MAE
actual_data = \[1, 2, 3, 4, 5, 6, 7, 8, 9, 10\]
predicted_data = \[2, 4, 3, 5, 4, 6, 5, 7, 6, 8\]
MAE = calculate_the_MAE(predicted_data, actual_data)
```
其中,`predicted_data`是预测数据,`actual_data`是真实数据。通过调用`calculate_the_MAE`函数,可以计算出平均绝对误差(MAE)的值。\[2\]
#### 引用[.reference_title]
- *1* *2* *3* [第六章 平均绝对误差(MAE)与均方根误差(RMSE)](https://blog.csdn.net/qq_36171491/article/details/123286460)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文