A-A+

训练openai通过TensorFlow写出一个完善的股票模型

2022年12月10日 10:26 学习笔记 暂无评论 共2230字 (阅读676 views次)

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】

如果前面的看不懂都没关系,直接拉到最下面,你就完全的懂了!!! 这个图只是人工训练AI写代码的过程而已!

 

使用 TensorFlow 2 的 Keras 模块来实现多维度的股票模型的代码

隐藏层神经元个数要多一些,模型要更强大一些,考虑的实际场景要更复杂一些的

不够复杂,没有输入数据的维度,要有多个维度的输入数据,同时要通过8天的多个维度的数据来推算第9天的结果

代码中要加入数据的归一化处理

大量学习前8天的股票数据后,来推算第9天的结果

完整的代码示例

 

import tensorflow as tf
from tensorflow.keras import layers
import matplotlib.pyplot as plt

# 定义输入数据的维度
num_input_dimensions = 8
num_features = 5

# 定义神经网络模型
model = tf.keras.Sequential()
model.add(layers.BatchNormalization(input_shape=(num_input_dimensions, num_features)))
model.add(layers.Dense(50, activation='relu'))
model.add(layers.Dense(30, activation='relu'))
model.add(layers.Dense(1))

# 编译模型,定义损失函数和优化器
model.compile(loss='mean_squared_error', optimizer='adam')

# 训练模型
history = model.fit(X_train, y_train, epochs=50, batch_size=32, validation_split=0.2)

# 绘制损失函数曲线
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('Model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['Train', 'Val'], loc='upper left')
plt.show()

# 预测第9天的股票价格
predictions = model.predict(X_test)

示例输入 X_test

import numpy as np

# 定义测试数据
X_test = np.array([
    # 第一个样本,包含过去 8 天的 5 维度数据
    [[1.1, 2.2, 3.3, 4.4, 5.5], [6.6, 7.7, 8.8, 9.9, 10.10], [11.11, 12.12, 13.13, 14.14, 15.15], [16.16, 17.17, 18.18, 19.19, 20.20], [21.21, 22.22, 23.23, 24.24, 25.25], [26.26, 27.27, 28.28, 29.29, 30.30], [31.31, 32.32, 33.33, 34.34, 35.35], [36.36, 37.37, 38.38, 39.39, 40.40]],
    # 第二个样本,包含过去 8 天的 5 维度数据
    [[41.41, 42.42, 43.43, 44.44, 45.45], [46.46, 47.47, 48.48, 49.49, 50.50], [51.51, 52.52, 53.53, 54.54, 55.55], [56.56, 57.57, 58.58, 59.59, 60.60], [61.61, 62.62, 63.63, 64.64, 65.65], [66.66, 67.67, 68.68, 69.69, 70.70], [71.71, 72.72, 73.73, 74.74, 75.75], [76.76, 77.77, 78.78, 79.79, 80.80]]
])

我这里在解释一下,[1.1, 2.2, 3.3, 4.4, 5.5] 你可以理解为第一天的股票样本数据,

例如:
1.1 代表XXX股票的开盘价
2.2 代表XXX股票当天的收盘价
3.3 代表XXX股票当天的换手率
4.4 代表XXX股票当天的成交额
5.5 代表XXX股票当天的涨跌额

股票的维度当然越高越好、数据越多越好、神经网络这个需要适中,需要你不断的调试,这个并不是越多越好。其他都需要慢慢调试,比如用时间序列模型等等。

由此可见,这个AI确实很有空间,如果就这样训练下去,大概用不上一个星期 就可以出一个完整的股票训练模型。

布施恩德可便相知重

微信扫一扫打赏

支付宝扫一扫打赏

×

给我留言