基于粗糙集与SVM骨性关节炎复方中药功效分析研究
2013-07-25吴惠敏叶少珍
吴惠敏,叶少珍,2
(1.福州大学数学与计算机科学学院,福建福州 350116;2.福建省医疗器械与医药技术重点实验室,福建福州 350002)
0 引言
在中医药理论指导下,中药功效是对药物临床效果的高度概括.按功效对中药进行归类对了解同类药物在药性、功效、主治疾病和禁忌等方面的异同点、以及临床应用等提供了便利手段.由于中药本身具有多种功效以及历代医家对药物的功效记载多样、繁简不一,导致同一种药物的功效在不同的文献中表述相异.如,根据福建省中药标准的记录,雷公藤的功效有消炎解毒,而在湖南省中药材标准的记录为祛风除湿等.中药功效的识别有助于增加中药资源,丰富中药内容,扩大其应用范围.
中药药性的四性、五味、归经等特性跟功效有着必然联系,且有一定的规律性[1].中医治疗中,历代医家都强调药性互参,性效结合,不少学者也注意到功效与药性之间的关联性,发现具有相同或相似功效的各类药物,在药性上也往往具有相同或相似的特征,如改善寒证的多属于辛温(热)药,改善热证的多属于苦寒(凉)药.因此根据中药药性进行功效识别研究是有一定的依据,中药药性和功效的联系也是中药近几年研究的热点.
针对功效不明确的药物,传统做法是总结其临床疗效,但是实验周期长.近年来模式识别技术广泛应用于中医药领域,在中药药材的产地识别、中药真伪鉴定等应用中都取得了不错的效果[2],本文提出利用模式知识根据中药的性味归经等特征对其功效进行探索性研究.作为一种新的模式识别方法,支持向量机因其独特的优势备受瞩目,它基于结构风险最小化的原理弥补了人工神经网络易陷局部最小、过学习等缺点,即使在小样本的情况下,也具有良好的推广性能.针对中药样本个数少,非线性等特点,本研究以“四气-五味-归经-功效”为主线开展,提出用SVM分类算法对中药的功效进行辨识.首先用粗糙集理论对药物样本数据进行属性约简,降低样本空间的维数.在构建SVM分类器时,为了消除不同单核函数各自的缺点,兼顾彼此的优点,提出结合不同的单核函数,构造混合核函数,经验证,相比于单核SVM,基于混合核的SVM模型分类效果更佳.以此构建混合核SVM功效分类器,对骨性关节炎中药复方中的药物进行功效辨识.根据中药相关理论知识,构建的SVM模型分类精度好,分类结果合理且具备可行性.
1 算法理论基础分析
1.1 支持向量机
支持向量机算法[3]是基于VC维理论和结构风险最小化原理,支持向量机是从线性可分情况下的最优分类面发展而来的,其核心思想是通过满足Mercer条件的核函数,将在原始空间中非线性可分的样本映射到一个高维空间中,使得样本线性可分.在高维特征空间中,支持向量机的非线性决策函数为
其中:ai表示支持向量;xi为训练样本向量;yi为相应样本向量的类别值;b为待求常数;k(·)表示核函数.利用SVM进行样本分类是通过计算待测样本的决策函数值得到其所属类别.核函数的引入使得SVM实现了非线性分类,避免了在高维特征空间的内积运算,解决了维数灾难.目前支持向量中常用的四种核函数为线性核,RBF核,多项式核以及Sigmoid核,它们的数学表达式如下所示.
1.2 粗糙集理论
粗糙集是一种研究不完整、不确定知识和数据的表达、学习、归纳的数学工具,其核心思想是在不影响分类能力的前提下,通过知识约简导出问题的决策或分类规则.属性约简是粗糙集的核心部分,在模式识别中,利用粗糙集对样本数据进行属性约简[4],既能剔除冗余成分有效地降低样本的维数,简化神经网络或SVM等的模型复杂度,提高模型的训练速度,又能留住对分类有作用的重要信息并改善分类效果.粗糙集用决策表描述论域中的对象,冗余的属性会干扰正确简洁的决策,通过属性约简除去无关成分总结出适用于决策系统的知识规则,其简约的步骤如下:
输入:决策表S=(U,R,V,F)
输出:约简后的决策表S
其中:U={x1,x2,…,xn}是一个非空集合为论域;R=C∪D,其中C是条件属性集,D为决策属性集,且D非空;V为属性值集合;F表示的是函数映射关系,其形式为F:U×R→V.在对原始样本所有属性进行冗余成分约简时涉及到粗糙集中的两个重要概念:属性核与属性约简.
假设A,B为两个属性集,且B包含于A,IND(B)=IND(A),则B为A的一个约简,根据不同的属性约简可得到A的所有属性约简集合,记为RED(A).用属性核表示为属性集A的所有约简集合,其形式如下:
上式中RED(A)表示条件属性集A的所有约简,属性核体现出了所有不可缺少的属性集,它可作为所有约简的计算基础.在决策表中进行属性约简:从决策表中去掉某些列,简化条件属性,求得独立属性的最小子集;除去决策表中重复行;除去属性的冗余值.粗糙集约简后的决策表具有约简前决策表功能,且得到更少的条件属性.
2 基于粗糙集与SVM分类方法
2.1 数据库的建立
针对祛风湿这一功效利用粗糙集与SVM进行相关研究,从中国药典、地方药材标准等文献收集到明确具有祛风除湿功效的125味药物,以及不具有此功效的药物100味[5],根据两类数据集建立相应的正样本数据库与负样本数据库,作为模型的训练与验证数据源.接着,从相关文献收集用于治疗骨性关节炎的独活寄生汤、透骨消痛颗粒等13个中药复方,从中归类出26味可能具有祛风湿功效的中药,以此建立第三类数据库,作为分类器的预测数据集.
2.2 中药药性特征多值量化
长期以来对药物药性都是从定性角度认识的,为了将中药药性直观表达出来以便分析,用多值量化法对中药的药性特征进行量化处理[6].根据中药药性理论以性味归经:寒、热、温、凉、酸、苦、甘、辛、涩、淡、咸、肺、大肠、心包、三焦、心、小肠、脾、胃、肝、胆、肾、膀胱共23个特征作为中医药物的属性集合.具体量化规则为:每个归经都单独量化,含某归经记为1,不含记为0,若有2个以上归经,则归经记录先后顺序,除第1归经保持数值不变外,其他归经数值为0.8(第2归经)、0.6(第3归经)、0.5(第4归经)、0.4(第5归经)等,而对于表里的归经,如肝和胆、脾和胃等,不管出现的顺序如何,都以第1归经数值记.药味方面约定具有某味者在该味下记1,同一味微者为0.7,其余各项为0,淡和涩为单独味数值化,不依附于甘和酸,另外多数中药具有多种味,按照药味出现先后顺序,第一味数值不变,第二、三味在原来数值基础上减去0.2、0.4.中药的性大寒、寒、微寒、凉、温、微温、热、大热、微热等几类,分别将其量化为(-1、-0.7、-0.4、-0.2、0.5、0.2、0.7、1、0.4),其中性平者在寒、凉、温、热项下均标记为0.例如,中药穿山龙性温,味甘、苦,归肝、肾、肺经,量化后值为温(0.5)、甘(1)、苦(0.8)、肝(1)、肾(0.8)、肺(0.6).225个正样本与负样本数据以及26味带预测分析的数据即为251味中药量化后的结果如图1所示.
图1 中药数据量化结果Fig.1 Quantitative results
2.3 基于粗糙集的属性约简
通常对样本数据进行有效属性选择,可去掉多余属性降低样本空间维度改善SVM模型的复杂度,提高分类精度,但是,支持向量机不具备处理冗余数据的功能.而粗糙集的属性约简可在保持知识分类或决策能力不变的条件下,剔除无关或不重要的属性,目前在数据分析、机器学习和知识发现等领域广泛应用[7].根据粗糙集的优势对中药样本的23个属性进行属性约简.
1)创建决策表.通过对225味功效已明确的中药建立了信息决策表,表中的每一行代表一味中药,每一列描述药物的属性,分为条件属性与决策属性,其中每一味药的23个药物属性为表中条件属性,并对药物所属的功效赋予特定的数值作为表中的决策属性.
2)决策表属性值离散化.由于粗糙集只能处理离散属性值,因此需要对决策表中的每个属性值进行离散化处理.
3)进行属性约简,删除决策表中的冗余属性.粗糙集理论中有基于区分矩阵的约简算法、基于属性频度的约简、基于遗传算法的约简等.采用遗传算法对决策表进行属性约简,约简后得到多个属性子集,产生了7条决策规则,结果如表1所示.
表1 约简后的属性子集Tab.1 Reduced attribute subset
从表1可以看出,经过属性约简处理后,原样本的属性(长度)从23个约简到12、13、14个,属性空间缩小了将近一半,该简化结果可优化SVM模型的复杂度.
还需要从表中的7个决策规则选取最优的决策规则.通过对比分析法做抉择,基于7条决策规则中的属性子集,构建相应的分类器,对比各个SVM分类器对验证样本验证所得的分类结果大小,从中确定最优的决策规则,以此简化原始样本空间的属性维数.
2.4 支持向量机建模
针对SVM多种训练算法,采用SMO(序贯最小优化)训练算法,通过将SVM的二次规划问题分解为求解两个拉格朗日乘子优化问题来训练支持向量机.在实际应用中利用SVM构建分类模型时,需要根据具体问题选择合适的核函数以及设定核参数.
1)核函数的选择.SVM的许多特性由所用核函数类型决定,核函数选择等于确定一种学习模型,影响到SVM的学习性能与推广性能.然而不同核函数有着各自的优势与缺陷,实际应用中没有特定的一种核函数适合于所有的问题.以UCI上的数据为数据源,利用四种核函数建立四个相应的分类器,对四组数据集做相关实验分析,得到对比结果如表2所示.
表2 单核SVM对不同数据集的分类结果Tab.2 The classification results of single-core SVM
从表2可以看出,针对不同的数据特点,没有一个核函数都表现最佳.根据核函数对提取训练集测试点相关信息的能力将其分为两大类:局部核函数和全局核函数.全局核函数能有效提取与训练集测试点距离远的信息,推广性能强,但是学习能力弱;局部核函数能有效提取训练集测试点附近的信息,学习能力强,但推广性能弱.为了充分利用全局核与局部核各自的优势,减少因两者各自的局限性对SVM分类性能的影响,提出了将局部核函数与全局核函数进行混合构建,其中Sigmoid核函数、RBF核函数是目前广泛应用的经典全局核、局部核,在两者基础上结合,构建出一种混合核函数[8].其基本形式如下:
其中参数t(0≤t≤1)用来调整两种核函数在新的核函数中所起的作用.仍以这四个数据集为分析对象,根据混合核函数构建的分类结果如表3所示.
从表3看出,基于混合核的SVM在四个数据集的分类结果有所改善,因为普通的全局核函数与局部核函数各有利弊,而混合核既能使两者互补不足,又兼顾两者的优势,学习性能与泛化能力都有所改善.因此,接下来的实验均在在混合核函数的基础上构建SVM模型.
2)核参数的设定.SVM中核参数主要有惩罚因子c以及RBF核和Sigmoid核中的参数γ.惩罚参数c太大,导致系统“过学习”,但是过小又会使训练误差变大,导致系统“欠学习”.参数γ的设定会影响核函数的非线性处理性能,因此核参数选择不当会影响到分类模型的分类效果.以往参数的设定都是根据经验值进行人工拼凑,该方法依赖于测试者的主观经验且效率极低.本研究将网格搜索与十折交叉验证法[9]结合起来,交叉验证与网格搜索的复合法的具体做法:以(c,γ)为参数组合,设定该组合的取值范围,从而生成关于该组合的网格空间,在每个网格点上采取交叉验证法,选取准确率最大的相应的参数组合为参数的搜索结果,实现自动搜索最优参数,相比于人为设定,该做法既克服了主观经验的局限性,又缩短了搜索时间,搜索到的参数更适合于具体的应用问题,取得更好的分类效果.
表3 混合核SVM的分类结果Tab.3 The classification results of mixed kernel SVM
3 实验结果分析
3.1 软件工具
在对实验中的中药数据进行属性约简时,采用的是挪威科技大学计算机与信息科学系和波兰华沙大学数学研究所合作开发的ROSETTA粗糙集应用软件,实现对中药数据的预处理.在构建SVM分类器时,在LIBSVM软件包2.8 C++版本中融合了文中所构建的混合函数,扩大了核函数的选择范围.由于该软件包是以命令驱动,操作不便,因此将该软件包开发集成为可视化应用程序,并在此基础上构建SVM分类器,进行具体的实验分析.
3.2 SVM分类器的构建与验证
将225个功效明确的样本数据集分成两部分,一部分为183个数据为训练样本集合,另外42个为验证样本集合,以混合核为核函数,经过网格搜索和十折交叉验证搜索到最优核参数为γ=3.2,c=2.5.根据表1的7条规则中的属性子集搭建的SVM分类器和在原始样本中的23个属性上搭建的SVM分类器得到的分类结果对比如表4所示.
从表4看出,未经属性约简的原始SVM分类器的分类精度明显比经过属性约简的SVM分类器的分类精度低,尤其在约简后规则1上的12个属性构建的SVM分类器的分类效果最佳.实验结果表明,经过粗糙集对原始属性集的预处理,剔除冗余属性保留有效属性,不仅缩小分类模型的特征空间还提高了分类精度.
表4 基于不同属性集的SVM分类结果Tab.4 the classification results of SVM based on different attribute subset
3.3 功效预测与分析
根据对比分析,基于规则1的属性子集{温,苦,甘,辛,咸,肺,心,脾,胃,肝,肾,膀胱}构建的功效分类器的分类精度最好.为此,选取规则1中的12个属性作为26味待预测中药的属性特征,利用基于规则1搭建SVM1分类器对26味功效有待辨识的骨性关节炎中药如威灵仙、雷公藤、海风藤、络石藤、巴戟天、艾叶、桑寄生、旱莲草、鹿衔草、刘寄奴、独活、千年健、赤石脂等进行分类,判断其是否具有祛风除湿功效.通过预测实验得到26味中药中21味中具有祛风湿功效,这21味中药中,如雷公藤在福建省中药标准的记录味消炎解毒,而在湖南省中药材标准的记录中为祛风除湿功效,经验证该药具有祛风湿功效;海风藤虽在广东中药材标准记载为行气止痛功效,但根据中医文献海风藤作为筋骨痛消丸中一味药,确实具有祛风止痛,温化膝关节胶结之顽疾.而赤石脂、旱莲草等无祛风除湿功效,最后将所得的预测结果与中国药典以及中草药学等的描述进行比对,发现有80%与之符合,表明本方法在对中药材进行功效的识别具有合理性与可行性.
骨性关节炎[10]是一种主要发病在中老年人群的慢性关节疾病,因其病因与作用机制的复杂性使得目前对于该疾病的治疗进展并未有很大突破.由于西医治疗副作用大,费用昂贵且治标不治本,相比之下中医疗法在本病的治疗上有着整体局部并治,标本兼顾,花费少,副作用少等优势,是目前的研究热点.该疾病在治疗上当以补益肝肾、祛风除湿、活血通络为主[11].若能从目前已知的海量的中草药中挖掘出具有骨性关节炎相关治疗功效的中药,将有助于该疾病的用药范围.本实验以祛风除湿功效为主,构建可用于判断药物是否具有祛风除湿功效的SVM分类器,并对从骨性关节炎复方中总结出的相关药物进行该功效的判断识别,经验证该模型的识别率高,对于一些在不同文献功效描述模糊的药物也能进行正确的判断.基于相同的原理,本方法也可应用为识别具有补益肝肾或活血通络等功效的药物,有助于发现具有骨性关节炎相关功效的药物,挖掘与现有一些稀有药物具有同等功效的药物,扩大骨性关节炎的中药用药范围.
4 结语
自明清以来对中药区别主要以功效分类为主.功效分类,多以性味归经为主线,结合“证-效”予以表达,体现了性能-病症-药效结合的特点.SVM在解决小样本、非线性以及高维模式识别问题中具有独特的优势,本文提出利用支持向量机分类算法对中药的功效进行识别研究,并以祛风湿功效为例,对骨性关节炎中药复方中的药物进行辨识.根据中药的性味归经等药性属性对其量化处理,结合粗糙集理论对中药样本进行属性约简,在不丢失原始药物数据中有效信息的前提下,消除冗余属性,从原始药物数据中提取最能反应相应功效的属性特征,最后在约简的属性集上根据支持向量机构建分类模型,判别药物的功效.经验证融合粗糙集算法不仅减小了SVM分类模型的复杂度,还提高了模型分类精度.根据中医理论知识得到的实验结果与实际相吻合,证明这种分类方法合理可行.把粗糙集理论结合到SVM分类算法中,使模型具有更强信息提取能力和分类性能.在今后工作中,还可以用于更多中药药材的功效预测,为中医药物的复方配伍以及挖掘与稀有药物具有同等功效的新药物提供有力辅助手段.
[1]王建,付勇,姚洪武.中药功效分类与药性系统间的内在规律研究[J].时珍国医国药,2008,19(12):2 889-2 891.
[2]张福强,唐向阳,王俊全,等.基于机器学习的红外光谱丹参聚类分析[J].计算机与应用化学,2010,27(9):1 301-1 303.
[3]邓乃杨,甜英杰.支持向量机:理论、算法和拓展[M].北京:科学出版社,2009.
[4]杨传健,葛浩,汪志圣.基于粗糙集的属性约简方法研究综述[J].计算机应用研究,2012,29(1):16-19.
[5]国家药典委员会.中国药典:Ⅰ部[M].北京:化学工业出版社,2010.
[6]王咏梅,马红,刘苏中.方剂配伍的模糊数学特性研究[J].中国实验方剂学杂志,2000,6(6):59-60.
[7]董云耀,陈小翠,黄炜.基于RST和SVM的中文问题分类方法[J].杭州电子科技大学学报,2010,30(6):44-47.
[8]汪虹桥,孙富春,蔡艳宁,等.多核学习方法[J].自动化学报,2010,36(8):1 037-1 050.
[9]郭立力,赵春江.十折交叉检验的支持向量机参数优化算法[J].计算机工程与应用,2009,45(8):55-57.
[10]郑春松,徐筱杰,刘献祥,等.精制透骨消痛颗粒防治骨性关节炎的计算机药理学[J].物理化学学报,2010,26(3):775-783.
[11]吴广文,褚剑锋,许惠凤,等.独活寄生汤的药理作用及其在治疗骨性关节炎中的应用[J].中医正骨,2012,24(1):37-39.