当前位置: 首页 > news >正文

安远县城乡规划建设局网站七牛云 wordpress

安远县城乡规划建设局网站,七牛云 wordpress,华强北做网站,企业官网设计1.项目说明 **选用Close和Low两个特征#xff0c;使用窗口time_steps窗口的2个特征#xff0c;然后预测Close这一个特征数据未来一天的数据 当batch_firstTrue,则LSTM的inputs(batch_size,time_steps,input_size) batch_size len(data)-time_steps time_steps 滑动窗口使用窗口time_steps窗口的2个特征然后预测Close这一个特征数据未来一天的数据 当batch_firstTrue,则LSTM的inputs(batch_size,time_steps,input_size) batch_size len(data)-time_steps time_steps 滑动窗口本项目中值为lookback input_size 2【因为选取了Close和Low两个特征】** 2.数据集 参考https://blog.csdn.net/qq_38633279/article/details/134245512?spm1001.2014.3001.5501中的数据集3.数据预处理 3.1 读取数据 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.preprocessing import MinMaxScaler import torch import torch.nn as nn import seaborn as sns import math, time from sklearn.metrics import mean_squared_errorfilepath ./data/rlData.csv data pd.read_csv(filepath) data data.sort_values(Date) data.head() data.shapesns.set_style(darkgrid) plt.figure(figsize (15,9)) plt.plot(data[[Close]]) plt.xticks(range(0,data.shape[0],20), data[Date].loc[::20], rotation45) plt.title(****** Stock Price,fontsize18, fontweightbold) plt.xlabel(Date,fontsize18) plt.ylabel(Close Price (USD),fontsize18) plt.show()3.2 选取Close和Low两个特征 price data[[Close, Low]]3.3 数据归一化 scaler MinMaxScaler(feature_range(-1, 1)) price[Close] scaler.fit_transform(price[Close].values.reshape(-1,1)) price[Low] scaler.fit_transform(price[Low].values.reshape(-1,1))3.4 数据集的制造[batch_size,time_steps,input_size] 本次选取2个维度特征作为输出因此input_size 2 x_train.shape [batch_size,time_steps,input_size] y_train.shape [batch_size,1] 1. 输入选取的是Close和Low列作为多维度的输入所以选择的是data数据中的第一列和第二列作为x_train【因此input_size2】 2. 输出是选取的Close列作为预测所以选取data数据的第一列作为y_train【即Close列作为y_train】。 #2.数据集的制作 def split_data(stock, lookback):data_raw stock.to_numpy() data [] for index in range(len(data_raw) - lookback): data.append(data_raw[index: index lookback])data np.array(data);test_set_size int(np.round(0.2 * data.shape[0]))train_set_size data.shape[0] - (test_set_size)x_train data[:train_set_size,:-1,:] #x_train.shape (198, 4, 2)y_train data[:train_set_size,-1,0:1] #y_train.shape (198, 1)x_test data[train_set_size:,:-1,:] #x_test.shape (49, 4, 2)y_test data[train_set_size:,-1,0:1] #y_test.shape (49, 1)return [torch.Tensor(x_train), torch.Tensor(y_train), torch.Tensor(x_test),torch.Tensor(y_test)]lookback 5 x_train, y_train, x_test, y_test split_data(price, lookback) print(x_train.shape ,x_train.shape) print(y_train.shape ,y_train.shape) print(x_test.shape ,x_test.shape) print(y_test.shape ,y_test.shape)4.LSTM算法 这里的LSTM算法和单维单步预测中的LSTM预测算法一模一样。只不过我们在制作数据集的时候对于LSTM模型中输入不一样了。 class LSTM(nn.Module):def __init__(self, input_dim, hidden_dim, num_layers, output_dim):super(LSTM, self).__init__()self.hidden_dim hidden_dimself.num_layers num_layersself.lstm nn.LSTM(input_dim, hidden_dim, num_layers, batch_firstTrue)self.fc nn.Linear(hidden_dim, output_dim)def forward(self, x):h0 torch.zeros(self.num_layers, x.size(0), self.hidden_dim).requires_grad_()c0 torch.zeros(self.num_layers, x.size(0), self.hidden_dim).requires_grad_()out, (hn, cn) self.lstm(x, (h0.detach(), c0.detach()))out self.fc(out[:, -1, :]) 5.预训练 input_dim 2 hidden_dim 32 num_layers 2 output_dim 1 num_epochs 100model LSTM(input_diminput_dim, hidden_dimhidden_dim, output_dimoutput_dim, num_layersnum_layers) criterion torch.nn.MSELoss() optimiser torch.optim.Adam(model.parameters(), lr0.01)hist np.zeros(num_epochs) lstm []for t in range(num_epochs):y_train_pred model(x_train)loss criterion(y_train_pred, y_train)hist[t] loss.item()# print(Epoch , t, MSE: , loss.item())optimiser.zero_grad()loss.backward()optimiser.step()6.绘制预测值和真实值拟合图形以及loss图形 predict pd.DataFrame(scaler.inverse_transform(y_train_pred.detach().numpy())) original pd.DataFrame(scaler.inverse_transform(y_train.detach().numpy()))sns.set_style(darkgrid) fig plt.figure() fig.subplots_adjust(hspace0.2, wspace0.2)plt.subplot(1, 2, 1) ax sns.lineplot(x original.index, y original[0], labelData, colorroyalblue) ax sns.lineplot(x predict.index, y predict[0], labelTraining Prediction (LSTM), colortomato) ax.set_title(Stock price, size 14, fontweightbold) ax.set_xlabel(Days, size 14) ax.set_ylabel(Cost (USD), size 14) ax.set_xticklabels(, size10)plt.subplot(1, 2, 2) ax sns.lineplot(datahist, colorroyalblue) ax.set_xlabel(Epoch, size 14) ax.set_ylabel(Loss, size 14) ax.set_title(Training Loss, size 14, fontweightbold) fig.set_figheight(6) fig.set_figwidth(16)# make predictions y_test_pred model(x_test)# invert predictions y_train_pred scaler.inverse_transform(y_train_pred.detach().numpy()) y_train scaler.inverse_transform(y_train.detach().numpy()) y_test_pred scaler.inverse_transform(y_test_pred.detach().numpy()) y_test scaler.inverse_transform(y_test.detach().numpy())# calculate root mean squared error trainScore math.sqrt(mean_squared_error(y_train[:,0], y_train_pred[:,0])) print(Train Score: %.2f RMSE % (trainScore)) testScore math.sqrt(mean_squared_error(y_test[:,0], y_test_pred[:,0])) print(Test Score: %.2f RMSE % (testScore)) lstm.append(trainScore) lstm.append(testScore) lstm.append(training_time) 完整代码 问题描述 选用Close和Low两个特征使用窗口time_steps窗口的2个特征然后预测Close这一个特征数据未来一天的数据 当batch_firstTrue,则LSTM的inputs(batch_size,time_steps,input_size) batch_size len(data)-time_steps time_steps 滑动窗口本项目中值为lookback input_size 2【因为选取了Close和Low两个特征】 #%% import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.preprocessing import MinMaxScaler import torch import torch.nn as nn import seaborn as sns import math, time from sklearn.metrics import mean_squared_errorfilepath ./data/rlData.csv data pd.read_csv(filepath) data data.sort_values(Date) data.head() data.shapesns.set_style(darkgrid) plt.figure(figsize (15,9)) plt.plot(data[[Close]]) plt.xticks(range(0,data.shape[0],20), data[Date].loc[::20], rotation45) plt.title(****** Stock Price,fontsize18, fontweightbold) plt.xlabel(Date,fontsize18) plt.ylabel(Close Price (USD),fontsize18) plt.show()#1.选取特征工程2个 price data[[Close, Low]]scaler MinMaxScaler(feature_range(-1, 1)) price[Close] scaler.fit_transform(price[Close].values.reshape(-1,1)) price[Low] scaler.fit_transform(price[Low].values.reshape(-1,1))#2.数据集的制作 def split_data(stock, lookback):data_raw stock.to_numpy() data [] for index in range(len(data_raw) - lookback): data.append(data_raw[index: index lookback])data np.array(data);test_set_size int(np.round(0.2 * data.shape[0]))train_set_size data.shape[0] - (test_set_size)x_train data[:train_set_size,:-1,:] #x_train.shape (198, 4, 2)y_train data[:train_set_size,-1,0:1] #y_train.shape (198, 1)x_test data[train_set_size:,:-1,:] #x_test.shape (49, 4, 2)y_test data[train_set_size:,-1,0:1] #y_test.shape (49, 1)return [torch.Tensor(x_train), torch.Tensor(y_train), torch.Tensor(x_test),torch.Tensor(y_test)]lookback 5 x_train, y_train, x_test, y_test split_data(price, lookback) print(x_train.shape ,x_train.shape) print(y_train.shape ,y_train.shape) print(x_test.shape ,x_test.shape) print(y_test.shape ,y_test.shape)class LSTM(nn.Module):def __init__(self, input_dim, hidden_dim, num_layers, output_dim):super(LSTM, self).__init__()self.hidden_dim hidden_dimself.num_layers num_layersself.lstm nn.LSTM(input_dim, hidden_dim, num_layers, batch_firstTrue)self.fc nn.Linear(hidden_dim, output_dim)def forward(self, x):h0 torch.zeros(self.num_layers, x.size(0), self.hidden_dim).requires_grad_()c0 torch.zeros(self.num_layers, x.size(0), self.hidden_dim).requires_grad_()out, (hn, cn) self.lstm(x, (h0.detach(), c0.detach()))out self.fc(out[:, -1, :]) return outinput_dim 2 hidden_dim 32 num_layers 2 output_dim 1 num_epochs 100model LSTM(input_diminput_dim, hidden_dimhidden_dim, output_dimoutput_dim, num_layersnum_layers) criterion torch.nn.MSELoss() optimiser torch.optim.Adam(model.parameters(), lr0.01)hist np.zeros(num_epochs) lstm []for t in range(num_epochs):y_train_pred model(x_train)loss criterion(y_train_pred, y_train)hist[t] loss.item()# print(Epoch , t, MSE: , loss.item())optimiser.zero_grad()loss.backward()optimiser.step()predict pd.DataFrame(scaler.inverse_transform(y_train_pred.detach().numpy())) original pd.DataFrame(scaler.inverse_transform(y_train.detach().numpy()))sns.set_style(darkgrid) fig plt.figure() fig.subplots_adjust(hspace0.2, wspace0.2)plt.subplot(1, 2, 1) ax sns.lineplot(x original.index, y original[0], labelData, colorroyalblue) ax sns.lineplot(x predict.index, y predict[0], labelTraining Prediction (LSTM), colortomato) ax.set_title(Stock price, size 14, fontweightbold) ax.set_xlabel(Days, size 14) ax.set_ylabel(Cost (USD), size 14) ax.set_xticklabels(, size10)plt.subplot(1, 2, 2) ax sns.lineplot(datahist, colorroyalblue) ax.set_xlabel(Epoch, size 14) ax.set_ylabel(Loss, size 14) ax.set_title(Training Loss, size 14, fontweightbold) fig.set_figheight(6) fig.set_figwidth(16)# make predictions y_test_pred model(x_test)# invert predictions y_train_pred scaler.inverse_transform(y_train_pred.detach().numpy()) y_train scaler.inverse_transform(y_train.detach().numpy()) y_test_pred scaler.inverse_transform(y_test_pred.detach().numpy()) y_test scaler.inverse_transform(y_test.detach().numpy())# calculate root mean squared error trainScore math.sqrt(mean_squared_error(y_train[:,0], y_train_pred[:,0])) print(Train Score: %.2f RMSE % (trainScore)) testScore math.sqrt(mean_squared_error(y_test[:,0], y_test_pred[:,0])) print(Test Score: %.2f RMSE % (testScore)) lstm.append(trainScore) lstm.append(testScore) lstm.append(training_time) 参考https://gitee.com/qiangchen_sh/stock-prediction/blob/master/%E4%BB%A3%E7%A0%81/LSTM%E4%BB%8E%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80%E5%88%B0%E4%BB%A3%E7%A0%81%E5%AE%9E%E6%88%98%204%20%E5%A4%9A%E7%BB%B4%E7%89%B9%E5%BE%81%E8%82%A1%E7%A5%A8%E4%BB%B7%E6%A0%BC%E9%A2%84%E6%B5%8B_Pytorch.ipynb
http://www.hkea.cn/news/14313731/

