642. CIBMTR - Equity in post-HCT Survival Predictions | equity-post-HCT-survival-predictions
作为对比,单一模型分数(无 Bagging):
| 模型 | Private 分数 | Public 分数 | 运行时间 |
|---|---|---|---|
| CatBoost | 0.69784 | 0.69500 | 30 分钟 |
| XGBoost | 0.69765 | 0.69538 | 5 分钟 |
| TabM | 0.69636 | 0.69383 | 6 分钟 |
| LightGBM | 0.69793 | 0.69516 | 5 分钟 |
在长假之后重返 Kaggle 很有趣。尤其是考虑到这是一场不错的“老式”竞赛,数据集不大且为表格数据。以下是我解决方案的简要总结。
本次竞赛的目标是根据异体造血干细胞移植(allogeneic HCT)事件的风险评分对患者进行排名。作为第一步,思考完美解决方案是什么样的是很有用的。在这种情况下,完美的解决方案应该是:
显然,这个排名问题是不可微的,尤其是因为 1) 引入了类似阶跃函数的行为用于期望排名。处理此类问题的一种常见方法是引入原始任务的某种软/平滑版本。然而,根据我的经验,这种方法往往会使训练过程中的事情变得不稳定,或者如果平滑得太多,就不能很好地匹配原始问题。
因此,本次竞赛我的主要想法是直接遵循步骤 1-2),并将问题分为两部分:
最后,给定这两个预测,我们可以将预期排名位置计算为风险评分。
risk_score = P(event = 0)*(s0_group/2) + P(event = 1)*(s0_group + (1-s0_group)*E[rank% | event = 1])
, 其中 s0_group = sum_{race_group = group} P(event = 0) / N_group
对于这两个任务,使用以下包/算法实现了三种不同的模型:
因此,总共训练了六个模型。首先通过计算加权和来合并它们的预测(分别针对时间和事件使用不同的权重),最后通过上述公式计算风险评分。