Files
amlhc/.planning/phases/11-predictv3/11-REVIEWS.md
T
916117771 8b2590c5b5 docs(predictV3): 添加predictV3算法优化研究文档和前端功能实现
- 完成Phase 11: predictV3算法优化研究文档,涵盖6个优化方向的技术分析
- 实现置信度评估功能,提供历史命中率、得分分布、多维度一致性置信度指标
- 扩展回测指标体系,新增NDCG@K、MRR、命中率分布等排名质量评估指标
- 优化转移概率算法,引入二阶马尔可夫链和多属性联合转移增强预测准确性
- 设计权重训练机制,支持网格搜索和遗传算法进行数据驱动的参数优化
- 集成组合特征挖掘功能,采用关联规则和序列模式发现号码间潜在关联
- 实现完整的前端交互界面,支持预测结果显示、置信度展示和回测验证功能
- 建立性能优化策略,包括预计算缓存、批量计算和降级策略保障响应速度
2026-05-01 23:17:24 +08:00

158 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
phase: 11
reviewers: [codex, opencode]
reviewed_at: 2026-05-01T12:30:00+08:00
plans_reviewed: [11-01-PLAN.md, 11-02-PLAN.md, 11-03-PLAN.md, 11-04-PLAN.md, 11-05-PLAN.md]
---
# Cross-AI Plan Review — Phase 11: predictV3算法优化
## Codex Review
### Summary
计划技术上是合理的,但有几个需要注意的地方:依赖关系修复、数据验证、性能保护和边缘情况处理。整体架构遵循现有模式良好,NDCG@5 和 MRR 作为排名评估指标是适当的。
### Strengths
- 计划结构清晰,任务分解合理
- NDCG@5、MRR、命中分布都是业界标准的排名质量评估指标
- 扩展字段明确(ndcg_5、mrr、hit_distribution、precision_5
- 整体架构遵循现有代码模式
### Concerns
| Severity | Concern |
|----------|---------|
| HIGH | **依赖关系错误**: Plan 05 (二阶马尔可夫) 不应依赖 Plans 01 和 03 — 它是独立的增强功能 |
| HIGH | **数据验证缺失**: 需要最小样本量检查 — 置信度计算建议 50+ 期,二阶马尔可夫建议 150+ 期 |
| MEDIUM | **性能保护**: 网格搜索需要超时保护和最优权重缓存机制 |
| MEDIUM | **边缘情况**: NDCG 计算需要空预测保护;命中分布需要定义明确的统计桶 |
### Suggestions
- 修复 Plan 05 的依赖关系,使其独立执行
- 添加数据量阈值验证,不足时返回提示或回退策略
- 为网格搜索添加执行超时限制(如 60 秒)
- 在 NDCG/MRR 计算前检查 `$details` 是否为空
### Risk Assessment
**MEDIUM** — 依赖关系和边缘情况需要修复,否则执行可能失败。
---
## OpenCode Review
### Summary
Phase 11 计划在功能扩展方向上合理,在现有 V3 预测算法(9维度 + 动态权重)基础上增加置信度评估、回测指标扩展、权重优化和二阶马尔可夫链增强。计划整体结构清晰,依赖关系明确,但存在若干实现细节缺失和潜在风险需要补充。
### Strengths
- Plan 01 任务分解合理,指标选择专业
- Plan 02 与回测指标扩展解耦,可独立实现
- Plan 03 依赖明确,在现有弹窗架构内实现
- Plan 04 网格搜索是系统化的超参数优化方法
- Plan 05 二阶马尔可夫是合理的算法增强方向
### Concerns
| Severity | Concern |
|----------|---------|
| HIGH | **Plan 01: NDCG 计算公式不明确** — 需要确认基于什么"理想排名"计算,relevance score 定义模糊 |
| HIGH | **Plan 01: hit_distribution 定义模糊** — 具体指什么分布?按命中排名?按命中/未命中按期数分布? |
| HIGH | **Plan 02: "历史排名命中率"数据来源不明** — 现有 `_runBacktestV3` 不保存历史命中率数据,需要明确是实时计算还是缓存 |
| HIGH | **Plan 02: "多维度一致性"定义不明** — 具体指哪些维度之间的一致性?如何量化? |
| HIGH | **Plan 04: 5 种权重配置未明确** — 缺少具体配置清单 |
| HIGH | **Plan 04: 优化目标不明确** — 用哪个指标作为优化目标?hit_rateNDCGMRR |
| HIGH | **Plan 05: 状态空间爆炸** — 二阶马尔可夫状态空间大(尾数 10×10=100),100 期历史数据下很多状态对从未出现,概率估计不准确 |
| HIGH | **Plan 05: 100 期阈值缺乏依据** — 二阶马尔可夫需要更长历史,建议至少 200-300 期 |
| MEDIUM | **Plan 01: precision_5 与 hit_rate 关系** — 两者都是 Top-5 命中,是否重复?建议区分或合并 |
| MEDIUM | **Plan 02: 置信度百分比计算公式** — 三个维度如何加权组合?权重比例未明确 |
| MEDIUM | **Plan 02: 数据量要求** — 历史 < 20 期时置信度不准确,缺少 fallback 策略 |
| MEDIUM | **Plan 03: UI 设计细节缺失** — 未提供具体布局建议,置信度展示样式不明确 |
| MEDIUM | **Plan 03: 命中分布图表实现** — 未说明使用 ECharts 还是 CSS,数据量大时需考虑性能 |
| MEDIUM | **Plan 04: 结果持久化** — 每次调用都重新计算?建议增加缓存 |
| MEDIUM | **Plan 04: 计算量** — 5 配置 × 50 期回测 = 250 次预测,响应时间长,建议异步 |
| MEDIUM | **Plan 05: 一阶/二阶切换逻辑** — 判断条件不明确:总期数阈值还是状态对观察次数阈值? |
| MEDIUM | **Plan 05: 与现有一阶权重关系** — 二阶是独立维度还是替换一阶? |
| LOW | **Plan 01: 计算性能** — 每次回测批量计算可能影响性能 |
| LOW | **Plan 02: 返回值结构** — 是否每个号码都提供置信度? |
| LOW | **Plan 03: 前端数据量** — 命中分布是否需要分页/滚动加载? |
| LOW | **Plan 03: 国际化** — 新增 UI 文本是否需要多语言? |
| LOW | **Plan 05: 性能影响** — 二阶计算复杂度高于一阶 |
### Suggestions
**Plan 01:**
- 补充 NDCG 公式:DCG = Σ(1/log2(rank+1))IDCG = Σ(1/log2(i+1)) for i=1..hits
- 明确 hit_distribution 结构:`{rank_1: n, rank_2: n, ..., rank_5: n, miss: n}`
- 添加回测结果缓存机制
**Plan 02:**
- 将"多维度一致性"改为"预测得分集中度",基于 Top-5 得分与平均得分差距计算
- 明确加权公式:`confidence = 0.4*historical + 0.3*score + 0.3*consistency`
- 历史命中率作为 `_runBacktestV3` 副产品,调用一次获取
**Plan 03:**
- 补充 UI 设计 mockup 或具体说明
- 使用现有 ECharts 展示命中分布
- 置信度用红/黄/绿三色表示高/中/低
**Plan 04:**
- 补充 5 种预定义配置的具体权重值
- 定义优化目标:综合 hit_rate(60%) + avg_rank(40%)
- 使用后台队列异步处理,返回 task_id
**Plan 05:**
- 重新评估二阶马尔可夫必要性 — 49选1彩票数据稀疏性严重
- 替代方案:加权 N 阶马尔可夫(70% 二阶 + 30% 一阶)
- 明确判断标准:`count($history) >= 200 && $statePairCount >= 5`
### Risk Assessment
**MEDIUM** — 实现复杂度中等,数据稀疏性问题高,多处定义不明确需补充。建议优先实现 Plan 01、02、04,将 Plan 05 作为可选高阶优化或重新评估必要性。
---
## Consensus Summary
### Agreed Strengths
- 计划结构清晰,任务分解合理 ✓
- NDCG@5、MRR 是适当的排名质量评估指标 ✓
- 整体架构遵循现有代码模式 ✓
- 网格搜索是系统化的参数优化方法 ✓
### Agreed Concerns (Highest Priority)
| Priority | Concern | Source |
|----------|---------|--------|
| 1 | **Plan 05 依赖关系错误** — 不应依赖 01、03,是独立功能 | Codex + OpenCode |
| 2 | **数据量验证缺失** — 置信度需 50+,二阶马尔可夫需 150-200+ | Codex + OpenCode |
| 3 | **边缘情况处理** — NDCG/MRR 空预测保护,hit_distribution 定义模糊 | Codex + OpenCode |
| 4 | **Plan 05 状态空间爆炸** — 100 期数据下二阶马尔可夫概率估计不准 | OpenCode |
| 5 | **Plan 02 置信度维度定义不明** — "多维度一致性"如何量化 | OpenCode |
| 6 | **Plan 04 配置未明确** — 5 种权重具体值缺失,优化目标不明 | OpenCode |
| 7 | **性能影响** — 网格搜索需超时/异步,二阶马尔可夫计算量大 | Codex + OpenCode |
### Divergent Views
| Issue | Codex | OpenCode |
|-------|-------|----------|
| Plan 05 数据阈值 | 建议 150+ | 建议 200-300+,并要求状态对观察次数 >= 5 |
| precision_5 与 hit_rate | 未提及 | 认为可能重复,建议区分 |
---
## Action Items for Replanning
1. **Fix Plan 05 depends_on** → 改为 `depends_on: []`
2. **Add data validation** → 所有计算方法添加最小数据量检查和 fallback
3. **Clarify NDCG formula** → 补充完整公式到 Plan 01 Task 1
4. **Clarify hit_distribution** → 明确结构为 `{rank_1..rank_5: counts}`
5. **Clarify confidence dimensions** → 重命名"多维度一致性"为"得分集中度"
6. **Add weight configs** → Plan 04 补充 5 种具体权重配置值
7. **Raise 2nd-order threshold** → Plan 05 改为 200 期 + 状态对观察次数检查
8. **Add performance protection** → 网格搜索添加超时限制,考虑异步