基于贝叶斯网络的诊治前列腺疾病研究

2023-01-11 15:24王黎光
现代计算机 2022年20期
关键词:前列腺炎贝叶斯细菌性

沈 海,王黎光

(西京学院计算机学院,西安 710123)

0 引言

贝叶斯网络(Bayesian Network)是一种图形推理技术,用于表达变量之间的因果关系,是为了解决不定性和不完整性问题而提出的数学图论模型。贝叶斯网络对于不确定知识的开发具有很大的优势[1]。在医学领域中,贝叶斯网络也常应用于癫痫病[2]、乳腺癌[3]等常见疾病的诊治工作中。因此,本文将贝叶斯网络应用到诊治前列腺疾病案例中。

贝叶斯网络软件GeNIe2.3为匹兹堡大学决策系统实验室所开发的贝叶斯网络建模软件,其初始界面如图1所示。贝叶斯网络的建立包含结构学习及参数训练两大板块,诊治前列腺疾病贝叶斯网络模型建立过程如下。

图1 贝叶斯网络软件GeNIe2.3初始界面

1 诊治前列腺贝叶斯网络结构学习

贝叶斯网络的拓扑结构表示变量之间定性的影响关系。贝叶斯网络结构学习旨在利用结构学习算法从大量的历史样本数据中挖掘一种有向无环图结构,其能表现变量之间的相关性。针对多变量、多样本数据,利用结构学习算法进行结构建模容易导致变量的结构变得过于复杂,不利于后续进行分析和诊治[4],因此本研究通过咨询前列腺疾病领域的专家来获取先验知识,结合文献查询调研,再进一步利用相关结构学习算法,构建诊治前列腺疾病贝叶斯网络的基本模型结构。

利用GeNIe软件进行结构学习前,首先利用文献调研及专家经验确定部分变量之间的独立关系。本研究所利用的样本数据中,同类型变量之间保持为条件独立,不同类型变量可能存在条件相关性。基于独立关系,将所收集的81个变量、2607个前列腺疾病样本数据导入GeNIe软件中,使用软件中的K2学习算法进行数据挖掘。进行数据挖掘建立结构前,将样本变量划分为三大类,分别是疾病类型、诱因和症状,如表1和表2所示。其中,可以看出前列腺疾病类型与症状、诱因之间存在关联关系。站在医学科学的角度讲,诱因能导致前列腺疾病的发生,不同的前列腺疾病类型表现为特有的前列腺疾病症状。通过上述关系,可以初步确定诊治前列腺疾病贝叶斯网络的初始结构。

表1 前列腺疾病类型与诱因的对应关系

表2 前列腺疾病类型与症状的对应关系

在上述基于医学科学的基础上,利用所导入的样本案例数据,结合GeNIe软件中经典的K2算法进行结构学习。该算法为K2评分函数和爬山搜索算法的融合算法,利用爬山算法搜索可能存在的结构,并利用K2评分函数进行打分,得分最高的结构即是最优结构。该算法的启动界面如图2所示,由于贝叶斯网络中各节点的条件概率表随着父节点数量的增加而增加,因此设置最大父节点数量为15个,任意节点的父节点数量不超过15个,避免条件概率表大而影响后续建模分析。

图2 贝叶斯网络K2结构学习算法初始界面

最终获得的诊治前列腺疾病贝叶斯网络拓扑图初始结构如图3所示。其中,红色节点为前列腺疾病类型,指向红色节点的前列腺疾病类型的父节点——诱因,从红色节点出发指向的节点为前列腺疾病类型的子节点——症状。该结构清晰地呈现了前列腺疾病类型、诱因和病症之间的关系。

图3 诊治前列腺疾病贝叶斯网络拓扑结构

2 诊治前列腺贝叶斯网络参数学习

贝叶斯网络中的参数主要为非根节点(中间节点和叶节点)的条件概率表(Conditional prob⁃ability table),进而获得贝叶斯网络中各个节点的状态概率分布。一般而言,在数据样本量充足的情况下,可以通过机器学习算法进行数据挖掘以确定贝叶斯网络参数。贝叶斯估计算法、极大似然估计算法、梯度下降算法和极大期望值算法为比较常用的参数学习算法;当数据集合完整可用时,极大似然估计算法能很好地挖掘样本数据的相关性,有利于得到最优参数。在样本数据不完整、有缺失时,需采用EM算法进行参数训练。

鉴于本工作所获得的前列腺诊断数据样本完整可用,并未存在缺失,本工作使用了GeNIe软件中自带的极大似然估计算法进行参数学习。该算法不断模拟条件概率表的可能性情况,直到该条件概率表能使得中间节点和叶节点的后验概率接近样本数据的实际情况,该算法界面如图4所示。

图4 诊治前列腺疾病贝叶斯网络参数学习界面

