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

如何调整Python Stumpy库match函数的最大距离阈值至3标准差?

使用stumpy.match自定义3倍标准差阈值的方法

先明确参数D的含义

  • D不是移除Q后的时间序列,它是时间序列T中所有长度与Q相同的子序列,和Q计算得到的距离值组成的一维数组
  • 长度为n - m + 1的原因:T总长度为n,Q的长度为m,滑动窗口每次移动1步,总共能生成n - m + 1个和Q等长的子序列,每个子序列对应一个到Q的距离,所以D的长度就是这个数值

实现3倍标准差的自定义阈值函数

stumpy.match的max_distance参数支持传入自定义函数,这个函数仅需接收D作为唯一参数,返回你计算的最大允许距离。直接把默认逻辑里的2替换成3即可:

代码示例

import stumpy
import numpy as np

# 自定义3倍标准差的阈值计算函数
def custom_max_distance(D):
    return np.nanmax([np.nanmean(D) - 3 * np.nanstd(D), np.nanmin(D)])

# 假设T是目标时间序列,Q是待匹配的模式
matches = stumpy.match(Q, T, max_distance=custom_max_distance)

这个函数逻辑和默认逻辑完全对齐,只是将标准差的倍数从2改为3,同时保留了np.nanmin(D)作为下限的处理(防止均值减3倍标准差的结果比实际最小距离还小的情况)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 12:14:54