关于【天池精准医疗大赛——人工智能辅助糖尿病遗传风险预测】的思考

本文介绍了参加天池精准医疗大赛的经历,探讨了糖尿病遗传风险预测的挑战与解决方案。通过对数据预处理、模型构建、特征重要性分析,特别是级联分类器的应用,实现了模型性能的提升。冠军方案则关注了多个生物特征与GDM的关系,揭示了超早期预测的关键特征。
摘要由CSDN通过智能技术生成

在18年初与来自几所牛校的学生组队参加了第一次天池大赛,最终由于乌龙没能在初赛获得前一百的成绩,止步复赛。前几天观看了决赛现场的答辩,感触良多,记录如下。

首先上一波图,这是我们参加比赛是的程序和数据,耗费了很多时间和精力,得到的经验也很多,虽然最后的结果不太理想,也算是有所收获吧。





在决赛现场,聆听了六位选手的答辩,对冠军和季军的方案尤其佩服。冠军主要是由于和文献结合较为紧密,所以获得了评委老师们的肯定,从而夺冠;季军的理论和实践基础很扎实,所用的方案很有创新性。

先介绍一下季军方案:

---------------------------------------------------------------------------------------------------------------------------------

很幸运的在这次比赛中获得第二名的成绩,这个成绩确实有点意外,因为在复赛全样本线上测试中,我们最高也只是第三。虽然最后的结果和第一名的成绩还是有一定的差距,但在整个比赛中我们在不断探索确保成绩稳定的方案,最后的成绩也是对我们探索的肯定。这篇帖子主要从精准医疗这个问题的特点出发,来设计相关的算法,希望能给大家提供一个模型分析的思路。

写在开头:

因为我们团队属于金融公司,所以从一开始思考这个问题是并不是站在纯算法角度来思考的,也不是要设计新的算法来解决这个问题,而是将成熟的算法恰当的应用在这个问题上。因为我们平时也会遇到类似精准医疗类的问题,在复杂的结构化数据中,需要给客户提供一个可靠的、具有个性化的结果解释,所以此次比赛我们是按照可能出现的业务需求来制定算法标准。


第一部分:精准医疗数据中的难点

在医疗领域,数据质量差,数据量少是个常态。同时,再给出诊断结果时,还需要提供合理的解释,所以想通过海量数据来分析基本是不太现实的。我们需要预测的结果尽量稳定,并不追求当前数据集的极值,因为当前数据集的极值往往都是过拟合的。

本次比赛的数据集依然属于小样本量(1000),高维度(83个特征)与复杂的数据类型(离散、连续、缺失值的情况都存在),预测结果稳定(及偏差较小)是关键。常在钉钉群里看到大家在吐槽这是摸奖大赛,原因就是线下和线上的结果差距非常大。我们的团队一开始也遇到了类似的问题,为了提高线上与线下的稳定性,我们尝试过很多方法。在接下来的分析中我们会一步步的分析我们的解决方案。


第二部分:特征分析与筛选

特征筛选在这次比赛中起到了非常重要的作用。在样本少,特征多的情况下,如果能恰当的剔除噪音,会对模型的整体性能与稳定性起到质的提升。每个特征与组合特征的精确学习都需要一定量的样本。根绝此次比赛数据量的个数,我们会选择不超过30个特征作为输入的特征子集。最终我们选择了21个特征入模。

如果数据集量足够多,特征量较大或者测试集恒定不变,可以通过类似genetic algorithm(GA)很快的迭代出相对最佳的特征子集。这类自动筛选特征的方法实施难度低,通常效果优于人工筛选,一直在工业界收到青睐。当然,支撑此类方法的前提是有足够的计算资源。 很可惜,这些假设条件在此次比赛中是不适用的。我们最开始也尝试了自动筛选特征的方法,但介于线上测试成绩的次数是有限的,线下筛选的特征有过拟合的风险,我们最后通过手动筛选出了21个特征。当然,这21个特征也借鉴了一些GA的筛选结果,再结合一阶特征的信息筛选出来。

常见的特征分析方法有很多,例如IV值分析(information value),入模分析,残差分析,PCA(principle component analysis),ANOVA(Analysis of variance)等等。考虑数据集的特点,以及对特征分析结果的可解释性,我们最后选择了残差分析的结果来入模。其他部分分析方法也适用,大家有时间也可以试一试,最后的分析结果差距也不算大,一般只是在排序上率有差距,子集包含的特征也极为相似。当然,这几种方法在原理上是不太一致的,能提供的信息含义也有所不同,各自有各自的优缺点,所以是需要理解不同的方法在什么时候用最好。我会在答辩后上传PPT,从自己实践的经验与理论上来给出几种方法在实际使用中的主要优缺点。不过要注意的是,ANOVA在这里不太适用,主要是因为数据量太小。当数据量非常大的时候,ANOVA是一种很好的方法。


