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

毕业设计做视频网站设计东明县网站建设

毕业设计做视频网站设计,东明县网站建设,网站建设问卷,福建亨立建设集团有限公司网站单特征#xff1a;数据集中只包含2列#xff0c;时间列价格列#xff0c;仅利用价格来预测价格 目录 一、数据集 二、任务目标 三、代码实现 1、从本地路径中读取数据文件 2、数据归一化 3、创建配置类#xff0c;将LSTM的各个超参数声明为变量#xff0c;便于后续…单特征数据集中只包含2列时间列价格列仅利用价格来预测价格 目录 一、数据集 二、任务目标 三、代码实现 1、从本地路径中读取数据文件 2、数据归一化 3、创建配置类将LSTM的各个超参数声明为变量便于后续使用 4、创建时间序列数据 5、划分数据集 6、定义LSTM网络 1创建顺序模型实例 2添加LSTM层 3添加全连接层 7、编译LSTM模型 8、训练模型 9、模型预测 10、数据反归一化 11、绘制图像 12、完整版代码 一、数据集 自建数据集--【load.xlsx】。包含2列 date列时间列记录2022年6月2日起始至2023年12月31日为止日度数据price列价格列记录日度数据对应的某品牌衣服的价格浮点数 二、任务目标 实现基于时间序列的单特征价格预测 三、代码实现 1、从本地路径中读取数据文件 read_excel函数读取Excel文件read_csv用来读取csv文件读取为DataFrame对象index_coldate将date列设置为DataFrame的索引.values属性获取price列的值pandas会将对应数据转换为NumPy数组 # 字符串前的r表示一个原始字符串raw string # 文件路径中包含多个反斜杠。如果我们不使用原始字符串即不使用r前缀那么Python会尝试解析\U、\N等作为转义序列这会导致错误 data pd.read_excel(rE:\load.xlsx, index_coldate) # print(data) prices data[price].values # print(prices) 打印data 打印prices 2、数据归一化 归一化将原始数据的大小转化为[0,1]之间采用最大-最小值归一化 数值过大造成神经网络计算缓慢在多特征任务中存在多个特征属性但神经网络会认为数值越小的影响越小。所以可能关键属性A的值很小不重要属性B的值却很大造成神经网络的混淆scikit-learn的转换器通常期望输入是二维的其中每一行代表一个样本每一列代表一个特征 prices.reshape(-1, 1) 用于确保 prices 是一个二维数组即使它只有一个特征列-1的意思是让 NumPy 自动计算该轴上的元素数量以保持原始数据的元素总数不变fit方法计算了数据中每个特征的最小值和最大值这些值将被用于缩放transform方法使用这些统计信息来实际缩放数据将其转换到 [0, 1] 范围内 scaler MinMaxScaler(feature_range(0, 1)) scaled_prices scaler.fit_transform(prices.reshape(-1, 1)) # 二维数组 # print(scaled_prices) 打印归一化后的价格数据 3、创建配置类将LSTM的各个超参数声明为变量便于后续使用 timestep时间步长滑动窗口大小feature_size每个步长对应的特征数量这里只使用1维即每天的价格数据batch_size批次大小即一次性送入多少个数据一时间步长为单位进行训练output_size单输出任务输出层为1预测未来1天的价格hidden_size隐藏层大小即神经元个数num_layers神经网络的层数learning_rate学习率epochs迭代轮数即总共要让神经网络训练多少轮全部数据训练一遍成为一轮best_loss记录损失activation relu定义激活函数使用relu class Config():timestep 7 # 时间步长滑动窗口大小feature_size 1 # 每个步长对应的特征数量这里只使用1维每天的价格数据batch_size 1 # 批次大小output_size 1 # 单输出任务输出层为1预测未来1天的价格hidden_size 128 # 隐藏层大小num_layers 1 # lstm的层数learning_rate 0.0001 # 学习率epochs 500 # 迭代轮数model_name lstm # 模型名best_loss 0 # 记录损失activation relu # 定义激活函数 config Config() 4、创建时间序列数据 通过滑动窗口移动获取数据时间步内数据作为特征数据时间步外1个数据作为标签数据通过序列的切片实现特征和标签的划分通过np.array将数据转化为NumPy数组 # 创建时间序列数据 X, y [], [] for i in range(len(scaled_prices) - config.timestep):# 从当前索引i开始取sequence_length个连续的价格数据点并将其作为特征添加到列表 X 中。X.append(scaled_prices[i: i config.timestep])# 将紧接着这sequence_length个时间点的下一个价格数据点作为目标添加到列表y中。y.append(scaled_prices[i config.timestep]) X np.array(X) print(X) y np.array(y) print(y) 打印特征数据  三维数组X 是由多个二维数组即多个时间步长的数据组成的加之本身是一个列表每次迭代都会从 scaled_prices 中取出一个长度为 config.timestep 的连续子序列并将其添加到 X 列表中由于 scaled_prices 本身是一个二维数组所以每次取出的子序列也是一个二维数组形状大致为 [config.timestep, features]当多个这样的二维数组被添加到 X 列表中时X 就变成了一个列表的列表其中每个内部列表都是一个二维数组它的形状将是 [n_samples - config.timestep, config.timestep, features]这是一个三维数组 打印标签数据 二维数组y 是由单个数据点即单个时间步长的数据组成的所以它保持为二维数组从 scaled_prices 中取出一个单独的数据点即一个二维数组中的一行并将其添加到 y 列表中y 列表中的每个元素都是一个一维数组或可以看作是一个具有多个特征的向量它的形状将是 [n_samples - config.timestep, features]这仍然是一个二维数组 5、划分数据集 按照9:1的比例划分训练集和测试集train_test_split是sklearn.model_selection模块中的一个函数用于将数据集随机划分为训练集和测试集shuffleFalse表示在划分数据之前不进行随机打乱意味着数据会按照其原始顺序进行划分因为时间序列数据具有时序性用过去时间数据预测新时间数据要保证时间有序测试数据为时间序列的末尾数据 X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.1, shuffleFalse) 6、定义LSTM网络 1创建顺序模型实例 model Sequential() 2添加LSTM层 LSTM这是 Keras 中提供的 LSTM 层的类。通过调用这个类创建一个 LSTM 层activationconfig.activation这设置了 LSTM 层中使用的激活函数unitsconfig.hidden_size这设置了 LSTM 层中的隐藏单元数量input_shape(config.timestep, config.feature_size)这定义了输入数据的形状是一个元组 告诉模型输入数据应该是一个形状为[batch_size, config.timestep, config.feature_size]的三维其中batch_size是批次中样本的数量它在模型训练时会自动确定根据你传递给模型的批次数据大小 model.add(LSTM(activationconfig.activation, unitsconfig.hidden_size, input_shape(config.timestep, config.feature_size))) LSTM层的输出是一个三维张量其形状通常为(seq_len, batch_size, num_directions * hidden_size) seq_len表示序列长度即时间序列展开的步数batch_size表示数据批次的大小即一次性输入到LSTM层的数据样本数量num_directions * hidden_size表示隐藏层的输出特征维度 对于单向LSTMnum_directions为1对于双向LSTMnum_directions为2。hidden_size则是隐藏层节点数即LSTM单元中隐藏状态的维度含义LSTM层的输出包含了每个时间步的隐藏状态 3添加全连接层 Dense是 Keras 中用于创建全连接层的类也就是每个输入节点与输出节点之间都连接有一个权重config.output_size指定了该全连接层的输出单元数量 model.add(Dense(config.output_size)) 由于此例中全连接层的大小为1因此LSTM层输出的三维张量在经过全连接层后将被压缩成一个二维张量(batch_size, 1)这样的形状 7、编译LSTM模型 model.compile()这个方法是Keras模型的一个函数用于配置模型训练前的参数optimizeradam这里指定了使用Adam优化器来训练模型lossmean_squared_error这里指定了损失函数为均方误差Mean Squared Error, MSE model.compile(optimizeradam, lossmean_squared_error) 8、训练模型 model.fit()是 Keras 模型的一个函数用于训练模型。它将根据提供的训练数据 X_train 和对应的标签 y_train通过多次迭代epochs来训练模型。xX_train指定了训练数据的输入yy_train指定了训练数据的标签或目标值epochsconfig.epochs指定了训练过程中数据集的完整遍历次数。batch_sizeconfig.batch_size指定了每次更新模型时使用的样本数verbose2控制训练过程中的日志输出。verbose2 表示每个 epoch 输出一行日志显示训练过程中的损失值和评估指标如果在编译时指定了评估指标history 对象是一个记录训练过程中信息的字典包含了训练过程中的损失值和评估指标如果有的话 history model.fit(xX_train, yy_train, epochsconfig.epochs, batch_sizeconfig.batch_size, verbose2) 9、模型预测 model.predict()是 Keras 模型的一个函数它根据提供的输入数据给出模型对于这些数据的预测结果 predictions model.predict(X_test) 10、数据反归一化 当模型训练完成后并进行预测时预测出的值会是缩放后的值即按照训练数据缩放的比例为了得到原始的比例或范围需要使用缩放器的 inverse_transform 方法来将这些缩放后的值转换回原始的比例或范围 y_test_true_unnormalized scaler.inverse_transform(y_test) y_test_preds_unnormalized scaler.inverse_transform(predictions) 确保模型的预测结果和真实的测试集标签都在同一个比例或范围内从而可以准确地评估模型的性能并以更直观、更易于理解的方式呈现预测结果 11、绘制图像 # 设置图形的大小为10x5单位 plt.figure(figsize(10, 5))# 绘制真实的测试集标签使用圆圈o作为标记并命名为True Values plt.plot(y_test_true_unnormalized, labelTrue Values, markero)# 绘制模型的预测值使用叉号x作为标记并命名为Predictions plt.plot(y_test_preds_unnormalized, labelPredictions, markerx)# 设置图形的标题 plt.title(Comparison of True Values and Predictions)# 设置x轴的标签 plt.xlabel(Time Steps)# 设置y轴的标签 plt.ylabel(Prices)# 显示图例 plt.legend()# 显示图形 plt.show() 12、完整版代码 import pandas as pd import numpy as np from sklearn.metrics import r2_score from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler from matplotlib import pyplot as plt from keras.models import Sequential from keras.layers import LSTM, Dense, Dropoutclass Config():timestep 7hidden_size 128batch_size 1output_size 1epochs 500feature_size 1activation relu config Config()# dataframe对象 qy_data pd.read_excel(rE:\load.xlsx, index_coldate) # print(qy_data) # numpy数组 一维 prices qy_data[price].values # print(prices)scaler MinMaxScaler() # 归一化后变成二维数组 scaled_prices scaler.fit_transform(prices.reshape(-1, 1)) # print(scaled_prices)# Create time series data X, y [], [] for i in range(len(scaled_prices) - config.timestep):X.append(scaled_prices[i: i config.timestep])y.append(scaled_prices[i config.timestep]) X np.array(X) # print(X) y np.array(y) # print(y)# Train-test split X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.1, shuffleFalse)# Define the LSTM mode model Sequential() model.add(LSTM(activationconfig.activation, unitsconfig.hidden_size, input_shape(config.timestep, config.feature_size))) model.add(Dense(config.output_size))# Compile the model # adam默认学习率是0.01 model.compile(optimizeradam, lossmean_squared_error)model.save(LSTM.h5)# Train the model history model.fit(xX_train, yy_train, epochsconfig.epochs, batch_sizeconfig.batch_size, verbose2)# Predictions predictions model.predict(X_test)# Inverse transform predictions and true values y_test_true_unnormalized scaler.inverse_transform(y_test) y_test_preds_unnormalized scaler.inverse_transform(predictions)# Plot true values and predictions plt.figure(figsize(10, 5)) plt.plot(y_test_true_unnormalized, labelTrue Values, markero) plt.plot(y_test_preds_unnormalized, labelPredictions, markerx) plt.title(Comparison of True Values and Predictions) plt.xlabel(Time Steps) plt.ylabel(Prices) plt.legend() plt.show()
http://www.ho-use.cn/article/10819230.html

