一种基于贝叶斯网络过滤的心电图病症确定方法与流程

文档序号:23583093发布日期:2021-01-08 14:13阅读:114来源:国知局
一种基于贝叶斯网络过滤的心电图病症确定方法与流程

本发明属于基于机器学习的心电图病症智能诊断技术领域,涉及心电图病症确定,尤其涉及基于机器学习的多标签病症确定方法。



背景技术:

多标签分类是指对于给定的样本进行多个标签的分类,该样本可能对应标签集中的一个或者多个标签。定义特征空间x=rd,其中d表示特征的维数,l={l1,l2,…,ln}表示带有n个标签的标签空间,构建训练集d=(xi,lj),1≤i≤q,1≤j≤n,q表示训练集的大小,i表示样本的序号,xi∈x表示一个d维的特征向量,lj∈l表示一个l中的一个标签元素。多标签学习的任务就是根据训练集d学习一个多标签分类器h(·),使用分类器h(·)对新的样本x进行预测,其预测结果就是样本x的类别标签集。

多标签分类的解决方法目前主要分为两种:一种是基于问题转换的策略,一种是基于算法适应的策略。问题转换的策略是将多标签问题转换为多个单标签二分类的子模型,再将子模型的结果合并得到最终结果。而基于算法适应的策略是调整流行的学习算法以适应多标签学习。

问题转换的策略可以分为二元关联(binaryrelevance)、分类器链(classifierchains)、标签幂集法(labelpowerset)等方式。二元关联法是最简单的方法,核心思想是将多标签分类问题进行分解,转换为多个二元分类问题。这种方法的优点是实现方法简单、容易理解,当标签之间不存在依赖关系时训练得到模型效果很好,但如果标签之间存在直接的依赖关系,那么最后构建的模型泛化能力较弱,不能达到预期的效果。分类器链核心思想是将多标签分类问题转换成为一个二元分类器链的形式,其中链后的二元分类器的构建是在前面分类器预测结果的基础上进行的,模型构建过程中,需要将标签顺序进行打乱排序,然后按照从头到尾的顺序分别构建每个标签对应的模型。分类器链方法的优点在于实现方法相对简单,同时考虑了标签的联系,一定程度上增强了模型的泛化能力,但该方法的效果受到排序的影响,很难找到合适的标签依赖关系。而标签幂集法是将多标签分类转换为多分类问题,每个样本实例的标签集都作为一个单独的类构建多分类器。该方法考虑到了标签之间的组合关系,但没有考虑标签间的依赖性,同时随着标签数的增加类的数目也可能会随之增大,使得模型变得更加复杂一定程度上降低了模型的泛化能力。

采用算法适应策略的方法主要有ml-knn、ml-dt。ml-knn是knn算法的一种改进算法,它的思想是对于每一个样本实例,获取距离它最近的k个实例,利用这些实例的特征信息来判断该实例的预测标签集。ml-knn能够识别出每个样本不同的邻域,利用领域间信息来预测,因此准确率较高,但对异常点不敏感。ml-dt基本思想是采用决策树技术处理多标签数据,利用基于多标签熵的信息增益准则递归构建决策树,它可以从多标签数据中高效地导出决策树模型,但在计算信息熵时假设标签之间相互独立。

算法适应策略和问题转换策略很大程度上都忽略了标签之间的依赖性,没有利用标签间的关系构建模型,而心电图病症之间恰恰存在着这种联系,因此这些方法不能很好的利用心电图确定病症,预测的准确度较差。

因果关系是数据挖掘的重要模式,能够揭示标签之间的依赖关系。因果关系解释了事件发生的原因以及该事件发生会导致何事件发生,它强调的是变量间的强关联性。数据间的因果关系可以通过相应的算法进行挖掘,常见的基于约束的挖掘算法有sgs算法和pc算法以及各种pc算法的变体,而基于评分的挖掘算法主要为基于贝叶斯狄利克雷似然等价评分的搜索算法。因果关系的挖掘虽然已经有很多的算法来实现,但却很少被用于心电图病症确定。

本发明结合以上两方面的工作,利用病症间的因果关系,提出一种基于贝叶斯网络过滤的心电图病症确定方法,该方法充分利用了病症间的依赖关系,能够很好的进行病症分类。



技术实现要素:

针对上述问题,本发明提出了一种心电图病症确定方法,该方法采用贝叶斯网络进行过滤处理,很好地实现了心电图病症智能诊断任。

