德州网站建设哪家专业威海优化公司立找2火星

news/2025/9/24 3:39:04/文章来源:
德州网站建设哪家专业,威海优化公司立找2火星,wordpress translate,wordpress 修改主页文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果项目运行展示开发环境数据获取 最后 0 前言 #x1f525; 优质竞赛项目系列#xff0c;今天… 文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果项目运行展示开发环境数据获取 最后 0 前言 优质竞赛项目系列今天要分享的是 深度学习 大数据 股票预测系统 该项目较为新颖适合作为竞赛课题方向学长非常推荐 学长这里给一个题目综合评分(每项满分5分) 难度系数3分工作量3分创新点4分 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate 1 课题意义 利用神经网络模型如果能够提高对股票价格的预测精度更好地掌握股票价格发展趋势这对于投资者来说可以及时制定相应的发展策略更好地应对未来发生的不确定性事件对于个人来说可以降低投资风险减少财产损失实现高效投资具有一定的实践价值。 1.1 股票预测主流方法 股票市场复杂、非线性的特点使我们难以捉摸其变化规律目前有很多预测股票走势的论文和算法。 定量分析从精确的数据资料中获得股票发展的价值规律通过建立模型利用数学语言对股市的发展情况做出解释与预测。 目前常用的定量分析方法有 传统时间序列预测模型马尔可夫链预测灰色系统理论预测遗传算法机器学习预测等方法 2 什么是LSTM LSTM是长短期记忆网络LSTMLong Short-Term Memory想要理解什么是LSTM首先要了解什么是循环神经网络。 2.1 循环神经网络 对于传统的BP神经网络如深度前馈网络、卷积神经网络来说同层及跨层之间的神经元是独立的但实际应用中对于一些有上下联系的序列来说如果能够学习到它们之间的相互关系使网络能够对不同时刻的输入序列产生一定的联系像生物的大脑一样有“记忆功能”这样的话我们的模型也就会有更低的训练出错频率及更好的泛化能力。 JordanMI提出序列理论描述了一种体现“并行分布式处理”的网络动态系统适用于语音生成中的协同发音问题并进行了相关仿真实验ElmanJL认为连接主义模型中对时间如何表示是至关重要的1990年他提出使用循环连接为网络提供动态内存从相对简单的异或问题到探寻单词的语义特征网络均学习到了有趣的内部表示网络还将任务需求和内存需求结合在一起由此形成了简单循环网络的基础框架。 循环神经网络RNN之间的神经元是相互连接的不仅在层与层之间的神经元建立连接而且每一层之间的神经元也建立了连接隐藏层神经元的输入由当前输入和上一时刻隐藏层神经元的输出共同决定每一时刻的隐藏层神经元记住了上一时刻隐藏层神经元的输出相当于对网络增添了“记忆”功能。我们都知道在输入序列中不可避免会出现重复或相似的某些序列信息我们希望RNN能够保留这些记忆信息便于再次调用且RNN结构中不同时刻参数是共享的这一优点便于网络在不同位置依旧能将该重复信息识别出来这样一来模型的泛化能力自然有所上升。 RNN结构如下 2.1 LSTM诞生 RNN在解决长序列问题时未能有良好的建模效果存在长期依赖的弊端对此HochreiterS等人对神经单元做出了改进引入自循环使梯度信息得以长时间持续流动即模型可以拥有长期记忆信息且自循环权重可以根据前后信息进行调整并不是固定的。作为RNN的一种特殊结构它可以根据前后输入情况决定历史信息的去留增进的门控机制可以动态改变累积的时间尺度进而控制神经单元的信息流这样神经网络便能够自己根据情况决定清除或保留旧的信息不至于状态信息过长造成网络崩溃这便是长短期记忆LSTM网络。随着信息不断流入该模型每个神经元内部的遗忘门、输入门、输出门三个门控机制会对每一时刻的信息做出判断并及时进行调整更新LSTM模型现已广泛应用于无约束手写识别、语音识别、机器翻译等领域。 2 如何用LSTM做股票预测 2.1 算法构建流程 2.2 部分代码 ​ import numpy as npimport matplotlib.pyplot as pltimport tensorflow as tfimport pandas as pdimport mathdef LSTMtest(data):n1 len(data[0]) - 1 #因为最后一位为labeln2 len(data)print(n1, n2)# 设置常量input_size n1 # 输入神经元个数rnn_unit 10 # LSTM单元(一层神经网络)中的中神经元的个数lstm_layers 7 # LSTM单元个数output_size 1 # 输出神经元个数预测值lr 0.0006 # 学习率train_end_index math.floor(n2*0.9) # 向下取整print(train_end_index, train_end_index)# 前90%数据作为训练集后10%作为测试集# 获取训练集# time_step 时间步batch_size 每一批次训练多少个样例def get_train_data(batch_size60, time_step20, train_begin0, train_endtrain_end_index):batch_index []data_train data[train_begin:train_end]normalized_train_data (data_train - np.mean(data_train, axis0)) / np.std(data_train, axis0) # 标准化train_x, train_y [], [] # 训练集for i in range(len(normalized_train_data) - time_step):if i % batch_size 0:# 开始位置batch_index.append(i)# 一次取time_step行数据# x存储输入维度不包括label :X(最后一个不取# 标准化(归一化x normalized_train_data[i:i time_step, :n1]# y存储labely normalized_train_data[i:i time_step, n1, np.newaxis]# np.newaxis分别是在行或列上增加维度train_x.append(x.tolist())train_y.append(y.tolist())# 结束位置batch_index.append((len(normalized_train_data) - time_step))print(batch_index, batch_index)# print(train_x, train_x)# print(train_y, train_y)return batch_index, train_x, train_y# 获取测试集def get_test_data(time_step20, test_begintrain_end_index1):data_test data[test_begin:]mean np.mean(data_test, axis0)std np.std(data_test, axis0) # 矩阵标准差# 标准化(归一化normalized_test_data (data_test - np.mean(data_test, axis0)) / np.std(data_test, axis0)# // 表示整数除法。有size个sampletest_size (len(normalized_test_data) time_step - 1) // time_stepprint(test_size$$$$$$$$$$$$$$, test_size)test_x, test_y [], []for i in range(test_size - 1):x normalized_test_data[i * time_step:(i 1) * time_step, :n1]y normalized_test_data[i * time_step:(i 1) * time_step, n1]test_x.append(x.tolist())test_y.extend(y)test_x.append((normalized_test_data[(i 1) * time_step:, :n1]).tolist())test_y.extend((normalized_test_data[(i 1) * time_step:, n1]).tolist())return mean, std, test_x, test_y# ——————————————————定义神经网络变量——————————————————# 输入层、输出层权重、偏置、dropout参数# 随机产生 w,bweights {in: tf.Variable(tf.random_normal([input_size, rnn_unit])),out: tf.Variable(tf.random_normal([rnn_unit, 1]))}biases {in: tf.Variable(tf.constant(0.1, shape[rnn_unit, ])),out: tf.Variable(tf.constant(0.1, shape[1, ]))}keep_prob tf.placeholder(tf.float32, namekeep_prob) # dropout 防止过拟合# ——————————————————定义神经网络——————————————————def lstmCell():# basicLstm单元# tf.nn.rnn_cell.BasicLSTMCell(self, num_units, forget_bias1.0,# tate_is_tupleTrue, activationNone, reuseNone, nameNone) # num_units:int类型LSTM单元(一层神经网络)中的中神经元的个数和前馈神经网络中隐含层神经元个数意思相同# forget_bias:float类型偏置增加了忘记门。从CudnnLSTM训练的检查点(checkpoin)恢复时必须手动设置为0.0。# state_is_tuple:如果为True则接受和返回的状态是c_state和m_state的2-tuple如果为False则他们沿着列轴连接。后一种即将被弃用。# LSTM会保留两个state也就是主线的state(c_state),和分线的state(m_state)会包含在元组tuple里边# state_is_tupleTrue就是判定生成的是否为一个元组# 初始化的 c 和 a 都是zero_state 也就是都为list[]的zero这是参数state_is_tuple的情况下# 初始state,全部为0慢慢的累加记忆# activation:内部状态的激活函数。默认为tanh# reuse:布尔类型描述是否在现有范围中重用变量。如果不为True并且现有范围已经具有给定变量则会引发错误。# name:String类型层的名称。具有相同名称的层将共享权重但为了避免错误在这种情况下需要reuseTrue.#basicLstm tf.nn.rnn_cell.BasicLSTMCell(rnn_unit, forget_bias1.0, state_is_tupleTrue)# dropout 未使用drop tf.nn.rnn_cell.DropoutWrapper(basicLstm, output_keep_probkeep_prob)return basicLstmdef lstm(X): # 参数输入网络批次数目batch_size tf.shape(X)[0]time_step tf.shape(X)[1]w_in weights[in]b_in biases[in]# 忘记门输入门# 因为要进行矩阵乘法,所以reshape# 需要将tensor转成2维进行计算input tf.reshape(X, [-1, input_size])input_rnn tf.matmul(input, w_in) b_in# 将tensor转成3维计算后的结果作为忘记门的输入input_rnn tf.reshape(input_rnn, [-1, time_step, rnn_unit])print(input_rnn, input_rnn)# 更新门# 构建多层的lstmcell tf.nn.rnn_cell.MultiRNNCell([lstmCell() for i in range(lstm_layers)])init_state cell.zero_state(batch_size, dtypetf.float32)# 输出门w_out weights[out]b_out biases[out]# output_rnn是最后一层每个step的输出,final_states是每一层的最后那个step的输出output_rnn, final_states tf.nn.dynamic_rnn(cell, input_rnn, initial_stateinit_state, dtypetf.float32)output tf.reshape(output_rnn, [-1, rnn_unit])# 输出值同时作为下一层输入门的输入pred tf.matmul(output, w_out) b_outreturn pred, final_states# ————————————————训练模型————————————————————def train_lstm(batch_size60, time_step20, train_begin0, train_endtrain_end_index):# 于是就有了tf.placeholder# 我们每次可以将 一个minibatch传入到x tf.placeholder(tf.float32,[None,32])上# 下一次传入的x都替换掉上一次传入的x# 这样就对于所有传入的minibatch x就只会产生一个op# 不会产生其他多余的op进而减少了graph的开销。X tf.placeholder(tf.float32, shape[None, time_step, input_size])Y tf.placeholder(tf.float32, shape[None, time_step, output_size])batch_index, train_x, train_y get_train_data(batch_size, time_step, train_begin, train_end)# 用tf.variable_scope来定义重复利用,LSTM会经常用到with tf.variable_scope(sec_lstm):pred, state_ lstm(X) # pred输出值state_是每一层的最后那个step的输出print(pred,state_, pred, state_)# 损失函数# [-1]——列表从后往前数第一列即pred为预测值Y为真实值(Label)#tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴tensor的某一维度上的的平均值loss tf.reduce_mean(tf.square(tf.reshape(pred, [-1]) - tf.reshape(Y, [-1])))# 误差loss反向传播——均方误差损失# 本质上是带有动量项的RMSprop它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。# Adam的优点主要在于经过偏置校正后每一次迭代学习率都有个确定范围使得参数比较平稳.train_op tf.train.AdamOptimizer(lr).minimize(loss)saver tf.train.Saver(tf.global_variables(), max_to_keep15)with tf.Session() as sess:# 初始化sess.run(tf.global_variables_initializer())theloss []# 迭代次数for i in range(200):for step in range(len(batch_index) - 1):# sess.run(b, feed_dict replace_dict)state_, loss_ sess.run([train_op, loss],feed_dict{X: train_x[batch_index[step]:batch_index[step 1]],Y: train_y[batch_index[step]:batch_index[step 1]],keep_prob: 0.5})# 使用feed_dict完成矩阵乘法 处理多输入# feed_dict的作用是给使用placeholder创建出来的tensor赋值# [batch_index[step]: batch_index[step 1]]这个区间的X与Y# keep_prob的意思是留下的神经元的概率如果keep_prob为0的话 就是让所有的神经元都失活。print(Number of iterations:, i, loss:, loss_)theloss.append(loss_)print(model_save: , saver.save(sess, model_save2\\modle.ckpt))print(The train has finished)return thelosstheloss train_lstm()# 相对误差测量值-计算值/计算值×100%test_y np.array(test_y) * std[n1] mean[n1]test_predict np.array(test_predict) * std[n1] mean[n1]acc np.average(np.abs(test_predict - test_y[:len(test_predict)]) / test_y[:len(test_predict)])print(预测的相对误差:, acc)print(theloss)plt.figure()plt.plot(list(range(len(theloss))), theloss, colorb, )plt.xlabel(times, fontsize14)plt.ylabel(loss valuet, fontsize14)plt.title(loss-----blue, fontsize10)plt.show()# 以折线图表示预测结果plt.figure()plt.plot(list(range(len(test_predict))), test_predict, colorb, )plt.plot(list(range(len(test_y))), test_y, colorr)plt.xlabel(time value/day, fontsize14)plt.ylabel(close value/point, fontsize14)plt.title(predict-----blue,real-----red, fontsize10)plt.show()prediction() 需要完整代码工程的同学请联系学长获取 3 实现效果 3.1 数据 采集股票数据 任选几支股票作为研究对象。 3.2 预测结果 项目运行展示 废话不多说, 先展示项目运行结果, 后面才进行技术讲解 对某公司的股票进行分析和预测 : 开发环境 如果只运行web项目则只需安装如下包 python 3.6.x django 2.1.4 或者使用conda安装最新版 pandas 0.23.4 或者使用conda安装最新版 numpy 1.15.2 或者使用conda安装最新版 *apscheduler 2.1.2 请用pip install apscheduler2.1.2 安装conda装的版本不兼容 如果需要训练模型或者使用模型来预测(注需要保证本机拥有 NVIDIA GPU以及显卡驱动)则还需要安装 tensorflow-gpu 1.10.0 可以使用conda安装最新版。如用conda安装cudatoolkit和cudnn会被自动安装 cudatoolkit 9.0 根据自己本机的显卡型号决定请去NVIDIA官网查看 cudnn 7.1.4 版本与cudatoolkit9.0对应的其他版本请去NVIDIA官网查看对应的cudatoolkit版本 keras 2.2.2 可以使用conda安装最新版 matplotlib 2.2.2 可以使用conda安装最新版 数据获取 训练模型的数据即10个公司的历史股票数据。获取国内上市公司历史股票数据, 并以csv格式保存下来。csv格式方便用pandas读取输入到LSTM神经网络模型 用于训练模型以及预测股票数据。 最后 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端开发网站开发wordpress 注册页

