分享

时间序列数据预测 | 基于粒子群优化核极限学习机PSO-KELM(Matlab)

 汉无为 2023-08-20 发布于湖北

图片

图片

前段时间有粉丝私信想让我出一期对时间序列预测的文章,所以今天它来了。

图片

时间序列数据,如股指价格,具有波动性、非线性和突变的特点对于这类数据的预测往往需要可靠强健的预测模型,而传统的机器学习算法如SVM、BP等,大都采用误差最小化或反向传播改进预测性能,大量参数调整、复杂的模型架构以及迭代时间长让这些模型逐渐落后。

极限学习机ELM和核极限学习机KELM能够很好的克服这些问题,作者在前面的文章中介绍了ELM和KELM的原理及其实现,ELM具有训练速度快、复杂度低、克服了传统梯度算法的局部极小、过拟合和学习率的选择不合适等优点,而KELM则利用了核学习方法,用核映射代替随机映射,能够有效改善隐层神经元随机赋值带来的泛化性和稳定性下降的问题,应用于非线性问题的性能更优[1]。

因此作者将用KELM和ELM结合作者前面提到的优化算法来预测股指的变化,并将之与BP神经网络这类传统机器学习算法进行对比。


00目录

1 PSO-KELM模型

2 代码目录

3 预测性能

4 源码获取

5 展望

参考文献

01 PSO-KELM模型

1.1 PSO与KELM原理

PSO即粒子群优化算法,KELM即核极限学习机,作者在前面的文章中讲解过其具体原理,文章链接如下,这里不再赘述。

超详细|粒子群优化算法及其MATLAB实现

预测算法系列5—核极限学习机KELM及其实现(Matlab)

1.2 样本选取与预处理

以某股的开盘价作为研究样本,有效数据共554个考虑用前20日的开盘价预测第21日的开盘价,即以20个数据作为一个样本进行滚动预测,一共可得到534个样本,选取前70%的样本作为训练数据,后30%作为测试数据。

原始数据:

图片

原始数据间差波动范围比较大,会影响模型稳定性和预测精度。因此在把开盘价数据输入之前,首先需要对数据进行预处理即归一化.本文对原始数据进行归一化处理,将样本数据处理到区间[0, 1]之间,归一化公式为

图片

minVal为数据序列中的最小值,maxval为数据序列最大值。

1.3 PSO-KELM预测模型

将PSO与KELM结合,以KELM模型预测的MAE作为PSO的适应度,该模型流程如下:

图片

02 代码目录

图片

其中,MY_XX_Reg.m都是可单独运行的主程序,而result.m用于对比不同算法预测效果,result.m可依次运行4个MY_XX_Reg.m,并对其预测结果进行对比。

部分源码:

图片

03 预测性能

3.1 评价指标

为了验证预测结果的准确性和精度,分别采用均方根差(Root Mean Square Error,RMSE) 、平均绝对百分误差( Mean Absolute Percentage Error,MAPE) 和平均绝对值误差( Mean Absolute Error,MAE) 作为评价标准。

图片

式中 Yi Y ^ i分别为真实值和预测值; n 为样本数。

3.2 结果对比

图片

图片

图片

图片

可以看出,预测模型中,经PSO优化后的KELM预测模型取得了不错的效果,同时,也可以引入作者前面提到的各种改进算法提高PSO的寻优性能,以取得更佳的效果

04 源码获取

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多