SuperAPI AI 工具集

temporal-circadian-patterns

数据与分析

查看项目

更新于 10-15 09:47

技能介绍

用途

该技能用于分析带时间戳的活动数据,重建活动画像并识别时间模式。核心原理是:时间戳编码了行为节律,在多个粒度上分箱可以揭示单一粒度分析会遗漏的日常规律、周周期、季节趋势和间歇性爆发。

主要能力

  • 多粒度分箱:按小时、日、周、月聚合时间戳,重建活动分布。
  • 活动热力图:构建 7x24 矩阵(行=星期几,列=小时),是信息量最大的时间可视化。
  • 昼夜规律检测:通过每日小时分布的余弦相似度衡量活动在相同小时聚集的一致性,输出 0-1 的规律性分数。
  • 周模式与星期几分析:使用 Kruskal-Wallis 检验判断活动是否随星期几显著变化,并比较工作日与周末。
  • 季节分解:在时间跨度足够时,使用 STL 将活动序列分解为趋势、季节和残差,并计算季节强度。
  • 突发检测:识别活动超过均值加若干倍标准差的窗口,发现异常高峰。
  • 参与风格分类:根据时间模式区分稳定贡献者、集中爆发型用户、周末型用户等。

使用方式

工作流包含十个步骤:

  1. 验证时间戳数据与时区信息。
  2. 归一化时区并处理夏令时。
  3. 多粒度分箱(小时、日、周、月)。
  4. 构建活动热力图(星期几 x 小时)。
  5. 检测昼夜规律。
  6. 识别周与星期几模式。
  7. 季节分解(若时间跨度足够)。
  8. 突发检测。
  9. 分类参与风格。
  10. 将发现写入 docs/analysis/12-temporal-circadian-patterns.md。

关键阈值与注意事项:

  • 任何分析最少需要 20 条时间戳,低于此值仅列出原始时间戳。
  • 小时分箱需要 50 条以上且分布在 7 个以上不同日期。
  • 周模式需要至少 4 周数据。
  • 季节分解需要至少 2 个完整季节周期(周季节性需 14 周以上,年度需 2 年以上)。
  • 小时分箱前必须进行时区归一化,仅用 UTC 会使昼夜模式产生偏移。
  • 夏令时转换应使用 pytz 或 zoneinfo 的 tz_localize,避免朴素偏移算术导致重复或缺失小时。
  • 突发检测阈值为窗口内活动超过均值加 2 倍标准差,可按语料调整。
  • 热力图标准方向为行=星期几,列=小时,7x24 网格。
  • pandas 重采样别名:h=小时,D=日,W=周,ME=月末;pandas >= 2.0 应使用 ME 而非已弃用的 M。

适用场景

  • 数据集包含用户操作的时间戳(帖子、提交、购买、登录、消息)。
  • 需要重建用户或系统最活跃/最不活跃的时段。
  • 调查昼夜规律(一致的日常模式 vs 不规律时间)。
  • 检测周周期(工作日与周末行为差异)。
  • 识别季节趋势或长期活动演变。
  • 发现活动爆发(突然高于基线的峰值)。
  • 根据时间模式分类参与风格。
  • 为下游画像或聚类提供时间特征。

限制

  • 时间戳缺少任何时区指示且无法合理推断时不应使用,因为未归一化的分箱会产生误导性的小时画像。
  • 总时间戳少于 20 条时数据不足。
  • 不适用于流式数据的实时异常检测,该技能面向回顾性批量分析。
  • 不应试图从活动时间推断物理位置。
  • 若时间戳缺少时区信息,应检查列名是否暗示 UTC、是否存在单独时区列;若都没有,记录假设并继续使用 UTC,不要从活动模式猜测时区。