那么,什么是残差分析呢?首先来看看残差分析的特点。

(1)残差分析属于单变量分析方法

(2)只能提供一阶重要性分析

(3)理解起来很简单,结果可直观的呈现出来。

残差分析,是一种衡量单变量在取值变化过程中,正负样本比例随取值变化的一个相对变化程度的总结。我们以下面这种图为例,

假设某个变量的取值范围为0-9(x轴),当X取值为x_i时,相对患病概率等于当前取值的患病率与全样本平均患病概率之差。举例说明,如果x取值为3时,当前取值下的患病为70%,而全样本的患病率约为46%,因此在x=3时的相对患病率(残差)为24%。该变量的整体影响即为每个值的残差乘上对应的人数占比(即权重)之和(面积)。有时还会用能量公式,用L2 norm求得残差的相对能量;或者对所有取值上的残差做归一化处理等等。

实际操作的时候,我们会将变量分为离散和连续两个类别。离散值的残差分析其实更像是柱状图,在处理连续值时,我们会利用等频或者等距分箱来离散化连续变量,从而求得残差加权面积的近似值。

这里我们给出了残差分析对几个特征的分析结果。

特征

序列

取值

人数

占比

患病率

相对患病率(残差)

SNP4

4

1

643

64.30%

47.59%

0.69%

SNP4

4

2

304

30.40%

45.39%

-1.51%

SNP4

4

3

42

4.20%

54.76%

7.86%

SNP4

4

缺失值

11

1.10%

18.18%

-28.72%

VAR00007

36

B_[1.19, 1.47)

256

16.60%

27.23%

-19.67%

VAR00007

36

C_[1.47, 1.53)

272

27.20%

37.36%

-9.4%

VAR00007

36

D_[1.53, 1.59)

222

22.20%

45.49%

-1.41%

VAR00007

36

E_[1.59, +Inf)

240

24.00%

78.75%

-31.85%

VAR00007

36

缺失值

10

1.00%

70.00%

23.10%


有了所有单变量相对患病率的分析结果后,需要确定什么变量留下,什么变量作为噪音或者影响模型稳定性的因素而被筛选出去。此次比赛中,大家明显能感觉到线上和线下稳定性是一个挑战,从名次上来讲,胜负可能就是多预测对了几个值。因此,我们会剔除可能影响稳定性,且一阶重要性较低的特征。从上表来看,SPN4的缺失值相对患病率较高,其他几个取值的相对患病率较低,因此这类变量会被剔除掉。VAR00007的整体表现比较好,因此会被保留下来。


整个变量筛选都按照这样的逻辑进行筛选,最终保留了21个变量。

第三部分:模型选择

天池精准医疗大赛糖尿病项目是天池平台主办的一个数据竞赛。糖尿病是一种慢性疾病,严重影响人们的健康和生活质量。为了寻找更好的糖尿病诊断和治疗方法,天池精准医疗大赛提供了一个开放的数据集供参赛者使用。 糖尿病的特点是血糖水平的异常升高,因此识别和预测糖尿病的关键在于建立一个有效的血糖预测模型。天池平台上的糖尿病数据集包含了大量的匿名化患者数据,如年龄、性别、血压、胰岛素水平等。参赛选手通过分析这些数据,可以建立一个机器学习模型,来预测一个人是否患有糖尿病或者糖尿病的严重程度。 GitHub是全球最大的开源社区平台之一,提供了一个便捷的代码托管和协作开发平台。在天池精准医疗大赛糖尿病项目中,参赛者可以使用GitHub存储和分享他们的代码、模型和解决方案。这不仅有助于开发者之间的交流和合作,还可以促进开源技术的共享和发展。 通过参与天池精准医疗大赛糖尿病项目,并在GitHub上分享相关代码和解决方案,有助于推动糖尿病诊断和治疗领域的发展。更多的开发者可以参与其中,分享他们的经验和观点,提供创新的解决方案,最终为糖尿病患者提供更准确、更个性化的诊疗服务。这个竞赛的举办和GitHub的使用,都进一步推动了精准医疗人工智能在健康领域的应用,为我们的医疗事业带来了更多的希望和进步。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值