当前位置: 首页 > news >正文

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注册资源某一外部版本数据结构&#xff0…...

uni-app写的微信小程序每次换账号登录时出现缓存上一个账号数据的问题

uni-app写的微信小程序每次更换另外账号登录时出现缓存上一个账号数据的问题? 清除缓存数据:在 onShow 钩子中,我们将 powerStations、list 和 responseRoles 的值重置为初始状态,以清除之前的缓存数据。重新获取数据&#xff1a…...

数据分析流程中的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盘&#xf…...

论文笔记-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 存储引擎; 说明&#xff1…...

.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 …...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...