二次移动平均法交通量预测MAE的代码
时间: 2024-01-26 11:02:39 浏览: 53
基于BP神经网络的快速路小时交通量预测毕业设计.doc
5星 · 资源好评率100%
以下是使用二次移动平均法进行交通量预测并计算MAE的Python代码示例:
```python
import pandas as pd
import numpy as np
# 读取数据
data = pd.read_csv('traffic.csv', index_col=0)
# 定义二次移动平均函数
def second_moving_average(data, n):
ma1 = data.rolling(window=n).mean() # 一次移动平均
ma2 = ma1.rolling(window=n).mean() # 二次移动平均
return ma2
# 预测未来10个时间点的交通量
n = 10 # 一次移动平均窗口大小
future = 10 # 预测未来10个时间点
last_data = data['traffic'][-n:] # 取最后n个数据作为初始值
predictions = []
for i in range(future):
forecast = second_moving_average(last_data, n)[-1] # 预测下一个时间点的交通量
predictions.append(forecast)
last_data = np.append(last_data[1:], forecast) # 更新最后n个数据
# 计算MAE
actual = data['traffic'][-future:]
mae = np.mean(np.abs(predictions - actual))
print('MAE:', mae)
```
其中,`traffic.csv`是包含历史交通量数据的CSV文件,每行表示一个时间点的交通量。`second_moving_average`函数实现了二次移动平均的计算,输入参数`data`是一个Pandas Series类型的数据,`n`是一次移动平均的窗口大小。在预测过程中,我们先取最后n个数据作为二次移动平均的初始值,然后预测未来10个时间点的交通量,并将每次预测的结果加入到最后n个数据中,更新初始值。最后,计算预测结果与实际值之间的MAE。
阅读全文