【时间序列聚类】Feature-driven Time Series Clustering(特征驱动的时间序列聚类)

文章目录

    • 1.文章介绍
    • 2.问题背景
    • 3.拟解决的问题
    • 4.主要贡献
    • 5.提出的方法
      • 5.1模型pipeline
      • 5.2特征抽取和选择
      • 5.3图渲染和社区检测
      • 5.4共现矩阵的构建
      • 5.5对共现矩阵进行聚类
    • 6.实验
      • 6.1模型设置
      • 6.2实验结果
      • 6.3消融实验
    • 7.结论
    • 8.个人观点
    • 9.Reference

1.文章介绍

在这里插入图片描述

  • 论文出处:EDBT 2021(CCF-B)

  • 论文链接

  • 代码地址

  • 【摘要】:时间序列聚类问题在现实生活中有多种应用,尤其是在数据科学和数据分析管道中。现有的时间序列聚类算法只能根据原始数据计算时间序列的相似性,或者使用固定的特征集,因此对于特征丰富的真实世界时间序列来说效果不佳。在本文中,我们开发了一种基于特征的半监督聚类框架,解决了变长和异构时间序列的上述问题。具体来说,我们依赖于时间序列的图编码,这种编码是通过考虑大量重要的提取特征而获得的。然后,我们采用社区检测,并利用共现矩阵将所有最佳聚类结果组合在一起。我们进行的大量实验评估表明,我们的方法具有可扩展性和鲁棒性,而且在现实世界的医疗保健数据和 UCR 基准数据上都优于最先进的聚类算法。

2.问题背景

  • 现有的时间序列聚类算法一般基于原始数据计算时间序列的相似性或使用一组固定的特征,而这对特征丰富的现实世界时间序列无效

3.拟解决的问题

  • 根据输入的数据集自动选择最合适的统计特征,从而用于聚类

4.主要贡献

  • 提出了一种利用从时间序列中提取的最有鉴别力的特征的新型半监督聚类方法,将相似的时间序列视为社区,并将不同的社区编码为共现矩阵,从而获得时间序列的统一相似度值

  • 对给定数据集的所有特征同等对待,即通过计算选择合适的统计特征

  • 与Seeded KMeans 和K-Shape相比,方法高质量且扩展性更高

5.提出的方法

5.1模型pipeline

file

5.2特征抽取和选择

  • 根据时间序列的标签,使用Benjamini-Yekutieli程序识别各个特征的相关性,从而获得每个特征的p值。

  • 再从p值列表中选取20个特征,这些特征是通过PFA(PCA的变体)计算而来的

  • 示例,获得的特征如下:
    file

5.3图渲染和社区检测

定义:假设有一个特征 F i F_i Fi和一组时间序列 { T S 1 , . . . , T S n } \{TS_1,...,TS_n\} {TS1,...,TSn},将 T S i TS_i TSi成为图G中顶点集V的一个节点,让E成为图G的边集,每条边 e i e_i ei连接G中的两个结点
如图所示:
file

使用一个启发式的百分比 x x x表示要保持的最小距离的比例,例如选择50%,则距离大于28的边被剪去,小于等于28的边被保留,通常设置阈值为80%
file

应用社区检测 (CD) 算法来搜索形成社区的密集连接的顶点组,如图所示:
file

5.4共现矩阵的构建

  • 假设有M条时间序列和L个特征,再L个图上应用CD算法,可以获得以下聚类结果:
    file

  • 共现矩阵单元 x i j x_{ij} xij对应于时间序列 T S i TS_i TSi T S j TS_j TSj之间的相似度,相似度计算公式如下:
    file
    即时间序列 T S i TS_i TSi T S j TS_j TSj一起出现的次数除以 T S i TS_i TSi出现的次数

  • CD算法的应用及其对无权重共现矩阵的处理可能会导致社区碎片化的问题,即会形成大量的社区,而这些社区只包含几个时间序列,也就是聚类问题中常常遇到的退化解问题。

  • 加权函数定义如下:
    file
    其中C是用户事先定义的聚类数量, O i O_i Oi是通过CD算法提取的社区数量

示例:

  1. 原始数据:
    file
  2. 通过PFA算法获得三个特征:
    file
  3. 然后利用CD算法对每个特征进行聚类,获得的结果如下:
    file
  4. 利用权重函数W获得加权共线矩阵:
    file
  5. 最终结果如下:
    file

