python中的时间序列预测代码
时间: 2023-11-12 12:49:30 浏览: 130
时间序列预测是一种常见的机器学习任务,可以使用多种算法实现。以下是一个简单的基于ARIMA算法的时间序列预测的Python代码示例:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.arima_model import ARIMA
# 读取数据
data = pd.read_csv('data.csv', header=None, names=['date', 'value'])
# 将date列转换为时间格式,并设置为索引
data['date'] = pd.to_datetime(data['date'])
data.set_index('date', inplace=True)
# 拆分数据集
train_size = int(len(data) * 0.8)
train_data, test_data = data.iloc[:train_size], data.iloc[train_size:]
# 训练ARIMA模型
model = ARIMA(train_data, order=(2, 1, 2))
model_fit = model.fit(disp=0)
# 预测未来值
predictions = model_fit.forecast(steps=len(test_data))[0]
# 计算误差
error = np.mean(np.abs(predictions - test_data['value']))
# 可视化结果
plt.plot(train_data, label='Training Data')
plt.plot(test_data, label='Test Data')
plt.plot(test_data.index, predictions, label='Predictions')
plt.title(f'ARIMA Predictions (MAE={error:.2f})')
plt.legend()
plt.show()
```
其中,`data.csv`是包含时间序列数据的CSV文件,第一列是时间,第二列是数值。代码首先读取数据,将日期列转换成时间格式并设置为索引,然后将数据集拆分为训练集和测试集。接下来,使用ARIMA模型拟合训练数据,并使用模型预测测试集的值。最后,计算预测误差并将结果可视化。
阅读全文