相关文章:

  • 关于做网站的英语对话济宁市做网站
  • 网站源码程序修改江西住房和城乡建设信息网站
  • 聊城有限公司网站建设 中企动力济二分ui设计培训有哪些课程
  • 介绍东莞网站建设的ppt腾宁网络做网站
  • 昆明seo网站排名优化夸克搜索
  • 需要注册的企业网站网页设计网站总结报告怎么写
  • 天汇大厦网站建设公司在线海报设计网站
  • 太原网站优化哪家专业网站关键词优化到首页后怎么做
  • 网站 cms百度最怕哪个部门去投诉
  • 电子商务网站的推广方式运行怎么卸载wordpress
  • 万网主机建设网站流程企业网站系统设计
  • 电脑公司网站源码求网站建设方法
  • 双创网站建设西部数码网站管理助手 卸载
  • 网站建设常用英语杭州建筑公司排名
  • 国外可以做网站盈利模式有哪些wordpress编辑区
  • 手机网站Com休闲采摘园网站建设
  • 做网站 所需资源成都招聘网站建设
  • 网站开发上证k线网站不更新
  • 黑客黑网站是做网站学校网站开发背景
  • 住房和成乡建设部网站网站做中英版
  • 织梦手机网站如何调用企业宣传册模板设计素材
  • 东莞网站推广培训agile WordPress
  • wordpress站点链接打不开网址网站建设js是什么
  • 网站建设及网络维护合同wordpress把头像改为QQ头像
  • 网站首页页面设计模板免费广告制作软件
  • 网站建设求职信息wordpress 文章内目录
  • 厦门网站制作软件东莞哪家做网站好
  • 国内大型网站建设公司自己做网站要哪些东西
  • 中科互联网站建设专家云南装饰公司做网站
  • 四川省住房和城乡建设厅官方网站畜牧养殖企业网站源码