5.5对共现矩阵进行聚类

  • 将共现矩阵中的每行数据看作一个向量,使用欧氏距离进行计算,计算结果如下:
    file

  • 最后使用K-Medoid算法进行聚类

6.实验

6.1模型设置

  • 数据集:肾小球过滤率(GFR)数据集的两个变体Kidney3Yr和Kidney5Yr,UCR数据集

  • 评价指标:AMI

  • 对比方法:无监督的KShape和半监督的SeededKMeans

6.2实验结果

  • UCR数据集上的AMI指标对比
    file

  • 肾脏案例研究
    file

  • 扩展性研究
    file

6.3消融实验

  • 将距离度量换成DTW
    file

  • 使用随机选择的特征
    file

  • 将pipeline中的3,4,5步替换成K-means,即使用PFA算法选择和提取特征后直接使用K-Means算法
    file

7.结论

  • 本方法利用了从数据本身提取的特征,而不是为所有数据集采用一组预定义的特征

  • 本方法可以通过无监督方法进行改进,而不是当前的半监督方法

  • 可以根据处理后的特征动态选择图创建的阈值进行改进

  • 社区检测(CD)算法的权重可以与特征的相关度相结合

8.个人观点

  • 论文仅仅对比了两种算法,因为他的方法是半监督的,相关的论文代码太少,于是作者对比了一个无监督方法和一个半监督方法。我们是否也可以使用半监督方法与无监督方法进行对比

  • 本文的算法流程并不复杂,主要步骤就在于怎样获得共现矩阵

  • 文中使用到了tsfresh,它是用于从时间序列中自动提取特征的python包。

9.Reference

  • Benjamini-Yekutieli程序

  • tsfresh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/31126.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tomcat负载均衡配置

这里拿Nginx和之前做的Tomcat 多实例来实现tomcat负载均衡 1.准备多实例与nginx tomcat单机多实例部署-CSDN博客 2.配置nginx做负载均衡 upstream tomcat{ server 192.168.60.11:8081; server 192.168.60.11:8082; server 192.168.60.11:8083; } ser…

SQLAlchemy系列教程:如何执行原生SQL

Python中的数据库交互提供了高级API。但是,有时您可能需要执行原始SQL以提高效率或利用数据库特定的特性。本指南介绍在SQLAlchemy框架内执行原始SQL。 在SQLAlchemy中执行原生SQL SQLAlchemy虽然以其对象-关系映射(ORM)功能而闻名&#xff…

19.HarmonyOS Next CustomSlider组件基础教程(一)

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 1. 组件介绍 Slider(滑动选择器)是HarmonyOS中常用的交互组件,用于在给定的数值范围内进行连续值的选择。本教…

管中窥豹数字预失真(DPD)

管中窥豹数字预失真(DPD) 数字预失真在通信领域发挥了巨大的作用,对提高功放效率、改善误码率起了不可忽略的作用,广泛运用与通信、雷达等各种领域。但是对于普通用户,它显得及其高深神秘。今天就用这个短文&#xff…

MCP极简入门:超快速上手运行简单的MCP服务和MCP客户端

