LSTM_预测价格问题_keras_代码实操

0、问题描述

使用Bicton数据集,对close数据进行预测,使用60个数据点预测第61个数据点。
下载数据集:Bitcoin Historical Data
前期已经使用了MLP和RNN进行预测:这里

1、

没有写完,明天再写:)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.metrics import mean_absolute_error
from keras.models import Sequential
from keras.layers import Dense, LSTM, Dropout,Flatten
warnings.filterwarnings("ignore")## 1、导入数据
bit_data = pd.read_csv("bitstampUSD_1-min_data_2012-01-01_to_2021-03-31.csv")## 2、数据预处理
"""
将时间戳转成日期形式
划分训练集和测试集(最后60行)
将close值归一化在0-1之间
选择 60 个数据点作为 x-train,选择第 61 个数据点作为 y-train。
"""
bit_data["date"] = pd.to_datetime(bit_data["Timestamp"],unit="s").dt.date
group=bit_data.groupby("date")
data=group["Close"].mean()
close_train=data.iloc[:len(data)-60]
close_test=data.iloc[len(close_train):]
close_train=np.array(close_train)
close_train=close_train.reshape(close_train.shape[0],1)
from sklearn.preprocessing import MinMaxScaler
scaler=MinMaxScaler(feature_range=(0,1))
close_scaled=scaler.fit_transform(close_train)timestep=60
x_train=[]
y_train=[]
for i in range(timestep,close_scaled.shape[0]):x_train.append(close_scaled[i-timestep:i,0])y_train.append(close_scaled[i,0])x_train,y_train=np.array(x_train),np.array(y_train)
x_train=x_train.reshape(x_train.shape[0],x_train.shape[1],1) #reshaped for RNN
print("x-train-shape= ",x_train.shape)
print("y-train-shape= ",y_train.shape)## 3、创建模型
model = Sequential()
model.add(Dense(56, input_shape=(x_train.shape[1],1), activation='relu'))
model.add(Dense(32, activation='relu'))
model.add(Flatten())
model.add(Dense(1))model.compile(optimizer="adam",loss="mean_squared_error")
## 4、训练
model.fit(x_train,y_train,epochs=50,batch_size=64)
## 5、预测
inputs=data[len(data)-len(close_test)-timestep:]
inputs=inputs.values.reshape(-1,1)
inputs=scaler.transform(inputs)
x_test=[]
for i in range(timestep,inputs.shape[0]):x_test.append(inputs[i-timestep:i,0])
x_test=np.array(x_test)
x_test=x_test.reshape(x_test.shape[0],x_test.shape[1],1)
predicted_data=model.predict(x_test)
predicted_data=scaler.inverse_transform(predicted_data)data_test=np.array(close_test)
data_test=data_test.reshape(len(data_test),1)## 6、绘制预测图
plt.figure(figsize=(8,4), dpi=80, facecolor='w', edgecolor='k')
plt.plot(data_test,color="r",label="true result")
plt.plot(predicted_data,color="b",label="predicted result")
plt.legend()
plt.xlabel("Time(60 days)")
plt.ylabel("Values")
plt.grid(True)
plt.show()

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

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

相关文章

POJ 3735 Training little cats 动态规划(矩阵的幂)

一、题目大意 我们有N只猫&#xff0c;每次循环进行K次操作&#xff08;N<100&#xff0c;K<100&#xff09;&#xff0c;每次操作可有以下三种选择&#xff1a; 1、g i 给第i只猫1个食物 2、e i 让第i只猫吃完它所有的食物 3、s i j 交换第i和j只猫的食物。 求出M次…

JS自己定义数组扩展方法 求和 和 最大值、最小值

相信有小伙伴看到这一个标题可能会想&#xff1a;现在都可以自己写方法了吗&#xff1f;这么炸裂。没错我们是可以自己写方法的。 1.我们定义的这个方法&#xff0c;任何一个数组实例对象都可以使用 2.自定义的方法写到 数组.propertype身上 最大值 const arr [1,2,3,4]Array…

销售技巧培训之如何提高手机销售技巧

销售技巧培训之如何提高手机销售技巧 随着科技的迅速发展&#xff0c;手机已成为我们日常生活中不可或缺的一部分。作为一名手机销售员&#xff0c;了解手机销售技巧是必不可少的。本文将通过案例分析与实践&#xff0c;为你揭示手机销售的奥秘。 一、了解客户需求 在销售过程…

AWS Remote Control ( Wi-Fi ) on i.MX RT1060 EVK - 3 “编译 NXP i.MX RT1060”( 完 )

此章节叙述如何修改、建构 i.MX RT1060 的 Sample Code“aws_remote_control_wifi_nxp” 1. 点击“Import SDK example(s)” 2. 选择“MIMXRT1062xxxxA”>“evkmimxrt1060”&#xff0c;并确认 SDK 版本后&#xff0c;点击“Next>” 3. 选择“aws_examples”>“aw…

在 Docker 容器中运行 macOS:接近本机性能,实现高效运行 | 开源日报 No.96

cxli233/FriendsDontLetFriends Stars: 2.6k License: MIT 这个项目是关于数据可视化中好的和不好的实践&#xff0c;作者通过一系列例子解释了哪些图表类型是不合适的&#xff0c;并提供了如何改进或替代它们。主要功能包括展示错误做法以及正确做法&#xff0c;并提供相应代…

