docs(11-01): complete plan 11-01 - 回测指标扩展
新增 NDCG@5、MRR、命中率分布等排名质量评估指标
This commit is contained in:
+29
-1
@@ -16,6 +16,7 @@
|
|||||||
- [ ] **Phase 8: 和值分析** - 每期号码之和的趋势
|
- [ ] **Phase 8: 和值分析** - 每期号码之和的趋势
|
||||||
- [ ] **Phase 9: 连号分析** - 连续出现的号码对/三连号统计
|
- [ ] **Phase 9: 连号分析** - 连续出现的号码对/三连号统计
|
||||||
- [ ] **Phase 10: 尾数分析** - 按尾数(0-9)分组统计
|
- [ ] **Phase 10: 尾数分析** - 按尾数(0-9)分组统计
|
||||||
|
- [ ] **Phase 11: predictV3算法优化** - 数据维度扩展、转移概率增强、权重训练、置信度评估、回测指标扩展
|
||||||
|
|
||||||
## Phase Details
|
## Phase Details
|
||||||
|
|
||||||
@@ -136,10 +137,36 @@ Plans:
|
|||||||
|
|
||||||
**UI hint**: yes
|
**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
|
## Progress
|
||||||
|
|
||||||
**Execution Order:**
|
**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 |
|
| 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 | - |
|
| 8. 和值分析 | 0/0 | Not planned | - |
|
||||||
| 9. 连号分析 | 0/0 | Not planned | - |
|
| 9. 连号分析 | 0/0 | Not planned | - |
|
||||||
| 10. 尾数分析 | 0/0 | Not planned | - |
|
| 10. 尾数分析 | 0/0 | Not planned | - |
|
||||||
|
| 11. predictV3算法优化 | 0/5 | Planned | - |
|
||||||
+19
-16
@@ -2,16 +2,16 @@
|
|||||||
gsd_state_version: 1.0
|
gsd_state_version: 1.0
|
||||||
milestone: v1.0
|
milestone: v1.0
|
||||||
milestone_name: milestone
|
milestone_name: milestone
|
||||||
status: complete
|
status: verifying
|
||||||
stopped_at: Phase 1 complete, 9 new analysis phases added to roadmap
|
stopped_at: context exhaustion at 95% (2026-04-30)
|
||||||
last_updated: "2026-04-21T14:00:00.000Z"
|
last_updated: "2026-05-01T07:10:32.046Z"
|
||||||
last_activity: 2026-04-21 -- Phase 01 complete, Phases 2-10 added
|
last_activity: 2026-05-01
|
||||||
progress:
|
progress:
|
||||||
total_phases: 10
|
total_phases: 11
|
||||||
completed_phases: 1
|
completed_phases: 1
|
||||||
total_plans: 3
|
total_plans: 8
|
||||||
completed_plans: 3
|
completed_plans: 4
|
||||||
percent: 10
|
percent: 50
|
||||||
---
|
---
|
||||||
|
|
||||||
# Project State
|
# Project State
|
||||||
@@ -21,16 +21,16 @@ progress:
|
|||||||
See: .planning/PROJECT.md (updated 2026-04-21)
|
See: .planning/PROJECT.md (updated 2026-04-21)
|
||||||
|
|
||||||
**Core value:** 快速识别冷门号码,辅助投注决策
|
**Core value:** 快速识别冷门号码,辅助投注决策
|
||||||
**Current focus:** Phase 01 — omitted-number-analysis
|
**Current focus:** Phase 11 — predictV3算法优化
|
||||||
|
|
||||||
## Current Position
|
## Current Position
|
||||||
|
|
||||||
Phase: 01 (omitted-number-analysis) — COMPLETE
|
Phase: 11 (predictV3算法优化) — READY TO EXECUTE
|
||||||
Plan: 3 of 3
|
Plan: 5 of 5 (planned)
|
||||||
Status: Phase 1 complete, ready to plan next phase
|
Status: Phase complete — ready for verification
|
||||||
Last activity: 2026-04-24 -- Completed quick task 260424-roj: 在history页面新增特码冷热查询功能
|
Last activity: 2026-05-01
|
||||||
|
|
||||||
Progress: [████░░░░░░] 10%
|
Progress: [█████░░░░░] 50%
|
||||||
|
|
||||||
## Performance Metrics
|
## Performance Metrics
|
||||||
|
|
||||||
@@ -50,6 +50,8 @@ Progress: [████░░░░░░] 10%
|
|||||||
|
|
||||||
- N/A (no completed plans yet)
|
- N/A (no completed plans yet)
|
||||||
|
|
||||||
|
| Phase 11-predictv3 P01 | 5min | 3 tasks | 1 files |
|
||||||
|
|
||||||
## Accumulated Context
|
## Accumulated Context
|
||||||
|
|
||||||
### Decisions
|
### Decisions
|
||||||
@@ -85,11 +87,12 @@ None yet.
|
|||||||
|
|
||||||
## Session Continuity
|
## Session Continuity
|
||||||
|
|
||||||
Last session: 2026-04-21
|
Last session: 2026-04-30T15:32:45.926Z
|
||||||
Stopped at: Phase 1 complete, 9 new analysis phases added to roadmap
|
Stopped at: context exhaustion at 95% (2026-04-30)
|
||||||
Resume file: None
|
Resume file: None
|
||||||
|
|
||||||
### Roadmap Evolution
|
### Roadmap Evolution
|
||||||
|
|
||||||
- Phase 1: 遗漏号码分析 — complete (2026-04-21)
|
- Phase 1: 遗漏号码分析 — complete (2026-04-21)
|
||||||
- Phase 2-10 added: 走势图、冷热号码、波色、生肖、奇偶、大小、和值、连号、尾数分析
|
- Phase 2-10 added: 走势图、冷热号码、波色、生肖、奇偶、大小、和值、连号、尾数分析
|
||||||
|
- Phase 11 added: predictV3算法优化:数据维度扩展、转移概率增强、权重训练、置信度评估、回测指标扩展、组合特征挖掘
|
||||||
|
|||||||
@@ -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] 代码包含函数级注释
|
||||||
Reference in New Issue
Block a user