Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
7.3 KiB
Holdout v5 构建说明与基线成绩单(2026-09-29)
- 任务书:
docs/tasks/TASK-rectification-holdout-expansion-20260929.md(BUG-1090) - 协议:
holdout_v5_protocol_2026_09_29.md - 口径:ayanamsa
raman、node modemean、候选步长 2 分钟、半径 ±10 / ±30 / ±60 - 产物:
references/real_case_calibration/minute_rectification_holdout_v5.json(构建脚本scripts/research/holdout_v5_build.py,两次构建逐字节一致) - 基线脚本:
scripts/research/holdout_v5_baseline.py(只跑生产计分baseline变体,把三个既有回放脚本指到指定数据集与独立输出路径,不改写 09-14 / 09-26 的文档)
1. 例数与分层
| 项 | v4 | v5 |
|---|---|---|
| 例数 | 20 | 77(v4 的 20 例原样继承 + 57 例新增) |
| 事件总数 | 143 | 964 |
| 事件精度 day / month / year | 59 / 0 / 84 | 244 / 143 / 577 |
| 每例事件(新增例) | — | 8–20 |
| 每例领域(新增例) | — | ≥4 |
分层(任务书硬红线 4,括号内为配额):
| 维度 | v5 | 达标 |
|---|---|---|
| 出生年代(≥3 段) | 1850s–1990s 共 14 段;1930s 12、1940s 16、1960s 10、1980s 9 | 是 |
| 纬度带(三档都有) | |φ|<25° 14、25–45° 44、>45° 19 | 是 |
| 南半球(≥8) | 12(巴西 7、阿根廷 3、秘鲁 1、澳大利亚 1) | 是 |
| 出生时间 22:00–02:00(≥6) | 9 | 是 |
| UTC+8(≥6) | 5(菲律宾 5) | 否,差 1 |
UTC+8 缺口说明:Astro-Seek 镜像上菲律宾 126 例、中国 205 例、香港 125 例、台湾 106 例、新加坡 33 例、马来西亚 61 例、印尼 60 例全部扫过,Rodden AA 且有出生时间的只有菲律宾 12 例、台湾 1 例(Rod Chang,英文 Wikipedia 无可用传记)、上海 1 例(1927 年,记录用 LMT 8.1h,不是 UTC+8)。菲律宾 12 例里 Corazon Aquino 被地名核对拒收(记录地名 Paniqui、镜像坐标是马尼拉,相距 129 km),Aga Muhlach / Eugene Domingo / Rudy Fernandez 之外的几位传记事件不足 4 个领域,最终入选 5 例。要补到 6 例需要 astro.com 原站可访问后再扫一遍菲律宾 / 马来西亚 / 澳大利亚珀斯出生的记录。
国家分布:美国 38、巴西 7、法国 7、菲律宾 5、阿根廷 3、西班牙 3、英国 4、德国 2、墨西哥 2、其余各 1(奥匈、比利时、意大利、荷兰、秘鲁、澳大利亚)。
2. 出生资料核对结果
- 评级:57 例新增全部 AA(镜像页转载的 Astro-Databank 评级字母;astro.com 原站 2026-09-29 拦截自动访问,见协议 §4.1 的环境缺口)。
- 时区:
zoneinfo_match51、lmt_from_birthplace_longitude3(1879 Ulm、1890 Lille、1902 Diamantina:tzdata 只有时区代表城市的 LMT,记录用出生地经度的 LMT)、standard_time_kept_dst_disagreement3(1922 Grand Rapids、1941 Duluth、1963 Owensboro:tzdata 把代表城市的夏令时史套到整个时区,记录保持标准时)。1859 Edinburgh 按 tzdata 自 1847 起为 GMT,记录 0:00 与之一致。 - 拒收(不改数字凑合):Jorge Luis Borges 1899(记录 −3.9h,zoneinfo −4.28h)、Salvador Allende 1908 与 Claudio Arrau 1903(记录 −4.78 / −4.80h,zoneinfo −4.71h,智利 1910 年前 LMT 与记录不一致)、Corazon Aquino(地名核对)、Juan Perón(Wikipedia 生日 10 月 8 日与记录 10 月 7 日不一致)、Pope Francis(只凑到 3 个领域)。
- 每条事件带来源页逐字引文,构建脚本核对引文存在于 Wikipedia 纯文本后才写入。
3. 硬红线 5:v4 子集成绩单逐格复现
用 holdout_v5_baseline.py --dataset v4 复跑线上算法(只跑 baseline 变体):
| 脚本 | 指标 | ±10 | ±30 | ±60 | 与已发布数字 |
|---|---|---|---|---|---|
minute_resolution_sweep |
头名命中 / 覆盖 / 宽度中位 / 并列 / 熵0 / 熵6 / 六题回放头名 | 0.35 / 1.00 / 21 / 0.05 / 2.5594 / 2.1408 / 0.80 | 0.15 / 1.00 / 61 / 0.05 / 4.0379 / 2.5762 / 0.55 | 0.10 / 1.00 / 121 / 0.00 / 4.9923 / 2.6775 / 0.35 | minute_resolution_2026_09_14.json 逐格一致 |
cluster_width_probe(含淘汰六题回放) |
头名 / 覆盖 / 宽度中位 / 独立率 | 0.80 / 1.00 / 15 / 1.00 | 0.55 / 1.00 / 33 / 1.00 | 0.40 / 1.00 / 56 / 1.00 | cluster_width_2026_09_14.json 的 by_radius.*.baseline.replay 12 个字段逐格一致 |
futile_collect_stop_replay |
truth / opposite 六格:真值在区间、宽度中位 | 20/20,14→15;20/20,15→15 | 20/20,34→33;20/20,34→33 | 20/20,53→56;20/20,53→56 | futile_collect_stop_replay_2026_09_29.json 六格逐格一致 |
结果 JSON:docs/research/holdout_v5_baseline_v4_all_2026_09_29.json。
4. v5 全集基线成绩单
结果 JSON:docs/research/holdout_v5_baseline_v5_all_2026_09_29.json(77 例,baseline 变体,耗时 1563 s)。括号内是 v4 的 20 例(09-14 已发布)作对照;v5 数字只是成绩单,不是对任何方案的判定。
| 脚本 | 指标 | ±10 | ±30 | ±60 |
|---|---|---|---|---|
minute_resolution_sweep(引擎先验) |
头名命中 | 0.18(0.35) | 0.08(0.15) | 0.06(0.10) |
| 区间覆盖 / 宽度中位 / 并列率 | 1.00 / 21 / 0.03 | 1.00 / 61 / 0.03 | 1.00 / 121 / 0.01 | |
| 六题回放头名 | 0.64(0.80) | 0.49(0.55) | 0.26(0.35) | |
cluster_width_probe(六题后线上口径) |
头名簇命中 | 0.68(0.80) | 0.49(0.55) | 0.32(0.40) |
| 真值在区间 | 76/77(20/20) | 76/77(20/20) | 75/77(20/20) | |
| 宽度中位 | 15(15) | 35(33) | 63(56) | |
futile_collect_stop_replay(D1 口径,truth / opposite) |
真值在区间 | 76/77,76/77 | 76/77,76/77 | 75/77,75/77 |
| 宽度中位 | 15,15 | 35,35 | 63,63 |
真值被挤出区间的例(cluster_width_probe 六题回放):Arthur Conan Doyle 1859(±10、±30,答 0 题即被引擎先验排除)、Charles de Gaulle 1890(±60,答 0 题)、Manuel Puig 1932(±60,答 6 题后)。前两例都是 LMT 时代的记录(1859 Edinburgh 按 tzdata 记 GMT 0:00,1890 Lille 记出生地 LMT +0:12),出生分钟本身可能就有十来分钟的历史时区误差——这是 v5 交给研究单的一个已知风险,不是本单能裁决的。
读法:v5 上引擎先验头名从 0.35 掉到 0.18、六题回放从 0.80 掉到 0.64、覆盖从 20/20 变成 76/77——v4 的 20 例是偏乐观的样本;后续 R-A / R-B / R-C 的基线以本表为准。
5. 与 v4 的差异
- v4 的 20 例出生资料与事件原样继承(schema 测试
test_v4_cases_are_inherited_verbatim锁定),只加了inherited_from_v4与strata两个字段。 - 新增例多了
checks(时区规则、地名距离)与事件级source.quote。 - 事件不含 2026 年(回放脚本固定在 2026-09-14 评估,计分合同拒绝晚于"今天"的事件)。
6. 复跑命令
export PYTHONHASHSEED=0
.venv/bin/python scripts/research/holdout_v5_build.py --check
.venv/bin/python -m pytest tests/test_holdout_v5_schema.py -q
.venv/bin/python scripts/research/holdout_v5_baseline.py --dataset v4 --out-dir /tmp/holdout-v4-check # 硬红线 5
.venv/bin/python scripts/research/holdout_v5_baseline.py --dataset v5 # 写 docs/research/holdout_v5_baseline_v5_all_2026_09_29.json