天池AI竞赛 | 心电异常事件预测冠军解决方案
赛题背景
心电图是医院心脏疾病常用辅助诊断指标。心电图由于其价格低、无创的特性被广泛用于心脏疾病的预筛查以及体检中,每天的检测量巨大。目前,多导联的心电图设备已经广泛用于临床当中,部分设备已经具有自动分析诊断功能,但自动分析对于多心电异常事件的判别还不够精确,需要医生做进一步修改。
近年来,人工智能在心电图预测领域有了应用。AI技术、深度学习的发展有望助力心电图波形、心电异常事件的预测,从而达到提升预测精度的目标。
本次大赛要求选手以心电图异常事件预测为赛题方向,依据心电图机8导联的数据,以及病患年龄、性别等因素,用统计学、机器学习、深度学习等方式探索挖掘心电波形与心电异常事件之间的关系,构建精准预测模型。
本文为冠军“随便丨逛逛”的分享,PPT和比赛分享。
Part.1 赛题回顾
大赛包含有杭州师范大学移动健康管理系统教育部工程研究中心提供的4万个医疗心电样本。每个样本有8个导联,分别是I,II,V1,V2,V3,V4,V5和V6。
问题描述:依据心电图机8导联的数据和年龄、性别特征,预测心电异常事件
比赛数据:32142条初赛数据和20036条复赛数据(初赛数据有重复,初复赛标签分布差异大)
选手提交结果与实际检测到的心电事件结果进行对比,以F1F1为评价指标,结果越大越好,具体计算公式如下:
Part.2 数据分析
标签相关性:计算公式为两标签交集数量除以两标签并集数量,0表示完全互斥。该相关性也可视为一种“特征”。
不同导联节拍一致:尖峰位置一致。
不同导联十分相似:将不同导联画在同一坐标轴上,可看出相似性。如何构建模型以利用这种相似性是最为关键的思路。
Part.3 模型构建&融合
针对多导联心电图分类任务,我创新地提出一种网络结构,将其称之为ECGNet: Multi-scale ResNet for Multi-lead ECG Data。该模型是本次比赛的致胜关键。(细节可见PPT)
模型融合
模型融合阶段效果提升,我认为主要有两点原因:
充分利用初赛和复赛的数据
“隐含”地利用了不同标签的相关性
不足之处:
模型缺乏多样性
没有用到传统特征和树模型
此外,植物提出的嫁接学习也是种很有意思的思路。
效果评估
线下对20类标签用单模型评估效果,反正比我自己判断的(仅限电轴偏转方向)好得多。
Part.4 赛后总结
充分利用提供的数据很重要,尤其分布差异很大时。
多思考多尝试很重要。
在处理多导联心电图数据时:
对不同导联应用相同的卷积核,能在减小参数量的同时,很好地提升模型的效果。
采用多尺度网络能捕捉不同尺度的特征,较好地提升模型的效果。
网络初期可以采用较大的卷积核,后期可以采用较小的卷积核。
BN-ReLU-Conv要优于Conv-BN-ReLU。
Squeeze-and-excitation结构也能提升模型的效果。
传统特征也很重要。
失败尝试
以下是一些失败的尝试(不代表这些方法真的不行,也许是我的打开方式有问题):
傅里叶变换
小波变换
频谱图
DenseNet
EfficientNet
Attention
LSTM
窗口
各种去噪
特征工程
总之还是要多思考多去尝试吧,没什么事能一帆风顺的。
赛后感想
本次比赛收获颇丰,除了实质性奖励以外,还锻炼了我赛题思考、数据分析、模型构建、论文阅读、编程实现以及答辩的能力,且与其他选手交流了一些有趣的思路。
客观上来看,本次比赛有很大的运气成分的,自己还有很多不足。
总之,继续努力,再接再厉吧。(单人参赛好累啊,还有复现阶段需要抓紧时间,我差点没在期限内整出来。)
很多细节我没有详细介绍,有兴趣地可以看PPT或答辩视频。
PPT和比赛分享:
https://github.com/RandomWalk-xzq/Hefei_ECG_TOP1
答辩视频:
https://tianchi.aliyun.com/course/video?liveId=41127
推荐原创干货阅读:
【Deep Learning】详细解读LSTM与GRU单元的各个公式和区别
【手把手AI项目】一、安装win10+linux-Ubuntu16.04的双系统(全网最详细)
【Deep Learning】为什么卷积神经网络中的“卷积”不是卷积运算?
【TOOLS】Pandas如何进行内存优化和数据加速读取(附代码详解)
【TOOLS】python3利用SMTP进行邮件Email自主发送
【手把手AI项目】七、MobileNetSSD通过Ncnn前向推理框架在PC端的使用
【时空序列预测第一篇】什么是时空序列问题?这类问题主要应用了哪些模型?主要应用在哪些领域?
公众号:AI蜗牛车
保持谦逊、保持自律、保持进步
个人微信
备注:昵称+学校/公司+方向
拉你进《高质量AI交流群》
点个在看,么么哒!