拐点检测常用算法总结

文章探讨了拐点检测问题,特别是针对不平缓时间序列的突变点识别。通过定义拐点并提出评估算法质量的标准,阐述了如何利用损失函数和对比函数进行序列的均匀性测量。文章讨论了两种情况下的离散优化问题,即固定和非固定拐点数量,并强调了合理约束的重要性。损失函数在这一过程中起到关键作用,用于判断子序列的均匀程度。
摘要由CSDN通过智能技术生成

概览

问题定义

拐点检测名为 change point detection,对于一条不平缓的时间序列曲线,认为存在一些时间点 ( t 1 , t 2 , . . . , t k ) ( t_1 , t_2 , . . . , t_k ) (t1,t2,...,tk) ,使得曲线在这些点对应的位置发生突变,这些时间点对应的曲线点称为拐点,在连续的两个拐点之间,曲线是平稳的。
在这里插入图片描述
拐点检测算法的质量,通过算法输出拐点与实际观测到的拐点的差值绝对值除以样本数来评估。
在这里插入图片描述
理想情况下,当样本数 T 无穷大时,误差应该减少到 0,这种性质称为满足渐近一致性 (asymptotic consistency.)
在这里插入图片描述

符号定义

y a . . b y_{a..b} ya..b 表示时间点 a a a b b b 之间的时间序列,因此完整信号为 y 0.. T y_{0..T} y0..T

对于给定的拐点索引 t t t,它的关联分数 associate fraction 称为拐点分数 change point fractions ,公式为 :
在这里插入图片描述
拐点分数的集合 τ = τ 1 , τ 2 , … \pmb{τ} = { τ_1 , τ_2 , … } τ=τ1,τ2,,写作 ∣ τ ∣ \boldsymbol{|\tau|} τ

研究方法

一般思路是构造一个对照函数 contrast function,目标是将对照函数的值最小化。
在这里插入图片描述
其中 c ( ⋅ ) c(\cdot) c() 表示用来测量拟合度 goodness-of-fit 的损失函数 cost function,损失函数的值在均匀的子序列上较低,在不均匀的子序列上较高。

基于离散优化问题 discrete optimization problem,拐点的总数量记为 K

如果 K 是固定值,估算的拐点值为:
在这里插入图片描述
如果 K K K 不是固定值,估算的拐点值为:
在这里插入图片描述
其中 p e n ( t ) pen(t) pen(t) 为对 t t t 的惩罚项

在这种方法论下,拐点检测的算法包含以下三个元素:

  1. 选择合适的损失函数来测算子序列的均匀程度 homogeneity,这与要检测的变化类型有关
  2. 解决离散优化问题
  3. 合理约束拐点的数量,确定使用固定的 K 还是用 pen() 来惩罚 penalizing 不固定的数量

损失函数

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值