LSTM股票预测运行代码
时间: 2024-06-16 12:01:30 浏览: 176
LSTM(长短期记忆网络)是一种递归神经网络,常用于序列数据的建模和预测,如股票价格。在股票预测中,LSTM被用来捕捉时间序列中的长期依赖性,以便进行趋势分析和预测。以下是一个简化版的Python代码,使用Keras库来构建一个基本的LSTM模型进行股票价格预测:
```python
# 导入所需的库
import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import LSTM, Dense
from sklearn.preprocessing import MinMaxScaler
# 假设我们已经有一个CSV文件df,包含日期和收盘价数据
df = pd.read_csv('stock_data.csv')
# 数据预处理
def preprocess_data(data, seq_len):
data = data['Close'].values.reshape(-1, 1)
scaler = MinMaxScaler()
data = scaler.fit_transform(data)
X, y = [], []
for i in range(len(data) - seq_len - 1):
X.append(data[i:i+seq_len])
y.append(data[i+seq_len])
return np.array(X), np.array(y), scaler
# 参数设置
seq_len = 60
X_train, y_train, scaler = preprocess_data(df, seq_len)
# 创建LSTM模型
model = Sequential()
model.add(LSTM(units=50, return_sequences=True, input_shape=(seq_len, 1)))
model.add(LSTM(units=50))
model.add(Dense(1))
# 编译模型
model.compile(optimizer='adam', loss='mean_squared_error')
# 训练模型
model.fit(X_train, y_train, epochs=100, batch_size=32)
# 预测示例
test_seq = [data[-seq_len:] for data in X_train] # 用实际数据的尾部做测试输入
test_seq = scaler.transform(test_seq)
predictions = model.predict(test_seq)
# 反标准化预测值
predicted_prices = scaler.inverse_transform(predictions)
# 打印预测结果
```
阅读全文