diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index ee8f2ae..14d39b9 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -16,6 +16,7 @@ - [ ] **Phase 8: 和值分析** - 每期号码之和的趋势 - [ ] **Phase 9: 连号分析** - 连续出现的号码对/三连号统计 - [ ] **Phase 10: 尾数分析** - 按尾数(0-9)分组统计 +- [ ] **Phase 11: predictV3算法优化** - 数据维度扩展、转移概率增强、权重训练、置信度评估、回测指标扩展 ## Phase Details @@ -136,10 +137,36 @@ Plans: **UI hint**: yes +### Phase 11: predictV3算法优化 + +**Goal**: 优化现有 V3 预测算法,新增置信度评估、回测指标扩展、权重网格搜索优化、二阶马尔可夫转移概率增强,提升预测准确性和用户决策辅助价值 + +**Depends on**: History 模型现有预测方法(getPredictionV3、_runBacktestV3) + +**Requirements**: PRED-01(置信度评估)、PRED-02(回测指标扩展)、PRED-03(二阶马尔可夫)、PRED-04(权重优化)、PRED-05(回测验证) + +**Success Criteria** (what must be TRUE): + 1. 用户可在预测结果中看到每个号码的置信度百分比 + 2. 回测结果包含 NDCG@5、MRR、命中分布等新增指标 + 3. 用户可通过接口获取最优权重配置 + 4. 转移概率计算在数据充足时使用二阶马尔可夫 + 5. 所有新增方法包含函数级注释 + +**Plans**: 5 plans + +Plans: +- [ ] 11-01-PLAN.md — 回测指标扩展(新增 NDCG@5、MRR、命中分布计算方法,扩展 _runBacktestV3 返回结构) +- [ ] 11-02-PLAN.md — 置信度评估实现(新增 _calculateConfidence 及辅助方法,扩展 getPredictionV3 返回结构) +- [ ] 11-03-PLAN.md — 前端展示优化(更新 renderPredict 方法,展示置信度、NDCG、MRR、命中分布柱状图) +- [ ] 11-04-PLAN.md — 权重网格搜索优化(新增 _optimizeWeightsGridSearch 方法,新增 optimizeWeights 接口入口) +- [ ] 11-05-PLAN.md — 二阶马尔可夫转移概率增强(新增 _getTransitionMatrix2ndOrder、_calcTransitionScore2ndOrder 方法,根据数据量自动选择阶数) + +**UI hint**: yes + ## Progress **Execution Order:** -Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10 +Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10 → 11 | Phase | Plans Complete | Status | Completed | |-------|----------------|--------|-----------| @@ -153,3 +180,4 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → | 8. 和值分析 | 0/0 | Not planned | - | | 9. 连号分析 | 0/0 | Not planned | - | | 10. 尾数分析 | 0/0 | Not planned | - | +| 11. predictV3算法优化 | 0/5 | Planned | - | \ No newline at end of file diff --git a/.planning/STATE.md b/.planning/STATE.md index bd97293..58c5475 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -2,16 +2,16 @@ gsd_state_version: 1.0 milestone: v1.0 milestone_name: milestone -status: complete -stopped_at: Phase 1 complete, 9 new analysis phases added to roadmap -last_updated: "2026-04-21T14:00:00.000Z" -last_activity: 2026-04-21 -- Phase 01 complete, Phases 2-10 added +status: verifying +stopped_at: context exhaustion at 95% (2026-04-30) +last_updated: "2026-05-01T07:10:32.046Z" +last_activity: 2026-05-01 progress: - total_phases: 10 + total_phases: 11 completed_phases: 1 - total_plans: 3 - completed_plans: 3 - percent: 10 + total_plans: 8 + completed_plans: 4 + percent: 50 --- # Project State @@ -21,16 +21,16 @@ progress: See: .planning/PROJECT.md (updated 2026-04-21) **Core value:** 快速识别冷门号码,辅助投注决策 -**Current focus:** Phase 01 — omitted-number-analysis +**Current focus:** Phase 11 — predictV3算法优化 ## Current Position -Phase: 01 (omitted-number-analysis) — COMPLETE -Plan: 3 of 3 -Status: Phase 1 complete, ready to plan next phase -Last activity: 2026-04-24 -- Completed quick task 260424-roj: 在history页面新增特码冷热查询功能 +Phase: 11 (predictV3算法优化) — READY TO EXECUTE +Plan: 5 of 5 (planned) +Status: Phase complete — ready for verification +Last activity: 2026-05-01 -Progress: [████░░░░░░] 10% +Progress: [█████░░░░░] 50% ## Performance Metrics @@ -50,6 +50,8 @@ Progress: [████░░░░░░] 10% - N/A (no completed plans yet) +| Phase 11-predictv3 P01 | 5min | 3 tasks | 1 files | + ## Accumulated Context ### Decisions @@ -85,11 +87,12 @@ None yet. ## Session Continuity -Last session: 2026-04-21 -Stopped at: Phase 1 complete, 9 new analysis phases added to roadmap +Last session: 2026-04-30T15:32:45.926Z +Stopped at: context exhaustion at 95% (2026-04-30) Resume file: None ### Roadmap Evolution - Phase 1: 遗漏号码分析 — complete (2026-04-21) - Phase 2-10 added: 走势图、冷热号码、波色、生肖、奇偶、大小、和值、连号、尾数分析 +- Phase 11 added: predictV3算法优化:数据维度扩展、转移概率增强、权重训练、置信度评估、回测指标扩展、组合特征挖掘 diff --git a/.planning/phases/11-predictv3/11-01-SUMMARY.md b/.planning/phases/11-predictv3/11-01-SUMMARY.md new file mode 100644 index 0000000..8f3c6b1 --- /dev/null +++ b/.planning/phases/11-predictv3/11-01-SUMMARY.md @@ -0,0 +1,111 @@ +--- +phase: 11-predictv3 +plan: 01 +subsystem: backend +tags: [predictv3, backtest, metrics, ndcg, mrr] +requires: + - PRED-02 + - PRED-05 +provides: + - NDCG@5 计算方法 + - MRR 计算方法 + - 命中分布计算方法 + - 扩展的回测返回结构 +affects: + - _runBacktestV3 返回值 + - 前端回测结果展示 +tech-stack: + added: [] + patterns: [TDD-style validation, edge case handling] +key-files: + created: [] + modified: + - application/admin/model/History.php +decisions: + - 使用 50 期作为最小数据量阈值 + - hit_distribution 使用 rank_N 键名格式便于前端解析 + - 空预测或无效数据返回默认值而非抛出异常 +metrics: + duration: ~5min + tasks_completed: 3 + files_modified: 1 + completed_at: "2026-05-01T07:15:00Z" +--- + +# Phase 11 - Plan 01: 回测指标扩展 Summary + +## One-liner + +扩展 `_runBacktestV3` 方法,新增 NDCG@5、MRR、命中率分布等排名质量评估指标,提升算法评估能力。 + +## Changes Made + +### Task 1: 实现 NDCG@5 计算方法 + +新增 `_calculateNDCG` 方法: +- 实现归一化折损累积增益计算 +- 公式:DCG = Σ(1/log2(rank+1)),IDCG = Σ(1/log2(i+1)) +- 添加空预测保护和数据完整性检查 +- 返回 0-1 范围标准化值 + +### Task 2: 实现 MRR 和命中分布计算方法 + +新增 `_calculateMRR` 方法: +- 实现平均倒数排名计算 +- 公式:MRR = Σ(1/rank_i) / N +- 添加空预测保护 + +新增 `_calculateHitDistribution` 方法: +- 统计各排名位置(1-5)的命中次数 +- 返回格式:{rank_1: n, rank_2: n, ..., rank_5: n} +- 用于前端柱状图可视化 + +### Task 3: 扩展 _runBacktestV3 返回结果 + +修改返回结构,新增字段: +- `ndcg_5`: NDCG@5 值 +- `mrr`: 平均倒数排名 +- `hit_distribution`: 各排名命中分布 +- `precision_5`: Top-5 精确率 +- `data_warning`: 数据量不足警告 +- `data_sufficient`: 数据量是否充足标志 + +添加数据量检查:不足 50 期时返回默认值和警告提示。 + +## Files Modified + +| File | Changes | +|------|---------| +| application/admin/model/History.php | +134 行(3个新方法 + 返回结构扩展)| + +## Acceptance Criteria Verification + +| Criteria | Status | +|----------|--------| +| `_calculateNDCG` 方法存在 | PASSED | +| `_calculateMRR` 方法存在 | PASSED | +| `_calculateHitDistribution` 方法存在 | PASSED | +| 所有方法包含空预测保护 | PASSED | +| 所有方法包含函数级注释 | PASSED | +| hit_distribution 结构为 rank_N 格式 | PASSED | +| _runBacktestV3 返回结构包含新字段 | PASSED | +| 数据量检查(50期阈值)| PASSED | + +## Deviations from Plan + +None - plan executed exactly as written. + +## Known Stubs + +None. + +## Threat Flags + +None. + +## Self-Check + +- [x] 所有新增方法已实现 +- [x] 所有验收标准已通过 +- [x] 提交已完成 (483a616) +- [x] 代码包含函数级注释 \ No newline at end of file