背景技术
信息技术的快速发展促进了医疗数据的信息化,越来越多的信息技术手段也应用到了医学领域,其中,智能医疗辅助诊断系统近年来得到了越来越多地人的研究。最早的医疗辅助诊断系统是美国斯坦福大学的Buchanan和Shortliffe等人开发的基于专家规则的辅助医疗诊断系统MYCIN,用于鉴别细菌感染并提供治疗方案。该系统是一个功能较为全面的临床决策支持系统,其总结了400多种体现专家诊断疾病的规则以模仿专家的推理过程。经专家小组对医学专家、实习医生以及MYCIN系统的行为进行正式测试评价,认为MYCIN的行为超过了临床医生助手的作用。随后基于各种机器学习和数据挖掘的疾病辅助诊断方法和系统相继被提出或研究出来。论文“S.K.Inouye,C.M.Viscoli,R.I.Horwitz,L.D.Hurst,and M.E.Tinetti,"A predictive model for delirium in hospitalized elderlymedical patients based on admission characteristics,"Annals of InternalMedicine,vol.119,pp.474-81,1993.”提出了一种基于视力障碍、严重疾病、认知障碍和高血尿素氮肌酐比的预测谵妄症的模型。贝叶斯理论非常直观,不同特征的先验概率对结果具有不同的贡献率,使模型的结果具有更强的现实意义。陈景旺等人提出了一个基于产生式规则以及冲突消解急性腹痛辅助诊断系统。该系统采用正向推理以及深度优先结合剪枝的搜索策略,一步步匹配用户的输入直到寻找一个答案。李德云,刘桂萍等针对常见在治疗常见轻微疾病的过程中存在的问题,提出了并开发了一个基于Web的常见疾病自我诊断系统。该系统采用带有可信度的产生式规则表示法来表示常见病诊断知识,采用正反向混合推理模式,通过可信度的传递以及结论阈值的设定,实现了疾病预测的数字化。杨雪,周雪忠等人基于临床实际的中医病例数据,提出一基于案例推理的中医临床诊疗决策支持系统,该系统从中医临床数据仓库中筛选加工形成中医临床效验案例库,通过计算真实案例与效验案例间的相似度来作智能诊断。论文“M.J.Prince,"Predicting the onset ofAlzheimer's disease using Bayes'theorem,"American Journal of Epidemiology,vol.143,pp.301-8,1996.”将贝叶斯模型用于预测阿尔茨海默病,模型在临床患者中获得良好的效果。此外,论文“J.Friedman,T.Hastie,and R.Tibshirani,"Additive logisticregression:a statistical view of boosting(with discussion and a rejoinder bythe authors),"The annals of statistics,vol.28,pp.337-407,2000.”指出,增强统计算法可以根据众所周知的统计性原理即加性建模和最大似然来理解。在此观察基础上,作者提出了增强决策树的替代公式,其具有更好的性能和更快的计算速度。近年来的神经网络的发展为医疗辅助诊断系统带来了新的机会。论文“M.Green,J.J.Forberg,U.Ekelund,L.Edenbrandt,and M.Ohlsson,"Comparison between neural networks andmultiple logistic regression to predict acute coronary syndrome in theemergency room,"Artificial intelligence in medicine,vol.38,pp.305-318,2006.”对比了人工神经网络和逻辑回归模型在医疗辅助诊断预测上的效果,作者分别采用它们来训练预测模型从而检测急性冠状动脉综合征(ACS),结果表明人工神经网络在诊断疾病冠状动脉综合征上效果明显优于逻辑回归。Das“R.Das,I.Turkoglu,and A.Sengur,"Diagnosis of valvular heart disease through neural networks ensembles,"Computer methods and programs in biomedicine,vol.93,pp.185-191,2009.”提出了一种诊断瓣膜性心脏病的集成学习方法,其使用神经网络模型作为基础模型,并组合多个神经网络模型以建立更强的神经网络模型。Silipo&Marchesi,Amari&Cichocki,Ubeyli等人率先将RNN应用到生理信号的处理上,包括心电图的分析等;Tresp&Briegel等人使用RNN来进行血糖的检测。Pollastri,Xu,Vohradsky等人利用深度神经网络来进行基因序列的预测。Dabek&Caban对人的心理状态进行研究,提出一种基于深度学习技术的建模方法。Rughani则使用深度神经网络来对人类的头痛进行建模分析。为了提高医疗诊断预测模型的效果,更多的因素被考虑进来,论文“O.Y.Atkov,S.G.Gorokhova,A.G.Sboev,E.V.Generozov,E.V.Muraseyeva,S.Y.Moroshkina,et al.,"Coronary heart diseasediagnosis by artificial neural networks including genetic polymorphisms andclinical parameters,"Journal of Cardiology,vol.59,pp.190-194,2012.”提出了一种基于传统疾病特征和劳动性疼痛这样的遗传因素的人工神经网络模型,以诊断冠心病,实验表明加入更多的信息后,诊断效果具有很大的提升。侯桂英,孙佰清等利用人工神经网络和专家系统相结合的方法,对100份高血压病例提取特征进行训练构建预测模型,再使用该模型根据高血压病症的特征进行诊断。
发明内容
为解决现有技术存在的问题,本发明提出一种基于异构集成模型的疾病预测方法及系统。
本发明提出一种基于异构集成模型的疾病预测方法,包括:
步骤1,获取多标签数据集,并训练K个适用于门诊病例数据集的多标签基础分类器,对所述多标签基础分类器进行集成,获取异构集成模型;
步骤2,获取预测多标签样本,通过所述异构集成模型对所述待预测多标签样本进行预测。
所述步骤1包括
将所述多标签数据集拆分为单标签数据集;
根据所述单标签数据,为每个疾病标签训练二分类预测模型;
通过以下公式构建多标签基础分类器:
Hk(x)=∪∈L{l}:Hkl(x)≥Θ
其中Θ是某一个阈值,Hkl(x)是二分类预测模型,当Hkl(x)大于阈值Θ时,多标签基础分类器将所述预测样本x分为标签l,Hk(x)表示第k个多标签基础分类器对所述预测样本x的最终分类结果。
所述步骤1还包括通过下公式对所述多标签基础分类器进行集成:
其中ωk为第k个多标签基础分类器的权重。
通过以下公式计算所述权重ωk
ω=(HT H)-1HT y
其中H为K个多标签基础分类器对所有样本预测结果十进制化后的矩阵,y为所有样本真实结果向量。
所述步骤2包括通过K个多标签基础分类器分别对预测多标签样本进行预测,获取K个预测结果;多所述K个预测结果进行十进制化;通过回归方程,将十进制化的结果,获取十进制值;将十进制值转换为标签集合。
本发明还提出一种基于异构集成模型的疾病预测系统,包括:
获取异构集成模型模块,用于获取多标签数据集,并训练K个适用于门诊病例数据集的多标签基础分类器,对所述多标签基础分类器进行集成,获取异构集成模型;
预测模块,用于获取预测多标签样本,通过所述异构集成模型对所述待预测多标签样本进行预测。
所述获取异构集成模型模块包括
将所述多标签数据集拆分为单标签数据集;
根据所述单标签数据,为每个疾病标签训练二分类预测模型;
通过以下公式构建多标签基础分类器:
Hk(x)=∪∈L{l}:Hkl(x)≥Θ
其中Θ是某一个阈值,Hkl(x)是二分类预测模型,当Hkl(x)大于阈值Θ时,多标签基础分类器将所述预测样本x分为标签l,Hk(x)表示第k个多标签基础分类器对所述预测样本x的最终分类结果。
所述获取异构集成模型模块还包括通过下公式对所述多标签基础分类器进行集成:
其中ωk为第k个多标签基础分类器的权重。
通过以下公式计算所述权重ωk
ω=(HT H)-1HT y
其中H为K个多标签基础分类器对所有样本预测结果十进制化后的矩阵,y为所有样本真实结果向量。
所述获取异构集成模型模块包括通过K个多标签基础分类器分别对预测多标签样本进行预测,获取K个预测结果;多所述K个预测结果进行十进制化;通过回归方程,将十进制化的结果,获取十进制值;将十进制值转换为标签集合。
由以上方案可知,本发明的优点在于:
本发明对患者的门诊诊断病例数据集进行分析,由于并发症在数据集上的普遍性,本发明首先训练若干个基于One-Vs-All策略的异构多标签基分类器,其次在异构基分类器的集成上,本发明将各个基分类器权重的确定转变为一回归问题,通过求解该回归问题从而求解出集成分类器中各个基分类器的权重,继而使得该集成分类器效果达到最好。
具体实施方式
本发明提供一种基于异构集成模型的疾病预测方法,用于普通门诊上的疾病预测,为实现上述目的,本发明采用的技术方案如下:
A.训练K个适用于门诊病例数据集的基础分类器,实现方法如下:
A1.给定门诊病例数据集T={(x1,y1),(x2,y2),…,(xN,yN)},其中(xi,yi)表示一条门诊病例样本,xi表示为该条样本的特征向量,m表示为该特征向量的维度,yi表示为该条样本的类别标签集合,N表示数据集中一共有N条样本。{l1,l2,…,lC}为数据集中所有样本的标签集合,其中C表示所有疾病标签的种类数,lj表示第j种疾病标签。
A2.使用步骤A1中的数据集,采用One-Vs-All策略训练K个多标签基础分类器,如附图1所示,每一个多标签基础分类器训练过程如下:
A21.将多标签数据集拆分为单标签数据集,即如果一条病例样本有n个诊断结果,则将其拆分成n条具有不同诊断结果的单标签样本;
A22.根据拆分后的数据,为每一个疾病标签训练一个二分类预测模型;
A23.使用以下公式确定多标签基础分类器的构建:
Hk(x)=∪l∈L{l}:Hkl(x)≥Θ
其中Θ是某一个阈值(通常为0.5),Hkl疾病标签l的二分类预测模型,Hkl(x)是预测样本x属于疾病标签类l的概率,当Hkl(x)大于阈值Θ时,模型将此样本分为标签l。Hk(x)表示第k个多标签基础分类器对样本x最终分类结果,其为一个标签集合,对应于样本x的多标签属性。
B.异构多标签基础分类器的集成,实现方法如下:
B1.使用以下公式来确定异构模型的集成:
其中ωk为第k个多标签基础分类器的权重,即ω1为第一个多标签预测模型H1(x)的权重,ω2为第二个多标签预测模型H2(x)的权重,ωK为第K个多标签预测模型HK(x)的权重。F(x)即为K个多标签预测模型加权组合形成的集成预测模型。
B2.K个多标签基础分类器的权重的计算,实现方法如下:
B21.使用K个多标签基础分类器对训练数据集中的样本进行得出预测结果数据集,如下所示:
|
1 |
2 |
… |
K |
yi |
1 |
{l1,l2} |
{l2,l3} |
… |
{l2} |
{l1,l2} |
2 |
{l6,l8} |
{l7} |
… |
{l7,l10} |
{l6,l7,l10} |
… |
… |
… |
… |
… |
… |
N |
{l12,l2,l10} |
{l10,l12} |
… |
{l12} |
{l12} |
其中第1到K列是K个多标签基础分类器对N条训练样本预测的结果,而yi列是N条训练样本的真实结果。
B22.给定训练数据集中的C个标签{l1,l2,…,lC}与一个C位的二进制数,其中l1代表二进制数的最低位,lC代表二进制数的最高位,那么步骤B21中的预测结果数据集表也可以分别利用一个C位的二进制数表示,例如标签集合{l1,l2}可以表示为00…11;
B23.将预测结果数据表中的二进制数转换为常见的十进制数;
B24.该问题即转变为一个线性回归问题,如附图2所示:
F(x)=ωThi=(ω1,ω2,…,ωK)T(h1,h2,..,hK)
其中,hi为K个多标签基础分类器对第i条训练样本预测的结果十进制化后的向量,hi=(h1,h2,..,hK),h1是第一个基础多标签预测模型H1(x)对第i条样本预测结果转换而成的十进制数,h2是第二个基础多标签预测模型H2(x)对第i条样本预测结果转换而成的十进制数,hK是第K个基础多标签预测模型HK(x)对第i条样本预测结果转换而成的十进制数,。ωT是K个多标签基础分类器所对应的权重向量,即ωT=(ω1,ω2,…,ωK)T,ω1为第一个多标签预测模型H1(x)的权重,ω2为第二个多标签预测模型H2(x)的权重,ωK为第K个多标签预测模型HK(x)的权重。F(x)即为K个多标签预测模型加权组合形成的集成预测模型。
B25.求解该线性回归问题,得出权重结果为:
ω=(HT H)-1HT y
其中H为K个多标签基础分类器对所有样本预测结果十进制化后的矩阵,y为所有样本真实结果向量。
C.根据步骤B中求出的异构集成模型对样本进行预测,如附图3所示,实现方法如下:
C1.给定一待预测多标签样本,使用K个多标签基础分类器分别对其进行预测得出K个预测结果;
C2.对步骤C1预测出的K个预测结果按照步骤B22的方式进行十进制化;
C3.将步骤C2中得出的K个十进制结果带入步骤B24中的回归方程中,求出一个十进制值;
C4.将步骤C3求得的十进制值按照步骤B22中相反的顺序转换为标签集合,即为该预测样本的预测结果。
下面根据图示将更具体地描述本发明提出的一种基于异构集成模型的疾病预测方法的实施步骤:
A.训练K个适用于门诊病例数据集的基础分类器,如图示1所示,实现方法如下:
A1.给定门诊病例数据集T={(x1,y1),(x2,y2),…,(xN,yN)},其中
A2.使用步骤A1中的数据集,采用One-Vs-All策略训练K个多标签基础分类器,如附图1所示,每一个多标签基础分类器训练过程如下:
A21.将多标签数据集拆分为单标签数据集,即如果一条病例样本有n个诊断结果,则将其拆分成n条具有不同诊断结果的单标签样本,如一条样本为(“咳嗽,不呕吐,发热”,“呼吸道感染,支气管炎”),则该样本则被拆分为“咳嗽,不呕吐,发热”,“呼吸道感染”)和“咳嗽,不呕吐,发热”,“支气管炎”)。
A22.根据拆分后的数据,为每一个疾病标签训练一个二分类预测模型,在具体实施过程中,该二分类器可以是逻辑回归,支持向量机,决策树,朴素贝叶斯等基本分类模型。
A23.使用以下公式确定多标签基础分类器的构建:
Hk(x)=∪l∈L{l}:Hkl(x)≥Θ
其中Θ是某一个阈值(通常为0.5),Hnl是疾病标签l的二分类预测模型,Hkl(x)是预测样本x属于类别l的概率,当Hkl(x)大于阈值Θ时,模型将此样本分为标签l。Hk(x)表示第k个多标签基础分类器对样本x最终分类结果,其为一个标签集合,对应于样本x的多标签属性。
B.异构多标签基础分类器的集成,实现方法如下:
B1.使用以下公式来确定异构模型的集成:
其中ωk为第k个多标签基础分类器的权重。
B2.K个多标签基础分类器的权重的计算,实现方法如下:
B21.使用K个多标签基础分类器对训练数据集中的样本进行得出预测结果数据集,如下所示:
|
1 |
2 |
… |
K |
yi |
1 |
{l1,l2} |
{l2,l3} |
… |
{l2} |
{l1,l2} |
2 |
{l6,l8} |
{l7} |
… |
{l7,l10} |
{l6,l7,l10} |
… |
… |
… |
… |
… |
… |
N |
{l12,l2,l10} |
{l10,l12} |
… |
{l12} |
{l12} |
其中第1到K列是K个多标签基础分类器对N条训练样本预测的结果,而yi列是N条训练样本的真实结果。
B22.给定训练数据集中的C个标签{l1,l2,…,lC}与一个C位的二进制数,其中l1代表二进制数的最低位,lC代表二进制数的最高位,那么步骤B21中的预测结果数据集表也可以分别利用一个C位的二进制数表示,例如标签集合{l1,l2}可以表示为00…11;
B23.将预测结果数据表中的二进制数转换为常见的十进制数;
B24.该问题即转变为一个线性回归问题,如附图2所示:
F(x)=ωT hi
其中,hi为K个多标签基础分类器对第i条训练样本预测的结果十进制化后的向量。
B25.求解该线性回归问题,得出权重结果为:
ω=(HT H)-1HT y
其中H为K个多标签基础分类器对所有样本预测结果十进制化后的矩阵,y为所有样本真实结果向量。
C.根据步骤B中求出的异构集成模型对样本进行预测,如图示3所示,实现方法如下:
C1.给定一待预测多标签样本,使用K个多标签基础分类器分别对其进行预测得出K个预测结果;
C2.对步骤C1预测出的K个预测结果按照步骤B22的方式进行十进制化;
C3.将步骤C2中得出的K个十进制结果带入步骤B24中的回归方程中,求出一个十进制值;
C4.将步骤C3求得的十进制值按照步骤B22中相反的顺序转换为标签集合,即为该预测样本的预测结果。
本发明还提出一种基于异构集成模型的疾病预测系统,包括:
获取异构集成模型模块,用于获取多标签数据集,并训练K个适用于门诊病例数据集的多标签基础分类器,对所述多标签基础分类器进行集成,获取异构集成模型;
预测模块,用于获取预测多标签样本,通过所述异构集成模型对所述待预测多标签样本进行预测。
所述获取异构集成模型模块包括
将所述多标签数据集拆分为单标签数据集;
根据所述单标签数据,为每个疾病标签训练二分类预测模型;
通过以下公式构建多标签基础分类器:
Hk(x)=∪l∈L{l}:Hkl(x)≥Θ
其中Θ是某一个阈值,Hkl(x)是预测样本x属于类别l的概率,当Hkl(x)大于阈值Θ时,多标签基础分类器将所述预测样本x分为标签l,Hk(x)表示第k个多标签基础分类器对所述预测样本x的最终分类结果。
所述获取异构集成模型模块还包括通过下公式对所述多标签基础分类器进行集成:
其中ωk为第k个多标签基础分类器的权重。
通过以下公式计算所述权重ωk
ω=(HT H)-1HT y
其中H为K个多标签基础分类器对所有样本预测结果十进制化后的矩阵,y为所有样本真实结果向量。
所述获取异构集成模型模块包括通过K个多标签基础分类器分别对预测多标签样本进行预测,获取K个预测结果;多所述K个预测结果进行十进制化;通过回归方程,将十进制化的结果,获取十进制值;将十进制值转换为标签集合。