随附材料 · 运行日志
logs/run.log
[data] 非恶性细胞 2840|患者 19 位|类型 {'T': 2040, 'B': 512, 'Macro': 119, 'Endo': 62, 'CAF': 56, 'NK': 51}
[data] 取方差最大的 2000 个基因|载入耗时 12s
[A] 细胞随机划分 准确率 0.9912 macro-F1 0.9543
[B] 患者分组划分 准确率 0.9884 macro-F1 0.9306
[差] 随机划分高估 准确率 +0.0028 macro-F1 +0.0237(相对高估 2.6%)|单次拟合 2.4s
[零模型] 预算 2400s × 3 并发 → 置换 200 次
[Parallel(n_jobs=3)]: Using backend LokyBackend with 3 concurrent workers.
[Parallel(n_jobs=3)]: Done 44 tasks | elapsed: 1.1min
[Parallel(n_jobs=3)]: Done 194 tasks | elapsed: 4.8min
[Parallel(n_jobs=3)]: Done 200 out of 200 | elapsed: 4.9min finished
[零模型] 标签打乱 200 次的 F1 差:均值 +0.0010|95分位 +0.0204|最大 +0.0384
[H1] 随机划分高于患者划分 → 成立
[H2] 差距超出零模型 95 分位 → 成立(经验 p=0.0250)
[done] 总耗时 332s
logs/check1.log
[主实验复现] 差 = +0.0237
[a 假患者] 差 = +0.0032(3 次 ['+0.0033', '-0.0031', '+0.0095']) → 应≈0,实际塌了 ✅
[b 注入患者偏移] 差 = +0.0265 → 应明显变大,实际变大 ✅
[c 折几何匹配] 差 = +0.0282 → 与主实验同号同量级即说明不是折几何造成的
[结论] 尺子有效 = True
logs/check2.log
[Parallel(n_jobs=3)]: Using backend LokyBackend with 3 concurrent workers.
[Parallel(n_jobs=3)]: Done 6 out of 6 | elapsed: 1.2min finished
基因数 每类训练细胞 患者划分F1 随机划分F1 绝对高估 相对高估
200 全部 0.9308 0.9546 +0.0238 2.6%
2000 全部 0.9306 0.9543 +0.0237 2.6%
2000 40 0.9103 0.9361 +0.0258 2.8%
2000 15 0.8559 0.8878 +0.0319 3.7%
200 15 0.8165 0.8364 +0.0200 2.4%
50 15 0.7265 0.7959 +0.0694 9.6%
[结论] 任务从 F1 0.931 变难到 0.726 时,高估幅度 +0.0238 → +0.0694(随难度放大 ✅ 2.6% 只是易任务下界)