上期发了一篇文章,五花八门的机器学习预测?一篇搞定不行吗?里边包含了大多数机器学习模型,有组合的,有单个的,且都是属于单步预测的。
而单步预测和多步预测的代码在数据处理和模型构建方面略有不同。
今天在这个全家桶内,再添加几种多步预测的模型。分别是:BiGRU、BiLSTM、GRU、LSTM、LSSVM、TCN、CNN。并以新疆光伏发电数据为例进行结果显示。
之前购买过全家桶的小伙伴直接复制文末链接,重新下载代码即可。
下期将继续添加组合模型的多步预测。
所谓多步预测模型,无非就是,预测多个样本点。比如用前30天的数据,去预测未来7天的数据。这就是一个多步预测问题。
新增多步预测模型如下:
目前整个全家桶包含模型如下:
单模型多步预测(新增)
BiGRU、BiLSTM、GRU、LSTM、LSSVM、TCN、CNN
单模型单步预测
BiGRU,BiLSTM,CNN,GRU,LSSVM,LSTM,多元回归函数regress,TCN,SVM
组合模型单步预测
CNN-BiGRU,CNN-BiGRU-ATTENTION,CNN-BiLSTM,CNN-BiLSTM-ATTENTION,CNN-GRU,CNN-LSSVM,CNN-LSTM,CNN-SVM。
以及结合VMD的几个代码:VMD-CNNBiLSTM,VMD-CNNGRU,VMD-CNNLSTM。其实当你学会了其中一个,其他的照虎画猫也就都出来了。
代码获取方式放在文末了哈!
以上只是比较常用的几个,后续大家有需要的直接后台留言,我会继续在这个全家桶里边更新!
承诺该全家桶永久更新!
后续考虑继续将上述模型全部变为多步预测模型,以及会添加比较传统的各种神经网络(BP,RBF,PNN,KNN等等),极限学习机,随机森林等等方法。
数据准备
数据集统一采用新疆某地光伏发电功率数据。
包含如下特征:组件温度(℃) 、温度(°)、 气压(hPa) 、湿度(%) 、总辐射(W/m2)、 直射辐射(W/m2)、 散射辐射(W/m2),共7个特征值。最后一列为发电功率。
部分数据截图如下:
可以看到,该数据每15分钟采样一次,每个样本点有7个特征值和一个发电功率输出值。一天有96个采样点。
本次预测采用前3天的数据(3*96*7),预测未来2天(96*2)个样本点的数据。
以1月份数据举个例子,也就是用1月1~3日的特征数据(3*96*7)预测1月4~5日(96*2)个样本点的数据,以1月2~4日的特征数据(3*96*7)预测1月5~6日(96*2)个样本点的数据……以此类推。
本次实验一共选取了30个样本,其中前29个样本用于训练,最后一个样本用于测试。
结果展示
每种方法的精度不一致,与自身的参数有关。对于这个风电数据来说,每个方法的效果都差不多。
一般去调整,“隐含层节点个数,学习率,训练次数,正则化参数”。调整这几个参数,就完全够用了。现在结合一些智能优化算法优化这些机器学习预测的,也无非就是调整一下这几个参数而已。
这里的参数,作者只是调了个大概,不至于很差。对于精度差的,并不代表这个方法就不好!大家可以调整参数已达到更好的效果!
每个模型跑完之后,都会有一个预测集效果对比图,和一个误差曲线图,并在命令窗口打印5种指标。
多步预测结果:
BiLSTM:
因为真实值的发电功率中有0,因此MAPE计算指标会是无穷大,对于这个数据来说,就不要看这个指标了。
BiGRU:
CNN:
GRU:
LSSVM:
LSTM:
TCN:
随机选取四种模型,对比结果图如下:
以上所有图片,代码均可实现!
后台私信获取代码。点击下方卡片获取更多代码!