Files
amlhc/.planning/phases/11-predictv3/11-05-SUMMARY.md
T
916117771 27915b0ecb docs(11-05): complete 二阶马尔可夫转移概率增强 plan
- 新增 _getTransitionMatrix2ndOrder、_calcTransitionScore2ndOrder 方法
- getPredictionV3 根据数据量自动选择一阶或二阶算法
- 阈值: 200期历史,状态对观察>=5次,比例>=30%
2026-05-01 15:22:39 +08:00

3.6 KiB
Raw Blame History

phase, plan, subsystem, tags, dependency_graph, tech_stack, key_files, decisions, metrics
phase plan subsystem tags dependency_graph tech_stack key_files decisions metrics
11-predictv3 05 prediction
markov
transition-probability
second-order
algorithm-enhancement
requires provides affects
二阶马尔可夫转移矩阵构建
二阶转移得分计算
getPredictionV3
added patterns
二阶马尔可夫链
拉普拉斯平滑
状态对观察检查
conditional-algorithm-selection
fallback-strategy
created modified
path changes
application/admin/model/History.php 新增 _getTransitionMatrix2ndOrder、_calcTransitionScore2ndOrder 方法,修改 getPredictionV3 集成二阶逻辑
数据量阈值设为200期(而非100期),确保二阶概率估计稳定
状态对观察次数阈值设为5次,比例阈值30%
以tail类型状态空间(100)为基准判断二阶可用性
duration tasks files completed_date
5min 3 1 2026-05-01

Phase 11 Plan 05: 二阶马尔可夫转移概率增强 Summary

One-liner

实现二阶马尔可夫转移概率,根据数据量和状态对观察次数自动选择一阶或二阶算法,提升预测准确性。

Implementation Details

Task 1: 实现二阶马尔可夫转移矩阵构建方法

File: application/admin/model/History.php

新增 _getTransitionMatrix2ndOrder 方法:

  • 状态空间从 N 扩展到 N^2zone:25状态,tail:100状态,head:25状态)
  • 状态键格式为 "prev1-prev2",如 "2-3" 表示前一期区域2、前两期区域3
  • 使用拉普拉斯平滑处理避免零概率问题
  • 返回 sufficient_pairstotal_pairsmin_threshold 供调用者判断是否足够稳定

Task 2: 实现二阶转移概率得分计算方法

File: application/admin/model/History.php

新增 _calcTransitionScore2ndOrder 方法:

  • 综合区域、尾号、首号三个维度的二阶转移概率
  • 各维度权重:区域40%、尾号35%、首号25%
  • 使用 prob_matrix 中对应状态键的概率值计算得分

Task 3: 在 getPredictionV3 中集成二阶马尔可夫

File: application/admin/model/History.php

修改 getPredictionV3 方法:

  • 根据历史数据量决定使用一阶或二阶马尔可夫
  • 阈值条件:总期数 >= 200 且 状态对观察次数 >= 5 比例 >= 30%
  • 以 tail 类型状态空间(100)为基准判断二阶可用性
  • analysis 数组中添加 transition_ordertransition_available 字段
  • 得分计算循环中根据阶数选择 _calcTransitionScore_calcTransitionScore2ndOrder

Deviations from Plan

None - plan executed exactly as written.

Verification Results

所有验收标准通过:

  • _getTransitionMatrix2ndOrder 方法存在,包含 $minStatePairCount 参数
  • sufficient_pairstotal_pairs 在返回结构中存在
  • _calcTransitionScore2ndOrder 方法存在,包含 prev1/prev2 参数
  • minPeriodsThreshold = 200minStatePairCount = 5sufficientRatio >= 0.3
  • transition_ordertransition_available 在 analysis 数组中存在

Key Decisions

  1. 数据量阈值提升到200期 - 原计划可能考虑100期,但二阶状态空间更大(N^2),需要更多数据才能稳定估计
  2. 以tail为基准判断 - tail类型状态空间最大(100),是最苛刻的指标,确保整体二阶概率估计稳定
  3. 状态对观察次数阈值5次 - 经验值,平衡数据需求与概率估计可靠性

Self-Check

Files Created/Modified

  • application/admin/model/History.php: MODIFIED (新增2个方法,修改1个方法)

Commits

  • aab18df: feat(11-05): 实现二阶马尔可夫转移概率增强

Self-Check: PASSED