lstm预测股票代码是什么
时间: 2023-08-24 12:05:02 浏览: 55
以下是一个使用LSTM模型进行股票预测的示例代码,其中使用了Python和Keras库:
```python
import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from keras.models import Sequential
from keras.layers import LSTM, Dense
# 读取股票数据
data = pd.read_csv('stock_data.csv')
# 提取收盘价数据
close_price = data['Close'].values.reshape(-1, 1)
# 归一化数据
scaler = MinMaxScaler()
normalized_data = scaler.fit_transform(close_price)
# 划分训练集和测试集
train_size = int(len(normalized_data) * 0.8)
train_data = normalized_data[:train_size]
test_data = normalized_data[train_size:]
# 构建LSTM模型
model = Sequential()
model.add(LSTM(50, input_shape=(None, 1)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mean_squared_error')
# 准备训练数据
X_train = []
y_train = []
for i in range(60, len(train_data)):
X_train.append(train_data[i-60:i, 0])
y_train.append(train_data[i, 0])
X_train, y_train = np.array(X_train), np.array(y_train)
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))
# 模型训练
model.fit(X_train, y_train, epochs=10, batch_size=32)
# 准备测试数据
inputs = close_price[len(close_price) - len(test_data) - 60:]
inputs = inputs.reshape(-1, 1)
inputs = scaler.transform(inputs)
X_test = []
for i in range(60, len(inputs)):
X_test.append(inputs[i-60:i, 0])
X_test = np.array(X_test)
X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))
# 模型预测
predicted_stock_price = model.predict(X_test)
predicted_stock_price = scaler.inverse_transform(predicted_stock_price)
# 可视化预测结果
plt.plot(close_price[len(close_price) - len(test_data):], color='red', label='Real Stock Price')
plt.plot(predicted_stock_price, color='blue', label='Predicted Stock Price')
plt.title('Stock Price Prediction')
plt.xlabel('Time')
plt.ylabel('Stock Price')
plt.legend()
plt.show()
```
请注意,这只是一个简单的示例代码,实际使用时可能需要根据具体情况进行调整和优化。此外,股票市场存在风险,预测结果仅供参考,不构成投资建议。