截止到本期,一共发了五篇关于机器学习预测全家桶的文章。本期在这个全家桶内,再添加一种万能的Adaboost预测模型。
为何说它是万能的呢,是因为这个算法可以和任何基学习器进行融合,以“三个臭皮匠顶个诸葛亮”思想,把基学习器的学习结果综合起来,以增强最终模型的预测或者分类能力。
Adaboost(Adaptive Boosting)算法,也称为自适应推进算法,是机器学习领域中一种重要的集成学习算法,集中应用于分类或预测问题)。Adaboost算法利用了传统的Boosting思想,使大量的弱分类器以某种方式组合起来,最终得到一个分类/预测能力大幅提高的强分类/预测器,其核心思想就是通过改变训练样本中错误标记的样本权重来训练一系列弱分类器,并将这些分类/预测器串联起来。Adaboost随着算法的迭代,基分类/预测器的重心会偏向于难以正确分类/预测的样本,以此通过对每个样本赋予不同的权重来实现这一目标。关于Adaboost算法思想的介绍,作者查阅到这篇文献讲的非常不错,大家可以参考。
吴俊利,张步涵,王魁.基于Adaboost的BP神经网络改进算法在短期风速预测中的应用[J].电网技术, 2012, 36(9):5.DOI:CNKI:SUN:DWJS.0.2012-09-036.
本期添加的Adaboost模型如下:
ELM-Adaboost、RVM-Adaboost、SVM-Adaboost、BiLSTM-Adaboost、RF-Adaboost、CNN-BiLSTM-Adaboost。这几个方法目前文献都是基本都是查不到的哈(懂的都懂),其中作者力荐这个RVM-Adaboost,不仅速度快,而且效果好!
共六种增强预测模型。这六种模型中基本包含了各种样式,大家学会这6种,其他的也可以自行模仿出来了!
像之前的文章中提到的BiGRU、BiLSTM、GRU、LSTM、LSSVM、TCN、CNN、CNN-BiGRU、CNN-LSTM等等,都是可以和Adaboost融合的。
目前整个全家桶包含模型如下:
注意,此全家桶代码包含了自注意力机制(selfAttentionLayer),该函数只有2023及以上版本的matlab才有,因此请小伙伴自行下载2023版本的matlab,下载链接一并打包在代码中了。
参考文章:
机器学习预测全家桶,多步预测之BiGRU、BiLSTM、GRU、LSTM,LSSVM、TCN、CNN,光伏发电数据为例
机器学习预测全家桶,多步预测之组合预测模型,光伏发电数据为例
机器学习预测全家桶之Xgboost,交通流量数据预测为例,MATLAB代码
机器学习预测全家桶之CNN-RVM(相关向量机),风电功率预测,MATLAB代码
代码获取方式放在文末了哈!
以上只是比较常用的几个,后续大家有需要的直接后台留言,我会继续在这个全家桶里边更新!
承诺该全家桶永久更新!
后续考虑会添加Adaboost、Catboost、比较传统的各种神经网络(BP,RBF,PNN,KNN等等),极限学习机,随机森林、深度森林等等方法。只要能预测的就会往里边扔!
数据准备
数据集统一采用新疆某地风电发电功率数据。
数据包含特征如下:测风塔10m风速(m/s) 、测风塔30m风速(m/s) 、测风塔50m风速(m/s) 、测风塔70m风速(m/s)、 轮毂高度风速(m/s) 、测风塔10m风向(°) 、测风塔30m风向(°) 、测风塔50m风向(°) 、测风塔70m风向(°)、 轮毂高度风向(°) 、温度(°) 、气压(hPa)、 湿度(%) 实际发电功率(mw)。部分数据截图如下:
选取3月份数据,每个样本组成为:延时步长为10,跨时间步长为1。也就是采用前10个样本的所有特征,去预测下一个样本的发电功率。
以表格中数据为例,以2019年1月1日0点~2019年1月1日2点的所有数据(包括功率)组合起来放一块并变成一行,然后把2点15的数据也组合到这一行,这就形成了第一个样本。最后一列是2点15的功率。就这样以此类推,得到好多好多样本。然后划分训练集和测试集就ok了。
结果展示
RVM-Adaboost(推荐)
ELM-Adaboost
BiLSTM-Adaboost:
CNN-BiLSTM-Adaboost:
RF-Adaboost:
SVM-Adaboost
以上所有图片,代码均可实现!
机器学习预测全家桶代码获取
已将本文的ELM-Adaboost、RVM-Adaboost、SVM-Adaboost、BiLSTM-Adaboost、RF-Adaboost、CNN-BiLSTM-Adaboost添加至机器学习预测全家桶,
后台私信获取代码。点击下方卡片获取更多代码!