相关文章:

  • 贵州微网站建设公司wordpress游客购买
  • 做网站快速排名软件wordpress 韩国 主题
  • 301不同类型网站凡客诚品的经营特色
  • 百度站长工具平台登录网络营销成功的案例有哪些
  • 怎么在网站后面做链接网站推荐男生正能量
  • 温州电子网站建设wordpress 添加钩子
  • 专业网站建设好不好企业号码查询系统
  • 为什么不做网站做公众号o2o网站建设方案ppt
  • 移动端网站建设需要注意哪些问题广西桂林网站建设公司
  • 南平网站怎么做seo网易云企业网站建设模板
  • 网站开发适合女生吗wordpress会员过期时间
  • seo织梦网站建设步骤阿里云可以建设网站吗
  • 网站建设公司电话销售客源网站建设续费催款通知书
  • 网站备案后证书网站怎么做微博认证吗
  • 读书网站建设策划书摘要个人简历表格
  • 江苏公众科技网站建设惠州做网站
  • 诸暨市建设局行业管理网站百度网站内容
  • 湖南网站网络推广哪家奿德州网站建设推广价格
  • 做网站建设分哪些类型移动端网页设计图片
  • 国外有名的网站海南网站建设方案
  • 南山网站建设-信科网络在哪下载免费的英文版网站模板
  • 网站代码的重点内容是什么做网站有弹窗叫什么
  • 用手机做网站的流程唐山城乡建设网站
  • 成品网站设计网站写作墨问题 网站
  • 网站信息建设总结胶州网站优化价格
  • 学做家常菜的网站服务器租用租赁
  • 合肥软件开发网站建设山西钢建公司简介
  • 北京网站建设公司重庆白云seo整站优化
  • 网站开发实现的功能黄页大全
  • 网站建设项目概要设计方案宣传软文案例