跨界之阿尔滋海默病的分类竞赛
几周前受小王萌的邀请,参加了天津大学医学部组织的一场关于利用DTI影像进行阿尔滋海默病的分类竞赛,结果虽然只得了第四名,但是这也是第一次跨界参加比赛,所以总结一下。
比赛介绍
弥散磁共振影像(DTI)在阿尔茨海默病(Alzheimer’s disease, AD)
中应用广泛,从DTI影像中提取扩散参数可以用来描述白质结构的完整性,进而显示AD中脑白质的退化模式。利用机器学习的方法可以比较有效的对AD进行诊断和分类。所以比赛的内容是希望选手通过给定的18条主要的脑白质纤维束的扩散指标作为特征,建立并评估出对AD和健康人群的最优分类模型,如果有可能,进一步探索对轻度认知损害患者的预测性能。
说成通俗一点就是给定由18个扩散指标组成的一系列特征,然后希望选手通过这些特征来对正常人与病人进行建模,而轻度患者由于比较难区分,所以,如果可能就继续做关于病人/轻度患者/正常人的分类模型。
数据特点
本次的数据虽然是18个扩散指标,实际上拿到的是沿18条脑内主要纤维束上100个点的8种不同的指标,即每个纤维束上有8种不同指标,每个指标是按顺序固定间隔采样的100个点,合起来每个样本有$18 8 100 $个 基础特征。而样本包含三个类别才700个左右。所以此次的数据是一个样本少而基础特征特别多。
按每一百个点为一个集合,通过简单的统计,大多数均值方差都在0~1之间,也有几个为负值,还有几个为几百的大数。同时有部分数据为nan。
思路
基于上述特点,首先要解决的是样本数量太少的问题,其次需要解决特征太多的问题。
针对特征太多的问题,可以看作是高维数据,这里我们采样SVM 与 XGBoost两种方案来做,SVM在高维稀疏数据上效果相对较好,而XGBoost我们将其看作是一个特征选择器(encoder),然后在其后面接一个LR进行分类。
此外,特征过多我们也尝试了两种平滑方案,将每一百个点的集合进行降纬。1. 对每一百个点的集合上,每十个点进行求均值方差来代替原始特征. 2. 对全量样本按label 求取其中心点,然后求取其对三个中心点的
针对样本少的问题,也尝试了两种方案:1. 利用GAN 来生成,这个方案是借鉴之前看到的一篇利用GAN 来做CONV-19 的文章,其中由于样本过少,通过GAN 进行生成新样本后,提高了模型的性能;另一个方案是互换相同label 的样本之间的特征,这个方案是由GAN 联想到的,即GAN 实际上在生成分布类似的特征,然后组合成新样本,与其通过一个模型生成相同分布然后组合,不然直接互换,这样他们一定是同分布的。
此外,我们还尝试了利用CNN 来提取样本特征然后进行分类。
结论
- SVM上效果实际比XGB 略差一些,所以最后没有采样SVM。
- XGB的效果最后,尤其是将其看作特征提取器,在后面接了一个分类器的模型。
- 平均方差平滑与WD 效果类似,最后保留了WD
- GAN 的效果较差,一来是特征过多,二来是对GAN 不怎么熟,不太会调
- 随机互换特征效果时好时坏,感觉这也正常,毕竟特征之间是有关系的
- 深度学习在这种数据上基本不收敛
总结
本篇主要是总结一下跨界参加的一个脑科学比赛,出发点是觉得如果能有什么好的效果,说不定能做点贡献,实际参加后发现很多领域的问题由于各种各样的限制,实际上应用机器学习时还是有很大难度的。最后,贴一下排名吧。
关于头图
西伯利亚森林猫