【数值计算方法(黄明游)】解线性代数方程组的迭代法(一):向量、矩阵范数与谱半径【理论到程序】

文章目录 一、向量、矩阵范数与谱半径1、向量范数a. 定义及性质补充解释范数差 b. 常见的向量范数 l 1 l_1 l1​、 l 2 l_2 l2​、 l ∞ l_\infty l∞​ 范数性质关系 2、矩阵范数a. 矩阵的范数b. 常见的矩阵范数相容范数算子范数 3、谱半径4、知识点总结1. 向量范数2. 矩阵范数…

Mybatis XML 多表查询

这篇需结合 <<Mybatis XML 配置文件>>那一篇博客一起看 工作中尽量避免使用多表查询,尤其是对性能要求非常高的项目 我们之前建了个用户表(代码在Mybatis XML配置文件那篇博客里),这次再建一个文章表,代码如下 : -- 创建⽂章表 DROP TABLE IF EXISTS articleinf…

vue中组件传值方法

父组件给子组件传值 一、 1.在子组件标签中写入父组件传递数据 向下传递prop 2.在子组件内声明props选项接收父组件传递的数据 props:[,,] 父组件&#xff1a; <Header :msgmsg ></Header> 子组件&#xff1a; props:[msg], 二、 provide i…

vue 批量下载文件,不走后端接口的方法

今天ld提了一个需求&#xff0c;说页面的列表里面有要下载的地址,然后点击批量下载。我思索片刻&#xff0c;给出了代码 1.这个是列表页面的代码 <!-- 这个是列表页面的代码 --> <el-table :data"userListShow" align"center"border highlight-…

AI 训练框架:Pytorch TensorFLow MXNet Caffe ONNX PaddlePaddle

https://medium.com/jit-team/bridge-tools-for-machine-learning-frameworks-3eb68d6c6558

基于jsonrpc4j实现JSON-RPC over HTTP(服务端集成Spring Boot)

1.JSON-RPC说明 JSON-RPC是一个无状态且轻量级的远程过程调用(RPC)协议。 它主要定义了一些数据结构及其相关的处理规则。 它运行时可以基于tcp(socket),http等不同的消息传输方式&#xff0c; 即它不关心底层传输方式的细节。 它使用JSON&#xff08;RFC 4627&#xff09;作为…

Tabbar切换效果(vant)

route 是否开启路由模式 <template><div class"layout-page"><!-- 二级路由出口 --><router-view></router-view><van-tabbar route><van-tabbar-item to"/home">首页<!-- 图标切换为active是高亮 -->&…

网络知识点之-组播协议

组播协议&#xff0c;是一种允许将一台主机发送的数据通过网络路由器和交换机复制到多个加入此组播的主机&#xff0c;一对多的通讯方式。 简介 组播协议与广泛使用的单播协议的不同之处在于&#xff0c;一个主机用单播协议向n个主机发送相同的数据时&#xff0c;发送主机需要…

Git全局设置命令---设置提交人邮箱

介绍 使用git命令设置提交人邮箱。 命令 git config --global user.email "xxxxxxxx.com"

JAVA实现敏感词高亮或打码过滤:sensitive-word

练手项目中实现发表文章时检测文章是否带有敏感词&#xff0c;以及对所有敏感词的一键过滤功能 文章目录 效果预览实现步骤 效果预览 随便复制一篇内容到输入框 机器审核文章存在敏感词&#xff0c;弹消息提示并进入人工审核阶段&#xff08;若机器审核通过&#xff0c;则无需审…

eclipse的日志文件放在什么位置

eclipse的日志文件放在<workspace的目录>/.metadata目录下面&#xff0c;例如&#xff1a;

html中一个div中平均一行分配四个盒子,可展开与收起所有的盒子

html中一个div中平均一行分配四个盒子&#xff0c;可展开与收起所有的盒子 1.截图显示部分 2.代码展示部分 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"wid…

pytorch中五种常用随机矩阵构造方法:rand、randn、randn_like、randint、randperm

1 torch.rand&#xff1a;构造均匀分布张量 torch.rand是用于生成均匀随机分布张量的函数&#xff0c;从区间[0,1)的均匀分布中随机抽取一个随机数生成一个张量&#xff0c;其调用方法如下所示&#xff1a; torch.rand(sizes, outNone) ➡️ Tensor 参数&#xff1a; sizes&…

12.8_黑马数据结构与算法笔记Java

目录 044 递归 e04 冒泡排序2 044 递归 e05 插入排序1 044 递归 e05 插入排序2 045 多路递归 斐波那契 046 多路递归 斐波那契 时间复杂度 047 多路递归 斐波那契 兔子问题 048 多路递归 斐波那契 青蛙跳台阶 049 递归 优化 记忆法 050 递归 爆栈问题 051 递归 尾调用…

Linux驱动开发一

一、Linux驱动开发与裸机开发的区别 1、开发思维区别 裸机驱动&#xff1a; &#xff08;1&#xff09;底层&#xff0c;跟寄存器打交道&#xff0c;有些MCU提供了库 Linux驱动&#xff1a; &#xff08;1&#xff09;Linux下驱动开发直接操作寄存器不现实 &#xff08;2…