如果要使用或仅通过Spring Boot检查Spring的最新版本,但当前的Spring Boot版本取决于旧的Spring版本,则需要稍微调整Gradle构建配置。 例如,在撰写本文时,Spring 4.2.1和Spring Boot 1.2.5是当前版本。 Spring Boot 1.2.5依赖于S…

贵阳有哪些做网站的公司seo网页优化包括哪些内容

创建版本库(又名仓库,repository),可以理解为一个仓库,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者…

外卖网站建设价钱徐州在线制作网站

来源:百度地图“新基建”浪潮下,智慧城市的建设和发展进一步提速,作为智慧城市数字基础设施的地理信息系统,其数据体量也极大增长,对海量GIS数据集成、存储、管理、计算、表达、分析和应用等有关技术的创新发展提出了急…

西宁集团网站建设办公软件培训

使用 reduce 方法去重 使用 reduce 方法结合 contains 方法可以实现去重。reduce 方法用于将数组的元素进行累积计算,而 contains 方法用于检查元素是否已经存在于结果数组中。 struct SearchRecord: Equatable {let id: Intlet name: String }let records [Sear…

福田设计网站网站建设属于哪类工作

软考-系统架构设计师-2021年上午选择题真题 考试时间 8:30 ~ 11:00 150分钟 1.前趋图(Precedence Graph)是一个有向无环图,记为:→(Pi,Pj)Pi must Complete Before Pj may strat), 假设系统中进程P{P1, P2,P3,P4, P5, P6, P7, P8}, 且进程的…

