所谓的单变量输入,与前几期那样不同。有些数据可能没有相关特征,就是单纯的时间序列。
举个例子,比如天气的温度数据,就是一个连续的时间序列数据。可以取前几个时刻的点作为模型的输入,取未来一个时刻或者多个时刻点作为模型输出。
本期就在原先几期推出的机器学习全家桶基础上,将这些机器学习方法改成单变量输入单步预测。
目前整个全家桶包含模型如下:

注意,此全家桶代码包含了自注意力机制(selfAttentionLayer),该函数只有2023及以上版本的matlab才有,因此请小伙伴自行下载2023版本的matlab,下载链接一并打包在代码中了。
数据准备
数据集统一采用前几期提到的新疆某地风电发电功率数据,只不过这次是只用温度一列。

数据处理方法也不难,首先提取这一列数据,然后以前几个时间点作为模型输入,未来一个时刻的温度作为输出。依次这样选取数据,得到好多好多样本。然后划分训练集和测试集就ok了。
结果展示
由于模型有20多个,这里随机挑选5个模型作为展示,其他模型均已调试完成,可以一键运行。
BiLSTM-Adaboost:

BiGRU:

BiLSTM

CNN-BiGRU:

SVM-Adaboost

最后考虑到大家可能会做算法对比,代码随机选取了四个模型的测试结果进行对比,对比结果图如下:




以上所有图片,代码均可实现!
后台私信获取代码。点击下方卡片获取更多代码!
本文扩展了机器学习预测全家桶,包括单变量输入的单步预测,如使用BiLSTM、BiGRU等模型对天气温度数据进行预测。文章提供了新疆风电温度数据示例和自注意力机制的应用,以及模型之间的对比结果。MATLAB代码可供下载。
594

被折叠的 条评论
为什么被折叠?



