642. CIBMTR - Equity in post-HCT Survival Predictions | equity-post-HCT-survival-predictions
首先,我要感谢 Kaggle 社区分享伟大的想法和参与讨论。我也要感谢主办方组织了这次有趣的任务竞赛。
我使用了公开笔记中的转换方法(Kaplan, Nelson 等)和 Rank Gauss 转换。
因为使用 Kaplan 等方法会减少目标变量的唯一值数量,我担心信息量会减少。
因此我使用了不减少唯一值的 Rank Gauss 转换,随后 LB(Leaderboard)略有提升。
[简单 XGB 结果]
| CV | Public LB | Private LB | |
|---|---|---|---|
| Kaplan | 0.675 | ||
| Nelson | 0.680 | 0.685 | 0.688 |
| Rank Gauss | 0.680 | 0.686 | 0.689 |
我实施了两次 30 个模型的堆叠。
当进行第 n 次堆叠时,我使用第 n-1 次的 OOF 作为特征。
30 个模型 = GBDTs(XGB, CAT, LGB) : 3 * 各种目标和设置 : 10
[集成结果(详情见下文)]
| CV | Public LB | Private LB | |
|---|---|---|---|
| 无堆叠及以下集成 | 0.687 | 0.689 | 0.693 |
| 第 1 次堆叠及以下集成 | 0.690 | ||
| 第 2 次堆叠及以下集成 (最终提交) | 0.694 | 0.691 | 0.695 |
我使用 Rank Gauss 转换后的目标变量实施了如下集成:
y_pred.loc[oof['pred']<threshold,'prediction'] = oof['pred']我认为竞赛分数由两部分计算得出。一部分 (a) 是比较每个 efs=1 的预测,另一部分 (b) 是比较 efs=0 预测对抗 efs=1 预测。
通过仅训练 efs=1 数据,'a' 部分分数会非常高。
'a' 部分分数可以通过集成 1 来改进。
'b' 部分分数可以通过集成 2 来改进。
[第 2 次堆叠结果]
| 'a' 部分 (efs=1) CV | CV (a+b 部分) | |
|---|---|---|
| efs=1 数据模型 | 0.745 | 0.561 |
| 所有数据模型 | 0.597 | 0.686 |
| 集成 1 | 0.684 | 0.669 |
| 集成 2 (最终提交) | 0.680 | 0.694 |
・目标编码 (Target encoding)
・使用 Umap/t-SNE 作为特征