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

Stumpy 1.11.1查找Top-k基元失效:仅返回1个基元而非预期2个

解决Stumpy 1.11.1中stumpy.motifs()仅返回单个基元的问题

可能原因

Stumpy不同版本的motifs()参数默认值或检测逻辑存在差异,1.11.1版本中默认的匹配数量限制、阈值设置可能过滤掉了第二个预期基元。

具体修复步骤

  1. 显式指定最大匹配数
    默认max_matches参数可能设为1,导致仅返回第一个基元。调用时显式设置该参数为2及以上:
motifs_indices, motifs_dists = stumpy.motifs(
    T,  # 你的时间序列数据
    m,  # 子序列长度
    max_matches=2,  # 指定最多检测2个基元
    cutoff=None  # 关闭自动阈值截断,保留所有符合条件的匹配
)
  1. 调整阈值参数cutoff
    若默认阈值过高,会过滤掉第二个基元。可基于矩阵剖面计算合理阈值,或直接设为None让函数自动适配:
# 先计算矩阵剖面
mp = stumpy.stump(T, m)
# 取剖面中前5个最小值的均值作为阈值
cutoff = np.mean(np.sort(mp[:, 0])[:5])
# 调用motifs并传入自定义阈值
motifs_indices, motifs_dists = stumpy.motifs(T, m, max_matches=2, cutoff=cutoff)
  1. 检查数据完整性
    确认输入时间序列T与原示例数据完全一致,包括长度、数值细节,数据差异会直接影响基元检测结果。

  2. 核对版本参数文档
    查看1.11.1版本motifs()的参数说明,确认是否有其他参数(如exclude_overlapping)影响结果,若存在重叠基元可将该参数设为False:

help(stumpy.motifs)

结果验证

调整参数后,检查motifs_indices的形状应变为(2, N)(N为每个基元的匹配数量),对应人员进出房间的两个预期基元。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 18:50:43