Files
DeepHealth/extra_info_assessment_all_analysis_plan.md

162 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# assessment_only 与 all 实验及分析方案
## 1. 实验目的
补充现有四级 extra-information 证据链:
1. `disease_only`:疾病事件、相对患病时间和 sex无 extra-info token。
2. `smoking_alcohol_bmi`疾病史、sex、smoking/alcohol/BMI token。
3. `assessment_only`疾病史、sex、65项常规体格、肺功能、血液、尿液和生化指标 token。
4. `all`疾病史、sex、全部265项体检和暴露信息 token。
所有配置均不使用 CHECKUP。额外信息以独立 token 注入,并使用各自的 assessment 时间。
所有连续变量均强制使用训练子集拟合的 RobustScale训练与评估不设置未标准化对照或兼容模式。
目标是区分:
- 疾病史本身能够提供多少未来疾病信息;
- 常规体检在疾病史之外增加多少信息;
- 生活方式、社会经济、心理和环境暴露在完整体检之外增加多少信息;
- 额外信息对疾病预测和死亡预测是否具有不同作用。
## 2. 固定模型
所有新增实验固定为:
```text
TrajMixer
+ all_future
+ relative
+ Weibull
+ timed disease history
+ sex
```
仅改变 `extra_info_types_file`
- `extra_info_types_assessment_only.txt`
- `extra_info_types_all.txt`
每种配置运行 seed 42、43、44。
## 3. A6000 48GB 设置
| 配置 | Batch size | 原因 |
|---|---:|---|
| assessment_only | 256 | 最多65个 extra-info token48GB余量充足 |
| all | 128 | 最多265个 extra-info tokenrelative RBF attention 显存随总序列长度平方增长 |
当前训练代码为 FP32/TF32并未使用 AMP。若 `all batch=128` 在极端长序列 batch 上出现 CUDA OOM降为64不自动重试避免同一配置产生多个不完整 run。
batch size 是 `all` 与其他模型之间的潜在训练差异。代码会按 batch size 自动缩放学习率,但最终报告仍需明确记录该差异。若 `all` 的结果处于模型选择临界区,再补 seed 42 的 batch-size sensitivity而不是预先扩大实验矩阵。
## 4. 主要比较
### 4.1 常规体检的增量价值
```text
assessment_only disease_only
```
回答常规器官功能检测指标在疾病序列之外提供多少信息。
### 4.2 全部信息相对常规体检
```text
all assessment_only
```
回答生活方式、社会经济、心理和环境暴露是否在常规体检之后仍有增量价值。两组使用完全相同的疾病事件、Landmark 和随访边界,仅 extra-info token 集合不同。
### 4.3 全体检相对紧凑变量集
```text
assessment_only smoking_alcohol_bmi
```
回答65项常规体检是否优于紧凑的 smoking/alcohol/BMI 输入。
### 4.4 全部信息相对紧凑变量集
```text
all smoking_alcohol_bmi
```
衡量从当前最终模型扩展到全部 extra information 的最大增益。
### 4.5 既有比较
保留:
```text
smoking_alcohol_bmi disease_only
```
与新增结果共同形成完整的信息增量路径。
## 5. 评估指标
疾病和死亡分开分析。
### 判别能力
- Landmark AUC
- 各 horizon AUC
- disease cell win rate
- 三个 seed 的均值、标准差和方向一致性。
### 概率与似然质量
- IPCW Brier
- 固定时点 IPCW NLL
- 连续时间 point-process NLL
- Expected/Observed ratio
- calibration-in-the-large
- calibration slope
- 校准曲线。
### 复杂度与稳定性
- 参数量;
- 每个 epoch 运行时间;
- 峰值显存;
- 三个 seed 的性能波动;
- 缺失值较多的 extra-info 类型是否造成训练不稳定。
## 6. 配对和汇总方法
- replicate unit 为 seed
- 按相同 `seed × label_code × sex × horizon` 配对;
- 每个比较使用三个 seed 共同存在的 cell
- 先在 seed 内汇总,再计算三个 seed 的均值和样本标准差;
- AUC 越高越好;
- Brier、NLL及绝对校准偏差越低越好
- 不以单个 seed 或单个 horizon 决定模型。
## 7. disease_only 比较的评估边界
所有配置均从同一疾病/死亡事件流构造历史、查询点、随访终点和 censoring并且都不使用 CHECKUP。不同配置只改变 extra-info token因此可以在共同支持集上把差异解释为额外信息的增量价值。
## 8. 决策规则
1. 如果 `assessment_only` 已达到 `all` 的绝大部分性能,并且校准更稳定,优先选择 `assessment_only`,因为它与器官功能重建目标一致且解释更清楚。
2. 如果 `all` 在疾病和死亡 AUC、Brier、NLL上均稳定优于 `assessment_only`,则将 `all` 作为性能上限模型,但不直接作为器官负担教师模型。
3. 如果 `all` 只提高 AUC而恶化 Brier/NLL或 seed 波动明显,不升级最终模型。
4. disease-only Timed 仍是生成纯疾病来源器官负担分数的教师模型assessment/all 实验用于界定疾病史遗漏的信息,而不是改变该分数的纯疾病定义。
## 9. 运行与后续评估
训练:
```bash
bash train_extra_info_assessment_all_multiseed_linux.sh --gpus 0
```
多GPU
```bash
bash train_extra_info_assessment_all_multiseed_linux.sh --gpus 0,1,2
```
训练完成后,现有扫描脚本分别生成 AUC 和 calibration/Brier/NLL。合并分析时将新增 `assessment_only``all` 两个配置纳入主 Timed 表,不纳入 disease-history Ordered/Set 专表。