APP下载

基于LDA模型和电子病历的疾病辅助诊断方法

2017-05-12刘玉文

宿州学院学报 2017年2期
关键词:病历概率公式

刘玉文,张 钰,杨 枢

蚌埠医学院卫生管理系,蚌埠,233030



基于LDA模型和电子病历的疾病辅助诊断方法

刘玉文,张 钰,杨 枢

蚌埠医学院卫生管理系,蚌埠,233030

采用分词软件对电子病历进行分词,然后用LDA模型对分词后的电子病历进行建模。通过建立病历、疾病、特征三者之间的依赖关系,生成病历-疾病和疾病-特征两个分布矩阵。并基于欧氏距离的相似度计算方法,利用标准化欧氏距离公式,计算测试样本病历与疾病-特征分布的相似度,推断出测试样本病历中不同疾病的出现概率。结果表明:运用该方法,疾病诊断准确率达81.99%,高于C4.5算法的79.61%和ID3算法的77.19%,取得了良好的疾病辅助诊断效果。

LDA模型;电子病历;疾病特征;辅助诊断;欧氏距离

随着医院病历管理系统的广泛应用,我国各级医院中保存着大量的电子病历。这些病历完整地记录了病人从入院到出院间接受治疗的全过程,病历中蕴含着大量潜在的有价值信息[1],这些信息对疾病的诊断和治疗具有十分重要的意义。因此,高效地对病历进行分析,从中识别出疾病的特征是医疗数据分析领域的研究重点内容之一。

计算机疾病辅助诊断就是运用隐含在医疗大数据里的知识和规律对疾病进行推断的过程,其中,基于电子病历的疾病诊断研究是一个重要研究方向。如文献[2]提出了一种基于关联规则的疾病诊断方法,该方法通过计算电子病历中特征项集与疾病之间的关联程度,找出疾病的关联特征,建立疾病与特征的关联规则集,最后依据关联规则集进行疾病诊断。文献[3]提出了基于ID3算法的病历分类方法,该方法把病历按照疾病的不同进行分类,然后对病历进行监督学习,找出疾病的特征向量,最后通过疾病的特征向量进行疾病辅助诊断。文献[4]提出了基于C4.5的疾病预测方法,该方法首先建立疾病分类决策树,然后根据决策树对疾病进行预测。虽然,这些方法在疾病辅助诊断方面取得了一定的成效,但仍然存在疾病特征识别精度低、推断不准确等问题。基于此,文本提出了一种基于LDA模型和电子病历的疾病辅助诊断方法。该方法首先使用LDA模型对病历、疾病、疾病特征三者进行建模,得出病历-疾病和疾病-特征两个分布矩阵,然后通过计算测试病历与疾病-特征的相似度来推断测试病历中的疾病分布,从而达到疾病辅助诊断的目的。

1 LDA模型

1.1 基本原理

隐狄利克雷分配(Latent Dirichlet Allocation,简称LDA)是一种无监督文档主题生成模型[5],它能自动从大规模语料库中识别出潜在主题。LDA模型基于一个假设,即文档以一定的概率选择某个主题,而主题又以一定的概率选择每个词,因此,文档可以视为是主题的混合,主题是词的混合。LDA采用词袋(bag of words)方法[6],把每个文档看作一个词频向量,把文本信息转化成数字信息,没有考虑词之间的顺序关系,简化了建模复杂度。LDA模型定义了4个变量:文本-主题分布向量θ、主题-词汇分布向量φ、主题z和词汇w,其中,主题z依赖于θ,w依赖于z。由于z是隐含变量,w是唯一可观测变量,词汇w在文档d中出现的概率为P(w|d) =P(z|d)P(w|z),所以LDA本质上是一个三层贝叶斯网络,其生产过程如图1所示。

图1 LDA模型的贝叶斯网络图

LDA模型中各变量的含义如表1所示。

表1 LDA模型变量含义

