You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

时间序列数据中平台期(plateau)识别算法求解

时序数据集可视化结果
从可视化结果可见,该组数据在数值1987、3757位置存在两处明显的平台期,此前尝试实时时间序列峰值检测算法未取得预期效果,以下是可直接落地的解决思路与方案:

时间序列平台段提取方案

峰值检测算法的设计目标是识别局部极值点,和平台段「连续区间内数值波动极小、前后伴随明显阶跃变化」的特征完全不匹配,自然拿不到想要的结果,可按下面两类方法实现提取:

基础快速实现(低噪点场景首选,计算复杂度O(n))

  • 计算序列一阶差分
    对长度为n的原始时序数组y,逐点计算相邻值差得到差分数组diff,计算逻辑为diff[i] = y[i+1] - y[i]。平台段内部相邻点差值的绝对值会无限趋近于0,和上升、下降段的差分值有非常清晰的分界。
    波动阈值不需要手动硬编码适配:取全量abs(diff)的10%分位值作为判断阈值,所有满足abs(diff[i]) < 阈值的位置先标记为候选平台点。
  • 噪点过滤与连续段合并
    上一步得到的候选点里会夹杂零散的单点、超短段噪点,设置最小平台长度阈值(参考图里两个平台的长度,可先设为20~30),仅保留连续长度大于该阈值的候选区间,过滤掉零散噪点,就能得到初步的平台段范围。
  • 边界校准(可选,追求定位精度时使用)
    对初步筛出的每个平台段,在其前后各扩展10个点的范围,找到范围内差分绝对值最大的位置,分别作为平台的精确起止点即可。

进阶鲁棒实现(高噪点场景适配)

如果原始数据存在较多随机噪点,直接做差容易把噪点误判为阶跃、把平段误判为波动,可改用滚动窗口统计法:

  • 选定长度为10~15的滑动窗口,逐窗口计算窗口内数值的标准差
  • 取所有窗口标准差的10%分位作为波动阈值,标记标准差低于阈值的窗口为候选平台窗口
  • 同样做短窗口过滤、边界校准,就能得到最终的平台段

调参提示

整个流程只有两个核心参数需要调整:波动判断阈值、最小平台长度,调参时把提取到的平台段在原始时序图上叠色标注,对照调整1~2次就能得到完全匹配的结果。我之前在多组工业传感器时序的平台段提取场景用过这套逻辑,对这种肉眼可辨的明显平段,识别准确率基本能到100%,比复杂的时序聚类、曲线拟合方法效率高很多。


内容的提问来源于stack exchange,提问作者Khan From Chedum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 07:39:20