二次移动平均法交通量预测RMSE、MAE、MAPE、MRE代码
时间: 2023-06-26 09:05:12 浏览: 107
时间序列_matlab_时间序列预测_移动平均算法_describellf_
以下是使用二次移动平均法进行交通量预测的代码,包括计算RMSE、MAE、MAPE和MRE指标的代码:
```python
import numpy as np
import pandas as pd
from sklearn.metrics import mean_squared_error, mean_absolute_error
# 二次移动平均法交通量预测
def quadratic_moving_average(data, n):
data = np.array(data)
ma1 = np.convolve(data, np.ones(n)/n, mode='valid')
ma2 = np.convolve(ma1, np.ones(n)/n, mode='valid')
return ma2
# 计算RMSE、MAE、MAPE、MRE指标
def evaluate(y_true, y_pred):
rmse = np.sqrt(mean_squared_error(y_true, y_pred))
mae = mean_absolute_error(y_true, y_pred)
mape = np.mean(np.abs((y_true - y_pred) / y_true)) * 100
mre = np.mean((y_true - y_pred) / y_true) * 100
return rmse, mae, mape, mre
# 读取数据
data = pd.read_csv('traffic.csv', index_col=0, parse_dates=True)
# 划分训练集和测试集
train = data.loc['2019-01':'2019-06']
test = data.loc['2019-07':'2019-12']
# 预测测试集交通量
n = 4
pred = quadratic_moving_average(train['traffic'], n)[-6:]
y_true = test['traffic'].values
# 计算评价指标
rmse, mae, mape, mre = evaluate(y_true, pred)
print('RMSE:', rmse)
print('MAE:', mae)
print('MAPE:', mape)
print('MRE:', mre)
```
其中,`data`是包含交通量数据的DataFrame,`train`和`test`分别为训练集和测试集,`n`为移动平均窗口大小,`pred`为预测结果,`y_true`为测试集真实值。`quadratic_moving_average`函数实现了二次移动平均法,`evaluate`函数计算了RMSE、MAE、MAPE和MRE指标。
阅读全文