虽然LDA模型在文本主题识别中存在明显的优势,但主题数必须事先确定,这是它的主要缺陷[7]。如果主题数确定不合理,则会大大影响算法的精度。

1.2 动态主题数计算

本文采用目前最流行的基于贝叶斯的计算方法来寻找文本数据集的最优主题数[8],计算公式如(1)和(2)所示:

(1)

(2)

2 基于LDA的疾病辅助诊断方法

本文把LDA模型运用到电子病历的分析上,通过对病历的学习,找出病历中潜在的疾病和疾病的特征,再使用相似度计算方法进行疾病辅助诊断。通过分析病历可以发现,一个病人可能会同时生几种疾病,每种疾病又由特定的特征词来描述。因此,基于LDA的病历学习基于一个假设,即一个病历文档以一定的概率选择某种疾病,每种疾病又以一定的概率选择某个特征词。这样,病历可以看作是多种疾病的组合,而疾病又是多种特征的组合。设D={d1,d2,…,dm}表示由m个病历文档组成的病历语料库,S={s1,s2,…,sk}表示D中潜在的疾病集合,V={w1,w2,…,wn}表示由D中所有词语组成的集合。

病历语料库D中每个病历d生成不同疾病的概率为θd=ps1,…,psk,其中,psi表示d对应S中第i个疾病的概率。计算公式为psi=nsi/n,其中nsi表示d中对应第i个s的词的数目,n是d中所有词的总数。

疾病集合S中每种疾病(s)生成不同单词的概率为φs=pw1,…,pwm,其中,pwi表示s生成V中第i个单词的概率。计算公式为pwi=nwi/n,其中nwi表示对应到s的V中第i个单词的数目,n表示所有对应到s的单词总数。

LDA模型首先从病历-疾病分布中选择一个疾病,然后再从疾病-词汇分布中选择一个词,其生成过程如下:

(1)对每篇病历文档,从病历-疾病分布中抽取一种疾病,使得sdn~Multi(θd);

(2)从上述被抽到的疾病所对应的疾病-词汇分布中抽取一个词,使得wfn~Multi(φs);

(3)重复上述过程直至遍历病历中的每个词。

由于θ和S是隐变量,W是可观测到的词汇,则LDA生成一个病历的疾病分布、再生成N种疾病、然后再生成这篇病历的N个词的联合概率如公式(3)所示:

P(θ,Z,W|α,β)

(3)

式中,θ是病历的疾病分布向量,S是N维的疾病向量,W是N个词组成的向量。由于θ和S是隐变量,求W的边缘分布将θ和S消去得到病历中每个单词的生成概率,如公式(4)所示:

P(w|α,β)

(4)

LDA通过可观测值w训练出病历-疾病分布矩阵θ和病历-词汇分布矩阵φ。采用变分贝叶斯方法估算预测值,并利用EM算法来对参数θ和φ进行估计。本文通过吉布斯采样来训练模型的两个分布矩阵,采样公式如(5)所示:

(5)

每次采样中,θ、φ的更新公式如(6)和(7)所示:

(6)

(7)

对公式(5)进行反复迭代,当θ和φ达到稳定状态后,得到最终的θ和φ分布结果。

3 实验分析

3.1 数据来源与预处理

实验数据来源于蚌埠医学院第一附属医院。选取该院2013年到2015年内科住院电子病历28 168份,其中27 000份作为训练样本,1 168份作为测试样本。由于病历包含病人基本信息、主诉、现病史、检查结果、诊断、治疗过程等信息。首先对病历进行去隐私,去无用信息处理,只保留主诉和现病史两项内容。然后用中国科学院分词软件ICTCLAS对处理后的电子病历进行分词并去除停用词。分词结果存放在文本文件disTxt中,每行存放一个电子病历的分词结果。

3.2 疾病识别结果

