Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
9.1 KiB
9.1 KiB
TASK · 生时校正「盘型口径」研究:以分盘上升段为目标(研究单,2026-09-30)
基线
origin/staging@84475195(写作时 head;开工时以最新origin/staging为准)。- 分支
codex/rectification-varga-resolution-research-20260930,工作树.worktrees/rectification-varga-resolution-research-20260930。 - 离线研究,不改生产代码:不动
scripts/research/sealed_holdout_rerun.py::PRODUCTION_FILES的 10 个冻结文件、active_rectification_event_engine.py、任何常数、frontend/。研究侧复用scripts/research/scoring_research_lib.py(已与线上score_candidates逐分对账 0 差)与futile_collect_stop_replay.py::evaluate_case(六题回放)。 - 数据:
references/real_case_calibration/minute_rectification_holdout_v5.json(77 例公开 AA;BUG-1090)。 - 起点材料(Claude 2026-09-30 已算,未入库,在
/tmp/claude-1000/-workspace-Jyotisha/6c057fd4-eb1e-47e4-9dc1-3192c44dcc49/scratchpad/):chart_configs.py(77 例 ±60 逐分钟 D1/D9/D10/D12 上升,chart_configs_v5.json)、v5_intervals.py(truth 方向六题后交付区间,v5_intervals.json,231 行)。M0 先把它们入库并复现下表。
先读
docs/research/rectification_scoring_research_2026_09_29.md(打分层三条 no_benefit;稳定特征 0 个)docs/research/rectification_minute_resolution_closure_2026_09_14.md§1–§2、§8–§9docs/research/holdout_v5_build_2026_09_29.md(v5 基线:六题后头名 0.64 / 0.49 / 0.26,真值在区间 76/77、76/77、75/77,宽度 15 / 35 / 63)
事故实证与已算出的数字
产品 2026-09-29 真机:31 分钟窗答完题范围不动;2026-09-30 三轮打分研究证明星盘先验在分钟级几乎不携带信息(42 个特征在 77 例上 36–39 个是噪声,数据定权重比人拍权重更差)。产品追问"那用户信息没用了?"——答案是:分钟不可分,但用户真正要的是"用哪张盘解读",而分盘上升段远少于候选分钟。
Claude 2026-09-30 用 v5 实测(步长 1 分钟,raman / mean):
窗口内有几种上升(77 例)
| 窗口 | D1 只有 1 种 | D9 平均种数 | D10 平均种数 | D1×D9×D10 平均组合数 |
|---|---|---|---|---|
| ±10 | 64/77 | 2.4 | 2.5 | 3.8 |
| ±15 | 51/77 | 3.2 | 3.3 | 5.3 |
| ±30 | 37/77 | 5.4 | 5.3 | 9.7 |
| ±60 | 10/77 | 9.3 | 8.5 | 18.3 |
六题后交付区间(线上口径 unionStillValidRange,truth 方向)里盘型能否定下来
| 半径 | 盘 | 区间内只剩 1 种 | ≤2 种 | 区间内多数分钟的盘型 = 真值盘型 |
|---|---|---|---|---|
| ±10 | D1 | 75/77 | 77/77 | 76/77 |
| ±10 | D9 | 22/77 | 68/77 | 68/77(88%) |
| ±10 | D10 | 27/77 | 63/77 | 65/77(84%) |
| ±10 | D1×D9×D10 | 15/77 | 34/77 | 52/77(68%) |
| ±30 | D9 / D10 | 7 / 4 | 24 / 22 | 33 / 34 |
| ±60 | D9 / D10 | 1 / 2 | 11 / 10 | 15 / 25 |
读法:±10 级窗口,D1 几乎总是定的;D9 / D10 六题后能收到二选一(82–88%),按"多数"选对 84–88%——比"最可能的分钟"(头名 0.64)有用得多。±30 起分盘也分不开。
根因(产品层,不是算法层)
- 目标函数是"分钟":选题按"分开候选分钟"排序、交付按分钟区间展示、并列按分钟数。用户要的是"用哪张盘"。
- 窗口内 D1 / D9 / D10 一次都不换的用户(±15 时 D1 有 2/3)照样走完整流程。
- 不按问题域取盘:问事业的人被 D9 分歧点的题占用额度,反之亦然。
- 没有"分盘不可判"的诚实出口:±30 以上仍给分钟区间,实际上分盘已不可靠。
决策记录(产品 2026-09-30)
- 批准本研究单:目标从"分钟"改为"分盘上升段";先在 v5 上量,不做实现。实现单等本单数字出来后另立。
- 不改:引擎、11 张计分分盘、
MIN_SEPARATION_LEAD、45 天闸门、七条采集线、选择题形式、采用 / 确认门、来源标签(BUG-690)、训练门与留一件对照。研究侧只在这些之上加"按段汇总"与"按段选题"。 - 不加静态题(外貌、兄弟姐妹数、父母资料):D1 在窗内基本不变、D3 40 分钟一换,静态信息对所有候选同真,2026-09-30 产品已知悉。
- 按问题域取盘:事业 → D1 + D10;婚恋 → D1 + D9;综合 / 报告 → D1 + D9 + D10(可加 D12 作参考,不作目标)。
- 可信度按档位说话,阈值由本单校准,不得报假精度。
- 打分层研究已关闭(BUG-1091 closed_by_design),本单不得重开权重 / 特征类实验。
硬红线
- 真值所在段不得被排除:每个盘、每档半径,"真值盘型段仍在候选段集合内"的比例 ≥ 现在"真值在区间"的比例(76/77、76/77、75/77)。任何一格变差即该方案不过门,把数字写进 PROGRESS,不得调阈值凑。
- 阈值-准确率表必须用留一法 / 分折给出(阈值在训练折定、在验证折量),并报全集拟合作对照。
- 稳健性必测:答错 1 题、答错 2 题(09-26 R1 口径);事件日期 ±7 天;LMT 时代记录(1900 年前出生)单独一列,不得剔除。
- 生产代码零改动;研究计分器与线上逐分对账(沿用
scoring_research_lib.reconcile_rows);PYTHONHASHSEED=0,所有 JSON 两次复跑逐字节一致。 - 快速门与开工基线逐条一致;隐私守卫全绿;文档不写真机会话内容。
- 负结果完整写出,不得只报有利档位或有利分盘。
任务分解
- M0 入库起点(BUG-1105)
- 把
chart_configs.py/v5_intervals.py整理为scripts/research/varga_resolution_lib.py+varga_resolution_probe.py(CLI:--radii、--vargas、--json-out),复现上面两张表,数字逐格一致;JSON 进docs/research/varga_resolution_baseline_2026_09_30.json。 - 验收:
tests/test_varga_resolution_research.py(段切分正确性、跨午夜偏移、与上表逐格一致、两次复跑一致)。
- 把
- M1 段级汇总与可信度校准
- 定义:某盘的"段" = 窗口内该盘上升相同的连续分钟;段质量 = 段内候选分数之和(三种口径:
raw、percent、均匀)。六题后(沿用线上出题)计算每盘"最强段占比"。 - 输出:每盘 × 每档半径的阈值-准确率表(占比 ≥ t 时最强段 = 真值段的比例,t = 0.5 / 0.6 / 0.7 / 0.8 / 0.9),留一法;"剩余 ≤2 段"比例;真值段被排除比例(硬红线 1)。
- 验收:表进研究文档;三口径对比;给出推荐口径与档位(较可信 / 倾向 / 分不开)的候选阈值。
- 定义:某盘的"段" = 窗口内该盘上升相同的连续分钟;段质量 = 段内候选分数之和(三种口径:
- M2 按段选题
- 研究侧实现"段级信息增益"排序:同一探针池(
event_probes现有候选题,不改其文件),按"两侧候选分属不同段的质量差"排序,替代按分钟排序;只针对目标盘出题。 - 比较(同样六题,或达到 M1 推荐阈值即停):题数、真值段保留率、最强段准确率、与线上选题逐格差异。
- 验收:表进文档;若按段选题反而更差,如实写并给原因。
- 研究侧实现"段级信息增益"排序:同一探针池(
- M3 按问题域取盘 + "不用校正"比例
- 三种取盘策略(事业 / 婚恋 / 综合)各跑一遍:题数、准确率;并统计每档半径"目标盘在窗内只有 1 段"的比例(= 可以直接告知"不用校正"的用户)。
- 验收:三策略表 + "不用校正"比例表。
- M4 结论与实现单要点
docs/research/rectification_varga_resolution_2026_09_30.md:一句话结论表(M1–M3 各一行 + 是否建议实现)、推荐口径、档位阈值、每档半径的诚实出口(±30 以上只给 D1)、实现单要点(录入后段扫描 / 选题目标 / 段级汇总与停止 / 交付卡与采用卡文案,须点名要改的模块与不改的模块)。docs/research/ACTIVE_FRONTS.md索引;定论页 §10;docs/tasks/PROGRESS-rectification-varga-resolution-research-20260930.md;BUG-1105 状态;docs/tasks/README.md行。
让步顺序
M0 > M1 > M3 > M2 > M4 的图表。M0 与 M1 缺一不可合入;M2 / M3 未做写 not_started,不得写成结论。
开工前置命令
git fetch origin --prune
git worktree add -b codex/rectification-varga-resolution-research-20260930 .worktrees/rectification-varga-resolution-research-20260930 origin/staging
cd .worktrees/rectification-varga-resolution-research-20260930
export PYTHONHASHSEED=0
python3 -m pytest -q tests/test_scoring_research.py tests/test_holdout_v5_schema.py tests/test_rectification_validation_integrity_gate.py tests/test_repo_privacy_markers.py # 基线
python3 scripts/research/scoring_research.py --help
python3 scripts/research/futile_collect_stop_replay.py --help
BUG 编号
开工时核对 docs/BUG_HISTORY.md 最大号(写作时 BUG-1104)。本单:BUG-1105(校正目标函数是分钟而非用户要用的分盘;窗内盘型不变的用户被迫答题;无"分盘不可判"出口)。执行方以 investigating 登记,研究结束按结果改 resolved(有实现单)或 closed_by_design。关联 BUG-560、BUG-1084、BUG-1090、BUG-1091。