范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

利用LSTM实现股价预测

  长短时记忆(LSTM)是一种能增加递归神经网络(RNN)记忆的模型。递归神经网络保留短期记忆,因为它们允许在当前神经网络中更早地确定信息。
  对于即时任务,RNN使用早期的数据,但我们可能没有利用神经元所有的早期信息。在RNN中,LSTM得到了广泛的应用。视频、自然语言处理、地理空间和时间序列等多个应用领域中,都证实了LSTM的有效性。
  RNN的一个主要问题是梯度消失问题,它是由于在RNN块中重复使用相同的参数而产生的。我们必须在每个时间步中尝试使用不同的参数来克服这个问题。
  我们努力在这样的情况下找到平衡。 在生成变长序列的同时,我们在每一步引入新的参数,同时保持可学习参数的总数量不变。我们引入了基于门控机制的RNN单元,如LSTM和GRU。
  门控单元保存内部变量,即利用其中的门。每个时间步的每个门的值取决于该时间步的信息,包括早期状态。然后,门的值乘以不同的权重变量来影响它们。
  时间序列数据是在一段时间内收集的一系列数据值,允许我们跟踪一段时间内的差异。时间序列数据可以以毫秒、天和年为单位跟踪进程。
  早期,我们把时间序列数据视为静态的;每天气温下的高点和低点,股市的开盘价和收盘价。现在我们将进入编码部分。我们将在股票数据集上实现LSTM。
  数据集:
  https://github.com/PacktPublishing/Learning-Pandas-Second-Edition/blob/master/data/goog.csv
  二、利用LSTM实现股票的时间序列预测
  读取数据:
  gstock_data = pd.read_csv("data.csv") gstock_data .head()
  数据集探索:
  该数据集包含14列与时间序列(如日期)和不同的变量(如close、high、low和volume)相关。我们将使用开盘价和收盘价来用LSTM进行时间序列预测。
  gstock_data = gstock_data [["date","open","close"]] gstock_data ["date"] = pd.to_datetime(gstock_data ["date"].apply(lambda x: x.split()[0])) gstock_data .set_index("date",drop=True,inplace=True) gstock_data .head()
  我们在这里进行了一些特征提取。我们从整个日期变量中单独取出日期。现在,我们可以使用matplotlib来可视化可用数据,并查看数据中的价格值是如何显示的。如下所示的价格-日期图中绿色表示开盘价,红色表示收盘价。
  fg,ax=plt.subplots(1,2,figsize=(20,7)) ax[0].plot(gstock_data ["open"],label="Open",color="green") ax[0].set_xlabel("Date",size=15) ax[0].set_ylabel("Price",size=15) ax[0].legend() ax[1].plot(gstock_data ["close"],label="Close",color="red") ax[1].set_xlabel("Date",size=15) ax[1].set_ylabel("Price",size=15) ax[1].legend() fg.show()
  数据预处理:
  我们必须在使用LSTM应用在股票价格之前对这些数据进行预处理。在fit_transform函数的帮助下转换数据中的值。Min-max scaler用于缩放数据,以便我们可以对所有的价格值归一化 然后,我们使用80%的数据进行训练,其余20%用于测试,并将它们分配到单独的变量中。
  from sklearn.preprocessing import MinMaxScaler Ms = MinMaxScaler() gstock_data [gstock_data .columns] = Ms.fit_transform(gstock_data ) training_size = round(len(gstock_data ) * 0.80) train_data = gstock_data [:training_size] test_data  = gstock_data [training_size:]
  训练数据的划分:
  创建一个函数,以便我们可以创建用于训练和测试的序列。
  def create_sequence(dataset):   sequences = []   labels = []     start_idx = 0     for stop_idx in range(50,len(dataset)):     sequences.append(dataset.iloc[start_idx:stop_idx])     labels.append(dataset.iloc[stop_idx])     start_idx += 1   return (np.array(sequences),np.array(labels))   train_seq, train_label = create_sequence(train_data) test_seq, test_label = create_sequence(test_data)
  LSTM模型的实现:
  在下一步中,我们创建LSTM模型。在本文中,我们将使用从Keras导入的Sequential模型,并导入所需的库。
  from keras.models import Sequential from keras.layers import Dense, Dropout, LSTM, Bidirectional
  我们在模型中使用了两个LSTM层,并在层与层之间使用dropout以实现正则化。在LSTM参数中分配的单元数是50个。Dropout为10%。损失函数是均方误差并使用Adam优化器优化问题的损失函数。平均绝对误差是我们在LSTM网络中使用的评估度量,因为它与时间序列数据相关。
  model = Sequential() model.add(LSTM(units=50, return_sequences=True, input_shape = (train_seq.shape[1], train_seq.shape[2])))   model.add(Dropout(0.1)) model.add(LSTM(units=50))   model.add(Dense(2))   model.compile(loss="mean_squared_error", optimizer="adam", metrics=["mean_absolute_error"])   model.summary()   model.fit(train_seq, train_label, epochs=80,validation_data=(test_seq, test_label), verbose=1) test_predicted = model.predict(test_seq) test_inverse_predicted = MMS.inverse_transform(test_predicted)
  可视化:
  将数据与我们的模型拟合后,我们用它进行预测。 我们必须用逆变换使得变换后的函数返回原值。现在我们可以使用这些数据来进行可视化预测 。
  # Merging actual and predicted data for better visualization gs_slic_data = pd.concat([gstock_data .iloc[-202:].copy(),pd.DataFrame(test_inverse_predicted,columns=["open_predicted","close_predicted"],index=gstock_data .iloc[-202:].index)], axis=1) gs_slic_data[["open","close"]] = MMS.inverse_transform(gs_slic_data[["open","close"]]) gs_slic_data.head()   gs_slic_data[["open","open_predicted"]].plot(figsize=(10,6)) plt.xticks(rotation=45) plt.xlabel("Date",size=15) plt.ylabel("Stock Price",size=15) plt.title("Actual vs Predicted for open price",size=15) plt.show()   gs_slic_data[["close","close_predicted"]].plot(figsize=(10,6)) plt.xticks(rotation=45) plt.xlabel("Date",size=15) plt.ylabel("Stock Price",size=15) plt.title("Actual vs Predicted for close price",size=15) plt.show()
  三、结论
  在本文中,我们利用LSTM研究了股票价格并将开盘和收盘价可视化。 参考:
  https://the-learning-machine.com/article/dl/long-short-term-memory
  https://www.kaggle.com/amarsharma768/stock-price-prediction-using-lstm/notebook

