目录
以下是一个详细的示例,展示如何使用 Python 实现 LSTM 和 XGBoost 组合模型来预测 Apple Inc.(AAPL)股票价格。该项目涵盖了数据准备、特征工程、模型设计、超参数调整和预测结果的可视化。
1. 项目概述
本项目使用 LSTM(长短期记忆网络)和 XGBoost(极限梯度提升树)相结合的方法进行股票价格预测。通过组合这两种模型的优点,提高预测的准确性。具体步骤包括:
- 数据获取和准备
- 特征工程
- LSTM 模型设计与训练
- 使用 LSTM 的输出作为特征训练 XGBoost
- 结果评估与可视化
项目预测效果图
2. 数据获取
使用 yfinance 库获取 AAPL 的历史股票价格数据。
python复制代码
import yfinance as yf
import pandas as pd
# 获取 Apple Inc. 股票数据
ticker = 'AAPL'
data = yf.download(ticker, start='2015-01-01', end='2024-01-01')
# 数据预处理
data = data[['Close']]
data['Return'] = data['Close'].pct_change()
data.dropna(inplace=True)
data.head()
3. 特征工程
对时间序列数据进行特征工程,包括生成滑动窗口特征。
python复制代码
import numpy as np
# 创建滑动窗口特征
def create_dataset(data, time_step=1):
X, y = [], []
for i in range(len(data) - time_step - 1):
a = data[i:(i + time_step), 0]
X.append(a)
y.append(data[i + time_step, 0])
return np.array(X), np.array(y)