本发明属于大数据技术领域,尤其涉及一种基于深度学习的心电数据分类方法。
背景技术:
心电异常疾病具有高患病率、高致残率和高死亡率等特点,被称为危害人类健康的“头号杀手。
心电信号是一系列能反映心脏活动的生物电信号,常通过心电图观测。
在传统的心电异常ecg数据量巨大,需要大量的人力进行分类。我国由于极低的医患比和巨大的数据分析工作量,导致心电异常数据不能被有效的利用难题。
在大数据背景下,随着人工智能技术的发展,深度学习技术逐渐走进人们的视野,并且成为机器学习领域的研究焦点。深度学习技术通过借助多层神经网络模型,可以很好地实现对复杂非线性函数映射关系的描述,并且可以对数据背后隐藏的特征进行自主挖掘,从而完成对数据更深层次的表达。深度学习模型在特征提取和模式识别任务中,相较于传统的浅层机器学习模型表现出了明显的优势。
技术实现要素:
本发明的目的是提供一种基于深度学习的心电数据分类方法,解决了采用深度学习对心电数据进行分类和评价的技术问题。
为实现上述目的,本发明采用如下技术方案:一种基于深度学习的心电数据分类方法,包括如下步骤:
步骤1:建立数据采集服务器、数据库服务器、深度学习服务器和客户端服务器,数据采集服务器与临床心电数据采集设备通信,数据采集服务器与数据库服务器通过互联网通信,深度学习服务器通过互联网与数据库服务器通信,客户端服务器通过网线连接深度学习服务器;
步骤2:临床心电数据采集设备采集若干患者的心电数据,并将这些心电数据传输给数据采集服务器;
步骤3:数据采集服务器根据savitzky-golay数字平滑滤波器对心电数据进行平滑滤波处理,得到滤波后心电数据;
步骤4:数据采集服务器对滤波后的心电数据标识标签,通过标签对心电数据进行分类,生成分类心电数据;
步骤5:数据采集服务器将分类心电数据传送给数据库服务器进行归类存储,并且对分类心电数据进行one-hot编码,生成训练数据;
步骤6:深度学习服务器调取训练数据,构建深度神经网络模型,通过训练数据对深度神经网络模型进行训练;
步骤7:临床心电数据采集一个测试患者的心电数据,并通过步骤2到步骤5的方法对心电数据进行处理,最终生成测试心电数据;
数据库服务器存储测试心电数据;
步骤8:深度学习服务器调取测试心电数据,将测试心电数据放入深度神经网络模型中进行准确率评价,即acc,其评价指标具体算法如以下公式:
其中tp表示属于该类且被正确分类的心电样本;tn表示属于该类且被错误分类的心电样本;fp表示不属于该类且被分为该类的心电样本;fn表示不属于该类且被分为不属于该类的心电样本;
步骤9:深度学习服务器将准确率评价,即acc的结果发送给客户端服务器,客户端服务器根据准确率评价,即acc的结果生成图表,并显示给用户。
优选的,在执行步骤3时,具体包括如下步骤:
步骤a1:建立savitzky-golay数字平滑滤波器;
步骤a2:通过savitzky-golay数字平滑滤波器设定一个固定长度的窗口,将该窗口放置到心电数据上;
步骤a3:设定映射在窗口内的心电数据为待滤波数据,对待滤波数据进行k阶多项式拟合,得到拟合后的结果;
步骤a4:对拟合后的结果进行离散化处理,生成滤波后心电数据。
优选的,在执行步骤4时,对滤波后的心电数据标识的标签包括窦性心动过速数据、窦性心动过缓数据、t波改变数据、st段改变数据、房性早搏数据、qrs低电压数据和心房颤动。
优选的,在执行步骤6时,构建的深度神经网络模型中的lstm的步长为10,隐藏层的节点为64,线性变换层使用一个softmax函数,采用adam算法进行参数优化,学习率为0.0025,batch大小为256,网络模型由keras框架实现。
本发明所述的一种基于深度学习的心电数据分类方法,解决了采用深度学习对心电数据进行分类和评价的技术问题,本发明在七种心电异常分类任务中有效地引入深度学习方法,通过对网络结构的权值进行自动更新,得到心电信号中具有一定区分能力的深层次特征,不仅可以提高心电异常分类算法的执行效率,而且可以保证算法的分类精度。
附图说明
图1是本发明的流程图;
图2是本发明的实施例的心电图示意图;
图3是本发明的深度神经网络模型的示意图。
具体实施方式
如图1-图3所示的一种基于深度学习的心电数据分类方法,包括如下步骤:
步骤1:建立数据采集服务器、数据库服务器、深度学习服务器和客户端服务器,数据采集服务器与临床心电数据采集设备通信,数据采集服务器与数据库服务器通过互联网通信,深度学习服务器通过互联网与数据库服务器通信,客户端服务器通过网线连接深度学习服务器;
本实施的数据采集服务器得到的心电数据的来源为郑州大学第一附属医院远程科历年的心电数据
每个样本采样频率为500hz,长度为10秒,单位电压为4.88微伏。
数据集为:10万个医疗心电样本。每个样本有8个导联,分别是i、ii、iii、v1、v2、v3、v4、v5、v6、avr、avl、avf;
其中:iii=ii-i,avr=-(i+ii)/2,avl=i-ii/2,avf=ii-i/2。
在人体不同部位放置电极,并通过导联线与心电图机电流计的正负极相连,这种记录心电图的电路连接方法称为心电图导联。
标准肢体导联i、ⅱ、ⅲ;
加压单极肢体导联avr、avl、avf;
加压单极肢体导联avr、avl、avf;
标准肢体导联:又称双极导联,反映两肢体之间的电位差;
加压单极肢体导联:是在两个电极中,只使一个电极显示电位,而另一电极的电位等于零。此时所形成的波形振幅较小,故采用加压使测得电位升高,以便于检测。
临床上描记心电图时,肢体导联探查电极共有4种颜色,其安放位置分别是:红色电极位于右上肢手腕部,黄色电极位于左上肢手腕部,绿色电极位于左下肢足踝部,黑色电极位于右下肢足踝部。
胸导联属单极导联,包括v1、v2、v3、v4、v5和v6这6个导联。检测时正电极应安放于胸壁规定的部位,另将肢体导联3个电极分别通过5k电阻与负极连接构成中心电端。
常规心电图检查时,双极、加压单极肢体导联和v1~v6共12个导联即可满足需要。如疑有右位心、右心室肥大、心肌梗死时,需加做v7、v8、v9和v3r导联,v7在左腋后线v4水平;v8在左肩胛线v4水平;v9在左脊旁线v4水平;v3r在右胸前v3相对应部位。
在本实施例中,因为数据存在缺失和标签的丢失,所以从10万个医疗心电样本中选取3万个作为训练。
步骤2:临床心电数据采集设备采集若干患者的心电数据,并将这些心电数据传输给数据采集服务器;
步骤3:数据采集服务器根据savitzky-golay数字平滑滤波器对心电数据进行平滑滤波处理,得到滤波后心电数据;
savitzky-golay,是一种特殊的低通滤波器,低通滤波器的明显用途是平滑噪声数据,噪声是用来描述所观察现象提取信息中附加的不易区别的任意错误,而数据平能消除所有带有较大误差障碍的数据点。
savitzky-golay的核心思想是对一定长度窗口内的数据点进行k阶多项式拟合,从而得到拟合后的结果。对它进行离散化处理后,s-g滤波其实是一种移动窗口的加权平均算法,但是其加权系数不是简单的常数窗口,而是通过在滑动窗口内对给定高阶多项式的最小二乘。
本实施例经过多次对比实验最佳参数设置:window_size-拟合的窗口大小设置为31、rank-拟合多项式阶次为2。
步骤4:数据采集服务器对滤波后的心电数据标识标签,通过标签对心电数据进行分类,生成分类心电数据;
步骤5:数据采集服务器将分类心电数据传送给数据库服务器进行归类存储,并且对分类心电数据进行one-hot编码,生成训练数据;
步骤6:深度学习服务器调取训练数据,构建深度神经网络模型,通过训练数据对深度神经网络模型进行训练;
深度神经网络模型,即lstm,lstm的关键是元胞状态(cellstate),图中横穿整个元胞顶部的水平线。lstm通过门的结构来控制对元胞状态添加或者删除信息。一个lstm有3个门,来保护和控制元胞状态。
第一个叫做“遗忘门”。遗忘门观察ht-1和xt,对于元细胞状态ct-1中的每一个元素,输出一个0~1之间的数。
ft=σ(wf·[ht-1,xt]+bf);
其中ft为得到遗忘门的输出σ为激活函数sigmod,wf为本层的权重,ht-1为上一层的隐藏状态,xt为当前时刻的输入,bf为偏执项。
第二个叫做“输入门”。首先由it决定是否输入,然后由一个tanh层创造了一个新的候选值ct,该值可能被加入到元细胞状态中,在下一步中,将会把这两个值结合起来用于更新元细胞状态。
it=σ(wi·[ht-1,xt]+bi)
接着将旧的元细胞状态ct-1更新到新状态ct;
第三个叫做“输出门”,即最终需要确定输出什么值。这个输出将会基于lstm的细胞状态,但是也是一个过滤后的版本。
在本实施例中,对3万条数据进行划分训练集合测试集,使用1500条数据作为训练。
步骤7:临床心电数据采集一个测试患者的心电数据,并通过步骤2到步骤5的方法对心电数据进行处理,最终生成测试心电数据;
数据库服务器存储测试心电数据;
步骤8:深度学习服务器调取测试心电数据,将测试心电数据放入深度神经网络模型中进行准确率评价,即acc,其评价指标具体算法如以下公式:
其中tp表示属于该类且被正确分类的心电样本;tn表示属于该类且被错误分类的心电样本;fp表示不属于该类且被分为该类的心电样本;fn表示不属于该类且被分为不属于该类的心电样本;
其中,tp代表truepositive,即本来是正样例,分类成正样例,tn代表truenegative,即本来是负样例,分类成负样例,fp代表falsepositive,即本来是负样例,分类成正样例,通常叫误报,fn代表falsenegative,即本来是正样例,分类成负样例,通常叫漏报。
本实施例中,最后的结果为0.98。
步骤9:深度学习服务器将准确率评价,即acc的结果发送给客户端服务器,客户端服务器根据准确率评价,即acc的结果生成图表,并显示给用户。
本发明通过对心电数据进行建模分析,准确地筛选出窦性心动过速数据、窦性心动过缓数据、t波改变数据、st段改变数据、房性早搏数据、qrs低电压数据和心房颤动这7种心电异常数据,极大的提高了心电数据的筛选速度,降低了人工工作量。
优选的,在执行步骤3时,具体包括如下步骤:
步骤a1:建立savitzky-golay数字平滑滤波器;
步骤a2:通过savitzky-golay数字平滑滤波器设定一个固定长度的窗口,将该窗口放置到心电数据上;
步骤a3:设定映射在窗口内的心电数据为待滤波数据,对待滤波数据进行k阶多项式拟合,得到拟合后的结果;
步骤a4:对拟合后的结果进行离散化处理,生成滤波后心电数据。
优选的,在执行步骤4时,对滤波后的心电数据标识的标签包括窦性心动过速数据(窦性心律的频率超过100次/分钟)、窦性心动过缓数据(窦性心律慢于每分钟60次)、t波改变数据、st段改变数据、房性早搏数据、qrs低电压数据和心房颤动。
优选的,在执行步骤6时,构建的深度神经网络模型中的lstm的步长为10,隐藏层的节点为64,线性变换层使用一个softmax函数,采用adam算法进行参数优化,学习率为0.0025,batch大小为256,网络模型由keras框架实现。
本发明所述的一种基于深度学习的心电数据分类方法,解决了采用深度学习对心电数据进行分类和评价的技术问题,本发明在七种心电异常分类任务中有效地引入深度学习方法,通过对网络结构的权值进行自动更新,得到心电信号中具有一定区分能力的深层次特征,不仅可以提高心电异常分类算法的执行效率,而且可以保证算法的分类精度。