基于二维卷积网络(2DCNN)多特征输入的风速预测项目实战(pytorch)(多特征)

该项目利用二维卷积网络对风速数据进行预测,对比一维卷积显示出优势,能同时处理时间和空间维度特征。实验基于wind_dataset.csv数据集,采用3×3卷积核,通过Python3.9和Pytorch1.13.1实现。模型包含Dropout层以减少过拟合,但发现去掉Dropout可能得到更好效果。文章展示了训练过程、损失曲线和预测结果,提供相关代码资源。
摘要由CSDN通过智能技术生成

 一、项目简介

本项目实现了基于二维卷积网络多特征输入的的风速预测(使用了数据集中的8个特征作为输入),其效果明显比本人之前文章所做的一维多特征效果好。

二、二维卷积网络的优势

我们都知道二维卷积用于图片数据的处理具有非常大的优势,相比于一维卷积,二维卷积可以提取更复杂的特征,比如在风速预测项目中,一维卷积只能提取其时序特征,但是二维卷积可以同时考虑时间和空间维度上的特征,所提取的特征具有良好的时空相关性,其中空间维度特征指的是不同特征之间的相对位置关系。对于多通道数据,比如风速预测中的多特征数据,二维卷积可以同时处理不同通道的特征信息,每个通道可以被看作是输入数据的一个特征维度,二维卷积网络可以同时对多个通道进行卷积操作,从而更好地捕捉不同通道之间特征的关系

三、实验数据

1、实验使用了风速预测数据集wind_dataset.csv中"WIND","IND","RAIN","IND.1","T.MAX","IND.2","T.MIN","T.MIN.G"的这八个特征进行风速预测。滑窗的步长为20,即前20天的8个特征(每份共8×20个数据)来预测第21天的风速。【数据集中的【NA】空值被置为0。】

2、图中红色框核箭头是卷积的示意图,红色框是本项目使用的卷积核大小为3×3,箭头是卷积的方向,步长默认为1,padding为1。

四、实验环境

平台:window11

语言:python3.9

编译器:Pycharm

Pytorch:1.13.1

网络运行过程

模型代码如下,该模型加入了Dropout层用于防止过拟合,但是最后的结果还是有些过拟合,但是不影响模型效果。【本人尝试了去掉dropout层似乎效果更好,有兴趣的同学可以去掉跑一下看看】。模型使用了三层卷积和两个全连接层,模型流程如图所示:

该模型的计算过程和参数如下所示: 

 其他数据集划分等代码可以参考之前写的一篇文章(1DCNN单特征风速预测),基础代码都大同小异,在输入特征维度上有所改变。

五、项目运行环境

window11+python3.9+pytorch1.31.1

 六、项目文件及运行说明

train.py 里面是训练过程的通用代码,其他项目也可以在它的基础上修改
Config.py 里面是项目所需要用到的参数
DataSplit.py 实现数据划分的函数
model_2DCNN.py 训练的模型配置
wind_dataset.csv 风速预测的数据集
test_wind_2DCNN.py 运行文件,配置好训练的参数,进行训练并在里面绘图
loss.csv训练过程产生的损失
loss_draw.py 根据训练输出的loss.csv文件绘制loss损失
cnn.pth 是训练过程中生成的模型参数,可用于做测试数据的预测
test_pth.py 根据生成的cnn.pth模型参数对测试数据进行预测

*.png文件是预测结果可视化

七、部分模型代码展示

、预测效果展示

代码实现功能,实现风速预测、独立保存loss参数、独立绘制loss曲线、风速测试集独立预测等功能,详细操作见上述文件说明。以下是模型的训练过程和效果展示。

以下是加入了dropout层的效果:

1、训练epoch=100产生的loss参数储存到loss_csv文件中

2、训练epoch=100的loss曲线:

 3、训练epoch=100的训练集风速预测曲线(前两百个数据点):

4、  训练epoch=100的测试集风速预测曲线(前两百个数据点):

以下是没有加入dropout层的效果:

1、训练epoch=100的loss曲线:

  2、训练epoch=100的训练集风速预测曲线(前两百个数据点):

 3、训练epoch=100的测试集风速预测曲线(前两百个数据点):

九、总结与资源

若有朋友需要源码,可以关zhu【科研小条】gong众号,回复【多特征二维卷积风速预测】,即可获得。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科研小条

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值