本发明的技术方案是:一种基于贝叶斯网络过滤的心电图病症确定方法,其具体操作步骤如下:

步骤(1.1):使用若干基分类器对实例ob的可能病症标签进行预测;

步骤(1.2):构建投票器;

步骤(1.3):将步骤(1.1)中得到的预测结果传入至步骤(1.2)构建的投票器中进行筛选,投票器通过筛选处理后获得锚点病症集as(ob)和候选病症集cs(ob);

步骤(1.4):将锚点病症集as(ob)和候选病症集cs(ob)的所有子集进行组合,从而获得锚点病症支持集asp(ob),所述锚点病症支持集asp(ob)中的每个元素均是锚点病症集as(ob)和候选病症集cs(ob)子集的并集,将其记为锚点病症扩展sli(ob);

步骤(1.5):使用基于贝叶斯狄利克雷似然等价评分的爬山搜索算法构建贝叶斯网络;

步骤(1.6):利用贝叶斯网络分别计算锚点病症集as(ob)及锚点病症扩展sli(ob)的联合概率,分别记为p(as(ob))、p(sli(ob))。

进一步的,在步骤(1.2)中,构建投票器的操作步骤如下:

(1.2.1)、设置允许模型参与锚点病症集as(ob)、候选病症集投票cs(ob)的概率阈值;预设将病症加入锚点病症集as(ob)、候选病症集投票cs(ob)中所需要的投票阈值;

(1.2.2)、遍历一个病症对应的所有基分类器模型的预测结果,该预测结果是模型预测为1的概率值,当预测结果不小于事先设置的概率阈值时,该模型才有资格参与投票,当该模型拥有投票权后,相对应的锚点病症集as(ob)或候选病症集投票cs(ob)的得票数加1;

(1.2.3)、如锚点病症集as(ob)的得票数满足其投票阈值条件,则将该病症加入锚点病症集as(ob)中;否则检查候选病症集cs(ob)的得票数,若满足其投票阈值,则将该病症加入候选病症集cs(ob)中;

(1.2.4)、重复步骤(1.2.1)至(1.2.3),确定所有病症的归属。

进一步的,在步骤(1.3)中,所述锚点病症集as(ob)存储的是确定的病症,所述候选病症集cs(ob)存储的需要确认的病症。

进一步的,在步骤(1.5)中,所述构建的贝叶斯网络采用因果关系挖掘——基于贝叶斯狄利克雷似然等价评分的爬山法构建。

进一步的,在步骤(1.6)中,满足下列公式①的病症集sli(ob)就是实例ob的预测结果,记为tls(ob)

本发明的有益效果是:(1)、本发明对已经训练好的多个基分类器,采用两层结构确定最终结果:第一层构建投票器,其对基分类器的结果进行筛选,第二层构建贝叶斯网络,其对投票器的结果过滤,增强了基分类器的分类效果,提高了心电图病症确定的准确度;(2)、本发明使用了基于贝叶斯狄利克雷似然等价评分的爬山法来构建贝叶斯网络,充分利用了病症间的依赖关系,提高了模型的泛化性能;(3)、由于贝叶斯网络的构建使用的是挖掘得到的因果关系,而因果关系揭示的是一种具有强关联性的依赖关系,因此该模型具有稳定性的特点,不会因为数据分布不同而表现出太大的差异性。

附图说明

图1为本发明的结构流程图;

图2为本发明中投票器的结构示意图;

图3为本发明中投票器的投票示例结构图;

图4为本发明中贝叶斯网络构建流程图;

图5为本发明中贝叶斯网络示例结构图;

图6为本发明实施例中贝叶斯网络的部分结构示意图。

具体实施方式

为了更清楚地说明本发明的技术方案,下面结合附图对本发明的技术方案做进一步的详细说明:

一种基于贝叶斯网络过滤的心电图病症确定方法,其具体操作步骤如下:

步骤(1.1):使用若干基分类器对实例ob的可能病症标签进行预测;

步骤(1.2):构建投票器;

步骤(1.3):将步骤(1.1)中得到的预测结果传入至步骤(1.2)构建的投票器中进行筛选,投票器通过筛选处理后获得锚点病症集as(ob)和候选病症集cs(ob);

步骤(1.4):将锚点病症集as(ob)和候选病症集cs(ob)的所有子集进行组合,从而获得锚点病症支持集asp(ob),所述锚点病症支持集asp(ob)中的每个元素均是锚点病症集as(ob)和候选病症集cs(ob)子集的并集,将其记为锚点病症扩展sli(ob);

