一种复杂系统中非监督聚堆方法

文档序号:6608821阅读:193来源:国知局

专利名称::一种复杂系统中非监督聚堆方法
技术领域
:本发明属于复杂系统科学和数据挖掘领域,涉及一种基于改进关联度系数的复杂系统熵聚堆方法。
背景技术
:复杂系统熵分划是目前唯一一个复杂系统的非监督聚类方法,此方法基于传统的关联度系数法画出信息连通图,然后人为分类,每一个类对应一个子系统。可是此方法有两个缺点(1)它不是自组织的,需要人为确定,而且实现"刚性"分类,不能实现某些特征变量在不同的子系统里面出现。(2)此方法缺少验证,使得对得到的许多结果无法给出最优的结果。
发明内容本发明欲解决的传统技术关联度不能区分正相关和负相关的技术问题,为此,本发明提出一种快速、自组织、不但能实现聚类,还能实现某些变量在不同的子系统里面出现复杂系统中非监督聚堆方法。为了实现所述的目的,本发明复杂系统中非监督聚堆方法的技术方案如下步骤Sh根据复杂系统样本的原始信息确定离散的特征变量和类变量;特征变量用于描述此复杂系统属性的自变量;步骤S2:用改进的关联度系数算出两两特征变量之间的关联度;步骤S3:确定每个特征变量的"亲友团";步骤S4:根据聚堆方法自组织对特征变量进行非监督聚堆,得到特征变量的组合;步骤S5:将每个堆回代到原数据中,得到算法的敏感性;步骤S6:判断敏感性的大小,如果敏感性为最大,转入步骤7,如果敏感性不是最大,转入步骤2;步骤S7:利用系统的类变量对非监督聚堆方法进行验证,得到特征变量最优的组合。根据本发明的实施例,所述两两特征变量间的改进关联度的确定方法具体为<formula>formulaseeoriginaldocumentpage5</formula>其中,M《,A)表示特征变量X,和A之间的关联度;WO-i尘i。g尘为特征变量《的信息熵;//(J^J^-Z/d^h-XZ^iog^为特征变量《和^的联合熵;<formula>formulaseeoriginaldocumentpage5</formula>/M/,y')表示特征变量Z,和^的阳性出现频率;6和3是实数;其中,ftn,M)为特征变量《属于C,第"类的数量,q为y,,/=1,2,..,W,分类的集合;M为样本的数量。根据本发明的实施例对于每一个特征变量X,,根据关联度的值,确定与其最相关的Z个特征变量,这Z个特征变量就叫做变量X,的"亲友团",Z为自然数。根据本发明的实施例,利用类变量数据对聚堆进行验证的步骤包括(1)对于每一个堆S,把它回代到变量数据中,如果这个堆的所有变量都出现在一个样本上,那么记下此样本的编号,遍历,部样本,统计出例数z,记录下来,列在堆s后面,并得到一个z维的向量^,其每一个元素表示样本的编号;(2)把与向量^中编号对应的类变量的^个向量提取出来并把这些向量相加得到一个向量^;,中的每一个元素w'表示在这z个样本中有w'个样本是得第^个类变量;显然w^、找出^中最大的数w;,记录下这个数和相应的类变量;<formula>formulaseeoriginaldocumentpage6</formula>(3)定义并算出堆S的敏感性为^^T,所有的堆的敏感性的平均<formula>formulaseeoriginaldocumentpage6</formula>就是本非监督聚堆方法的敏感性,即—p台\其中r表示方法的敏感性7是堆的个数;如果实际结果对应于最高的敏感性,非监督方法就得到验证。本发明的技术效果或优点本发明解决了传统关联度不能区分正相关和负相关的技术问题,在此基础上,提出了一种复杂系统非监督聚堆的方法,优点是(1)方法是自组织的,不用人为干预。(2)方法运行速度很快,适合大量数据甚至海量数据。(3)方法不但能实现聚类,而且能实现某些变量在某些不同的类里面出现。(4)如果有因变量数据,本方法能对非监督聚出来的堆进行验证,以找到最优堆。本发明在生态分划和临床医学数据分析等领域有着广泛的应用价值。图l是本发明方法流程图图2是本发明方法的敏感性和阈值的关系,从中可以看出在阈值取15/4215的时候方法最好。具体实施例方式下面将结合附图对本发明加以详细说明,应指出的是,所描述的实6施例仅旨在便于对本发明的理解,而对其不起任何限定作用。1.1方法概述(overviewofapproach)本发明的主要方法是基于关联度系数法的复杂系统熵分划的改进,先改进传统的关联度系数法以使得能从数值上区分正相关和负相关,然后在此基础上得到每个变量的"亲友团",通过自定义的关联原则和收敛条件自组织地聚出堆来,堆中变量的个数和总的堆的堆数都由方法自组织确定,没有加入任何人为干预。如果数据有相应的因变量,就把得到的堆回代到原来数据中,参考因变量对每个堆自动对应上某个因变量,并算出每个堆的敏感性,然后把每个堆的敏感性相加求平均,得到方法的敏感性,敏感性最大的为最优参数,在此参数下得到的堆即为最优堆。本发明方法的核心在于对传统的关联度系数的改进和在此基础上提出的聚堆方法。如图l所示本发明方法的具体实施例包括7个步骤1、首先输入特征变量数据。2、初始化参数,用改进的关联度系数法算出两两变量之间的关联系数。3、根据关联系数值的大小,每个变量选择和它最相关的前N个变量,记作此变量的"亲友团"。4、利用聚堆方法规则自组织地聚出堆来。5、如果有因变量数据,把每个堆回代到自变量数据中,算出每个堆的敏感性,并求平均,记录下此方法的敏感性的数值,如果比上次记录的敏感值大,则覆盖上次的值,同时记录下相应的参数。6、微调一下参数,返回2。7、敏感性最大对应的参数下得到的堆为最优特征变量的组合。1.2变量之间相关性的度量1.2.1关联度和关联度系数对于一个复杂系统,可以表示为矢量其中,《—A)(^1,2,…,M"-1,2,…,M)是描述系统特征的变量。令《为A,^1,2,…^,分类的集合,G'的第a个元素e'。=a,则有"。C,H1,2,…一,…化"M,并令。^r。」为事件Xi属于c,第a类的数量,则变量Xj的熵定义为',仝MSM(2)Xi和Xj的联合熵定义为草,,^)=-SZ》g^其中表示事件A属于G'的第。类同时Xj属于Cj的第b类的数量。有了上述熵的定义,下面给出基于互信息的关联度的定义。定义1.假设^^A,则称熵为Xi和^之间的关联度。定义2.假设《^A—,则称"';叫)(5)为Xi和^之间的关联度系数。1.2.2改进的关联度系数上述定义的关联度系数在实际应用时会碰到一些问题。比如中医临床中两个强相关的症状(比如神疲和乏力)之间的关联度系数是很大,但是两个相反的症状之间(比如浮脉和沉脉)的关联度系数也很大,甚至可能是最大的。这是因为关联度的定义可以另外表示为=//(Z,)K|X》(6)8从(6)可以看出A'和、之间的关联度实际上表示为在确定、后所提供的关于《的信息。所以一对强相关的症状之间的关联度和另外一对完全相反的症状之间的关联度都很大,而且都大于0,这就导致我们后面聚堆方法无法把这两种类型的情况区分开。所以这里我们提出一种改进的关联度系数法来解决这个问题。强相关症状之间与相反症状之间可以用阳性出现率来区分开。阳性出现率是指两个变量同时都为O的概率。强相关症状之间的阳性出现率很大,而相反症状之间的阳性出现率理论上应该是O,即不可能一个病人同时出现这两个相反症状。所以我们把关联度己经关联度系数的定义重新写成f<formula>formulaseeoriginaldocumentpage9</formula>(8)其中,6是大于1的实数,是惩罚系数。^是阈值。选取合适的阈值不但可以把正相关和负相关分开,而且可以避免一些错误数据带来的干扰。,^)表示特征变量X,和&之间的关联度;H(《)=-i:,iog~为特征变量义,的信息熵;<formula>formulaseeoriginaldocumentpage9</formula>为特征变量义,和^的联合熵;尸o(/,/)表示特征变量X,和A的阳性出现频率;6和5是实数;<formula>formulaseeoriginaldocumentpage9</formula>)为特征变量兀属于C,第a类的数量,C,为z,,"1,2,…,;V分类的集合;M为样本的数量。1.3聚堆方法1.3.1"亲友团"我们这里只算出两两变量之间的关联度系数,这样就形成一个WxiV的矩阵,记为7^(A一(/,_/))。对角线的元素表示变量自己与自己的关联,设置为0。一般的方法都是选择一个全体的阈值来确定是否相关,但是这种做法有点"刚性",而且这个阈值的确定带有太大的主观性而且太绝对。所以我们这里采取一种相对的做法,选定一个特定的变量/,在集合5*"(/)={厶//力,)),/=1,2—中取出值最大的前Z,1SZSW-1,个变量,形成一个有Z个元素的集合,记作Z)(/)。Z—般相对iV来说是很小的,所以这个集合可以叫做变量/的"亲友团",因为它其中的每个元素都与/很相关。对于每一个特征变量《,根据关联度的值,确定与其最相关的Z个特征变量,这Z个特征变量就叫做变量X,的"亲友团",z为自然数。在"亲友团"基础上,自组织地聚出由特征变量组合成堆的步骤包括(1)如果两个特征变量互在对方的"亲友团"里面,这两个特征变量相关,则聚在一起,把所有两两相关的变量都提取出来;(2)在此基础上,如果有三个特征变量,它们之间两两都相关,则这三个变量就是相关,依此规则直到不能往里面加特征变量,则为收敛,这些相关特征变量的组合成非监督聚出的堆。1.3.2聚堆方法对每个变量,我们都取它们各自的"亲友团"WV-1,2』。如果两个变量互相在各自的亲友团里面,那么我们就认为这两个变量是强相关的。形式化描述就是变量/和/是强相关当且仅当/eD(y)且/eD(/)。只有强相关才能聚在一起。以此类推,三个变量聚在一堆里的当且仅当任意两个变量都是强相关的。由于Z是有限的,所以这个方法肯定收敛。堆的个数是方法自动确定的,是变量个数W和"亲友团"个数Z的函数。1.3.3N-class相关这个方法大大减少了复杂度,因为它只要求出变量之间的两两相关就行。如果算三个甚至三个以上变量之间的相关性的话,那么有时候会面临一个组合爆炸的困境,比如在这里面,如果没有聚堆方法的话,至少要算《"个组合,这个复杂度太高了,而且结果未必好。我们在这里介绍一个N-dss相关的概念。它是这样定义的,对于N个变量,如果任意N—l个变量都是相关的,那么我们就说这N个变量就是N-class相关。这个概念意味着要判断N个变量是否相关,我们只要判断N—1个变量的是不是相关就可以。这样理论上我们只要判断两两变量之间是否相关就行。定理l:如果N个变量之间是相关的,第N+1个变量和N个变量之间任意一个都相关,那么,这N+1个变量就是相关的证明我们知道,N个变量之间的关联度是这么定义的<formula>formulaseeoriginaldocumentpage11</formula>(9)那么我们就有<formula>formulaseeoriginaldocumentpage11</formula>(10)(10)式的第二项表示A+'和A,^,…,A的关联。它意味着这N+1个变量之间的关联等于前N个变量的关联加上^"和A,^,…,A的关。如果A"是与前面相关的,那么这N+1个变量也是相关的。证明完毕。这个定理大大地较少了复杂性,实践证明,在奔腾2G的PC上此方法运行所需时间少于50s。实验结果1.1在生态区划中的运用生态系统的区划就是根据一定的规则把一个大区域分成若干小区域,使得每个小区域都有各自的相对独立的特征,从而使得这个大区域内各种不同类型的小区域分布以及它们之间的相互关系表现得更为清晰。.l丄l生态数据要分划的区域由五个镇(自变量),Xi,i^,2,…,5,组成,每一个镇分别调察九种资源(能源,水资源,人口,动物,植物,微生物,自然地理,经济地理,环境质量)情况,得到了一个9x5的矩阵。通过对这个数据的挖掘把五个镇自动分层几个类(区域),使得资源利用等最优。所述复杂系统样本的原始信息为每个乡镇资源的量化取值,特征变量为每个乡镇的资源。l丄2方法运用选择"亲友团"个数Z为3,阈值为0,因为在这里面不涉及到完全相反的情况。所有的实验都是在一台P42.0G、512MB内存、操作系统为Windows2000的PC机上,用C语言编程或用Matlab语言实现了本发明所描述的方法。聚出两类出来,s,={x2,x5};s2={Xl,x3,x丄此结果与以前关于这部分数据权威的结果完全一样,说明了方法的有效性。由于无法得到相应的因变量数据,所以方法的特点还没有完全体现出现。1.2在中医临床数据分析中的运用1.2.1数据描述数据分成两部分,一部分是248个四诊信息(特征变量)的数据,由4215x248的矩阵来表示。另外一部分是临床医生给出的结果,分成风,火,湿,痰,淤,气滞,气虚,阴虚,阳虚,阳亢,闭证,脱证,内闭外脱这十三个证候(类变量)。如果有某个证候,就在其下面填上1,反之则填O。一般一个病人都是有几个证候同时存在的。所以这部分数据由4215x13的矩阵来表示。所有的实验都是在一台P42.0G、512MB内存、操作系统为Windows2000的PC机上,用C语言编程实现。1.2.2数据的预处理以及参数选择所述的复杂系统样本的原始信息为人体症状所对应的取值,特征变量为人体的症状,类变量为病人所属的证候类型。所有的变量都变成0和1,O代表不出现,l代表出现。由于调查的四诊信息是248个,所以中风病这个复杂系统就是由248个矢量组成,每一个矢量都是4215维,由0和1组成。^=248,M=4215。选择"亲友团"个数Z需要参考临床经验。一般在临床上三个到四个变量就可以确定一个证候。所以Z取5或者6比较合适。考虑到在同样的参数下,2=5参数下聚出的堆是2=6的子集。所以在这里我们取Z-6。最关键的参数是阈值^的选择,太小了会让一些不太相关的变量聚在一个堆里;太大了又会使得虽然出现频次都低但是却紧密相关的变量之间的相关性变小,最后导致不在任何一个堆里面出现,大大损失了信息量。在下面我们将介绍这个值的选择以及对这个方法的验证。1.2.2聚堆结果1.2.2.1方法实现聚类我们选择阈值为"^J,"亲友团"个数Z如上所述选为6,在此参数下方法自组织地聚出了46个相互独立的堆,显然,堆的个数(记作尸)是S和Z的函数,即^=/(&"。每个堆分别对应于中医临床的9个证候中的某一个,我们取出9个有代表性的堆对应上这9个证候,列在表l里。以前的方法最多只能提取出6个证候,在这里我们提取出了9个证候,为提高治疗中风病疗效奠定了数理基础。同时,这9个堆之间属于不同的证候,可见复杂系统熵聚堆方法可以实现分类,而且分类的结果十分很符合临床。表1:聚堆方法能实现分类,分出9个类,对应9个不同的证候<table>tableseeoriginaldocumentpage14</column></row><table>1.2.2.2方法实现一个变量在不同的堆里出现方法不但可以实现分类,而且可以实现一个变量在不同的堆里出现,而且不同的堆会对应不同的证候。如表2所示,堆1和堆2是46个堆中的两个,它们由两个变量是相同的,但是却对应不同的证候,此方法在分类的基础上,亦能实现变量在不同的堆里出现,结果也十分吻合临床。是目前能实现这个效果的唯一非监督方法。表2:聚堆方法能实现一些变量在不同的堆里面出现<table>tableseeoriginaldocumentpage15</column></row><table>1.2.2.3方法验证和敏感性如果复杂系统有相应的类变量数据,利用类变量数据对聚堆进行验证的步骤包括(1)对于每一个堆s,把它回代到变量数据中,如果这个堆的所有变量都出现在一个样本上,那么记下此样本的编号,遍历全部,本,统计出例数z,记录下来,列在堆s后面,并得到一个z维的向量^,其每一个元素表示样本的编号;(2)把与向量?中编号对应的类变量的l个向量提取出来并把这些向量相加得到一个向量^;^中的每一个元素w'表示在这Z个样本中有^个样本是得第/个类变量;显然w^、找出^中最大的数气,记录下这个数和相应的类变量;(3)定义并算出堆5的敏感性为^=^",所有的堆的敏感性的平均就是本非监督聚堆方法的敏感性,即p^S,其中^表示方法的敏感性,尸是堆的个数;如果实际结果对应于最高的敏感性,非监督方法就得到验证。把聚到的堆都回代到原来4215个病例中,把同时有这些症状的人都统计起来。比如第一个序号,在4215个病例中有148个病人同时得这个四个症状,然后我们把这148个病例单独拿出来,同时也把这些病例对应的辨证结果都取出来,然后加起来,我们发现这148个病人有140个是气虚,所以我们就可以认为这个堆是气虚,同时我们也得到了方法关于聚出这些堆来的敏感性,就是140/148=96%.把所有的堆的敏感性加起来就是方法的敏感性,图2中显示了方法和阈值的关系。从中可以看出在阈值取15/4215的时候方法最好。通过定义敏感性来寻找最优参数和由此产生的唯"^一个最优堆,也是方法的精确率达到97.3°/。,这是目前为止任何方法都无法达到的。上面描述是用于实现本发明的实施例,本领域的技术人员应该理解,在不脱离本发明的范围的任何修改或局部替换,均属于本发明权利要求来限定的范围。权利要求1、一种复杂系统中非监督聚堆方法,其特征在于,包括步骤步骤S1根据复杂系统样本的原始信息确定离散的特征变量和类变量;特征变量用于描述此复杂系统属性的自变量;步骤S2用改进的关联度系数算出两两特征变量之间的关联度;步骤S3确定每个特征变量的“亲友团”;步骤S4根据聚堆方法自组织对特征变量进行非监督聚堆,得到特征变量的组合;步骤S5将每个堆回代到原数据中,得到算法的敏感性;步骤S6判断敏感性的大小,如果敏感性为最大,转入步骤7,如果敏感性不是最大,转入步骤2;步骤S7利用系统的类变量对非监督聚堆方法进行验证,得到特征变量最优的组合。2、根据权利要求1所述的复杂系统中非监督聚堆方法,其特征在于,所述两两特征变量间的改进关联度的确定包括<formula>formulaseeoriginaldocumentpage2</formula>叫)単,)其中,一(X,,A)表示特征变量X,和A之间的关联度;i^og^为特征变量Z,的信息熵;/f(X,,X》=W(;J^)=-SZSl0gS为特征变量X,和A的联合熵;尸o(/,力表示特征变量X,和^的阳性出现频率;6和5是实数;其中,"1>。=肘)为特征变量X属于C,第a类的数量,C,为;r,,/",2,…,;V,分类的集合;M为样本的数]3、根据权利要求2所述的复杂系统中非监督聚堆方法,其特征在于,对于每一个特征变量Z,,根据关联度的值,确定与其最相关的z个特征变量,这Z个特征变量就叫做变量义,的"亲友团",Z为自然数。4、根据权利要求3所述的复杂系统中非监督聚堆方法,其特征在于,在"亲友团"基础上,自组织地聚出由特征变量组合成堆的步骤包括(1)如果两个特征变量互在对方的"亲友团"里面,这两个特征变量相关,则聚在一起,把所有两两相关的变量都提取出来;(2)在此基础上,如果有三个特征变量,它们之间两两都相关,则这三个变量就是相关,依此规则直到不能往里面加特征变量,则为收敛,这些相关特征变量的组合成非监督聚出的堆。5、根据权利要求4所述的复杂系统中非监督聚堆方法,其特征在于,利用类变量数据对聚堆进行验证的步骤包括(1)对于每一个堆S,把它回代到变量数据中,如果这个堆的所有变量都出现在一个样本上,那么记下此样本的编号,遍历全部样本,统计出例数Z,记录下来,列在堆S后面,并得到一个Z维的向量^其每一个元素表示样本的编号;(2)把与向量^中编号对应的类变量的i个向量提取出来并把这些向量相加得到一个向量^;^中的每一个元素w'表示在这Z个样本中有w'个样本是得第7个类变量;显然W>Z,找出^中最大的数w'匪,记录下这个数和相应的类变量;(3)定义并算出堆s的敏感性为^^"T,所有的堆的敏感性的平1尸,均就是本非监督聚堆方法的敏感性,即7^^,其中r表示方法的敏感性,P是堆的个数;如果实际结果对应于最高的敏感性,非监督方法就得到验证。全文摘要本发明公开一种复杂系统中的非监督聚堆方法,根据复杂系统样本的原始信息确定离散的特征变量和类变量;计算两两特征变量之间的关联度;确定每个特征变量的“亲友团”;根据聚堆自组织对特征变量进行非监督聚堆,得到特征变量的组合;将每个堆回代到原数据中,得到敏感性;判断敏感性的大小;利用系统的类变量对非监督聚堆方法验证,得到特征变量最优组合。解决了传统关联度不能区分正相关和负相关的问题,本发明自组织、不用人为干预、运行速度快,适合大量数据甚至海量数据。能实现聚类,能实现某些变量在某些不同的类里面出现。本方法能对非监督聚堆进行验证,以找到最优堆。本发明在生态分划和临床医学数据分析等领域有着广泛应用价值。文档编号G06F17/30GK101315626SQ20071009987公开日2008年12月3日申请日期2007年5月31日优先权日2007年5月31日发明者西广成,静陈,陈建新申请人:中国科学院自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1