精确中医病案分类算法
1.概述
定义:中医是以个性化为临床实践的核心原则,是对现代西医的补充。
中医的一项基本任务:实现有效的精确医学(是将患有一般疾病的病人再分类为与该疾病的变异相对应的组。)
本文研究:对中医电子病历的再分类问题进行了研究。
问题的提出:
虽然基本聚类算法可以解决亚分类的一般问题,但在计算患者相似度时,要考虑中医病案症状和方剂的变化,这是一个有待解决的重大技术难题。
问题的解决:
为了解决这一问题,我们建议使用嵌入算法,从中医草药功能词典中学习症状和草药的不精确匹配。
提出假设:
中医词典中关于中医证候联想的经验知识可以用来发现症状并发与功能相似的中草药之间的潜在关系,从而提高亚分类的质量。
实验过程与结论:
我们在大规模的真实世界数据集上进行实验。正如所预期的,我们的方法在比基线方法更准确的匹配病人记录和获得更好的再分类结果之间。
实验贡献:
立即使用在多种临床应用中,如检索相似的病人以及发现两个特殊的中医病例:不同草药治疗的相似症状和相似草药治疗的不同症状。
2.导读
研究背景
任何一种疾病在不同的病人身上都会有不同的表现。
这种现象是由于病人的环境和众多的生理和病理因素(包括遗传变异)之间复杂的相互作用造成的。因此,在现实世界中,病人的诊断和治疗是非常困难的,因为人口变异,创造了对精准医疗的需求。
西医与中医的比较
西医倾向于使用许多“一刀切”的非处方药来治疗普通疾病,尽管越来越多的基因组数据为精准医疗提供了新的机会。
中医一直利用个性化治疗作为临床实践的核心原则了数千年。
在外国中医的贡献
尽管在美国寻求中医治疗的确切人数尚不清楚,但据估计,在1997年,大约有1万名医生每年接待超过100万名患者。
中医常用作补充和替代医学(CAM),对某些疾病,如胃病,尤其有效。
细致讲一讲中医与西医的不同
中医医生根据对病人的症状和身体状况的全面评估,为每个病人量身定制草药混合物;即使是普通疾病也是如此。
因此,两名症状相似的患者由于中医的个性化特点,可能会接受完全不同的治疗。
中医观察个人的症状模式的这种方式让人想起精准的医学技术。因此,它可以补充现代精密医学,
目前中医主要依靠分子的轮廓。和西方医学背景一样,中医医生也会记录病人的症状。
中医中疾病由两部分组成:
1)“疾病实体”(病),这仅是一组症状。
2)“综合症”(证),在西方医学没有直接平行翻译建议。症候群最好被描述为身体核心的不和谐。(中医特有)
医生的看病区别
- 在西医中,医生往往只能根据症状,在诊断失败的情况下使用处方治疗。图1在西医中,这个病人可能被称为皮肤专家和胃病专家,他们每个人都可能开一些表面的药物来缓解症状。
- 中医医生总是根据上述两种成分的组合来评估和治疗病人,在中医上,个性化的、整体的治疗对于有多个看似无关的症状的患者尤其有用。例如,一个特定的病人可能有面部痤疮、喉咙发炎、口腔溃疡、口干和腹痛。图1在中医医生通过确定病人的病因(症状)来为病人的症状(疾病实体)开药方。
对患者病例分类
分类原因:
由于同一疾病的两名患者可能有不同的潜在模式,中医医生会开出不同的药草,这就给中医带来了额外的复杂性。
这种并发症使得对患者记录有进行分类的必要性,将病人分为不同的组,然后再将其分类为更小的群体。例如,医生会将图1中的病人进一步细分为“多余的胃热”或“多余的心热”类别。
分类带来的好处:
1)子分类可以帮助没有经验的医生通过提供具体的医疗案例来学习模式分析。
2)最重要的是,患者记录的分类可以帮助医生查看所有可能的诊断,减少误诊的几率。
3)医生可以交叉引用他们的记录与现有的数据库,以获得比较有助于确定处方和治疗的趋势。
分类必要性:
所有领域的误诊不仅对患者的健康和安全造成持续的风险,而且每年也使美国损失大约7500亿美元。
本文研究目的:
旨在准确地计算出中医病患者记录的相似性,是准确的子分类的关键步骤。
本文研究过程遇到的问题:
1)在计算上,可以通过应用聚类算法将相似的记录分组在一起,然后归纳出子类别来解决子分类的问题。事实上,这种聚类方法也是我们研究的基础。然而,对于我们直接匹配两个患者记录的子分类的聚类算法的直接应用是不太可能有效的,因为它没有涉及到症状和药草的变化问题(即:,共病的症状和功能类似的草药)。例如,黄舌苔(苔黄)、舌苔腻(苔腻)共病的症状,患者通常出现在一起的“余热”(上火)综合症。半夏和黄莲在功能上类似的草药,也常用来治疗呕吐和腹痛。
2)中医患者通常有10到15个症状,并且开了相同数量的药草,这使亚分类更加复杂。
研究的挑战:
我们必须能够通过对症状和药草的耐受变化来匹配患者的病例,但允许相关症状或药草以某种方式相互匹配。这是我们在本文中讨论的主要技术挑战。
研究的过程:
我们建议在中药词典中利用已知的草药与症状的关联,以消除由共病症状和功能相似的药草引起的潜在关系。这些关系能使症状和药草不精确的结合,从而提高了亚分类的质量。
1)构建一个网络来表示词典中症状和草药的关联,作为一个图表。
2)应用一个网络嵌入方法来学习所有症状和草药的向量表示,同时保留它们在字典中的原始关联。矢量表示使我们能够计算出任何一对症状或草药的相似之处。有了这些相似度评分,如果症状或药草是根据字典上的知识相关的,患者记录没有重叠症状或草药可能部分匹配。
3)基于字典的嵌入PaReCat(病人病例次分类)的亚分类方法.。我们的假设是,中医词典中关于中医证候联想的先验知识,可以用来发现共证候和功能相似的中草药引起的潜在关系,从而提高亚分类的质量。
研究结论:
我们对大规模的真实数据集进行了大量的实验。正如预期的那样,这将比基线的方法更准确地匹配患者病例,从而更好地进行再分类。我们还显示,PaReCat可在多个中医临床应用中立即使用,如检索相似的患者,发现不同药草治疗相似症状的有意义的病例,以及类似草药治疗的不同症状。
3.问题定义
数据的输入
PaReCat(病人病例次分类)将两个实体作为输入。
第一个是一组n个中医病案,R={R1,…,Rn},其中R1 R是病人记录,由H={H1…,hp}和s={S1,…,sz}组成。
在这里,H是一组草药,S是病人I的一组症状。
第二个输入是中医词典中已知的一组草药症状联想,它们是中药输出症状集f:h->S的功能。
一种草药可能有0,1,或多种症状关联。
数据的输出
PaReCat输出一组病人记录类别C={C1,…,Cm},其中每个类别 ”Cj 属于C“ 包含R的一个子集。
区分两种分类
- 第一种方法是综合考虑症状和草药,对患者进行分组。 这使我们可以创建子类别,用于交叉参照病人的治疗和发现处方趋势。
- 第二种方法只使用症状。 这种类型的分类模拟了医生被介绍给一个新病人的情况,并希望看到类似的情况。
我们不考虑仅仅使用草药进行分类,因为医生在没有首先识别症状的情况下不会开治疗处方。
理想的类别将包含与症状、处方药或两者都密切相关的病人。
这些类别可以通过将相似的病人记录组合在一起来获得。 然而,简单地将中医患者按其症状和处方进行聚类是无效的。
分析不同症状给相同药和相同症状给不同药
- 原因之一是中医患者可能表现出共同的症状,或被给予功能相似的草药,但有非常不同的疾病。这些情况的发生是因为许多症状,如咳嗽或出血,并不是任何一种疾病特有的。同样地,在给病人开处方时,中医医生会分配一批草药,其中一些是为了治疗潜在的症状,煽动观察到的症状。
因此,两位患有不同疾病的病人,如果他们有相似的症状,可以开非常相似的草药。例如,一名腹泻病人被开了11种草药,其中7种也是给哮喘患者开的(表1)。
表1:在患者记录中识别识别性属性的难题的说明
- 相反,中医病人可能有相同的诊断,但非常不同的草药处方。这是因为病人属于不同的亚类。在治疗相同疾病的两种草药A和B之间,医生可能会选择给慢性胃炎患者开A而不是B,因为患者表现出“过热”(上火)综合征,而A则是专门治疗的,但B不是。在我们的数据集中的一个特殊案例中,一位哮喘患者被开了66种不同的草药,没有一种与另一位哮喘患者的57种草药的处方重叠(表2)。
表2:两名均被诊断为哮喘的患者但处方完全不同的药草
这种情况只发生在中医身上,而在西方的医疗案例中却没有出现,在这种情况下,医生们只开了几种药物,每种药物都能治疗特定的症状或疾病。
系统地发现中药变异治疗的相同症状和同一中药治疗症状的变化,是将中医经验性数据转化为有用医学知识的关键。
这是我们研究的主要目标。
PaReCat的目标是利用包含中医知识的字典来捕捉这些并发症。
4.方法
在本节中,我们首先概述模型的管道(图2),然后详细讨论每个组件。
4.1对PaReCat(病人病例次分类)的简要概述
- 1)我们首先获得一组已知草本植物症状协会在字典里,其中包含规则,草药映射到他们治疗的症状。例如,“半夏”有多个条目,治疗眩晕症和呼吸困难。
- 2)从这些关联中,我们可以构建一个两部分网络,其中网络的一部分由症状组成,另一部分由草药组成。与类似草药相关的症状会在网络中相互接近,反之亦然。
- 3)然后我们应用网络嵌入方法来学习每一种药草和症状的低维向量表示。这些低维向量最优地保存了症状和草药之间的原始关联。
- 4)然后我们可以利用它们对应的低维向量的余弦相似度来计算每一对特征的相似度。通过使用这些相似度评分,我们可以确定任何两个病人的相似度,即使他们没有任何药草或症状。
- 5)最后,我们在患者记录上应用聚类,并为每个患者学习该群集。
我们方法的主要新颖之处在于利用外部知识(草本症状字典)对中医患者病历进行聚类。
4.1.2建立二分网络
首先,从已知的草药症状组合A:H→S的集合,我们构造了一个二部分网络G =(H,S,E),其中两个不相交的集合H和S分别是草药和症状。
对于A中的每个映射h - > s(h E H,s E S),我们为h添加一个节点,如果它们不在G中,则为s添加一个节点,并在它们之间创建边。因此,| E | = | A |。G不一定连接。
4.1.3网络嵌入
接下来,我们进行网络嵌入,将两部分网络G从G中插入,我们使用最近开发的网络嵌入方法、扩散组件分析,来学习网络中药草和症状的低维矢量表示。
扩散成分分析已被证明在学习网络结构的基因功能预测方面取得了最先进的成果。扩散组件分析将网络作为输入,并为网络中的每个节点输出低维的表示。它确保两个节点在网络上的拓扑关系中具有非常相似的低维表示。因此,使相关的症状和相关的药草不精确的匹配倾向于有类似的低维向量表示。
在每一对向量之间,我们计算余弦相似度得分,以找出对应的症状或药草之间的联系。每一种症状和药草都与其他症状和草药有相似之处。
例子:
例如,停乳(一个细菌菌株引起消化不良)和一捻金(粉末组成的几个草本植物)的相似性得分0.85272。事实上,一捻金胶囊作为主要成分开发治疗患有停乳的儿童。
我们计算(|H| + |S |)^ 2相似的总分数。特征与本身的相似度总是等于1。利用这些得分,我们输出形状(| H | + | S |)X(| H | + | S |)的相似性矩阵M。对角线仅由1组成,确保精确匹配始终被视为最大可靠的匹配。对角线上的非零值在[一1,1]的范围内。这些值捕捉不同症状和草药相互匹配的程度。此外,我们设置一个相似度分数阈值s,只考虑相似度分数大于s的分数。将小于s的M中的分数改为0。
对于PaReCat的任何特定运行,该组特征可以是症状或症状和草药。
作为文本挖掘的一个标准步骤,我们发现滤除高频词和低频词会带来更好的效果。因此,我们还引入参数去除出现在少于B种草药患者访问(B草药 E Z)的草药,并且比所有A草药患者访问(0.0 <”A草药”<1.0)的草药更多。
我们的模型类似地消除症状和B症状的症状。
如果功能只是症状,那么A草药和B草药的价值是无关紧要的。
最后,我们得到一个n×n相似度矩阵M’,其中n <(| H | + | S |)是症状和草药后处理的数量。
请注意,矩阵M’允许的不精确匹配超过了症状-症状和草药-草药匹配,也允许症状 - 草药匹配。
4.1.4丰富患者基质
在从字典中学习相似矩阵M后,我们用它来丰富p x n患者矩阵p,其中p是病历中患者的数量。每一行P都是对应于患者的二元向量,其中1表示患者被开给药或具有与列相对应的症状,否则为0。n是症状和药草的数量,和以前一样。这种浓缩的目的是在患者的基质中,如果他们有足够多的已知的相关症状和药草的支持,就可以使一些零元素(不存在的症状或草药)成为非零元素。对元素的支持是基于相似矩阵M的。形式上,我们做了以下矩阵乘法:
其中 P’为丰富的pxn患者记录矩阵,其中每个患者都被视为样本,每一种药草或症状都是特征。直观地说,在矩阵乘法之后,症状和药草与许多其他症状相似的草本植物在原来的病人载体中会有更高的价值。实际上,这增加了原来的病人向量,可能包括其他相关的症状和药草。
4.1.5聚类
最后,我们对丰富的病人向量进行聚类,以适应不精确的匹配,并能够更准确地匹配病人记录。
我们可以使用任何相似函数来计算两个病人记录之间的相似性。
在实验中,我们选择余弦相似度作为聚类的亲缘度度量,并将其应用于西方病案连锁的相似任务中。
同样,我们丰富的向量表示也可以支持任何聚类算法。
在实验中,我们选择了平均连锁的聚集聚类,这对中药数据的聚类是有帮助的。
这种层次聚类算法的优点是可以在不同的层次上得到详细的子分类。
5.实验
在这一节中,我们将讨论PaReCat的评估问题。
- 首先,我们描述了本文所使用的数据集。
- 接下来,我们提供调优参数的值。
- 最后,我们讨论了我们的定量和定性模型评价
。
5.1数据描述与实验
在两个数据集上进行了实验,定量和定性地评价了PaReCat的有效性。
在获取了患者记录的分类后,我们用病人记录中的疾病标签作为基本事实进行评估:具有相同标签的记录被期望在同一组中。
5.1.1医学教科书
我们使用了一本包含2276名病人病历的中医教科书。
这些病人的医疗记录根据他们的分类被组织成一个三级的层次(图3),在最顶层有三个类别,我们称之为第一级:“妇女和儿童”,“内科”和“外科针灸”。
中等层次,我们称之为二级,更具体,包括“外源性季节性疾病”等类别。
最底层的,或三级,包括更具体的疾病,如“普通感冒”。
我们将类别称为相应病人记录的标签。
有三个一级标签,51个二级标签和274个三级标签。
因为我们可以将这些标签解释为基本事实,所以这个数据集是定量评估的理想数据集。
5.1.2胃病患者记录
除了医学教科书之外,我们还对我们的模型进行了进一步的评估,该模型包含了9529名匿名患者,是从中国一家大医院获得的更大的医疗记录。
这些病人都有各种胃病。
此数据集没有用于定量评估的详细标签。
我们用它来理解我们的方法是否能提供关于胃病亚类的有趣的见解。
治疗这些病人的医生手工评估了亚分类结果。
5.1.3设置参数。
通过调整A、B、A、B三种症状的阈值,控制对常见症状和中草药的过滤,在不嵌入A症状=0.05和B症状=1的症状特征的情况下,我们获得了最好的聚类结果。对于不嵌入症状和草药特征的聚类,A症状=0.2 B症状=5,A草药=0.1,B草药=2的聚类效果最好。为了加强我们的基线,我们将这些最优参数固定在相应的嵌入参数上(即,对症状特征进行聚类,还使用A症状=0.05,B症状=1)。对于嵌入聚类,S=0.96的症状特征和s=0.98的综合症状和草药特征的聚类效果最好。
5.1.4评价指标
用调整后的指标对聚类质量进行评分。它被广泛地用于评估聚类结果,定义为
其中Nij ,ai和Bj是从两个组X={X1,…,Xr}和Y={Y1,…,Ys}之间的重叠产生的列列表中产生的值。每个条目Nij表示xi和yj之间共有的对象数:nij=xi^yj。AI表示组xi的条目之和,而bj表示组yj的条目的和。分数越高,就能更好地结合实际情况进行聚类。调整后的Rand指数在(一oo,1)范围内。
5.1.5定量评价
除了聚类外,我们还使用了K-均值(一种常用的聚类技术)和谱聚类(谱聚类)来对西方病历进行聚类,用于预测个人的医疗费用。
K-均值、谱聚类和聚类的调整Rand指数见表3。
对于没有嵌入(四行)的集群,我们注意到,聚类的性能最好,正如预期的那样。
表的下面两行显示了不带嵌入项的和带有嵌入丁的聚集聚类的结果(分别为基线和PaReCat)。
我们观察到通过嵌入已知的草本植物症状关联来改善这两种类型的特征。
症状和草药的嵌入特征向量的Rand指数调整为0.2754,高于不嵌入的特征向量的Rand指数0.2717。
同样,仅症状的嵌入特征向量就达到了调整后的兰德指数0.1672,比不嵌入的特征向量的Rand指数提高了0.1613。
聚类结果对症状和中草药的特征都非常敏感,使聚类结果的调整后的Rand指数降低到0.22142。
虽然改进很小,但我们已经表明PaReCat确实可以通过添加外部信息来提高集群性能。
此外,我们还可以从不符合基本真理的集群中获得新的知识。