python股票收盘价神经网络预测代码
时间: 2023-07-08 22:15:40 浏览: 295
基于Python的神经网络股票价格预测源码(期末大作业).zip
5星 · 资源好评率100%
这是一个简单的使用神经网络模型预测股票收盘价的 Python 代码示例:
```python
import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from keras.models import Sequential
from keras.layers import Dense, LSTM
# 读取数据
data = pd.read_csv('stock_data.csv')
# 提取收盘价特征
close_data = data.filter(['Close'])
# 将数据转换为 numpy 数组
close_values = close_data.values
# 训练集和测试集划分
train_size = int(len(close_values) * 0.8)
train_data = close_values[0:train_size, :]
test_data = close_values[train_size:, :]
# 数据归一化
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_train_data = scaler.fit_transform(train_data)
scaled_test_data = scaler.transform(test_data)
# 提取特征和标签
def create_dataset(data, look_back=1):
X, y = [], []
for i in range(len(data) - look_back - 1):
X.append(data[i:(i + look_back), 0])
y.append(data[i + look_back, 0])
return np.array(X), np.array(y)
look_back = 60
X_train, y_train = create_dataset(scaled_train_data, look_back)
X_test, y_test = create_dataset(scaled_test_data, look_back)
# 转换为 LSTM 输入格式
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))
X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))
# 初始化 LSTM 模型
model = Sequential()
model.add(LSTM(50, return_sequences=True, input_shape=(X_train.shape[1], 1)))
model.add(LSTM(50, return_sequences=False))
model.add(Dense(25))
model.add(Dense(1))
# 编译模型
model.compile(optimizer='adam', loss='mean_squared_error')
# 训练模型
model.fit(X_train, y_train, batch_size=1, epochs=1)
# 预测收盘价
predictions = model.predict(X_test)
predictions = scaler.inverse_transform(predictions)
print(predictions)
```
其中,`stock_data.csv` 是股票历史数据的 CSV 文件,包含收盘价特征列。首先将数据归一化,然后使用`create_dataset`函数将数据转换为 LSTM 输入格式。定义 LSTM 模型的网络架构,使用 adam 优化器和均方误差损失函数进行模型编译。使用训练集训练模型,并使用测试集进行预测。最后将预测结果转换为原始数据的单位并输出。在实际应用中,可以根据需要调整特征和模型参数,例如调整 LSTM 层数、神经元个数等等。
阅读全文