中国外贸导航网企业网站seo多少钱

01、Thymeleaf 官网地址:Thymeleafhttps://www.thymeleaf.org/ 简介 Thymeleaf是一种服务器端Java模板引擎,用于将数据渲染为HTML、XML、JavaScript等格式,并在Web浏览器中呈现给用户。 具体来说,Thymeleaf充当着视图层的角色&…

seo优化一般包括哪些搜索引擎优化包括( )方面的优化

package cn.com.dom4j.sort;public class QuickSort {/**快速排序在 Java中, 快速排序被用作基本数据类型的排序 (当然, 不只快速排序一种)快速排序是实践中的一种快速的排序算法, 在 C或对 Java基本类型的排序证特别有用.它的平均运行时间是 O(N logN), 该算法之所以特别快, 主…

东莞网站seo公司哪家大知名网站建设公司 北京

--更长寿命、更高速度、更优功耗 目录 --更长寿命、更高速度、更优功耗 1.LGA-8封装: 2.工业级SLC存储颗粒: 3.高IOPS性能: 4.健康状态侦测(Smart Function): 5.内嵌ECC校验、坏块管理、垃圾回收、磨损平均算法等功能。 6…

做单页网站男女做那个网站

试卷代号:1253座位号rn国家开放大学(中央广播电视大学)2017 年春季学期"开放本科"期末考试C 语言程序设计试题2017 年 6 月E自一、单项选择题(把合适的选项编号填写在括号内。每小题 2 分,共28 分)l. C 语言中的选择类语句有两条,它们是( )。A…

iis 网站建设中app建设网站

Ubuntu22.04部署K8s集群 一、基础环境准备1.1 VMware Workstation Pro 17.01.2 Ubuntu22.04 二、系统环境配置2.1 设置Master与工作节点的机器名称及配置2.2 解析主机2.3 虚拟内存swap分区关闭2.4 开启IPv4转发2.5 设置时间同步2.6 开启防火墙的端口(可选&#xff0…

好看的电商网站模板下载郑州做网站和推广哪家好

文章目录 前言一、代码设计框图二、IIC_drive模块设计2.1、模块接口:2.2、代码功能描述:2.3、IIC协议实现过程: 三、EEPROM_ctrl模块设计3.1、模块接口:3.2、代码功能描述 四、EEPROM_drive模块五、iic_top模块 前言 继上一篇FPG…

高碑店市建设局网站WordPress分页加载更多ajax

ScordCloud cakewolk band in a box 水果 FL Studio Chordana Composer LogicX Pro转载于:https://www.cnblogs.com/passby/p/4561627.html

建网站价格 建设网站需要多少钱广州外贸网站咨询

文章目录 使用场景问题现象解决处理 使用场景 我们使用docker作为服务的虚拟化工具,服务都部署在docker里我们使用docker-compose管理所有docker服务的配置文件针对某些服务,我们要限制这个docker服务容器占用的资源数量,例如cpu和内存在进行…

上海卫生人才网官网重庆seo教程

机器学习分类与性能度量 数据集:训练集(Training Set)、验证集(Validation Set)和测试集(Test Set) 1、 当模型无需人为设定超参数,所用参数都通过学习得到,则不需要验证集。验证集适合多个不同超参数训练多个模型,通过验证集,…

旅游网站建设方案书网络营销渠道的类型有哪些

目录 1. 网络拓扑1.1 配置思路1.2 数据准备2. 配置Underlay网络2.1 配置CE12.2 配置CE22.3 配置CE32.4 查看OSPF结果2.5 配置LSW12.6 配置LSW23. 配置Overlay网络二层互通(同网段)3.1 配置CE13.2 配置CE23.3 配置CE33.4 Server13.5 Server23.6 Server33.7 Server43.8 抓包分析…

AI 落地应用最新工具集

我们正处在一个历史性的拐点。人工智能不再仅仅是实验室里的前沿课题或科技巨头的炫技舞台,它正以前所未有的速度和广度,渗透到社会经济的每一个角落,从重塑行业格局到改变每个人的日常生活。这一波AI浪潮的核心特征…

乐都企业网站建设哪家快北京高端网站建设飞沐

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…

网站域名备案主机名服务器安wordpress

一、说明 本文章就是记录自己的学习过程,如果有用您可以参考,没用你就略过,没有好与不好之分,今天主要是参考了gitee上的一些项目,一步一步的往后i建立 对于学习来说,如果您有java c等经验,py…

优秀网页 网站百度网盟有哪些网站

人工智能如何在交通领域发挥作用? 答:人工智能在交通领域发挥着重要的作用,可以改善交通效率和安全性。以下是一些人工智能在交通领域的应用示例: 交通流量优化:人工智能可以通过分析实时交通数据、监控摄像头图像和传…