research(rectification): varga-resolution M1–M3 and robustness on v5 — segment posterior, segment-aware probe order, domain-targeted vargas (BUG-1105)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
Jesse_Chen
2026-09-30 09:34:36 +08:00
co-authored by Claude Fable 5.1
parent f798366f89
commit 52bfbb2ac5
7 changed files with 110462 additions and 296 deletions
+1
View File
@@ -129,3 +129,4 @@ Do not open new product surfaces before at least one of these four lanes is clos
- 未解决的只剩「区间内部并列」,目前唯一被证明有效的信息源是用户提供的带年月新经历。
- 2026-09-29 打分方法研究(脚手架,判定待 v5):`<repo>/docs/research/rectification_scoring_research_2026_09_29.md`——似然比校准权重 / 缺席证据 / 精度追问三条流水线已在 v4 上跑通,所有判定 `pending_v5`;任务书 `docs/tasks/TASK-rectification-scoring-research-20260929.md`,前置 `TASK-rectification-holdout-expansion-20260929.md`。
- 2026-09-29 起评价集换 **v5**(77 例公开 AA,`references/real_case_calibration/minute_rectification_holdout_v5.json`):协议 `holdout_v5_protocol_2026_09_29.md`、构建与基线成绩单 `holdout_v5_build_2026_09_29.md`。后续打分判定以 v5 为准,v4 数字只作历史对照。
- 2026-09-30 盘型口径研究(BUG-1105):`<repo>/docs/research/rectification_varga_resolution_2026_09_30.md`——目标从分钟改为分盘上升段。v5 六题后 ±10 D9 / D10 头段 = 真值 88% / 86%,占比 ≥ 0.6 留一法 92% / 90%;±30 约 1/4–1/3 用户可给可信分盘;±60 分盘 blocked。按段选题 ≤ ±30 有 +3~+7 例;提前停不过红线;「不用校正」只对只需 D1 的问题成立。**建议立实现单**(§7)。
@@ -106,3 +106,10 @@
- §1.3「加权重类改法全部不过门」说的是**人拍权重**。2026-09-29 研究单换了路线:每条规则的权重由数据估(似然比,leave-one-case-out),允许负权重(只奖不罚是结构性问题),KP / Pranapada / D60 作为特征进入由数据定权重;另测「缺席证据」与「对已说事件追问月份」。
- 脚手架与 v4 流水线见 `docs/research/rectification_scoring_research_2026_09_29.md`;**判定必须在 v5(≥60 例)上做**,v4 上的数字只是调试参考(BUG-1090 / BUG-1091)。本页 §1–§7 的结论不因此改变。
- **2026-09-30 v5 判定(77 例,留一法按案例,`raw` 口径):全部不过门。** R-A 三个方案(只奖 / 加 KP·Pranapada·D60 / 允许负权重)在 ±10 / ±30 / ±60 × truth/opposite 六格头名全降(±10 0.68 → 0.57–0.60,±60 0.32 → 0.22–0.25);42 个特征里 36–39 个的 bootstrap 区间跨 0,其余 |log LR| ≤ 0.15,**v4 与 v5 同时稳定同号的特征为 0**。R-B 缺席年扣分按卡片强度把真值在区间从 76 / 76 / 75 压到 55 / 33 / 19,低强度不挤真值但头名全降。结论:**线上 11 条规则连同分钟级观察,对"哪一分钟"几乎没有信息;可校准的权重不存在。** §1.3 的结论由此从"人拍权重不过门"升级为"数据驱动权重也没有东西可校准"。BUG-560 维持 blocked,BUG-1091 closed_by_design。R-C(对已说的经历追问月份)与同子集基线比也没有一致收益(`rectification_scoring_research_2026_09_29.md` §4)。三条路都关闭。
## 10. 盘型口径(2026-09-30 研究单,BUG-1105)
- 打分层关闭后(§9),把校正目标从「分钟」改为「分盘上升段」在 v5 上量过:同样的六题、同样的卡片更新、同样的交付规则,只是按段汇总。±10 六题后 D1 头段 = 真值 76/77,D9 68/77(88%)、D10 66/77(86%);头段占比 ≥ 0.6 时留一法 92% / 90%。±30 D9 / D10 只有 57% / 64%,但占比 ≥ 0.6 的 18 / 24 例留一法 94% / 92%。±60 真值段保留 74/77 低于基线 75,分盘只能 blocked。
- 按段重排同一题库:≤ ±30 头段命中 +3~+7 例、宽度 −2 分钟、真值段保留不降;±60 更差。提前停(占比 0.7 / 0.8)少问 1–2 题但丢 1 例真值段,不过红线。
- 「不用校正」出口对婚恋 / 事业 / 综合三种取盘策略都是 0/77——D9 / D10 在 ±10 里总会换至少一次;只对只需 D1 的问题成立(±10 64/77)。
- 全文与实现要点:`docs/research/rectification_varga_resolution_2026_09_30.md`。
@@ -1,99 +1,202 @@
# 生时校正「分盘上升段」研究结论(BUG-1105,2026-09-30)
# 生时校正「盘型口径」研究(2026-09-30)
## 1. 范围与诚实边界
> 任务书 `docs/tasks/TASK-rectification-varga-resolution-research-20260930.md`(BUG-1105)。
> 数据:`references/real_case_calibration/minute_rectification_holdout_v5.json`(77 例公开 Rodden-AA,开放集,非盲测)。
> 口径:ayanamsa `raman`、node mode `mean`;候选步长 2 分钟(同三轮既有研究);分盘上升逐分钟(步长 1);六题由线上 `event_probes.discriminating_event_probes` 出、按真值作答、线上卡片更新(±2、三次强冲突淘汰)、线上交付规则(落后头名 <8 分)。
> 脚本:`scripts/research/varga_resolution_lib.py` / `varga_resolution_probe.py`;结果 `varga_resolution_baseline_2026_09_30.json`(M0)与 `varga_resolution_research_2026_09_30.json`(M1–M3、稳健性);测试 `tests/test_varga_resolution_research.py`。生产代码与 10 个冻结文件零改动。
这是基于公开 Rodden-AA v5 开放集的离线研究,不是盲测,也不是生产准确率承诺。评价集为 77 例公开资料;所有数字均保留分母、空 coverage、并列和 LMT(1900 年前)分层。参数固定为 Raman ayanamsa、mean node、2 分钟评分候选网格、1 分钟分盘扫描,既有探针 `refresh_probes=false`。生产代码、权重、门槛和前端均未修改。
## 1. 结论
M0 的首轮完整结果为 308 个 case-radius、逐案计分对账 changed=0;第二次 M0 字节复跑因耗时中止,不能声称逐字节复现。M1 全量 308 个 case-radius、0 errors 已完成。M2、M3 尚未执行,M4 只有本页的研究边界与阶段性结论,不构成实现授权。
| 项 | 一句话结论 | 是否建议实现 |
| --- | --- | --- |
| M0 段扫描 | 任务书两张表逐格复现。31 分钟窗(±15)D1 上升只有 1 种的 51/77;D9 / D10 均 3.2 / 3.3 种;**D9、D10 在任何窗口都没有一例只有 1 种**(±10 也是 0/77) | — |
| M1 段级汇总 | 六题后按段汇总,±10:D1 头段 = 真值 76/77,D9 68/77(88%)、D10 66/77(86%);头段占比 ≥ 0.6 时留一法准确率 D9 92%(61 例)、D10 90%(51 例)。±30:D9 / D10 头段 = 真值只有 57% / 64%,但占比 ≥ 0.6 的 18 / 24 例留一法 94% / 92%。±60:真值段保留 74/77 < 基线 75,**不过硬红线 1**,D9 / D10 只能 blocked | **建议实现**(±10 / ±30 分档展示;±60 只给 D1) |
| M2 按段选题 | 同一题库按「段级信息增益」重排:±10 D9 头段命中 68 → 71、D10 不变、宽度 15 → 13;±30 D9 44 → 48、D10 49 → 56、≤2 段 25 → 33 / 30;真值段保留不变(76)。±60 反而更差(真值段 74 → 73) | **建议实现,只在 ≤ ±30 启用**;收益 +3~+7 例(4–9 pp),±60 不启用 |
| M2 提前停 | 头段占比达 0.7 / 0.8 即停:题数 4.1 → 2.2 / 2.9,但 ±10 真值段保留 76 → 75、真值在区间 76 → 75 | **不建议**作为停止条件;占比只用来给可信度档位,六题照问 |
| M3 按问题域取盘 | 只判用户问的那张盘,准确率上去:±10 婚恋(D1+D9)92%、事业(D1+D10)86%、综合(D1×D9×D10)78%;题数不变(同一题库)。**「不用校正」比例:0/77**——D9 / D10 在窗内总会换至少一次;只有当问题只需要 D1 时才成立(±10 64/77、±15 51/77) | **建议实现**取盘策略;「不用校正」出口只对「只需 D1」的问题成立 |
| 稳健性 | 答错 1 题:±10 真值段保留 98.7%、头段命中 83–86%;答错 2 题:97%、74–80%。事件 ±7 天:与基线逐格相同。LMT 时代 7 例:±10 保留 6/7、命中 5–6/7;±30 起命中 1–2/7 | 分档阈值不因稳健性下调;LMT 例照常计入 |
## 2. 一句话结论表
**推荐口径**:`raw`(线上分数、簇内均摊)。`percent` 与 `raw` 在所有格子数字相同(同一排序);`uniform` 没有一致收益。
| 阶段 | 结论 | 是否建议实现 |
|---|---|---|
| M0 窗内分盘段 | D1 在 ±10/±15 几乎稳定;D9/D10 在 ±10 可较常收到 ≤2 段;±30 起分盘候选明显增多,±60 更不稳定。真值段首轮真实保留集合仍为 D1 76/77、D9 76/77、D10 76/77(±10);±60 为 D1 76/77、D9 74/77、D10 74/77。 | 仅支持继续研究,不直接实现 |
| M1 段级汇总 | LOO 选择阈值后,D9/D10 的高 accuracy 只覆盖少量高占比案例;±60 D9 仅 17/77、D10 9/77 eligible,且 D9 accuracy 0.588。uniform 并列更多。 | 不建议单独以阈值交付分盘结论 |
| M2 按段选题 | 未执行;没有证据证明按段信息增益优于线上选题。 | 不建议实现 |
| M3 按问题域取盘 | 未执行;事业/婚恋/综合三策略没有实测比较。 | 不建议实现 |
**每档半径的诚实出口**
## 3. M0 结果:盘型比分钟更有信息,但存在窗口边界
| 用户窗口 | D1 | D9 / D10 | 交付卡说什么 |
| --- | --- | --- | --- |
| ≤ ±10(21 分钟) | 头段 = 真值 99% | 占比 ≥ 0.6 →「较可信」(留一法 90–92%);0.5–0.6 →「倾向,备选也要看」(全集 86–88%);< 0.5 →「分不开」(各 3 例) | 「D1 上升 X。D9 上升 Y(较可信),备选 Z」 |
| ±30(61 分钟) | 97% | 占比 ≥ 0.6 →「较可信」(留一法 92–94%,约 1/4–1/3 用户);其余「分不开」 | 多数用户:「D1 上升 X 可信;分盘按现有信息分不开」 |
| ±60(121 分钟) | 90%(占比 ≥ 0.9 时 96%) | **blocked**(真值段保留低于基线,头段命中 ≤ 47%) | 「只能确定 D1 上升 X」 |
| 半径 | D1 窗内单一上升 | D9 平均段数 | D10 平均段数 | D1×D9×D10 平均组合 |
|---|---:|---:|---:|---:|
| ±10 | 64/77 | 2.43 | 2.51 | 3.84 |
| ±15 | 51/77 | 3.22 | 3.26 | 5.27 |
| ±30 | 37/77 | 5.34 | 5.60 | 9.62 |
| ±60 | 10/77 | 9.64 | 10.29 | 18.36 |
## 2. M0 · 段扫描(复现任务书两张表)
六题后真实保留集合中的真值段保留:
**表 1 · 窗口内有几种上升(77 例)**
| 半径 | D1 | D9 | D10 |
|---|---:|---:|---:|
| ±10 | 76/77 | 76/77 | 76/77 |
| ±15 | 75/77 | 75/77 | 76/77 |
| ±30 | 76/77 | 76/77 | 76/77 |
| ±60 | 76/77 | 74/77 | 74/77 |
| 窗口 | D1 只有 1 种 | D9 平均种数 | D10 平均种数 | D12 平均 | D1×D9×D10 平均组合 |
| --- | --- | --- | --- | --- | --- |
| ±10 | 64/77 | 2.43 | 2.51 | 2.88 | 3.84 |
| ±15 | 51/77 | 3.22 | 3.25 | 3.94 | 5.27 |
| ±30 | 37/77 | 5.35 | 5.30 | 6.74 | 9.65 |
| ±60 | 10/77 | 9.27 | 8.49 | 10.91 | 18.32 |
这些数字只能说明“真值段通常没有被排除”,不能说明系统已经正确选中唯一分盘。特别是 ±30/±60 的 D9/D10,段数和并列快速增加。**按任务书硬红线 1,±60 的 D9/D10 各 74/77,低于既有区间基线 75/77,当前口径不过门**;不能用阈值筛掉失败案例后重报通过。±15 未在原三档区间基线中给出参考数,不能自行套用另一半径。M0 首轮运行完成不等于 M0 已验收:任务书起点表与新表仍有种数/连续段、区间包络/真实集合差异需要逐格解释,第二次字节复跑也未完成。
D9 / D10 / D12 在四档窗口里「只有 1 种」都是 0/77。
## 4. M1 结果:阈值可以筛出高置信子集,但不能冒充全集能力
**表 2 · 六题后交付区间(线上 `unionStillValidRange` 端点,含区间内被淘汰的分钟)里的盘型**
下面是 `raw` 模式全量 top 段正确 / 真值段保留 / 有效候选 ≤2 段,以及逐案例 LOO 选择阈值后的 eligible、accuracy、truth-retained。`top_segment_correct` 是**真值段属于最高质量段集合**(并列也算命中),不是唯一段选对率;并列另报,不能据此宣称唯一盘型已确定。
| 半径 | 盘 | 只剩 1 种 | ≤2 种 | 区间内多数分钟 = 真值 | 其中多数是并列 |
| --- | --- | --- | --- | --- | --- |
| ±10 | D1 | 75/77 | 77 | 76 | 0 |
| ±10 | D9 | 22 | 68 | 68 | 0 |
| ±10 | D10 | 27 | 63 | 65 | 0 |
| ±10 | D12 | 18 | 60 | 67 | 2 |
| ±10 | D1×D9×D10 | 15 | 34 | 52 | 4 |
| ±30 | D9 / D10 | 7 / 4 | 24 / 22 | 33 / 34 | **24 / 21** |
| ±60 | D9 / D10 | 1 / 2 | 11 / 10 | 15 / 25 | **42 / 22** |
“六题后”表示最多六题预算,并非每例实际答足六题:308 个 case-radius 中 36 个无探针、38 个零回答,实际回答 0/1/2/3/4/5/6 题分别为 38/6/5/9/11/16/223 个;全部保留在分母中。
与任务书逐格一致(真值在区间 76 / 76 / 75,宽度中位 15 / 35 / 63)。新增「并列」一列:±30 起「多数 = 真值」有一大半是并列后取先出现的段,**不能当准确率读**;准确率看 §3 的段级占比。
| 半径 | 盘 | 全量 top 正确 | 真值保留 | ≤2 段 | LOO eligible / accuracy / retained |
|---|---|---:|---:|---:|---:|
| ±10 | D1 | 76/77 | 76/77 | 77/77 | 77 / 0.987 / 0.987 |
| ±10 | D9 | 71/77 | 76/77 | 68/77 | 23 / 0.913 / 0.957 |
| ±10 | D10 | 69/77 | 76/77 | 63/77 | 29 / 0.931 / 0.966 |
| ±15 | D1 | 74/77 | 75/77 | 77/77 | 77 / 0.961 / 0.974 |
| ±15 | D9 | 61/77 | 75/77 | 50/77 | 14 / 0.929 / 0.929 |
| ±15 | D10 | 59/77 | 76/77 | 52/77 | 8 / 0.875 / 0.875 |
| ±30 | D1 | 75/77 | 76/77 | 77/77 | 75 / 0.973 / 0.987 |
| ±30 | D9 | 50/77 | 76/77 | 25/77 | 11 / 1.000 / 1.000 |
| ±30 | D10 | 52/77 | 76/77 | 25/77 | 16 / 1.000 / 1.000 |
| ±60 | D1 | 68/77 | 76/77 | 76/77 | 54 / 0.944 / 0.981 |
| ±60 | D9 | 41/77 | 74/77 | 11/77 | 17 / 0.588 / 0.941 |
| ±60 | D10 | 34/77 | 74/77 | 10/77 | 9 / 0.778 / 1.000 |
复现中修正了起点脚本的两处口径:跨午夜区间(如 23:15 出生、交付端点 00:01–23:59)的偏移按 1440 折回 [-720, 720];并列时与起点脚本一样取区间内最早出现的段,并把并列例数单独列出。修正后数字与任务书相同。
±30 的 D9/D10 “1.000”只是在 11/77 和 16/77 的筛选子集上成立;不能用于对所有用户交付“盘型已确定”。±60 的 D9 结果直接显示阈值筛选也不稳定。
## 3. M1 · 段级汇总与可信度校准(`raw`,六题)
三种段质量均已计算:`raw`、`percent`、`uniform`。先将代表候选的后验分复制到其 `cluster_times` 中的评分网格候选,再只对真实保留候选求段内和;不是给独立扫描网格的每分钟插值。`percent` 在当前实现中只做非负总量比例化,非负分数下与 raw 的 top-share 数学等价,不是另一种概率校准或线上百分比先验回放;`uniform` 不使用分数,依赖段内保留候选数量,且产生更多并列。
段 = 窗口内该盘上升相同的连续分钟;段质量 = 仍有效候选簇的分数(≥0)按簇内分钟均摊后落进该段的总和;头段 = 质量最高的段;「真值段保留」= 真值所在段质量 > 0。
LOO 每次只以另外 76 例选择阈值,优先顺序为训练准确率、真值保留率、eligible 数、较低阈值;训练 eligible 至少 5 例。固定阈值表不拟合参数,其汇总可与逐例留出评估相同,但不能当作已择阈值的无偏验证。当前名为 `full_fit` 的字段只是全集固定阈值对照,不代表另一轮学习器拟合。M1 JSON 尚缺独立完整的运行参数 metadata,复现还须结合本页与 M0 metadata;`deterministic_json=true` 只声明确定性序列化意图,不证明两次全量已逐字节一致。完整逐案数组、固定阈值表、LOO 选择阈值表、空 coverage、并列及 LMT 分层见:
**3.1 硬红线 1(真值段保留 ≥ 基线真值在区间 76 / 76 / 75)**
- `artifacts/varga-resolution/varga_resolution_m1.json`
| 半径 | D1 | D9 | D10 | D12 | 组合 | 判定 |
| --- | --- | --- | --- | --- | --- | --- |
| ±10 | 76 | 76 | 76 | 76 | 76 | 过 |
| ±30 | 76 | 76 | 76 | 76 | 76 | 过 |
| ±60 | 76 | **74** | **74** | 75 | **74** | **D9 / D10 / 组合不过** |
## 5. 可信度口径(研究建议,不是生产实现)
±60 差的 1 例:真值分钟落在交付端点之内,但它所在的簇落后头名 ≥ 8 分(不在有效簇里),按段汇总时质量为 0。这正是 ±60 分盘应写 blocked 的理由。
- **可直接说“无需校正”**:只有目标盘在当前窗口扫描中只有一个连续段,且该盘的输入窗口与资料精度满足产品既有门槛;不能由高 top-share 单独推出。
- **较可信**:目标盘剩余不超过两段、真值保留门没有被触发、且不是 ±30/±60 的高并列情况;仍只能说“目前更像/可按该盘继续看”,不能写 confirmed。
- **倾向**:存在多个段但 top-share 达到训练折选择的阈值;必须显示仍有多少段、是否并列和覆盖分母。
- **不可判**:±30 以上 D9/D10 剩余段多、并列或 LOO eligible 很低;诚实出口应只交付 D1 或明确“分盘暂时分不开”,不要继续给伪精确分钟。
**3.2 头段 = 真值、剩余段数、头段占比中位**
以上档位是研究报告用语,不是批准生产阈值;M2/M3 尚未提供足够证据支持交互或停题策略。
| 半径 | 盘 | 头段 = 真值 | 剩 ≤2 段 | 只剩 1 段 | 头段占比中位 |
| --- | --- | --- | --- | --- | --- |
| ±10 | D1 | 76/77 | 77 | 75 | 1.00 |
| ±10 | D9 | 68/77 (88%) | 68 | 22 | 0.68 |
| ±10 | D10 | 66/77 (86%) | 63 | 27 | 0.67 |
| ±10 | D12 | 55/77 | 60 | 18 | 0.66 |
| ±10 | D1×D9×D10 | 58/77 (75%) | 39 | 15 | 0.53 |
| ±30 | D1 | 75/77 | 77 | 64 | 1.00 |
| ±30 | D9 | 44/77 (57%) | 25 | 7 | 0.46 |
| ±30 | D10 | 49/77 (64%) | 25 | 4 | 0.44 |
| ±30 | D1×D9×D10 | 39/77 | 11 | 2 | 0.35 |
| ±60 | D1 | 69/77 (90%) | 76 | 45 | 1.00 |
| ±60 | D9 | 36/77 | 11 | 1 | 0.33 |
| ±60 | D10 | 36/77 | 10 | 2 | 0.32 |
## 6. 产物与复跑
**3.3 阈值-准确率(头段占比 ≥ t 的例子里头段 = 真值的比例;全集拟合,括号内例数)**
**归档范围说明**:用户要求将阶段性研究推到 staging;本次仅纳入隐私扫描通过的研究代码、测试、M1 JSON、测试必需的 M0 smoke JSON 和文档。下面的 M0 baseline JSON 及所有原始日志仍只在本地研究树,未提交;不将路径列出冒充远端证据已齐。完整提交/排除清单及 M0、M1 哈希见 PROGRESS 顶部。研究验收、完整 quick 和未提交产物的隐私缺口保持未通过。
| 半径 | 盘 | t=0.5 | 0.6 | 0.7 | 0.8 | 0.9 |
| --- | --- | --- | --- | --- | --- | --- |
| ±10 | D9 | 0.878 (74) | 0.918 (61) | 0.917 (36) | 0.958 (24) | 0.955 (22) |
| ±10 | D10 | 0.865 (74) | 0.902 (51) | 0.909 (33) | 0.963 (27) | 0.963 (27) |
| ±10 | D1×D9×D10 | 0.826 (46) | 0.867 (30) | 0.857 (21) | 0.933 (15) | 0.933 (15) |
| ±30 | D9 | 0.806 (31) | 0.944 (18) | 1.00 (10) | 1.00 (7) | 1.00 (7) |
| ±30 | D10 | 0.867 (30) | 0.917 (24) | 1.00 (14) | 1.00 (6) | 1.00 (4) |
| ±60 | D9 | 0.611 (18) | 0.625 (8) | 0.75 (4) | 1.00 (1) | 1.00 (1) |
| ±60 | D10 | 0.615 (13) | 0.667 (9) | 0.833 (6) | 0.80 (5) | 1.00 (2) |
- `scripts/research/varga_resolution_lib.py`
- `scripts/research/varga_resolution_probe.py`
- `scripts/research/varga_resolution_m1.py`
- `docs/research/varga_resolution_baseline_2026_09_30.json`
- `artifacts/varga-resolution/varga_resolution_m1.json`
- `tests/test_varga_resolution_research.py`
**3.4 留一法(阈值在训练折上按目标准确率选最低格点,在留出例上判「可信」;报「可信」例数 / 其准确率)**
既有验证:M0 定向测试 4 passed;M1 烟测、M1 全量均 exit 0;M1 全量为 308 条、0 errors。开工快速门 `baseline-quick.log` 的 Python 子段为 1001 passed、1 skipped、3 subtests passed,但随后 `npm test` 因 `tsx` 不可用失败,整体 exit 1。另一个独立命令的 `pre-work.log` 为 fail:focused preflight fragment-scan 测试要求本机不存在的 `.workbuddy/skills/jyotish-vedic-astrology` 镜像路径。两项不能混为一谈,均不能写成通过;本轮补验见 PROGRESS。
| 半径 | 盘 | 目标 0.8 | 目标 0.9 |
| --- | --- | --- | --- |
| ±10 | D9 | 74 例 / 0.878(阈值 0.5) | 61 例 / 0.918(阈值 0.6) |
| ±10 | D10 | 74 / 0.865 | 51 / 0.902 |
| ±10 | D1×D9×D10 | 46 / 0.826 | 17 / 0.824 |
| ±30 | D9 | 31 / 0.806 | 18 / 0.944 |
| ±30 | D10 | 30 / 0.867 | 24 / 0.917 |
| ±60 | D9 | 0 例(没有阈值能在训练折达标) | 0 |
| ±60 | D10 | 6 / 0.833 | 1 / 0.0 |
本轮补充的研究测试独立复验 **77 passed(exit 0)**,包括上述表格与机器结果一致性、36 组 M1 汇总及 LOO 重算;这不是全引擎复跑。tracked 隐私测试 63 passed,但显式补扫未跟踪产物未通过:M0 JSON 有 3 处 R003 时刻字段命中、旧 quick 日志严格解码失败,详见 PROGRESS / BLOCKED。没有修改隐私例外,当前不可声明隐私全绿或可交付。
去掉 LMT 时代 7 例后(70 例):±10 D9 62/70、D10 61/70 头段 = 真值,与全集比例相同。
最终完整 quick 补验 **exit 1**:Python 子段为 **1000 passed、1 failed、1 skipped、3 subtests passed**。失败是 `test_the_new_layer_leaves_every_existing_output_unchanged` 的原输出不变性断言,不是开工 quick 的 tsx 缺失;根因尚未确定,不能宣称失败清单与基线一致。快速门另产生 5 个 oracle JSON 的 LF→CRLF 副作用,独立比对确认无语义变化;保留现场且不纳入本研究候选交付。证据与范围见 PROGRESS / BLOCKED。
**3.5 三种质量口径**:`percent` 与 `raw` 所有格子相同;`uniform`(每个存活分钟计 1)±10 D10 头段 68 vs 66、D12 64 vs 55,±30 / ±60 持平或更差,留一法没有一致收益。推荐 `raw`:不引入新运算,线上分数直接汇总。
## 7. 后续实现单必须先补的内容
## 4. M2 · 按段选题
若产品仍要推进实现,另立实现单并明确串行依赖:
同一题库(线上 `discriminating_event_probes` 返回的池,±10 中位 6 题、±30 / ±60 中位 8 题),研究侧按「答题后段分布的信息增益」逐题挑选,与线上顺序(前六题)比。两边都按真值作答、都用线上卡片更新。
1. 先补齐 M0/M1 的验收缺口;按任务书让步顺序优先 M3:事业 D1+D10、婚恋 D1+D9、综合 D1+D9+D10 的取盘策略和“不用校正”比例。
2. 再完成 M2:同一题池、同样六题预算下,按段信息增益与线上按分钟选题逐格比较;必须包含 wrong1/wrong2、事件日期 ±7 天、LMT 分层。
3. 只有两者通过真值段保留红线,才能讨论 UI 交付卡、段扫描时机、段级停止和阈值文案;不得先把本研究脚本接入生产。
| 半径 | 目标盘 | 顺序 | 答题数 | 真值段保留 | 头段 = 真值 | 剩 ≤2 段 | 真值在区间 | 宽度中位 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| ±10 | D9 | 线上 | 4.1 | 76 | 68 | 68 | 76 | 15 |
| ±10 | D9 | 按段 | 4.1 | 76 | **71** | 70 | 76 | **13** |
| ±10 | D10 | 线上 / 按段 | 4.1 | 76 / 76 | 66 / 66 | 63 / 65 | 76 / 76 | 15 / 13 |
| ±10 | D1×D9×D10 | 线上 / 按段 | 4.1 | 76 / 76 | 58 / 60 | 39 / 39 | 76 / 76 | 15 / 13 |
| ±30 | D9 | 线上 / 按段 | 5.45 | 76 / 76 | 44 / **48** | 25 / **33** | 76 / 76 | 35 / 33 |
| ±30 | D10 | 线上 / 按段 | 5.45 | 76 / 76 | 49 / **56** | 25 / 30 | 76 / 76 | 35 / 33 |
| ±30 | D1×D9×D10 | 线上 / 按段 | 5.45 | 76 / 76 | 39 / 44 | 11 / 16 | 76 / 76 | 35 / 33 |
| ±60 | D9 | 线上 / 按段 | 5.45 | 74 / **73** | 36 / 34 | 11 / 14 | 75 / 75 | 63 / 63 |
| ±60 | D10 | 线上 / 按段 | 5.45 | 74 / **73** | 36 / 33 | 10 / 11 | 75 / 75 | 63 / 63 |
前六题完全相同的例数:±10 25–28/77,±30 9/77,±60 7/77——两种顺序确实不同。
**提前停**(头段占比达到阈值即不再问):
| 半径 | 目标盘 | 停在 | 答题数 | 真值段保留 | 头段 = 真值 | 真值在区间 |
| --- | --- | --- | --- | --- | --- | --- |
| ±10 | D9 | 0.7(按段) | 2.2 | **75** | 71 | **75** |
| ±10 | D9 | 0.8(按段) | 2.9 | **75** | 70 | 75 |
| ±10 | D10 | 0.7 / 0.8(按段) | 2.4 / 2.9 | 76 / 76 | 67 / 66 | 74 / 75 |
| ±30 | D9 | 0.7 / 0.8(按段) | 4.9 / 5.2 | 74 / 76 | 46 / 48 | 74 / 76 |
提前停少问 1–2 题,但 ±10 D9 与 ±30 0.7 档都丢 1–2 例真值段 / 真值在区间,低于基线,**不过硬红线 1**。占比只能用于交付卡的可信度档位,不能用来少问。
**判定**:按段选题在 ≤ ±30 上是一致的小收益(D9 +3 / +4,D10 0 / +7,宽度 −2),真值段保留不降;±60 更差。建议实现,且只在 ≤ ±30 启用。77 例上 1 例 = 1.3 pp,+3 在噪声边缘,+7 超出噪声。
## 5. M3 · 按问题域取盘
| 半径 | 策略(目标盘) | 窗内段数均值 | 头段 = 真值(线上六题 / 按段六题) | 剩 ≤2 段(按段) | 「不用校正」(目标盘全窗 1 种) |
| --- | --- | --- | --- | --- | --- |
| ±10 | 婚恋 D1+D9 | 2.4 | 68 / **71**(92%) | 70 | 0/77 |
| ±10 | 事业 D1+D10 | 2.6 | 66 / 66(86%) | 65 | 0/77 |
| ±10 | 综合 D1×D9×D10 | 3.8 | 58 / 60(78%) | 39 | 0/77 |
| ±15 | 三种 | — | — | — | 0/77 |
| ±30 | 婚恋 | 5.4 | 44 / 48(62%) | 33 | 0/77 |
| ±30 | 事业 | 5.8 | 48 / 53(69%) | 28 | 0/77 |
| ±30 | 综合 | 9.7 | 39 / 44(57%) | 16 | 0/77 |
| ±60 | 婚恋 / 事业 / 综合 | 9.6 / 10.7 / 18.3 | 36→34 / 32→31 / 30→29 | 14 / 12 / 6 | 0/77 |
- 只判用户问的那张盘,准确率明显高于同时判三张(±10:92% / 86% vs 78%)。题数不变——题库是同一个,答题数由可答题目数决定(±10 平均 4.1)。
- **「不用校正」的出口对婚恋 / 事业 / 综合三种策略都是 0/77**:D9、D10 在 ±10 里就总会换至少一次。它只对「只需要 D1」的问题成立(±10 64/77、±15 51/77、±30 37/77)。任务书决策记录里的「三张盘都只有 1 种 → 直接说不用校正」在数据上不会发生,实现单要改成「只需 D1 且 D1 全窗一种 → 不用校正」。
## 6. 稳健性(`raw`,六题线上顺序)
| 半径 | 盘 | 基线 保留 / 命中 | 答错 1 题(5 seed × 77) | 答错 2 题 | 事件 ±7 天 | LMT 7 例 保留 / 命中 |
| --- | --- | --- | --- | --- | --- | --- |
| ±10 | D9 | 76 / 68 | 保留 98.7%、命中 86.0% | 96.6%、80.3% | 76 / 68(同基线) | 6 / 6 |
| ±10 | D10 | 76 / 66 | 98.7%、82.9% | 97.1%、74.0% | 76 / 66 | 6 / 5 |
| ±30 | D9 | 76 / 44 | 96.1%、43.9% | 88.1%、32.0% | 76 / 44 | 6 / 2 |
| ±30 | D10 | 76 / 49 | 96.4%、47.3% | 88.8%、36.4% | 76 / 49 | 6 / 2 |
| ±60 | D9 | 74 / 36 | 93.0%、31.4% | 81.0%、19.7% | 74 / 36 | 5 / 1 |
| ±60 | D10 | 74 / 36 | 91.7%、28.3% | 81.0%、17.9% | 74 / 36 | 5 / 1 |
事件日期 ±7 天与基线逐格相同:日精度事件挪 7 天没有改变任何一题的出题与作答(45 天闸门、月级边界)。答错 2 题在 ±30 起把真值段保留压到 88%,与 09-26 「两道反答 = 8 分 = 淘汰线」一致;分档阈值不因此下调,交付卡文案要保留「答错会影响结果」的提醒。
## 7. 给实现单的要点
**改(都在冻结文件之外)**
1. 录入后段扫描:新服务端模块(例如 `scripts/rectification/varga_segments.py`,新文件,不在 `PRODUCTION_FILES`)——对窗口逐分钟算 D1 / D9 / D10 上升,输出各盘段表;只需 D1 且 D1 全窗一种 → 「不用校正」出口。
2. 段级汇总:前端 `rectification-agentic` 新增 `core/segment-summary.ts`(在 `buildInferenceState` 的分钟分数之上按段求和,`raw` 口径:有效簇分数 ≥0、簇内均摊);输出每盘头段、占比、剩余段数。
3. 分档文案:`user-copy.ts` / 交付卡 / 采用卡按 §1 的出口表;采用时落库该段中点分钟。VOICE / DESIGN 同提交。
4. 按段选题:新模块对 `event_probes` 返回的题池按段级信息增益重排,只在窗口 ≤ ±30 启用;`event_probes.py` 不动。
5. 按问题域取盘:ConversationFocus 里的问题域 → 目标盘集合(婚恋 D1+D9 / 事业 D1+D10 / 综合三张)。
**不改**:`active_rectification_event_engine.py`、`decision_policy.py`、`MIN_SEPARATION_LEAD`、45 天闸门、七条采集线、卡片 ±2 与三次淘汰、采用 / 确认门、来源标签、训练门与留一件对照、六题照问(不提前停)。
**验收红线**:实现后用本研究脚本回放,±10 / ±30 真值段保留 76 / 76、头段 = 真值不低于 §4「按段」列;±60 交付卡不得出现 D9 / D10 推荐。
## 附:复跑命令
```bash
export PYTHONHASHSEED=0
python3 scripts/research/varga_resolution_probe.py \
--stages m0,m1,m2,m3,robust --radii 10,30,60 --cache-dir /tmp/varga-cache \
--baseline-out docs/research/varga_resolution_baseline_2026_09_30.json \
--json-out docs/research/varga_resolution_research_2026_09_30.json
python3 -m pytest -q tests/test_varga_resolution_research.py
```
两次完整运行各约 12 分钟(77 例 × 三档,M0–M3 + 稳健性),输出逐字节一致。
File diff suppressed because it is too large Load Diff