时间序列预测:ARIMA/LSTM/Prophet 实战

时间序列预测:ARIMA/LSTM/Prophet 实战

1. 时间序列基础

复制代码
时间序列成分:
├── 趋势(Trend):长期变化方向
├── 季节性(Seasonality):周期性变化
├── 周期性(Cyclical):非固定周期波动
└── 噪声(Noise):随机波动

2. ARIMA

python 复制代码
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.tsa.stattools import adfuller

# 平稳性检验
result = adfuller(data)
print(f'ADF Statistic: {result[0]}')
print(f'p-value: {result[1]}')

# 差分使数据平稳
data_diff = data.diff().dropna()

# ARIMA 模型
model = ARIMA(data, order=(1, 1, 1))
model_fit = model.fit()
print(model_fit.summary())

# 预测
forecast = model_fit.forecast(steps=30)

3. LSTM

python 复制代码
import torch
import torch.nn as nn

class LSTMModel(nn.Module):
    def __init__(self, input_size, hidden_size, num_layers, output_size):
        super().__init__()
        self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True)
        self.fc = nn.Linear(hidden_size, output_size)
    
    def forward(self, x):
        lstm_out, _ = self.lstm(x)
        out = self.fc(lstm_out[:, -1, :])
        return out

# 数据准备
def create_sequences(data, seq_length):
    X, y = [], []
    for i in range(len(data) - seq_length):
        X.append(data[i:i+seq_length])
        y.append(data[i+seq_length])
    return np.array(X), np.array(y)

4. Prophet

python 复制代码
from prophet import Prophet

# 数据格式:ds(日期), y(值)
df = pd.DataFrame({'ds': dates, 'y': values})

model = Prophet(
    yearly_seasonality=True,
    weekly_seasonality=True,
    daily_seasonality=False
)
model.fit(df)

# 预测
future = model.make_future_dataframe(periods=30)
forecast = model.predict(future)

# 可视化
model.plot(forecast)
model.plot_components(forecast)

总结

方法 适用场景 优势
ARIMA 线性/平稳序列 统计理论完善
LSTM 非线性/复杂模式 捕捉长期依赖
Prophet 有季节性的业务数据 自动处理节假日
相关推荐
星马梦缘1 小时前
机器学习与模式识别 第八章 MAP与偏方差 考点压缩
人工智能·机器学习·map·岭回归·mle·双重下降
一楼的猫2 小时前
AI写作合规技术方案:平台检测机制分析与规避策略
人工智能·学习·机器学习·ai写作
geovindu2 小时前
python: Functional Options Pattern
开发语言·后端·python·设计模式·惯用法模式·函数式选项模式
星马梦缘2 小时前
机器学习与模式识别 第十四章 神经网络中的反向传播 考点压缩
人工智能·机器学习·微分·反向传播
tryCbest3 小时前
Python 文件操作
服务器·python
涛声依旧-底层原理研究所3 小时前
Agent 长任务可靠性设计:实现暂停、恢复、续跑与崩溃重启的完整方案
人工智能·python·系统架构
AC赳赳老秦3 小时前
防火墙规则批量配置实战:OpenClaw 自动生成模板、批量下发与合规性校验全解析
java·开发语言·人工智能·python·github·php·openclaw
小小编程路3 小时前
如何优化while循环的性能?
python
星马梦缘4 小时前
机器学习与模式识别 第十六章 Transformers 考点压缩
人工智能·机器学习·cnn·transformer·attention·注意力机制·mlp
触底反弹4 小时前
🔥 从点积到 Transformer:我终于搞懂大模型是怎么"猜"出下一个词的了
人工智能·机器学习·架构