截止到本期,一共发了8篇关于机器学习预测全家桶Python代码的文章。参考往期文章如下:

1.终于来了!python机器学习预测全家桶

2.机器学习预测全家桶-Python,一次性搞定多/单特征输入,多/单步预测!最强模板!

3.机器学习预测全家桶-Python,新增CEEMDAN结合代码,大大提升预测精度!

4.机器学习预测全家桶-Python,新增VMD结合代码,大大提升预测精度!

5.Python机器学习预测+回归全家桶,再添数十种回归模型!这次千万别再错过了!

6.Python机器学习预测+回归全家桶,新增TCN,BiTCN,TCN-GRU,BiTCN-BiGRU等组合模型预测

7.调用最新mealpy库,实现215个优化算法优化CNN-BiLSTM-Attention,电力负荷预测

8.Transformer实现风电功率预测,python预测全家桶


今天再更新一期关于与KAN网络结合的时间序列预测代码。

一、KAN网络模型概述

KAN网络属于近期非常热门的一个模型,与传统的MLP架构截然不同,KAN网络能用更少的参数在数学、物理问题上取得更高精度。KAN其灵感来源于 Kolmogorov-Arnold 定理,这个定理的含义就是任意一个多变量连续函数都可以表现为一些单变量函数的组合。

KAN的核心特点是在网络的边缘(即权重)上拥有可学习的激活函数,而不是像传统的MLPs那样在节点(即神经元)上使用固定的激活函数。并且KAN的准确性和可解释性要比MLP好很多。

5c68281125292749b553c961729d3ba1.png

KAN的优点:

  • 1. KAN可以避免大模型的灾难性遗忘问题

  • 2. 在函数拟合、偏微分方程求解方面,KAN比MLP更准确

  • 3. KAN可以直观地可视化。KAN 提供MLP无法提供的可解释性和交互性

KAN的缺点:

  • 1.训练速度慢:因为训练一个激活函数,需要无限多的循环进行验证

  • 2. 对于更深层结构可解释性是否还存在,论文中给出的实验只是浅层的

  • 3.KAN网络在求解非线性函数等工程问题时更精确,但在时间序列预测方面,训练起来就非常慢。但是将其作为网络的一个小的改进点,还是可以的。

二、KAN网络组合模型

本期带来几个KAN网络的组合模型:LSTM-KAN、GRU-KAN、Transformer-KAN、BiLSTM-KAN

老规矩,依旧以《风电场功率预测.xlsx》为例进行介绍。数据格式如下:

afb238a9ad490050270b8a7ac0120730.png

设置网络为多特征输入,多步预测。采用前10个历史时刻的特征值预测未来2天的功率值。(当然你也可以改为其他任何你想改的,比如单特征、单步预测等,不会改的参考这篇文章:一次性搞定多/单特征输入,多/单步预测!最强模板!

三、结果展示:

设置了不同的实验进行展示。

实验一:设置网络为多特征输入,单步预测。采用前5个历史时刻的特征值预测未来1个时刻的功率值。设置训练集测试集比例为7:3,并采用BiLSTM-KAN组合模型预测。

BiLSTM-KAN预测结果:

6ca046425a1eecdfaaf8a7facbe6b023.png

8e37a4053fcc0af86dbc972be46731c3.png

实验二设置网络为多特征输入,多步预测。采用前5个历史时刻的特征值预测未来2个时刻的功率值。设置训练集测试集比例为9:1,并采用GRU-KAN组合模型预测。

GRU-KAN预测结果:

第一步预测结果:

509e1bed70ddc11ab42cc18a55fb48c6.png

第二步预测结果:

196a18f7b9ad6307eef5390b514eb9a9.png

指标打印结果:

7e5c78f3cac325ce8cc7a67b038ba74b.png

实验三设置网络为单特征输入,单步预测。采用前5个历史时刻的特征值预测未来1个时刻的功率值。设置训练集测试集比例为7:3,并采用LSTM-KAN组合模型预测。

LSTM-KAN预测结果:

6b9cf051affbb119871eeb2c9ec353af.png

ced75c39de36643c1811365da11bfde5.png

实验四设置网络为多特征输入,多步预测。采用前10个历史时刻的特征值预测未来2个时刻的功率值。设置训练集测试集比例为7:3,并采用

Transformer -KAN 组合模型预测。

Transformer-KAN预测结果:

第一步预测结果:

88a2bccae96cd30b2fd596fe18ae067f.png

第二步预测结果:

a6b715e473d69571f1ae6f52e110333f.png

b04f3dd4aa2ed2f57d7466f94f8abd7c.png

已将本文代码更新至python预测全家桶。

后续会继续更新一些其他模型……敬请期待!

机器学习python全家桶代码获取

点击下方卡片获取代码。



全家桶pip包推荐版如下:

tensorflow~=2.15.0
pandas~=2.2.0
openpyxl~=3.1.2
matplotlib~=3.8.2
numpy~=1.26.3
keras~=2.15.0
mplcyberpunk~=0.7.1
scikit-learn~=1.4.0
scipy~=1.12.0
qbstyles~=0.1.4
prettytable~=3.9.0
vmdpy~=0.2
xgboost~=2.0.3
mealpy~=3.0.1
torch~=2.3.1
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