Files
Jyotisha/docs/research/holdout_v5_build_2026_09_29.md
T

7.3 KiB
Raw Blame History

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 mode mean、候选步长 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_match 51、lmt_from_birthplace_longitude 3(1879 Ulm、1890 Lille、1902 Diamantina:tzdata 只有时区代表城市的 LMT,记录用出生地经度的 LMT)、standard_time_kept_dst_disagreement 3(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