本发明属于信号处理领域,涉及一种基于小波包特征和随机森林的癫痫病前期预测方法。
背景技术
癫痫是由大脑神经元群高度同步化异常放电所导致的一组疾病,常会反复、突然发作,严重影响患者的生活与工作。目前癫痫病患者大约占全球总人口的0.5%-2.5%,他们中的部分患者可以通过药物或者是手术切除癫痫灶的方法来进行进行治疗,另外部分患者还没有合适的方法加以治疗。对于这部分患者,最好的办法就是在癫痫病发作前一段时间预测到癫痫即将发作,然后在短时间内由医生或者患者自己采取一些预防保护措施来避免二次伤害。
传统的癫痫病预测方法是将癫痫病人的脑电信号分为前期,间期和发作期三类,对三类脑电信号提取统计学特征,用神经网络进行分类,这种方法存在以下2个缺点:
1.对癫痫病前期的分类简单,不能很好的达到癫痫病预测的目的。
2.统计学特征只能反映信号总体的分布情况,对信号的变化反映不是很灵敏,只有当信号发生明显变化时,特征的分布才会随之发生变化。
技术实现要素:
本发明针对传统癫痫预测方案的不足,提出了一种基于小波包特征和随机森林的癫痫病前期预测方法。本发明的技术方案主要包括如下步骤:
步骤1、原始信号小波包分解;
步骤2、对小波包系数提取能量占比、小波包熵特征;
步骤3、用随机森林算法进行分类识别;
所述步骤1的具体实现包括以下几个步骤:
1-1.将原始的脑电信号划分为5个类别,开始发病到发病结束是发作期(ictal);发病前后四个小时的数据作为发作间期(inter);发病前20分钟到开始发病是第一个预测期(pre-ictala);发作前40到发作前20分钟是第二个预测期(pre-ictalb);发作前一个小时到发作前40分钟是第三个预测期(pre-ictalc),这样将脑电信号进行划分可以使预测的时间更加的准确,在特征提取之前还要对每一类的信号进行如下的处理:
1-2.本发明采用帧处理信号,每一帧有23个通道,时长为4s的信号。对每一帧的每一个通道的信号进行(db4)小波包分解,分解层数为6层。
步骤1需要注意:考虑到帧移之间的影响,在1-2中选取的4s帧长中有2s的帧重叠。
步骤2的实现过程包括:
2-1.因为我们研究的重点是脑电信号中四种节律波(α,β,θ,δ)的情况,根据小波包分解规律,第6层的前15个频率子带包含了这四种节律波,所以针对这15个频率子带提取了以下几种特征:香农熵(shannonentropy),对数熵(logentropy),阈值熵(thresholdentropy),确定熵(sureentropy),范数熵(normentropy);
小波包熵的具体求取方法如下:
在进行说明之前,熵(e)必须是如下的成本函数:
香农熵(shannonentropy):
对数熵(logentropy):
阈值熵(thresholdentropy):
阈值为p,当si>p时,e(si)=1,否则e(si)=0。
确定熵(sureentropy):
范数熵(normentropy):
k是范数的阶数。
这一步将生成15*5=75个小波包熵特征。
2-2.对第6层频率子带信号求能量占比特征,会生成64个子带能量比特征。
e6=e(si)/sum(e(si))*100
e(si)是某一个子带的能量。
2-3.根据步骤2-1和2-2,每一个通道会得到64+15*5=139维特征向量,其中包括64子带的能量占比特征和75个子带的小波包熵特征。那么对于每一个样本会有139*23=3197维的特征向量。
步骤2需要注意:
(1)在2-3中,由于信号的能量占比具有相对特点,在数值上,同一层小波包频率子带的能量占比的总和是100,为了能量的完整性,能量占比是第六层所有频率子带的。
(2)在2-4中,每一个样本包含了23个通道,每一个通道的特征是139维,这里是将每一个通道的特征组合在一起形成3197维的特征。
步骤3的实现过程包括:
将随机森林的树设置为n棵,用随机森林算法选择80%的样本进行模型训练;剩余20%的样本用于模型测试。
其中,n优选为50棵;因为当n增加时,虽然分类准确率有所提高,但是模型的复杂度也增加了,综合考虑复杂度和准确率,树的数量n选择50最合适。模型训练时的输入为能量占比,香农熵、对数熵、阈值熵、确定熵和范数熵几种特征;
本发明有益效果如下:
这篇发明中所提出的新方法:基于小波包特征和随机森林的癫痫病前期的预测方法,在小波包分解的基础上提取小波包特征,用随机森林做分类,对脑电信号的处理简单而有效,在相同的样本基础上进行分类,支持向量机(svm)的分类准确率是79.4%,k最近邻(k-nn)的分类准确率是84%,判别分析的分类准确率是78.7%,随机森林(rf)的分类准确率是86.4%,可以看到,与传统的分类算法相比较随机森林的分类准确率更高。总体而言,整个预测方法的原理清楚,效率高,能在短时间内较为准确的识别发病前20min,20min-40min,40min-60min的脑电信号,当有新的样本被输入模型时,模型会判断出该样本属于哪个类别,并发出相应的警报。
本发明提出一种癫痫病的预测方法,将小波包特征和随机森林算法结合,对癫痫病不同时期的脑电信号进行分析,能比较准确的识别发病前期的脑电信号,并且整个方法的原理清楚,预测效率高。对其他疾病的研究也有一定的参考价值。
附图说明
图1本发明原始数据的划分方式;
图2本发明小波包特征的提取和分类流程图;
图3本发明随机森林的结构。
具体实施方式
下面结合附图和具体实施方式对本发明作详细说明。
如图1-3所示,基于小波包特征和随机森林的癫痫病前期预测方法,通用的针对发作前状态识别的癫痫预测方法的实现步骤,在发明内容内已有详细的介绍,即本发明的技术方案主要包括如下步骤:
步骤1、原始信号小波包分解。
步骤2、对小波包系数提取能量占比,小波包熵特征。
步骤3、用随机森林算法进行分类识别。
所述步骤1的具体实现包括以下几个步骤:
1-1.将原始的脑电信号划分为5个类别,开始发病到发病结束是发作期(ictal);发病前后四个小时的数据作为发作间期(inter);发病前20分钟到开始发病是第一个预测期(pre-ictala);发作前40到发作前20分钟是第二个预测期(pre-ictalb);发作前一个小时到发作前40分钟是第三个预测期(pre-ictalc),这样将脑电信号进行划分可以使预测的时间更加的准确,在特征提取之前还要对每一类的信号进行如下的处理:
本发明采用帧处理信号,每一帧有23个通道,时长为4s的信号。对每一帧的每一个通道的信号进行(db4)小波包分解,分解层数为6层。
步骤1需要注意:考虑到帧移之间的影响,在1-2中选取的4s一帧中有2s的帧重叠。
步骤2的实现过程包括:
2-1.因为我们研究的重点是脑电信号中四种节律波(α,β,θ,δ)的情况,根据小波包分解规律,第6层的前15个频率子带包含了这四种节律波,所以针对这15个频率子带提取了以下几种特征:香农熵(shannonentropy),对数熵(logentropy),阈值熵(thresholdentropy),确定熵(sureentropy),范数熵(normentropy),小波包熵的具体求取方法如下:
在进行说明之前,熵(e)必须是如下的成本函数:
香农熵(shannonentropy):
对数熵(logentropy):
阈值熵(thresholdentropy):
阈值为p,当s(i)>p时,e(si)=1,否则e(si)=0。
确定熵(sureentropy):
p是阈值。
范数熵(normentropy):
k是范数的阶数。
这一步会生成15*5=75个小波包熵特征。
2-2.对第6层频率子带信号求能量占比特征,会生成64个子带能量比特征。
e6=e(si)/sum(e(si))*100
e(si)是某一个子带的能量。
2-3.根据前面两步,每一个通道会得到64+15*5=139维特征向量,其中包括64子带的能量占比特征和75个子带的小波包熵特征。那么对于每一个样本会有139*23=3197维的特征向量。
步骤2需要注意:
(3)在2-3中,由于信号的能量占比具有相对特点,在数值上,同一层小波包频率子带的能量占比的总和是100,为了能量的完整性,能量占比是第六层所有频率子带的。
(4)在2-4中,每一个样本包含了23个通道,每一个通道的特征是139维,这里是将每一个通道的特征组合在一起形成3197维的特征。
步骤3的实现过程包括:
3.用随机森林模型分类。随机森林的树设置为n棵,其中选择80%的样本进行模型训练,剩余20%的样本用于模型测试。
其中,n优选为50棵;模型训练时的输入为能量占比,香农熵、对数熵、阈值熵、确定熵和范数熵几种特征;
为了达到更好的癫痫发作预测效果,以下将从实际应用时参数的选择与设计方面展开介绍,以作为该发明用于其他应用的参考:
在1-2中,每一帧4s的数据,为了使数据每两帧之间的信息存在联系,又不让信息过多重复,所以帧移选择为2s。
在3中,随机森林的树被设置为50棵。因为随机森林的复杂度会随着树的增加而增加,但是分类的准确率也会增加,综合考虑复杂度和预测准确率,设置50棵树。
本发明提出一种癫痫病前期的预测方法,将小波包特征和随机森林算法结合,对癫痫病不同时期的脑电信号进行分析,能比较准确的识别发病前期的脑电信号,并且整个方法的原理清楚,预测效率高。对其他疾病的研究也有一定的参考价值。