KAN-Transfomer——基于新型神经网络KAN的时间序列预测
1.数据集介绍
ETT(电变压器温度):由两个小时级数据集(ETTh)和两个 15 分钟级数据集(ETTm)组成。它们中的每一个都包含 2016 年 7 月至 2018 年 7 月的七种石油和电力变压器的负载特征。
traffic(交通) :描述了道路占用率。它包含 2015 年至 2016 年旧金山高速公路传感器记录的每小时数据
electrity(电力):从 2012 年到 2014 年收集了 321 个客户每小时电力消耗。
exchange_rate(汇率):收集了 1990 年至 2016 年 8 个国家的每日汇率。
Weather:包括 21 个天气指标,例如空气温度和湿度。它的数据在 2020 年的每 10 分钟记录一次。
ILLNESS:描述了患有流感疾病的患者与患者数量的比率。它包括 2002 年至 2021 年美国疾病控制和预防中心每周数据。
数据集链接:
https://drive.google.com/drive/folders/1ZOYpTUa82_jCcxIdTmyr0LXQfvaM9vIy

参考文献:
[1]https://arxiv.org/abs/2407.05278
2. 处理方法
(1)方法
KAN(Kolmogorov–Arnold Networks)模块负责初始特征提取。KAN是一种针对时间序列的有效特征提取模块,可以帮助模型在更高维度上理解输入特征。Transformer使用编码器和解码器,编码器和解码器部分通过自注意力机制捕捉时间序列中的长程依赖,并实现信息在不同时间步间的高效传播。最后通过嵌入层和全连接层将输入和输出进行维度转换,实现特征的高效表达与映射。
·KAN
KAN 的核心是学习给定问题的组合结构(外部自由度)和单变量函数(内部自由度)。这使得 KAN 不仅可以像 MLP 一样学习特征,还可以非常准确地优化这些学习到的特征。KAN 利用了样条曲线和 MLP 的优点,同时避免了它们的缺点。样条对于低维函数来说是准确的,并且可以轻松地进行局部调整,但会受到维数灾难的影响。另一方面,MLP 更擅长利用组合结构,但难以优化单变量函数。通过结合这两种方法,KAN 可以比单独的样条曲线或 MLP 更有效地学习和准确地表示复杂函数。

·Transformer

(2)实验结果
训练集、验证集和测试集划分设置为6:2:2,实验参数设置如下:
parser = argparse.ArgumentParser(description='KAN')
parser.add_argument('--look_back', type=int, default='10', help='历史look_back步,修改这里也要修改model的look_back')
parser.add_argument('--T', type=int, default='1', help='预测未来的T步,修改这里也要修改model的T')
parser.add_argument('--epochs', type=int, default='300', help='训练轮数')
parser.add_argument('--batch_size', type=int, default='32', help='批大小')
parser.add_argument('--data_path', type=str, default='mydata/ETTm1.csv', help='文件路径')
parser.add_argument('--freq', type=str, default='15min', help='时间特征编码')# freq选项:[s:秒,t:分钟,h:小时,d:每天,b:工作日,w:每周,m:每月],也可以使用更详细的频率,如'15min'或'3h'
parser.add_argument('--num_features', type=int, default='6', help='数据一共多少个特征')
parser.add_argument('--target', type=str, default='OT', help='预测的目标变量')
parser.add_argument('--embed_dim', type=int, default='32', help='嵌入维度')
parser.add_argument('--dense_dim', type=int, default='128', help='隐藏层神经元个数')
parser.add_argument('--num_heads', type=int, default='4', help='头数')
parser.add_argument('--dropout_rate', type=float, default='0.1', help='失活率')
parser.add_argument('--num_blocks', type=int, default='2', help='编码器解码器数')
parser.add_argument('--learn_rate', type=float, default='0.001', help='学习率')args = parser.parse_args()
注:需根据数据集的特征进一步探索最合适的参数组合,以提升模型性能。
本文方法ETTm1数据集:


本文方法ETTh1数据集:


3. 代码下载
KAN-Transfomer——基于新型神经网络KAN的时间序列预测
最后:
小编会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!

