天池精准医疗大赛—复赛Top5解决方案

第一部分 赛题回顾

 1.1 赛题介绍

以主办方青梧桐公司提供的包含84个特征的1000个病患样本为基础,以是否患妊娠糖尿病为研究方向,通过对孕妇怀孕期间(孕前、孕中、孕后)基因检测的场景研究,利用大数据人工智能的手段和技术进行数据分析、建模、优化,建立一个可靠、稳定、高精度的大数据产品,最终有效预测病人患糖尿病的风险。

 1.2评价指标

模型对每个样本预测的结果将与个体实际检测到的是否患有妊娠糖尿病情况进行对比,以F1为评价指标,结果越大越好,F1计算公式如下:


 1.3评价方式

根据每天抽取60%(120条)的预测集进行随机评测。

 

 第二部分 数据分析

考虑到样本的数据量非常小,尝试过衍生新的特征,结果是线上的成绩提升,但是线上当次的提交排名往往下降,因此有可能使训练集上过拟合了. 最终的方案也只是通过一些参数调优的方法得到了一个比较好的单模型,并在复赛全量评分上得到第5名.

 2.1 重要指标特征分布

通过对连续型变量进行离散化,计算每个特征取值结果下的患病率和iv:

特征分布

 2.2 指标单调性分析

白细胞

样本中显示白细胞含量越多,患糖尿病的风险越高,这有可能与病人的体质有关,白细胞含量越多,说明体内的抗原抗体反应更多。

孕前体重

体重BMI指数越高,患病风险越大。

 2.3 指标挖掘

 指标挖掘

 2.4 变量预处理

空缺值用-999填充

通过IV变量筛选剔除大约30个指标

 

 第三部分  模型构建

在线下各种算法选型过程中,使用了各类热门的模型如xgboost、lightGBM、NN算法,调整了很多版后的模型结果线上一直在40左右. 后面尝试新的模型catboost,在未调参的情况下线下的AUC提升了0.02,从xgboost的0.82提升到了0.84,这也是线上提升成绩的把握.

3.1 单模型结果

 单模型

3.2 模型组合结构

 结构

3.3 阈值选择

由于线上采用的评分标准是F1,因此选择一个好的阈值在同一个模型预测的概率结果下也能提升成绩. 经过线下的尝试,这里的catboost在复赛第一阶段的最佳阈值在0.378左右,102个正样本,当时全样本评测的时候可以达到0.78的成绩. 第二阶段采用相对比较高的阈值,因为0.378的阈值筛选出了120个正样本,因此策略上选择更加保守的0.4作为阈值,提交的正样本个数仍然为102个.

根据以下提升度表选择阈值:


第四部分  特征重要性排序

把指标人为分为基因型和常规指标,加强解释性

 重要性排序

 

 第五部分 赛题总结

(1)本次比赛中,做了许多的变量组合,相对于模型输出来说,有比较强的解释性,比如SNP34、SNP37组合可以看到100%患病的样本;

(2)单模型的调参部分,在调整参数的过程中,尝试使用了遗传算法、网格搜索进行最优参数寻找,最终单模型交叉验证后的训练集auc可以到达0.851.

 

完整代码已放出,欢迎Star交流 https://github.com/NanguangChou/Tianchi-Accurate-Medical-Contest-Top-5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章