步骤(1.5):使用基于贝叶斯狄利克雷似然等价评分的爬山搜索算法构建贝叶斯网络;

步骤(1.6):利用贝叶斯网络分别计算锚点病症集as(ob)及锚点病症扩展sli(ob)的联合概率,分别记为p(as(ob))、p(sli(ob))。

进一步的,在步骤(1.2)中,构建投票器的操作步骤如下:

(1.2.1)、设置允许模型参与锚点病症集as(ob)、候选病症集投票cs(ob)的概率阈值;预设将病症加入锚点病症集as(ob)、候选病症集投票cs(ob)中所需要的投票阈值;

(1.2.2)、遍历一个病症对应的所有基分类器模型的预测结果,该预测结果是模型预测为1的概率值,当预测结果不小于事先设置的概率阈值时,该模型才有资格参与投票,当该模型拥有投票权后,相对应的锚点病症集as(ob)或候选病症集投票cs(ob)的得票数加1;

(1.2.3)、如锚点病症集as(ob)的得票数满足其投票阈值条件,则将该病症加入锚点病症集as(ob)中;否则检查候选病症集cs(ob)的得票数,若满足其投票阈值,则将该病症加入候选病症集cs(ob)中;

(1.2.4)、重复步骤(1.2.1)至(1.2.3),确定所有病症的归属。

进一步的,在步骤(1.3)中,所述锚点病症集as(ob)存储的是确定的病症,所述候选病症集cs(ob)存储的需要确认的病症。

进一步的,在步骤(1.5)中,所述构建的贝叶斯网络采用因果关系挖掘——基于贝叶斯狄利克雷似然等价评分的爬山法构建。

进一步的,在步骤(1.6)中,满足下列公式①的病症集sli(ob)就是实例ob的预测结果,记为tls(ob)

具体的,如图1所述;一种基于贝叶斯网络过滤的心电图病症确定方法,该方法对已经训练好的多个基分类器,采用两层结构确定最终结果:第一层构建投票器v,其对基分类器的结果进行筛选,产生锚点病症集as和候选病症集cs;第二层使用因果挖掘算法基于bde评分的爬山法构建贝叶斯网络,贝叶斯网络对锚点病症集as和候选病症集cs进行二次过滤,确定最终预测病症集tls(ob)。

如图2所示,该图为投票器的设计示意图,其实现步骤如下:

步骤1:对于病症li,记其基分类器为bc1、bc2、…、bcm,基分类器的预测结果记为p(bcj),表示第j个基分类器预测结果为1的概率;

步骤2:设置6个参数as_count、cs_count、as_proba、cs_proba、t1、t2,其中as_count、cs_count分别用于记录as和cs的得票数,初始为0,而as_proba、cs_proba分别是允许模型参与as、cs投票的阈值,t1、t2表示将病症li加入as、cs中所需要的投票数阈值;

步骤3:遍历m个(病症li对应的所有)基分类器的预测结果,对于基分类器bcj,设pj为第j个模型预测为1的概率值,如果p(bcj)>=as_proba,则基分类器bcj参与as的投票,as_count计数加1,否则检查p(bcj)>=cs_proba是否成立,若成立则基分类器bcj参与cs的投票,cs_count计数加1,若不成立则开始下一个基分类器bcj+1的投票处理;

步骤4:如果as_count>=t1,则将病症li添加到集合as,否则检查cs_count>=t2是否成立,若成立则将病症li添加到集合cs,若不成立则舍弃该病症。

如图3所示,图中有6个病症l1、…、l6,每个病症都拥有5个基分类器模型bc1、…、bc5,表格中的数据表示基分类器模型预测结果为1的概率值,而as_proba、cs_proba分别是允许模型参与as、cs投票的阈值,分别设为0.8、0.5,t1、t2表示将病症li加入as、cs中所需要的投票数阈值,分别设为4、2。病症l1的5个基分类器中预测结果不小于as_proba的个数为4,令as_count=4,该值不小于阈值t1,故将病症l1添加到as中;病症l2的5个基分类器中预测结果不小于as_proba的个数为0,故不满足as_count>=4的条件,需要检查cs_count>=2是否成立,因基分类器中预测结果大于cs_proba的个数为2,条件成立将病症l2添加到cs中。同理确定l3、…、l6的归属,获得的as={l1,l4},cs={l2,l5},l3、l6则舍弃。

