论文部分内容阅读
摘要:目的 通过人工神经网络技术构建可根据症状体征预测用药的医案模型,以《临证指南医案·湿》医案为例,分析方证之间的网状关系。方法 对《临证指南医案·湿》医案进行筛选,将症状、体征、处方药物等数据规范化后录入。采用Python语言编程,PyBrain模块构建并训练神经网络模型,MatPlotLib模块绘制误差曲线、预测的拟合曲线,评估灵敏度与特异度,NetworkX模块实现方证网状关系的可视化表达,分析处方内的药物及配伍关系与其针对的病证病机或病理环节之间的关系。结果 构建的医案神经网络模型预测灵敏度96.15%、特异度75.00%,实现了方证网状关系的可视化映射及其单个、单组、两组节点间多角度的分析。结论 人工神经网络能较好模拟医案知识的方证关系,网状关系的可视化组合与呈现可为医案文献的方证知识发现提供可行方法。
关键词:医案;叶天士;临证指南医案;方证;人工神经网络;知识发现
DOI:10.3969/j.issn.1005-5304.2017.09.023
中图分类号:R2-05;R249 文献标识码:A 文章编号:1005-5304(2017)09-0091-05
Relationship Between Syndromes and Prescriptions of Damp Disease: a Neural Network-based Study on Cases from Lin Zheng Zhi Nan Yi An Shi LI Jia-min, CHEN Hong-yu (Guangxing Hospital Affiliated to Zhejiang Chinese Medical University, Hangzhou 310007, China)
Abstract: Objective Taking medical cases in Lin Zheng Zhi Nan Yi An Shi as examples to analyze the network relationship between the syndromes and prescriptions through building a medical case model forecasting medication via artificial neural networks for the syndromes and prescriptions in medical cases. Methods The study screened medical cases in Lin Zheng Zhi Nan Yi An Shi, and standardized and entered the data with Python language programming. PyBrain module was used to build and train a network model. The MatPlotLib module drew the error curve and the predicted fit curve, and evaluated the sensitivity and specificity. NetworkX module realized the visual expression of the network relationship between the syndromes and prescriptions, and analyzed the medicine within the prescriptions and compatibility relationship and the relationship between the pathogenesis and pathology. Results The sensitivity of the constructed medical case network model was 96.15% and the specificity was 75.00%. The visual mapping of the network relationship between the syndromes and prescriptions and the analysis on single, single group, and multi-angle were realized. Conclusion Neural network is capable to simulate the relationship between syndromes and prescriptions of medical knowledge. The visual combination and manifestation of network can provide a feasible solution for the knowledge discovery in medical literature.
Key words: medical cases; YE Tian-shi; Lin Zheng Zhi Nan Yi An; syndromes and prescriptions; artifial neural network; knowledge discovery
清代著名醫家葉天士曾叹“吾吴湿邪害人最广”,现代研究也表明,湿邪参与多种慢性病变发生发展过程,如微循环代谢紊乱、能量代谢障碍、局部组织炎症反应等[1],因此对湿邪所致疾病的辨治研究值得重
通讯作者:陈洪宇,E-mail:hzchenhy@126.com 视。《临证指南医案》[2]出自临床实践,以医案形式记录诊疗经验和思路方法,具有很高的学术价值。通过分析其中的方证规律,研究处方内的药味及其配伍关系与其针对的病证、病机或病理环节之间的联系,有助于阐明医案中的辨证原理。
人工神经网络(artificial neural network)是模拟人脑神经元的结构与学习功能,建立起输入与输出层面的非线性模型的一种算法,广泛应用于经济、工程、生物、医学等领域[3]。根据Kolmogorov定理,神经网络可实现对任意非线性函数进行拟合。由于方证关系的逻辑关系具有高度复杂性,难以通过线性回归模型实现,故神经网络更为适用。目前,该领域研究多从药物、症状/体征等层面,独立进行统计学聚类、回归等分析,其相互关联的研究鲜有报道。本研究以《临证指南医案·湿》医案为例,基于神经网络算法,探讨医案数学回归模型的构建及方证间的网状关系。
1 资料与方法
1.1 数据来源
《临证指南医案·湿》医案首诊数据。排除叙述过于简略、未明确提及症状/体征,或无明确处方用药的医案。将原始文本整理为相应的医案编号、原文序号、患者名氏、临床表现、处方用药、辨证依据等。
1.2 数据规范
参考《中医症状鉴别诊断学》[4]规范症状/体征,对叙述模糊者,通过上下文理解进行规范,如“溺赤”可能指“尿血”或“小便黄赤”,而医案中明确指出是“湿郁”之证,故可推断此处“溺赤”应为“小便黄赤”;对可明确推断出的缺失信息也需录入,如通过“二便已通”可以推断出存在“大便秘结”“小便不通”,应予录入;对于一些组合性(如“發热畏寒”)或临床特征较具体的(如“汗出热解,继而复热”)症状/体征信息,则按照科技术语的简明性、单义性命名原则进行规范;按照文献[5]“症状体征单元假说”,将该类信息规范为“症状/体征单元”;对未收入《中医症状鉴别诊断学》的特殊症状/体征,按原文录入。
参考2015年版《中华人民共和国药典》[6]对药物名称进行规范。对涉及道地药材(如“於术”“茅术”“川斛”)的描述、中药制法(如“醋炒半夏”“煨草果”)的差异或取用特殊部分(如“降香末”“淡生姜渣”),若影响功效较小者,规范为为同种药名;若有明显影响的(如“生姜”“干姜”),分别录入。对于汤剂合用其他剂型如丸剂,则其他剂型不转换为草药,与草药并列录入。
1.3 神经网络构建及训练
本研究采用Python语言编程,PyBrain[7]模块构建并训练神经网络模型,MatPlotLib模塊绘制误差曲线、预测的拟合曲线,评估灵敏度与特异度,NetworkX模块实现方证网状关系的可视化表达。
PyBrain为模块化的机器学习软件包,可提供功能较强而灵活的机器学习算法。采用PyBrain建立以症状/体征为输入层,以药物为输出层的神经网络,模型选择前馈神经网络中的BP神经网络。为实现非线性的建模,隐含层的传递函数(激活函数)选择双曲正切函数。在输出层的传递函数选择方面,由于评估模型的预测性能属于回归问题,使用线性函数以保留输出数值的线性特征,再通过线性变换对输出值进行归一化处理(线性函数的输出数值的变化区间较大,需将其限制在一定区间以符合“是否使用该中药”的取值意义)。归一化的算法参考S型修正线性单元中的线性变换方法[8],能较好保留数据原貌。归一化的区间可自定义,为适用于后续的分类问题,使数据变化保持在[0,2]区间。对应的算法可简化表示为("y" _"i" ) ?=min?[2,max?(0,y_i )],其中("y" _"i" ) ?为归一化后的输出值,y_i为输出数据。
输入层与输出层的节点数分别由症状/体征及药物数量决定。为提高模型的准确性,本研究剔除低频(仅1次)症状/体征及药物,以简化样本的输入层与输出层规模。经筛选,输入节点由80个减至38个,输出节点由99个减至49个。隐含层是构建模型的关键部分,若设定的节点数过多,会出现容错性差、过度拟合等问题,若过少又会造成模型的误差较大。Shibata与Ikeda的隐含层计算方法[9]可提高模型稳定性,参考其公式对隐含层数进行调试。输出层输出数值的分类表示方面,可将渐进式的分类用[0,1]间的数值表示[10]。为使后续的分析有层次感,本研究通过设定判定阈值Lambda1=0.2,Lambda2=0.8,将输出数值分为3类:输出值≤Lambda1时判定为0,认为预测的处方中没有该药物;输出值≥Lambda2时判定为1,认为预测的处方中用到该药物;Lambda1<输出值 医案类文献具有各医案代表性强的特点,因此训练数据集使用纳入研究的全部数据。采用Excel2010建立原始数据库,见表1。以“1=有,0=无”记录症状/体征及药物情况,对数据进行规范化处理并简化规模后,建立用于方证分析的数据库,见表2。将表2构造为监督学习数据集,用于训练神经网络。
记录输出每次训练后的均方误差,采用MatPlotLib绘图模块绘制误差曲线。设置隐含层为43节点,观测到当迭代23次时均方误差开始收敛,2004次训练后,达到<1%的目标误差水平,见图1。由此构建了包含m个元素的症状/体征的集合X与n个元素的药物集合Y的关联对应(即方证关系)的非线性数学模型,见图2。
1.4 方证关系可视化
按照文献[11]网络图结构,设计方证网状关系对应的可视化映射方式。以圆形节点表示各症状/体征与药物,节点的大小与其频率成正比,症状/体征与药物节点间的连线表示关联,连线粗细表示关联强弱,即神经网络的预测值的大小。为控制复杂度,选取一定的症状/体征与药物,用模型预测每个症状/体征对应的药物联系,即输入层该症状/体征的值为1所计算得出的结果。根据结果建立相应矩阵。采用复杂网络分析模块NetworkX绘制网状关系图,布局采用Fruchterman-Reingold算法,以实现网状关系的可视化。 2 结果
2.1 纳入数据基本情况
初步纳入《临证指南医案·湿》医案59份,剔除复诊医案7份、未提及症状/体征医案3份,最终纳入医案49份。
2.2 频数分析
纳入数据包含原始症状/体征135种,规范为80种,总出现频次为183次。出现频率(出现频次÷医案數)>10.00%的症状/体征,即主要症状/体征有食欲不振、身痛、腹泻、心下痞、舌白、头胀、小便不利、呕吐、发热、痞结等,见表3。录入药物原始数据145味,规范为99味,总出现频次为312次,其中出现频率>10.00%的药物有茯苓、厚朴、陈皮、滑石、半夏、苦杏仁、生姜、白术、通草、薏苡仁、附子等,见表4。
频数分析表明,湿邪所致疾病的症状/体征主要包括以食欲不振、呕吐腹泻、心下痞满甚至结块为主的脾胃症状,以发热、身痛、头胀为主的肌表与经络症状,以及孔窍气机受阻的症状如口渴、小便不利。其病位与《素问·六元正纪大论篇》“湿胜则濡泄,甚则水闭胕肿”相符。又“随气所在,以言其变耳”,湿邪随气流动,漫溢经络肢体的游走特性,在分布广泛的症状中得以体现。湿性黏滞,久而伤阳,痰湿内停,因此舌色白为关键舌象。使用最多的药物为茯苓,体现了从脾论治的思路,多用芳香淡渗类药物温化湿邪,辨寒热虚实而轻重灵活,使不同部位的湿邪各得宣通。
2.3 模型的预测性能
随机选取5份医案,以其症状/体征为输入层,建立测试数据集,比较经计算后的输出层与实际用药的拟合程度。将输出数据的药物节点按照节点的数值大小降序排列,筛选出前10位的药物名称及其预测数值。若该10味药物内未包含医案实际用的药物,则将序列的药物从右侧依次替换为医案的实际药物数据,确保包含了处方的实际值(1或0)与有效的预测值,以便比较。预测的拟合曲线见图3。
结果表明,5份医案的处方用药基本吻合:实际值为1的药物共26味,其对应的预测值有25个≥Lambda2(0.80),灵敏度96.15%。实际值为0的药物共24味,对应的预测值有18个≤Lambda2(0.20),特异度为75.00%。误差区间[-0.21,0.34],平均误差为0.086±0.124,表明该模型可根据症状/体征预测药物,且准确度较高。
2.4 基于模型预测的方证网状关系
选取现频率最高的10种症状/体征与11味药物,用模型预测后,建立10×11矩阵,见表5。基于表5建立网状关系可视化见图4。各节点以不同颜色区分症状/体征与药物,节点连线以粗细代表输出与输入之间的关联强度,并根据Lambda2、Lambda1判定后分别显示为红色实线、蓝色实线与灰色虚线,表示递减的关联强度。
单个节点分析以白术为例。该节点与发热、腹泻为强关联。白术具燥湿止泻功效,而图4提示白术或有退热功效。但本草类文献对于其退热的功效论述较少,《本草纲目》载白术“同苍术、柴胡,为疟家必用之药”,“除胃中热、肌热,止汗”,“妇人血虚发热,小儿脾虚骨蒸,同茯苓、甘草、芍药煎服”。可见叶天士对白术的理解较深入,而在濕邪所致发热、腹泻的情况下使用。
单组节点的分析以症状/体征节点“食欲不振”“小便不利”“身痛”为例,其各自对应的连线均为灰色或蓝色,即这些症状/体征对应药物的关联强度不高(≤Lambda2)。同时,这些节点的平均直径较大表明明这一组症状/体征对应的药物广泛。“身痛”“食欲不振”“小便不利”分别体现了人体内外上下(肌表、脾胃、体窍)受湿邪侵犯的症状,是湿邪致病的代表性临床表现,对其诊断具有重要意义。
两组节点间关系的分析以症状/体征节点“心下痞”“头胀”“呕吐”“舌白”为例,这些节点与药物节点“茯苓”“陈皮”“半夏”“生姜”“薏苡仁”“苦杏仁”之间,有相互连通且分布密集的红色连线(分别有4、6、2、3条),表明该两组节点的关系非常紧密。同时痞结与陈皮、茯苓都是强关联,提示对于湿邪所致头部、胃脘部的胀闷不适、舌色白,伴有呕吐、甚则脘痞结块者,适用二陈汤组合加减燥湿化痰。生姜与半夏味辛,能散胃中湿饮而止呕,陈皮与苦杏仁苦辛宣壅,可助姜夏行气燥湿而除胃脘痞满。《本草正》言茯苓“利窍”,与薏苡仁共同健脾利湿,凝滞去而清阳得升,头胀自除。这与《金匮要略》“卒呕吐,心下痞,膈间有水,眩悸者,小半夏加茯苓汤主之”的运化痰饮思路相互应证。
3 讨论
本研究构建《临证指南医案·湿》医案神经网络模型,可模拟其方证关系,从“症状/体征”预测出“药物”。根据已建立的方证映射关系,计算各个症状/体征所对应的多味药物组合,并加以可视化的组合与呈现,最终实现了方证网状关系中的单个、单组、两组节点间的知识发现。
在此基础上,扩大样本量,如收集多位名医治疗同一种疾病的医案,可使模型对该病具备更好的预测性能,对临床诊治可起到辅助决策的作用。同时,本研究也为医案文献中方证的知识发现提供了可行的方法。针对本研究中存在的局限性,分析及展望如下。
3.1 神经网络的适用性
神经网络的方法存在黑箱部分,因此得出的结果需要经过验证,分析过程需要寻找文献证据支持。
3.2 医案数据的深化研究
本研究主要为神经网络模型构建研究,所采用的医案样本量较小,若用于提供临床关于某一疾病的决策辅助,需整合更多名家的相关医案以提高模型的实际准确度与稳定性;本研究仅对高频症状/体征与药物的方证网状关系(10×11)进行了分析,仍有大量的知识有待挖掘。由于叶氏医案未注明药物剂量,其差异的分析难以开展,有待进一步的剂量标准化研究。同时,一些症状/体征(如“头如蒙”与“神昏”)之间存在递进关系,在使用神经网络处理时,或许可统一为同一个症状体征,量化赋予不同的值,其数值量化的规范尚待探索。
3.3 更高级的神经网络模型 基于神经网络的进一步应用的前沿研究领域如深度学习,也是中医数据挖掘的趋势。在该领域的探索有利于从药物、症状/体征、方剂、分型等多个层面,更全面细化地获取医案中的知识。
致谢:感谢浙江中医药大学提供文献版权!
参考文献:
[1] 汪海东,吴晴,王秀薇,等.中医湿病的现代认识[J].中医杂志,2015, 56(13):1089-1092.
[2] 叶天士.临证指南医案[M].北京:人民卫生出版社,2006.
[3] 张方圆,郁芸,赵宇,等.人工神经网络在临床医学中的应用[J].北京生物医学工程,2016,35(4):318-324.
[4] 姚乃礼.中医症状鉴别诊断学[M].北京:人民卫生出版社,2000.
[5] 刘保延,张启明.构建中医临床科研信息一体化平台需要解决的症状规范问题[J].中医杂志,2011,52(20):1714-1716.
[6] 国家药典委员会.中华人民共和国药典:一部[M].北京:中国医药科技出版社,2015.
[7] SCHAUL T, BAYER J, WIERSTRA D, et al. PyBrain[J]. Journal of Machine Learning Research,2010,11:743-746.
[8] JIN X, XU C, FENG J, et al. Deep learning with S-shaped rectified linear activation units[J]. Computer Science,2015,3:1-8.
[9] SHEELA K G, DEEPA S N. Review on methods to fix number of hidden neurons in neural networks[J]. Mathematical Problems in Engineering,2013(6):389-405
[10] 韓立群.人工神經网络教程[M].北京:北京邮电大学出版社,2006:71.
[11] 刘玉琴,曾建勋,王立学.学术关联关系可视化系统设计与实现[J].图书情报工作,2014,58(5):75-81.
(收稿日期:2016-09-01)
(修回日期:2016-09-18;编辑:向宇雁)
关键词:医案;叶天士;临证指南医案;方证;人工神经网络;知识发现
DOI:10.3969/j.issn.1005-5304.2017.09.023
中图分类号:R2-05;R249 文献标识码:A 文章编号:1005-5304(2017)09-0091-05
Relationship Between Syndromes and Prescriptions of Damp Disease: a Neural Network-based Study on Cases from Lin Zheng Zhi Nan Yi An Shi LI Jia-min, CHEN Hong-yu (Guangxing Hospital Affiliated to Zhejiang Chinese Medical University, Hangzhou 310007, China)
Abstract: Objective Taking medical cases in Lin Zheng Zhi Nan Yi An Shi as examples to analyze the network relationship between the syndromes and prescriptions through building a medical case model forecasting medication via artificial neural networks for the syndromes and prescriptions in medical cases. Methods The study screened medical cases in Lin Zheng Zhi Nan Yi An Shi, and standardized and entered the data with Python language programming. PyBrain module was used to build and train a network model. The MatPlotLib module drew the error curve and the predicted fit curve, and evaluated the sensitivity and specificity. NetworkX module realized the visual expression of the network relationship between the syndromes and prescriptions, and analyzed the medicine within the prescriptions and compatibility relationship and the relationship between the pathogenesis and pathology. Results The sensitivity of the constructed medical case network model was 96.15% and the specificity was 75.00%. The visual mapping of the network relationship between the syndromes and prescriptions and the analysis on single, single group, and multi-angle were realized. Conclusion Neural network is capable to simulate the relationship between syndromes and prescriptions of medical knowledge. The visual combination and manifestation of network can provide a feasible solution for the knowledge discovery in medical literature.
Key words: medical cases; YE Tian-shi; Lin Zheng Zhi Nan Yi An; syndromes and prescriptions; artifial neural network; knowledge discovery
清代著名醫家葉天士曾叹“吾吴湿邪害人最广”,现代研究也表明,湿邪参与多种慢性病变发生发展过程,如微循环代谢紊乱、能量代谢障碍、局部组织炎症反应等[1],因此对湿邪所致疾病的辨治研究值得重
通讯作者:陈洪宇,E-mail:hzchenhy@126.com 视。《临证指南医案》[2]出自临床实践,以医案形式记录诊疗经验和思路方法,具有很高的学术价值。通过分析其中的方证规律,研究处方内的药味及其配伍关系与其针对的病证、病机或病理环节之间的联系,有助于阐明医案中的辨证原理。
人工神经网络(artificial neural network)是模拟人脑神经元的结构与学习功能,建立起输入与输出层面的非线性模型的一种算法,广泛应用于经济、工程、生物、医学等领域[3]。根据Kolmogorov定理,神经网络可实现对任意非线性函数进行拟合。由于方证关系的逻辑关系具有高度复杂性,难以通过线性回归模型实现,故神经网络更为适用。目前,该领域研究多从药物、症状/体征等层面,独立进行统计学聚类、回归等分析,其相互关联的研究鲜有报道。本研究以《临证指南医案·湿》医案为例,基于神经网络算法,探讨医案数学回归模型的构建及方证间的网状关系。
1 资料与方法
1.1 数据来源
《临证指南医案·湿》医案首诊数据。排除叙述过于简略、未明确提及症状/体征,或无明确处方用药的医案。将原始文本整理为相应的医案编号、原文序号、患者名氏、临床表现、处方用药、辨证依据等。
1.2 数据规范
参考《中医症状鉴别诊断学》[4]规范症状/体征,对叙述模糊者,通过上下文理解进行规范,如“溺赤”可能指“尿血”或“小便黄赤”,而医案中明确指出是“湿郁”之证,故可推断此处“溺赤”应为“小便黄赤”;对可明确推断出的缺失信息也需录入,如通过“二便已通”可以推断出存在“大便秘结”“小便不通”,应予录入;对于一些组合性(如“發热畏寒”)或临床特征较具体的(如“汗出热解,继而复热”)症状/体征信息,则按照科技术语的简明性、单义性命名原则进行规范;按照文献[5]“症状体征单元假说”,将该类信息规范为“症状/体征单元”;对未收入《中医症状鉴别诊断学》的特殊症状/体征,按原文录入。
参考2015年版《中华人民共和国药典》[6]对药物名称进行规范。对涉及道地药材(如“於术”“茅术”“川斛”)的描述、中药制法(如“醋炒半夏”“煨草果”)的差异或取用特殊部分(如“降香末”“淡生姜渣”),若影响功效较小者,规范为为同种药名;若有明显影响的(如“生姜”“干姜”),分别录入。对于汤剂合用其他剂型如丸剂,则其他剂型不转换为草药,与草药并列录入。
1.3 神经网络构建及训练
本研究采用Python语言编程,PyBrain[7]模块构建并训练神经网络模型,MatPlotLib模塊绘制误差曲线、预测的拟合曲线,评估灵敏度与特异度,NetworkX模块实现方证网状关系的可视化表达。
PyBrain为模块化的机器学习软件包,可提供功能较强而灵活的机器学习算法。采用PyBrain建立以症状/体征为输入层,以药物为输出层的神经网络,模型选择前馈神经网络中的BP神经网络。为实现非线性的建模,隐含层的传递函数(激活函数)选择双曲正切函数。在输出层的传递函数选择方面,由于评估模型的预测性能属于回归问题,使用线性函数以保留输出数值的线性特征,再通过线性变换对输出值进行归一化处理(线性函数的输出数值的变化区间较大,需将其限制在一定区间以符合“是否使用该中药”的取值意义)。归一化的算法参考S型修正线性单元中的线性变换方法[8],能较好保留数据原貌。归一化的区间可自定义,为适用于后续的分类问题,使数据变化保持在[0,2]区间。对应的算法可简化表示为("y" _"i" ) ?=min?[2,max?(0,y_i )],其中("y" _"i" ) ?为归一化后的输出值,y_i为输出数据。
输入层与输出层的节点数分别由症状/体征及药物数量决定。为提高模型的准确性,本研究剔除低频(仅1次)症状/体征及药物,以简化样本的输入层与输出层规模。经筛选,输入节点由80个减至38个,输出节点由99个减至49个。隐含层是构建模型的关键部分,若设定的节点数过多,会出现容错性差、过度拟合等问题,若过少又会造成模型的误差较大。Shibata与Ikeda的隐含层计算方法[9]可提高模型稳定性,参考其公式对隐含层数进行调试。输出层输出数值的分类表示方面,可将渐进式的分类用[0,1]间的数值表示[10]。为使后续的分析有层次感,本研究通过设定判定阈值Lambda1=0.2,Lambda2=0.8,将输出数值分为3类:输出值≤Lambda1时判定为0,认为预测的处方中没有该药物;输出值≥Lambda2时判定为1,认为预测的处方中用到该药物;Lambda1<输出值
记录输出每次训练后的均方误差,采用MatPlotLib绘图模块绘制误差曲线。设置隐含层为43节点,观测到当迭代23次时均方误差开始收敛,2004次训练后,达到<1%的目标误差水平,见图1。由此构建了包含m个元素的症状/体征的集合X与n个元素的药物集合Y的关联对应(即方证关系)的非线性数学模型,见图2。
1.4 方证关系可视化
按照文献[11]网络图结构,设计方证网状关系对应的可视化映射方式。以圆形节点表示各症状/体征与药物,节点的大小与其频率成正比,症状/体征与药物节点间的连线表示关联,连线粗细表示关联强弱,即神经网络的预测值的大小。为控制复杂度,选取一定的症状/体征与药物,用模型预测每个症状/体征对应的药物联系,即输入层该症状/体征的值为1所计算得出的结果。根据结果建立相应矩阵。采用复杂网络分析模块NetworkX绘制网状关系图,布局采用Fruchterman-Reingold算法,以实现网状关系的可视化。 2 结果
2.1 纳入数据基本情况
初步纳入《临证指南医案·湿》医案59份,剔除复诊医案7份、未提及症状/体征医案3份,最终纳入医案49份。
2.2 频数分析
纳入数据包含原始症状/体征135种,规范为80种,总出现频次为183次。出现频率(出现频次÷医案數)>10.00%的症状/体征,即主要症状/体征有食欲不振、身痛、腹泻、心下痞、舌白、头胀、小便不利、呕吐、发热、痞结等,见表3。录入药物原始数据145味,规范为99味,总出现频次为312次,其中出现频率>10.00%的药物有茯苓、厚朴、陈皮、滑石、半夏、苦杏仁、生姜、白术、通草、薏苡仁、附子等,见表4。
频数分析表明,湿邪所致疾病的症状/体征主要包括以食欲不振、呕吐腹泻、心下痞满甚至结块为主的脾胃症状,以发热、身痛、头胀为主的肌表与经络症状,以及孔窍气机受阻的症状如口渴、小便不利。其病位与《素问·六元正纪大论篇》“湿胜则濡泄,甚则水闭胕肿”相符。又“随气所在,以言其变耳”,湿邪随气流动,漫溢经络肢体的游走特性,在分布广泛的症状中得以体现。湿性黏滞,久而伤阳,痰湿内停,因此舌色白为关键舌象。使用最多的药物为茯苓,体现了从脾论治的思路,多用芳香淡渗类药物温化湿邪,辨寒热虚实而轻重灵活,使不同部位的湿邪各得宣通。
2.3 模型的预测性能
随机选取5份医案,以其症状/体征为输入层,建立测试数据集,比较经计算后的输出层与实际用药的拟合程度。将输出数据的药物节点按照节点的数值大小降序排列,筛选出前10位的药物名称及其预测数值。若该10味药物内未包含医案实际用的药物,则将序列的药物从右侧依次替换为医案的实际药物数据,确保包含了处方的实际值(1或0)与有效的预测值,以便比较。预测的拟合曲线见图3。
结果表明,5份医案的处方用药基本吻合:实际值为1的药物共26味,其对应的预测值有25个≥Lambda2(0.80),灵敏度96.15%。实际值为0的药物共24味,对应的预测值有18个≤Lambda2(0.20),特异度为75.00%。误差区间[-0.21,0.34],平均误差为0.086±0.124,表明该模型可根据症状/体征预测药物,且准确度较高。
2.4 基于模型预测的方证网状关系
选取现频率最高的10种症状/体征与11味药物,用模型预测后,建立10×11矩阵,见表5。基于表5建立网状关系可视化见图4。各节点以不同颜色区分症状/体征与药物,节点连线以粗细代表输出与输入之间的关联强度,并根据Lambda2、Lambda1判定后分别显示为红色实线、蓝色实线与灰色虚线,表示递减的关联强度。
单个节点分析以白术为例。该节点与发热、腹泻为强关联。白术具燥湿止泻功效,而图4提示白术或有退热功效。但本草类文献对于其退热的功效论述较少,《本草纲目》载白术“同苍术、柴胡,为疟家必用之药”,“除胃中热、肌热,止汗”,“妇人血虚发热,小儿脾虚骨蒸,同茯苓、甘草、芍药煎服”。可见叶天士对白术的理解较深入,而在濕邪所致发热、腹泻的情况下使用。
单组节点的分析以症状/体征节点“食欲不振”“小便不利”“身痛”为例,其各自对应的连线均为灰色或蓝色,即这些症状/体征对应药物的关联强度不高(≤Lambda2)。同时,这些节点的平均直径较大表明明这一组症状/体征对应的药物广泛。“身痛”“食欲不振”“小便不利”分别体现了人体内外上下(肌表、脾胃、体窍)受湿邪侵犯的症状,是湿邪致病的代表性临床表现,对其诊断具有重要意义。
两组节点间关系的分析以症状/体征节点“心下痞”“头胀”“呕吐”“舌白”为例,这些节点与药物节点“茯苓”“陈皮”“半夏”“生姜”“薏苡仁”“苦杏仁”之间,有相互连通且分布密集的红色连线(分别有4、6、2、3条),表明该两组节点的关系非常紧密。同时痞结与陈皮、茯苓都是强关联,提示对于湿邪所致头部、胃脘部的胀闷不适、舌色白,伴有呕吐、甚则脘痞结块者,适用二陈汤组合加减燥湿化痰。生姜与半夏味辛,能散胃中湿饮而止呕,陈皮与苦杏仁苦辛宣壅,可助姜夏行气燥湿而除胃脘痞满。《本草正》言茯苓“利窍”,与薏苡仁共同健脾利湿,凝滞去而清阳得升,头胀自除。这与《金匮要略》“卒呕吐,心下痞,膈间有水,眩悸者,小半夏加茯苓汤主之”的运化痰饮思路相互应证。
3 讨论
本研究构建《临证指南医案·湿》医案神经网络模型,可模拟其方证关系,从“症状/体征”预测出“药物”。根据已建立的方证映射关系,计算各个症状/体征所对应的多味药物组合,并加以可视化的组合与呈现,最终实现了方证网状关系中的单个、单组、两组节点间的知识发现。
在此基础上,扩大样本量,如收集多位名医治疗同一种疾病的医案,可使模型对该病具备更好的预测性能,对临床诊治可起到辅助决策的作用。同时,本研究也为医案文献中方证的知识发现提供了可行的方法。针对本研究中存在的局限性,分析及展望如下。
3.1 神经网络的适用性
神经网络的方法存在黑箱部分,因此得出的结果需要经过验证,分析过程需要寻找文献证据支持。
3.2 医案数据的深化研究
本研究主要为神经网络模型构建研究,所采用的医案样本量较小,若用于提供临床关于某一疾病的决策辅助,需整合更多名家的相关医案以提高模型的实际准确度与稳定性;本研究仅对高频症状/体征与药物的方证网状关系(10×11)进行了分析,仍有大量的知识有待挖掘。由于叶氏医案未注明药物剂量,其差异的分析难以开展,有待进一步的剂量标准化研究。同时,一些症状/体征(如“头如蒙”与“神昏”)之间存在递进关系,在使用神经网络处理时,或许可统一为同一个症状体征,量化赋予不同的值,其数值量化的规范尚待探索。
3.3 更高级的神经网络模型 基于神经网络的进一步应用的前沿研究领域如深度学习,也是中医数据挖掘的趋势。在该领域的探索有利于从药物、症状/体征、方剂、分型等多个层面,更全面细化地获取医案中的知识。
致谢:感谢浙江中医药大学提供文献版权!
参考文献:
[1] 汪海东,吴晴,王秀薇,等.中医湿病的现代认识[J].中医杂志,2015, 56(13):1089-1092.
[2] 叶天士.临证指南医案[M].北京:人民卫生出版社,2006.
[3] 张方圆,郁芸,赵宇,等.人工神经网络在临床医学中的应用[J].北京生物医学工程,2016,35(4):318-324.
[4] 姚乃礼.中医症状鉴别诊断学[M].北京:人民卫生出版社,2000.
[5] 刘保延,张启明.构建中医临床科研信息一体化平台需要解决的症状规范问题[J].中医杂志,2011,52(20):1714-1716.
[6] 国家药典委员会.中华人民共和国药典:一部[M].北京:中国医药科技出版社,2015.
[7] SCHAUL T, BAYER J, WIERSTRA D, et al. PyBrain[J]. Journal of Machine Learning Research,2010,11:743-746.
[8] JIN X, XU C, FENG J, et al. Deep learning with S-shaped rectified linear activation units[J]. Computer Science,2015,3:1-8.
[9] SHEELA K G, DEEPA S N. Review on methods to fix number of hidden neurons in neural networks[J]. Mathematical Problems in Engineering,2013(6):389-405
[10] 韓立群.人工神經网络教程[M].北京:北京邮电大学出版社,2006:71.
[11] 刘玉琴,曾建勋,王立学.学术关联关系可视化系统设计与实现[J].图书情报工作,2014,58(5):75-81.
(收稿日期:2016-09-01)
(修回日期:2016-09-18;编辑:向宇雁)