将样本数据与上述模型结构进行匹配,使用极大似然估计算法来捕获该模型中的条件概率表,最终获得一个完整的且带有概率分布的诊治前列腺疾病的贝叶斯网络模型。因为本工作所构建的贝叶斯网络模型结构较为复杂,条件概率表亦较为庞大,通过参数训练获取的条件概率表示例如表3所示,0.8993表示当父节点“前列腺癌”和“前列腺增生”同时处于“State0”(不出现)状态时,子节点“下肢无力”处于“State0”(不出现)状态的概率为0.8993,其它以此类推。根据贝叶斯网络正向推理理论,贝叶斯网络正向推理计算方法如式(1)和(2)所示:

表3 “下肢无力”及其父节点“前列腺癌”和“前列腺增生”之间的条件概率表

式中:P(U)表示为一组节点U= {B1,B2,…,Bn}的联合概率分布,Pa(Bi)为贝叶斯网络中节点Bi的父节点集合,P(Bi)表示目标节点Bi的先验概率。

运行模型进行正向推理后各节点的状态概率分布结果如图5所示。

如图5可知,病人患上“急性细菌性前列腺炎”“急性非细菌性前列腺炎”“慢性非细菌性前列腺炎”“慢性细菌性前列腺炎”“前列腺癌”和“前列腺增生”的概率依次为26%、18%、10%、19%、23%和32%。可知病人患上“前列腺增生”在前列腺疾病中最为常见。

图5 诊治前列腺疾病贝叶斯网络模型

3 诊治前列腺贝叶斯网络模型验证

贝叶斯网络模型能否通过案例数据准确预测目标节点的状态概率分布,是判断模型有效性和可靠性的重要特征。常用的模型检验方法包括样本黄金分割法、逐一验证法和K折交叉验证法[5]。样本黄金分割法要求提前将数据样本按照一定的比例分为参数训练集和验证集,一般合适的比例为60%训练集,40%验证集,但该方法存在一定的偶然性,受到划分比例和划分者的主观影响更大。逐一验证法要求将n个数据样本中的n-1个样本案例作为参数学习集,剩余1个作为验证案例验证模型的准确性,该方法能全面覆盖样本进行验证,但对于数据量大的样本案例,运算速度过慢,不利于进行模型验证。

本工作使用了K折交叉验证法构建混淆矩阵,以验证上述模型的准确性。首先设置K折的数量,由于本工作样本数据量大,设置K为5促进验证过程快速运行,即将2607份样本数据平均分成5份;其次设置验证节点为“急性细菌性前列腺炎”“急性非细菌性前列腺炎”“慢性非细菌性前列腺炎”“慢性细菌性前列腺炎”“前列腺癌”和“前列腺增生”等5个前列腺疾病节点,将其中4份作为网络的参数训练集,剩余1份作为网络的模型验证集检验模型预测验证节点的准确性,重复迭代5次,直至5个样本数据集合均已完全覆盖完毕。最终获得混淆矩阵如图6所示,矩阵对角线中的数值即为预测准确的案例数量。由图6可知,急性细菌性前列腺炎”“急性非细菌性前列腺炎”“慢性非细菌性前列腺炎”“慢性细菌性前列腺炎”“前列腺癌”和“前列腺增生”等5个前列腺疾病节点的案例验证准确性依次高达88.34%、91.04%、89.96%、85.61%、94.26%、90.01%,其中,对前列腺癌的预测准确率高达94.26%。可知该模型对于医院诊治前列腺疾病具有极高的有效性和实用性,可用于临床诊治前列腺疾病。

图6 各验证节点的准确率

4 结语

本研究以前列腺疾病为例,构建了诊治前列腺疾病的静态贝叶斯网络模型,通过参数学习获取了条件概率表,量化了不同诱因、疾病类型、症状之间的影响关系。通过K折交叉验证法,验证了模型是否能够准确识别和预测不同诱因及症状情况下的前列腺疾病类型,充分融合了大数据算法和医学专家经验的优势[6]。最终验证得出模型预测及识别前列腺炎的综合准确率高达91.7%,说明该模型可用于诊治前列腺疾病类型,为医护人员提供更加符合辩证论治的理念以及临床实际应用模型,进而为医护人员提供决策支持。未来,还可以通过引入诊疗方案的理念搭建诊治前列腺疾病的贝叶斯网络模型,从识别到疗养方法着手,不断推进模型的迭代升级。

猜你喜欢
前列腺炎贝叶斯细菌性
历史上那些骇人的细菌性传染病
基于贝叶斯定理的证据推理研究
基于贝叶斯解释回应被告人讲述的故事
前列腺炎和早泄有关系吗
细菌性食物中毒事件调查研究
基于羊细菌性疾病的预防控制分析
如何预防和治疗慢性前列腺炎
预防细菌性食物中毒的主要方法
辨识真假慢性前列腺炎
如何预防和治疗慢性前列腺炎