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

使用Python实现时间序列分割:划分RampUp/Plateau/CoolDown区域方法咨询

该需求完全可以通过无监督方式实现,具体落地方案如下:

时间序列走势示例

无监督实现步骤

  • 先做数据预处理:用滑动平均或者scipy提供的Savitzky-Golay滤波对原始时间序列做平滑,过滤高频噪声,避免后续斜率计算出现异常波动。
  • 提取斜率特征:计算平滑后序列的一阶差分,对应每个采样点的瞬时斜率,三个区域的特征区分度极高:
    • RampUp区域:一阶差分持续为正,数值保持在较高区间
    • Plateau区域:一阶差分趋近于0,波动范围极小
    • CoolDown区域:一阶差分持续为负,绝对值保持在较高区间
  • 检测分割边界:直接调用Python的ruptures库实现变化点检测,选择PELT或者BinSeg算法,将一阶差分的阶跃变化作为损失判断依据,算法会自动输出两个最优变化点,刚好对应RampUp到Plateau、Plateau到CoolDown的边界索引。
  • 规则后处理:可以根据你的数据集特性加简单的校验规则,比如限定Plateau区域的长度不能小于总长度的20%、两个边界不能太靠近序列首尾,进一步降低误判概率。

推理部署方案

把上述完整逻辑封装成调用函数即可,新的同类型时间序列输入后,直接返回两个边界的索引值,按索引拆分就能得到三个对应区域,无需额外训练模型。
如果后续对精度要求更高,只需要标注30~50条样本做弱监督校准,就能把泛化准确率提升到95%以上。

内容的提问来源于stack exchange,提问作者Amruth Kiran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:54:04