如图4所示为贝叶斯网络的构建流程图,主要通过因果关系挖掘方法基于bde评分的爬山法(hc)来构建,其主要步骤如下:

步骤1:随机生成初始网络g,定义三个搜索算子:加边算子a、减边算子m、转边算子r,即定义对网络g进行增加边、剪除边以及变换边的方向的三种操作;

步骤2:对当前网络g进行搜索算子操作,更新网络,获取一系列候选网络g1、g2、…、gm;

步骤3:使用bde评分函数分别对候选网络g1、g2、…、gm进行评分,将评分记为s(gi),表示候选网络gi的评分,选取评分最高的网络作为最优候选网络结构,记为g’;

步骤4:若g’的评分大于g的评分,即s(g’)>s(g),则更新当前网络g为g’(即令g=g’),返回步骤2开始下一轮搜索;否则不更新当前网络,结束搜索,保存当前结构g;

步骤5:使用统计的方式获取病症间的条件概率表cpt;

步骤6:使用步骤4中的保存网络g(该网络为有向无环图)和步骤5中的条件概率表cpt,建立贝叶斯网络。

如图5所示,示例为一个已建好的贝叶斯网络,图中共有5个病症l1、…、l5,带箭头的实线表示病症间依赖关系,而虚线所连接的表格则为该节点的条件概率表。利用该贝叶斯网络进行过滤示例如下:

设as={l1,l2},cs={l3,l4,l5},则cs的子集有8中可能,故需要计算8次,取最大值对应的sli(ob);设bcsi={l3,l4}为cs的一个子集,则sli(ob)={l1,l2,l3,l4},故其中

p(l1_1,l2_1)=0.5×0.4=0.2,

p(l1_1,l2_1,l3_1,l4_1,l5_0)=0.5×0.4×0.1×0.6×0.2=0.0024;同理可计算出所有sli(ob)的对应的结果,取最大值对应的sli(ob)为最终预测病症集tls(0b),即需要的sli(ob)满足公式:

本发明的具体实施例:下面以i度房室传导阻滞、不完全性右束支阻滞、不完全性左束支阻滞、左心室肥厚、窦性心动过缓等病症为例,说明本发明实施例方法的处理流程:

(1)、在本实施例中,通过对比进行了过滤处理(filter)和未进行过滤处理(notfilter)两种结果,来验证本发明的切实可行性。

(2)、构建投票器对基分类器的结果做初步筛选:

首先设置投票器所需要的参数,初始时设置用于记录as和cs的得票数的参数as_count=cs_count=0;而as_proba、cs_proba分别是允许模型参与as、cs投票的阈值,在本实施例中分别设置为as_proba=0.8、cs_proba=0.6,t1、t2表示将病症li加入as、cs中所需要的投票数阈值,这里设置为t1=4、t2=2;

然后使用图2、图3所示的投票规则对所有测试实例进行投票处理,经过投票器筛选后,每个测试实例ob的都将获得一个与其对应的锚点标签集as(ob)和候选标签集cs(ob);

将锚点标签集as(ob)与候选标签集cs(ob)的所有子集分别进行合并,获得由as(ob)与cs(ob)子集的合集组成的锚点病症支持集。

(3)、构建贝叶斯网络:

本实施例中采用图4说明中的基于贝叶斯狄利克雷似然等价评分的爬山法(hc)来构建贝叶斯网络,图6为本实施例中构建的贝叶斯网络部分结构图;图中各个病症节点之间若存在连接关系,带箭头的一端表示子节点,而没带箭头的一端为父节点,子节点对父节点具有强烈的依赖关系,节点虚线连接的则是该节点对应的条件概率表,条件概率表展示了在确定父节点状态下子节点存在与否的概率;

然后利用该贝叶斯网络使用图5说明中的计算方法确定最终的预测病症集;

(4)、实施例结果分析:

上表为本实施例的部分结果,在该实施例中衡量模型好坏的指标分别为precision、recall、fscore。从上表可以看出在经过过滤处理后,各病症的recall值大幅度提升,而fscore也有明显提高,这说明本发明经过两次过滤处理后增强了基分类器的分类效果,提高了心电图病症确定的准确度,充分利用了病症间的依赖关系,提高了模型的泛化性能。

最后,应当理解的是,本发明中所述实施例仅用以说明本发明实施例的原则;其他的变形也可能属于本发明的范围;因此,作为示例而非限制,本发明实施例的替代配置可视为与本发明的教导一致;相应地,本发明的实施例不限于本发明明确介绍和描述的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1