在LDA算法中,最优疾病数K采用贝叶斯方法获取,α设置为0.5/K,β设置为0.1,均为经验最优值。疾病特征词个数disWord概率设为8。在disTxt上运行LDA模型后,产生θ和φ两个分布,其中φ表示的是疾病和特征词的分布,由于识别出的疾病种类较多,选取其中6种疾病作为样例来描述疾病特征的识别结果,详情如表2所示。

表2 疾病特征的挖掘结果

3.3 疾病预测

根据疾病-词汇分布矩阵φ,测试样本病历dx与φ中任意疾病特征样本di的相似度用欧氏距离来表示,如公式(8)所示。

(8)

由于公式(8)无法准确度量不同量纲特征的重要程度,所以要对其作进一步标准化处理,标准化处理如公式(9)所示。

(9)

把公式(9)带入公式(8)得到标准化的欧氏距离公式,如公式(10)所示。

(10)

其中,σ和μ表示φ中n个病历样本在各维特征上的均值向量和标准差向量。dx与di的相似度Sim值越大,说明dx中的疾病与di的疾病越相似。根据公式(10),计算测试样本病历dx与φ中每个疾病特征样本的相似度,并按值从大小排序。最终得出dx中可能存在的疾病概率。

3.4 预测准确率评价

为了检测本文方法的疾病诊断准确性,采用十折交叉法把1 168份数据分成10等分,分别对每组数据进行测试,以ID3算法和C4.5算法作为文本算法的比较对象,测试结果如图2所示。

由图2可以得出,本文提出的算法的综合准确率为81.99%,分别优于C4.5算法的79.61%和ID3算法的77.19%,取得了良好的疾病辅助诊断效果。

图2 算法的对比结果

4 结束语

以上分析了LDA模型原理,并根据电子病历的特点,把LDA模型应用到基于电子病历的疾病特征识别中,找出不同疾病的特征分布。再通过计算测试病历与疾病特征分布的相似度,判断测试病历的疾病种类,从而达到疾病辅助诊断的目的。实验结果表明,本文提出的算法能提高疾病诊断的准确率。

[2]李准,冯思佳,杨美洁,等.关联规则技术在冠心病电子病历中的应用[J].医学信息学杂志,2015,36(1):58-62

[3]李奋华,赵润林.基于数据挖掘的疾病预测模型的构建与分析[J].现代计算机,2016(18):14-17

[4]陈松景,杨林,吴思竹,等.基于C4.5分类的呼吸系统疾病危险因素定量分析方法[J].中华医学图书情报杂志,2016,25(8):35-41

[5]BleiDM,NgAY,JordanMI.Latentdirichletallocation[J].JournalofMachineLearningResearch,2003(3):993-1022

[6]AnandkumarA,FosterDP,HsuD,etal.ASpectralAlgorithmforLatentDirichletAllocation[J].Algorithmica,2015,72(1):193-214

[7]NoelGE,PetersonGL.ApplicabilityofLatentDirichletAllocationtomulti-disksearch[J].DigitalInvestigation,2014,11(1):43-56

[8]TirunillaiS,TellisGJ.MiningMarketingMeaningfromOnlineChatter:StrategicBrandAnalysisofBigDataUsingLatentDirichletAllocation[J].JournalofMarketingResearch,2014,51(4):463-479

(责任编辑:汪材印)

10.3969/j.issn.1673-2006.2017.02.028

2016-11-18

安徽省教育厅自然科学一般研究项目(KJ2015B061by);安徽省高校人文社会科学重点项目(sk2015A405,sk2016A0607)。

刘玉文(1982-),安徽蚌埠人,硕士,讲师,研究方向:数据挖掘,机器学习。

TP391.41

A

1673-2006(2017)02-0114-04

猜你喜欢

病历概率公式
第6讲 “统计与概率”复习精讲
组合数与组合数公式
排列数与排列数公式
强迫症病历簿
第6讲 “统计与概率”复习精讲
概率与统计(一)
概率与统计(二)
等差数列前2n-1及2n项和公式与应用
“大数的认识”的诊断病历
例说:二倍角公式的巧用