相关文章:
KAN-Transfomer——基于新型神经网络KAN的时间序列预测
1.数据集介绍 ETT(电变压器温度):由两个小时级数据集(ETTh)和两个 15 分钟级数据集(ETTm)组成。它们中的每一个都包含 2016 年 7 月至 2018 年 7 月的七种石油和电力变压器的负载特征。 traffic(交通) :描…...
鸿蒙学习自由流转与分布式运行环境-价值与架构定义(1)
文章目录 价值与架构定义1、价值2、架构定义 随着个人设备数量越来越多,跨多个设备间的交互将成为常态。基于传统 OS 开发跨设备交互的应用程序时,需要解决设备发现、设备认证、设备连接、数据同步等技术难题,不但开发成本高,还存…...
【k8s深入理解之 Scheme 补充-2】理解 register.go 暴露的 AddToScheme 函数
AddToScheme 函数 AddToScheme 就是为了对外暴露,方便别人调用,将当前Group组的信息注册到其 Scheme 中,以便了解该 Group 组的数据结构,用于后续处理 项目版本用途使用场景k8s.io/apiV1注册资源某一外部版本数据结构࿰…...
uni-app写的微信小程序每次换账号登录时出现缓存上一个账号数据的问题
uni-app写的微信小程序每次更换另外账号登录时出现缓存上一个账号数据的问题? 清除缓存数据:在 onShow 钩子中,我们将 powerStations、list 和 responseRoles 的值重置为初始状态,以清除之前的缓存数据。重新获取数据:…...
数据分析流程中的Lambda架构,以及数据湖基于Hadoop、Spark的实现
文章目录 一、Lambda架构1、Lambda的三层架构2、简单解释:3、Lambda架构的优缺点 二、数据湖基于Hadoop、Spark的实现1、架构2、数据管理(存储层的辅助功能) 一、Lambda架构 1、Lambda的三层架构 Batch View(批处理视图层&#…...
Android 原生解析 Json 字符串
Android 原生解析 JSON 字符串 1. JSON 基础2. Android 原生 JSON 解析方法2.1 解析 JSON 字符串到 JSONObject关键方法 2.2 解析 JSON 数组到 JSONArray关键方法 2.3 解析嵌套的 JSON 对象 3. 处理异常4. 总结 在 Android 开发中,我们经常需要从服务器获取 JSON 格…...
Windsurf可以上传图片开发UI了
背景 曾经羡慕Cursor的“画图”开发功能,这不Windsurf安排上了。 Upload Images to Cascade Cascade now supports uploading images on premium models Ask Cascade to build or tweak UI from on image upload New keybindings Keybindings to navigate betwe…...
Qt UI设计 菜单栏无法输入名字
在UI界面“在这里输入”,直接双击填写名称,无论是中文还是英文都没有反应。解决方案 2个: 1.双击“在这里输入之后”,在可编辑状态下,空格→enter键,然后在右下角属性框的title中直接填写中文或英文名&…...
blender 视频背景
准备视频文件 首先,确保你有想要用作背景的视频文件。视频格式最好是 Blender 能够很好兼容的,如 MP4 等常见格式。 创建一个新的 Blender 场景或打开现有场景 打开 Blender 软件后,你可以新建一个场景(通过点击 “文件” - “新建…...
【python】OpenCV—Tracking(10.5)—dlib
文章目录 1、功能描述2、代码实现3、效果展示4、完整代码5、涉及到的库函数dlib.correlation_tracker() 6、参考 1、功能描述 基于 dlib 库,实现指定类别的目标检测和单目标跟踪 2、代码实现 caffe 模型 https://github.com/MediosZ/MobileNet-SSD/tree/master/…...
音视频入门基础:MPEG2-TS专题(9)——FFmpeg源码中,解码TS Header的实现
一、引言 FFmpeg源码对MPEG2-TS传输流/TS文件解复用时,在通过read_packet函数读取出一个transport packet后,会调用handle_packet函数来处理该transport packet: static int handle_packets(MpegTSContext *ts, int64_t nb_packets) { //..…...
解决“磁盘已插上,但Windows系统无法识别“问题
电脑上有2块硬盘,一块是500GB的固态硬盘,另一块是1000GB的机械硬盘,按下开机键,发现500G的固态硬盘识别了,但1000GB的机械硬盘却无法识别。后面为了描述方便,将"500GB的固态硬盘"称为X盘…...
论文笔记-WWW2024-ClickPrompt
论文笔记-WWW2024-ClickPrompt: CTR Models are Strong Prompt Generators for Adapting Language Models to CTR Prediction ClickPrompt: CTR模型是大模型适配CTR预测任务的强大提示生成器摘要1.引言2.预备知识2.1传统CTR预测2.2基于PLM的CTR预测 3.方法3.1概述3.2模态转换3.…...
53 基于单片机的8路抢答器加记分
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 首先有三个按键 分别为开始 暂停 复位,然后八个选手按键,开机显示四条杠,然后按一号选手按键,数码管显示30,这…...
【java数据结构】二叉树OJ题
【java数据结构】二叉树OJ题 一、检查两颗树是否相同二、另一颗树的子树三、翻转二叉树四、对称二叉树五、判断一颗二叉树是否是平衡二叉树六、给定一个二叉树, 找到该树中两个指定节点的最近公共祖先七、根据一棵树的前序遍历与中序遍历构造二叉树练习:八、二叉树前…...
IIC和SPI的时序图
SCL的变化快慢决定了通信速率,当SCL为低电平的时候,无论SDA是1还是0都不识别: ACK应答:当从设备为低电平的时候识别为从设备有应答: 谁接收,谁应答: 起始位和停止位: IIC的时序图&am…...
MySQL数据库表的操作
1、总述 今天我跟大家分享MySQL数据库中表的创建,查看,修改,删除。 2、创建表 create table table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; 说明࿱…...
.net core 创建linux服务,并实现服务的自我更新
目录 创建服务创建另一个服务,用于执行更新操作给你的用户配置一些systemctl命令权限 创建服务 /etc/systemd/system下新建服务配置文件:yourapp.service,内容如下: [Unit] Descriptionyourapp Afternetwork.target[Service] Ty…...
springboot338it职业生涯规划系统--论文pf(论文+源码)_kaic
毕 业 设 计(论 文) 题目:it职业生涯规划系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以…...
oracle将select作为字段查询
在Oracle中,如果你想将一个SELECT语句作为字段的值,你可以使用子查询或者使用WITH子句(也称为公用表表达式CTE)。以下是两种方法的示例: 方法1:使用子查询 语法如下: SELECTcolumn1,(SELECT …...
从“解决”到“消解”:电车难题作为AI元人文的第一次工程实验
从“解决”到“消解”:电车难题作为AI元人文的第一次工程实验摘要传统自动驾驶伦理试图回答“算法应当如何选择”——本质上是旧主体结构内的规则修补。本文基于一篇题为《电车难题的一个原创解决方案》的博客,揭示其未被广泛识别的前提:该方…...
Java 网页抓取
尽管很多人更喜欢使用 Python,另一种同样流行的选择是使用 Java 进行网页抓取。下面是一份循序渐进的指南,帮助你轻松完成这一过程。 在开始之前,请确保你的电脑已完成以下环境配置,以便更好地进行网页抓取: Java 11…...
ESP32 与 Air780E 4G 模块配合做 HTTP 数据传输:从硬件到代码的实战详解
在物联网(IoT)项目中,设备往往部署在无 Wi-Fi、无以太网的户外或移动场景(如远程环境监测、车载终端、野外监控等)。此时,ESP32 虽具备强大的主控能力,但缺乏蜂窝通信功能;而合宙 Ai…...
因为电力公司接线员水平差/有人偷电导致家里电压偏高烧毁电线和充电器
我们这个楼梯有10个接线的人,三相电本来一边是中性线,另外有3根出线,也就是三相4线制,一般中性线电压0,其他3根出现电压220V,也不知道是电力公司的人接错了,还是有人故意在搞鬼,有人…...
第15课:网页爬虫|反爬策略全解析【看懂网站如何“认出”你,为对抗打下地基】
文章目录学习目标一、通俗原理:反爬就是“门卫的十八般武艺”1.1 网站也是“有脾气的”1.2 反爬的“三层漏斗”模型1.3 反爬的“光谱”二、User-Agent校验:最基础的门卫2.1 原理2.2 触发条件2.3 识别方式2.4 真实案例:豆瓣的UA检测2.5 绕过思…...
Microne微盟原厂原装一级代理商分销经销
品牌 元件类别 型号 描述 包装 数量 MICRONE LDO ME6239A50M3G SOT-23 3000 9,000...
三步彻底卸载Windows Edge浏览器:EdgeRemover 2025终极指南
三步彻底卸载Windows Edge浏览器:EdgeRemover 2025终极指南 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover …...
告别Win32DiskImager:用dd命令在Ubuntu下给开发板烧录U-Boot的保姆级教程
告别Win32DiskImager:用dd命令在Ubuntu下给开发板烧录U-Boot的保姆级教程 在嵌入式开发的世界里,U-Boot就像是一把万能钥匙,没有它,再强大的开发板也无法启动。传统上,很多开发者习惯在Windows环境下使用Win32DiskImag…...
STM32F103ZET6固件库工程搭建避坑大全:从“Manage Run-Time Environment”弹窗到HEX文件生成
STM32F103ZET6固件库工程搭建实战:从零到点灯的完整避坑指南 第一次接触STM32开发的朋友,往往会在工程搭建阶段就遇到各种"拦路虎"。明明按照教程一步步操作,却总在某个环节卡住,弹出的错误提示让人一头雾水。本文将带你…...
基于双Transformer的网球轨迹预测系统设计与实现
1. 轨迹预测技术概述轨迹预测作为计算机视觉与运动分析领域的核心技术,在航空航天、智能交通和体育竞技等多个领域具有广泛应用价值。传统方法主要依赖复杂的物理建模或大量标注数据,不仅计算效率低下,还面临硬件成本高昂的挑战。以网球运动为…...