MCP是什么? 首先我们快速过一下MCP的基本概念,接着我们会通过一个简单的天气服务的教程,来上手学会使用MCP服务和在主机运行服务。本文根据官方教程改编。 1. MCP的基本概念 MCP(Model Context Protocol,模型上下文…

DeepSeek进阶应用(一):结合Mermaid绘图(流程图、时序图、类图、状态图、甘特图、饼图)

🌟前言: 在软件开发、项目管理和系统设计等领域,图表是表达复杂信息的有效工具。随着AI助手如DeepSeek的普及,我们现在可以更轻松地创建各种专业图表。 名人说:博观而约取,厚积而薄发。——苏轼《稼说送张琥》 创作者&…

海康线扫相机平场矫正教程

0、平场矫正前的准备确认 1、白纸准备 确保视野中有一张平整且无折痕的白纸,使其完全铺满相机的整个视野。 2、行高设置 将行高参数设定为 2048。 3、灰度值控制 相机端图像的灰度值应维持在 120 - 180 这个区间内。同时,最亮像素点与最暗像素点的灰度…

数智读书笔记系列015 探索思维黑箱:《心智社会:从细胞到人工智能,人类思维的优雅解读》读书笔记

引言 《The Society of Mind》(《心智社会》)的作者马文・明斯基(Marvin Minsky),是人工智能领域的先驱和奠基者之一 ,1969 年获得图灵奖,被广泛认为是对人工智能领域影响最大的科学家之一。他…

游戏引擎学习第148天

回顾并规划今天的工作 没有使用引擎,也没有任何库支持,只有我们自己,编写游戏的所有代码,不仅仅是小小的部分,而是从头到尾。现在,我们正处于一个我一直想做的任务中,虽然一切都需要按部就班&a…

bug-Ant中a-select的placeholder不生效(绑定默认值为undefined)

1.问题 Ant中使用a-select下拉框时,placeholder设置输入框显示默认值提示,vue2ant null与undefined在js中明确的区别: null:一个值被定义,定义为“空值” undefined:根本不存在定义 2.解决 2.1 a-select使…

DeepSeek教我写词典爬虫获取单词的音标和拼写

Python在爬虫领域展现出了卓越的功能性,不仅能够高效地抓取目标数据,还能便捷地将数据存储至本地。在众多Python爬虫应用中,词典数据的爬取尤为常见。接下来,我们将以dict.cn为例,详细演示如何编写一个用于爬取词典数据…

springboot-自定义注解

1.注解的概念 注解是一种能被添加到java代码中的【元数据,类、方法、变量、参数和包】都可以用注解来修饰。用来定义一个类、属性或一些方法,以便程序能被捕译处理。 相当于一个说明文件,告诉应用程序某个被注解的类或属性是什么&#xff0c…

低代码开发直聘管理系统

低代码 DeepSeek 组合的方式开发直聘管理系统,兼职是开挂的存在。整个管理后台系统 小程序端接口的输出,只花了两个星期不到。 一、技术栈 后端:SpringBoot mybatis MySQL Redis 前端:Vue elementui 二、整体效果 三、表结…

【面试】Kafka

Kafka 1、为什么要使用 kafka2、Kafka 的架构是怎么样的3、什么是 Kafka 的重平衡机制4、Kafka 几种选举过程5、Kafka 高水位了解过吗6、Kafka 如何保证消息不丢失7、Kafka 如何保证消息不重复消费8、Kafka 为什么这么快 1、为什么要使用 kafka 1. 解耦:在一个复杂…

文件操作详解(万字长文)

C语言文件操作 一、为什么使用文件?二、文件分类三、文件的打开和关闭四、文件的顺序读写4.1fputc4.2fgetc4.3fputs4.4fgets4.5 fprintf4.6 fscanf4.7 fwrite4.8 fread 五、文件的随机读写5.1 fseek5.2 ftell和rewind六、文件读取结束的判定七、文件缓冲区 一、为什…

突破极限!蓝耘通义万相2.1引爆AI多模态新纪元——性能与应用全方位革新

云边有个稻草人-CSDN博客 目录 一、 引言 二、 蓝耘通义万相2.1版本概述 三、 蓝耘通义万相2.1的核心技术改进 【多模态数据处理】 【语音识别与文本转化】 【自然语言处理(NLP)改进】 【跨平台兼容性】 四、 蓝耘注册 部署流程—新手也能轻松…

力扣-股票买入问题

dp dp元素代表最大利润 f[j][1] 代表第 j 次交易后持有股票的最大利润。在初始状态,持有股票意味着你花钱买入了股票,此时的利润应该是负数(扣除了买入股票的成本),而不是 0。所以,把 f[j][1] 初始化为负…

ubuntu22.04本地部署OpenWebUI

一、简介 Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台,旨在完全离线运行。它支持各种 LLM 运行器,如 Ollama 和 OpenAI 兼容的 API,并内置了 RAG 推理引擎,使其成为强大的 AI 部署解决方案。 二、安装 方法 …

Unity开发——CanvasGroup组件介绍和应用

CanvasGroup是Unity中用于控制UI的透明度、交互性和渲染顺序的组件。 一、常用属性的解释 1、alpha:控制UI的透明度 类型:float,0.0 ~1.0, 其中 0.0 完全透明,1.0 完全不透明。 通过调整alpha值可以实现UI的淡入淡…

LVGL直接解码png图片的方法

通过把png文件解码为.C文件,再放到工程中的供使用,这种方式随时速度快(应为已经解码,代码中只要直接加载图片数据显示出来即可),但是不够灵活,适用于哪些简单又不经常需要更换UI的场景下使用。如…