27915b0ecb
- 新增 _getTransitionMatrix2ndOrder、_calcTransitionScore2ndOrder 方法 - getPredictionV3 根据数据量自动选择一阶或二阶算法 - 阈值: 200期历史,状态对观察>=5次,比例>=30%
3.6 KiB
3.6 KiB
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 |
|
|
|
|
|
|
Phase 11 Plan 05: 二阶马尔可夫转移概率增强 Summary
One-liner
实现二阶马尔可夫转移概率,根据数据量和状态对观察次数自动选择一阶或二阶算法,提升预测准确性。
Implementation Details
Task 1: 实现二阶马尔可夫转移矩阵构建方法
File: application/admin/model/History.php
新增 _getTransitionMatrix2ndOrder 方法:
- 状态空间从 N 扩展到 N^2(zone:25状态,tail:100状态,head:25状态)
- 状态键格式为 "prev1-prev2",如 "2-3" 表示前一期区域2、前两期区域3
- 使用拉普拉斯平滑处理避免零概率问题
- 返回
sufficient_pairs、total_pairs、min_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_order、transition_available字段 - 得分计算循环中根据阶数选择
_calcTransitionScore或_calcTransitionScore2ndOrder
Deviations from Plan
None - plan executed exactly as written.
Verification Results
所有验收标准通过:
_getTransitionMatrix2ndOrder方法存在,包含$minStatePairCount参数sufficient_pairs、total_pairs在返回结构中存在_calcTransitionScore2ndOrder方法存在,包含 prev1/prev2 参数minPeriodsThreshold = 200、minStatePairCount = 5、sufficientRatio >= 0.3transition_order、transition_available在 analysis 数组中存在
Key Decisions
- 数据量阈值提升到200期 - 原计划可能考虑100期,但二阶状态空间更大(N^2),需要更多数据才能稳定估计
- 以tail为基准判断 - tail类型状态空间最大(100),是最苛刻的指标,确保整体二阶概率估计稳定
- 状态对观察次数阈值5次 - 经验值,平衡数据需求与概率估计可靠性
Self-Check
Files Created/Modified
- application/admin/model/History.php: MODIFIED (新增2个方法,修改1个方法)
Commits
aab18df: feat(11-05): 实现二阶马尔可夫转移概率增强