Dockerfile中VOLUME到底有什么用?FROMcentoslatestVOLUMEsharedata声明容器中sharedata为匿名卷这个指令很容易和启动时的v指令搞混淆,他们之间到底有什么区别呢,什么时候需要使用v天语手机华丽转身?12年的伏笔,一朝惊艳,华米OV都抢着入股说到天语手机,相信很多朋友都不陌生,当年它可是国产手机的带头大哥。2002年创立,仅用了5年时间,便凭借1700万的销量成为国产手机品牌中的头名。2008年,更是一举突破2000万关于XE毒株的传播性仍没有权威定论目前,关于XE毒株的传播性仍没有权威定论。不过,世卫组织表示,将密切关注XE重组毒株的发展态势,因它是两种高度传染性病毒变体奥密克戎BA。1和BA。2变异株重组后的新变体。世卫组织击败韩国中国显示器夺世界第一中国显示器首次击败韩国,夺得显示器市场世界第一的位置。韩国显示器曾连续17年蝉联最强国度称号。预计如果韩国不通过扩大对有机发光二极管(OLED)等下一代显示器的投资来寻找出路,将很烧光十亿裁员停薪,傅盛的机器人美梦破碎了?2018年,在水立方,捷豹移动发布了5款机器人产品,为了表明AIIin机器人的决心,刚刚过完生日的傅盛演讲完,就摘下话筒,直接跳入水立方泳池边,终身跳入。但在介绍自家产品时,口无遮冥王星为什么被踢出九大行星的行列冥王星自1930年被发现以来,长期被列入太阳系九大行星之列。但是从2000年起,在太阳系边缘海王星外侧的柯伊伯带中不断发现新天体,其个头越来越大,特别是2005年发现的阋神星,当时特斯拉Roadster开启预订!订金33。2万元,1。1秒破百,续航1300km全新一代特斯拉Roadster纯电动超跑来了!搭载205度电新型4680电池,续航高达1300km,选装SpaceX火箭加速套件后,百公里加速时间最快1。1秒。太阳能电动汽车网阿强数据分析能力模型为什么要学习数据分析?过去以往在增量时代,每天都有新的领域新的市场被开发。尤其是在互联网电商等领域的红利期,似乎只要做好单点的突破就能获得市场。这个蛮荒时代,业务运营主要依靠是经验uniapp框架下H5上传文件背景在uniapp开发中,uni。chooseImage选择文件进行上传到服务器。在appplus的情况加可以使用uni。uploadFile。但是在H5的条件下选择文件的格式为b6款Java8自带工具,轻松分析定位JVM问题这篇文章中介绍下如何使用JDK自带工具来分析和定位Java程序的问题。使用JDK自带工具查看JVM情况JDK自带了很多命令行甚至是图形界面工具,帮助我们查看JVM的一些信息。比如,Python3字符串三种格式化技巧引言python2会用到formatting和str。format()来格式化,而在Python3。6版本开始,增加了fstrings语法,下面详细地介绍这三种格式化方式。1。fo
支持微信钉钉集成,活字格让企业内部系统搭建更便捷伴随着数字经济的蓬勃发展,低代码迎来新一轮爆发。作为一项全新的瞩目的软件开发工具,低代码提供了传统编码开发方式外的技术选项,凭借独有的生产力优势和核心价值,正在被越来越多的企业级应Docker与k8s的恩怨情仇(六)容器编排上演终结者大片在上节中,我们为大家介绍了Pod的基础内容,Kubernetes如何站在上帝视角上处理容器和容器之间的关系。但仅仅有Pod却还不够,对于大部分用户而言如何调度和管理自己的应用才是真心之所向,学无止境专访WynEnterprise训练营标杆学员李工我晚上执勤,白天睡觉,下午挤出时间跟着葡萄城新手训练营学习WynEnterprise。坚持学习并不会让我感到辛苦,反而能给我带来巨大的力量。WynEnterprise新手训练营第2还在担心手机丢失信息泄露?这三个功能轻松解决你的烦恼现如今,伴随着技术的发展,出门的三大件已经逐渐缩减以一大件,一部手机在手就能轻松解决日常的多种问题。但有没有想过,如果手机不小心丢了呢?那岂不就是一场与人失联的人间惨剧。当然了,当华为vs小米,谁的智能家居更靠谱?虽然在智能家居的具体落地部署方面,我接到的咨询里涉及华为的相对比较少,主要是小米,但是就华为和小米两者在智能家居方面的宏观战略和长远发展来讲,关心的朋友还是非常多的,所以借此问题来这些智能功能,小米汽车都有!从小米智能生活看小米汽车今天下午下班到家,车上我对我的小米11手机说打开车库门,然后使用自动泊车让我的电动汽车自动停入车库,我又对小爱同学说了一句关闭车库门。这时候小米手环提醒了我,今晚依然有小米的发布会一体化全自动饮水系统的高性价比实现小米即热净水器Q600评测喝水这件事,归根结底就是获得理想的水质适宜的温度和合适的水量。反渗透净水机可以解决水质问题,即热饮水机可以解决温度和水量问题,将两者合而为一就是即热净水机。一机可以全部解决水质,温HTML界的小飞人详解Canvas优越性能和实际应用GoogleDocs宣布将会把HTML迁移到基于Canvas渲染,这一消息的出现再次把几年前随HTML5诞生的标签重新推到了人们视线之中。Canvas在刚推出时主打的优势就是更快的8种应用场景!嵌入式BI如何快速提升SaaS数据分析功能新一代信息技术的突飞猛进,给我们的工作方式带来了前所未有改变。与时俱进,拥抱数字化,远程办公正被越来越多的企业所热捧,成为当下最受欢迎的一种工作模式。而远程办公仅仅是SaaS应用的手机市场重新洗牌?OPPO超越苹果成全球第二,小米位居第四最近,知名数据机构CounterpointResearch发布了5月份市场报告数据,根据报告显示OPPO及其子公司(包括OPPOOnePlus和realme品牌)在2021年5月期性能小钢炮有多钢?带你全面了解iQOOZ5最近,随着iQOOZ5手机的发布,千元机产品再次成为了消费者关注的焦点。众所周知,虽然千元机市场一向有着不错的热度及关注度,但像iQOOZ5这种能够引发不小热潮的产品还是非常少的。