在位置 n-k 处其中 n 是链表中点的个數,新的链表尾就在头的前面位于位置 n-k-1。
但是最后遍历到新的链表头的前一个就要停止因为这个节点的next要置为null
众所周知股票预测是一个玄学問题,没有经验和方法一不留神就可能被割韭菜了。当然本文仅针对单纯的数据进行预测不具备实际操作性,主要用于学习技术如果想将预测数据用于实际操作,则仅供娱乐不要太注重结果。
为方便下载和应用本文涉及的全部代码和数据集放在这里:。
因为股票嘚数值波动比较大在一整年内,一支股票的价格所经历的最高值和最低值的差距会非常大
而训练所需数据量要足够多,因此数据的分咘会非常不均匀在这个情况下不利于得出优秀的模型。因此需要对数据进行归一化/标准化不仅能节约时间,还利于得出更好的结果
RobustScaler()
縮放数据使极端异常值几乎没有影响,并能提高训练时间和整体模型性能
将数据分成两个序列,适当地格式化数据一个是已知值,另┅个是预测值当然预测值是空的。
通过这个函数就可以随意更改序列的长度。
例如使用过去100天的值来预测未来15天的价格 split_sequence()
函数会将数據格式转化为适当的 X 和 y 变量,其中 X 包含过去100天的收盘价和指标y 包含接下来15天的收盘价。
这里使用 LSTM(长短时记忆网络)进行预测相比一般的神经网络来说,它能够处理序列变化的数据且解决了长序列训练过程中的梯度消失和梯度爆炸问题。
接下来就是带入数据进行预测
這里需要将数据的维度进行变化增加一个维度,形如(samplestimesteps,input_dim)的3D张量这三部分的解释:假如我们输入有10个句子,每个句子都由5个单词組成而每个单词用64维的词向量表示。那么 samples=10timesteps=5,input_dim=64
因此需要增加一个 samples,数据不是太多因此设定为 1 批就行了,下面第一行代码的 reshape 就是将数據划分
将真实值和预测值用不同颜色表示:
在位置 n-k 处其中 n 是链表中点的个數,新的链表尾就在头的前面位于位置 n-k-1。
但是最后遍历到新的链表头的前一个就要停止因为这个节点的next要置为null
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。