MAPE和RMSE区别在哪里
时间: 2024-06-20 16:03:33 浏览: 11
MAPE和RMSE都是评估预测模型性能的指标,但它们的计算方式和含义有所不同。
MAPE(Mean Absolute Percentage Error)是平均绝对百分比误差,表示实际值与预测值之间的百分比误差的平均值,计算公式如下:
$$MAPE=\frac{1}{n}\sum_{i=1}^{n}\frac{\left | y_{i}-\hat{y}_{i} \right |}{y_{i}}\times 100\%$$
其中,$n$表示样本个数,$y_i$表示第$i$个样本的真实值,$\hat{y}_i$表示第$i$个样本的预测值。
RMSE(Root Mean Square Error)是均方根误差,表示实际值与预测值之间的差值的平方的平均值的平方根,计算公式如下:
$$RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^{2}}$$
其中,$n$表示样本个数,$y_i$表示第$i$个样本的真实值,$\hat{y}_i$表示第$i$个样本的预测值。
相比而言,MAPE更加关注预测误差的百分比,它对大误差和小误差的惩罚程度相等;而RMSE更加关注预测误差的绝对值大小,对大误差的惩罚程度更大。
相关问题
lasso回归分析预测计算MAPE以及RMSE和MAE
Lasso回归是一种线性回归方法,它通过对数据进行稀疏化处理,来避免过拟合问题。因此,对于Lasso回归模型的预测结果,可以使用MAPE、RMSE和MAE等指标来评估预测结果的准确性。
其中,MAPE是平均绝对百分比误差,它的计算公式如下:
$$MAPE=\frac{1}{n}\sum_{i=1}^{n}\Big|\frac{y_i-\hat{y}_i}{y_i}\Big|\times100\%$$
其中,$n$表示样本数量,$y_i$表示第$i$个样本的真实值,$\hat{y}_i$表示第$i$个样本的预测值。MAPE的值越小,表示模型的预测准确度越高。
RMSE是均方根误差,它的计算公式如下:
$$RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2}$$
其中,$n$表示样本数量,$y_i$表示第$i$个样本的真实值,$\hat{y}_i$表示第$i$个样本的预测值。RMSE的值越小,表示模型的预测准确度越高。
MAE是平均绝对误差,它的计算公式如下:
$$MAE=\frac{1}{n}\sum_{i=1}^{n}|y_i-\hat{y}_i|$$
其中,$n$表示样本数量,$y_i$表示第$i$个样本的真实值,$\hat{y}_i$表示第$i$个样本的预测值。MAE的值越小,表示模型的预测准确度越高。
因此,对于Lasso回归模型的预测结果,可以使用上述指标来评估预测准确度。
用python写出BP神经网络预测模型代码,输入一列单变量2526个时间序列数据,输出MAPE、RMSE、相关系数和最近800个时间序列预测图
好的,以下是一个简单的BP神经网络预测模型代码,输入数据为一列单变量2526个时间序列,输出包括MAPE,RMSE,相关系数和最近800个时间序列的预测图。
```python
import numpy as np
import pandas as pd
from sklearn.neural_network import MLPRegressor
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('data.csv')
y = data['y'].values
X = np.array(range(1, 2527)).reshape(-1, 1)
# 划分训练集和测试集
train_size = int(len(X) * 0.8)
X_train, X_test = X[:train_size], X[train_size:]
y_train, y_test = y[:train_size], y[train_size:]
# 建立模型
model = MLPRegressor(hidden_layer_sizes=(10, 10), activation='relu', solver='adam', max_iter=1000, random_state=1)
model.fit(X_train, y_train)
# 预测
y_pred = model.predict(X_test)
# 计算MAPE和RMSE
mape = np.mean(np.abs((y_test - y_pred) / y_test)) * 100
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
# 计算相关系数
corr = np.corrcoef(y_test, y_pred)[0][1]
# 绘制预测图
plt.plot(X_test[-800:], y_test[-800:], label='true')
plt.plot(X_test[-800:], y_pred[-800:], label='pred')
plt.legend(loc='upper left')
plt.show()
print('MAPE: %.2f%%' % mape)
print('RMSE: %.2f' % rmse)
print('Correlation coefficient: %.2f' % corr)
```
在代码中,我们使用sklearn库中的MLPRegressor类来建立BP神经网络模型,使用mean_absolute_error、mean_squared_error和r2_score等函数来计算MAPE、RMSE和相关系数,使用matplotlib库来绘制预测图。最后输出MAPE、RMSE和相关系数的值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)