一种基于类-属性关系依赖度的数据离散化方法

文档序号:6583509阅读:185来源:国知局

专利名称::一种基于类-属性关系依赖度的数据离散化方法
技术领域
:本发明属于数据挖掘领域,涉及到机器学习中的连续属性离散化算法,特别涉及到一种基于类-属性关系依赖度的CAIM(Class-AttributeInterd印endenceMaximization)算法。
背景技术
:过去,在数据挖掘领域中,对于离散化算法的研究通常被认为是一种辅助性工作而没有受到应有的重视,直到近年来随着知识发现和机器学习领域的迅速发展才引起研究人员的关注。来源于现实生活中的数据集经常会涉及到连续的数值属性,然而目前许多的机器学习算法却只能处理只包含离散值属性的数据集,给机器学习的研究带来了不便。典型的机器学习算法如决策树、关联规则等只能处理离散值属性数据集。对于连续值属性数据集,则需要在机器学习之前进行离散化处理。随着人们对该领域的广泛关注和深入研究,离散化算法已经得到了很大的发展,多种基于不用离散方式的算法被提出来。下面重点介绍基于类_属性关系依赖度的CAIM算法。基于类_属性依赖度(Class-AttributeInterd印endence)的算法这类算法利用类与属性的关系建立二维矩阵,并通过从中提取的信息来衡量类与属性的依赖程度,从而确定合适的条件作为离散化判别式。首先1995年J.Y.Ching等人提出了CADD(Class-D印endentDiscretizerAlgorithm)算法[J.Y.Ching,A.K.C.Wong,K.C.C.Chan,Class—dependentdiscretizationforinductivelearningfromcontinuousandmixedmodedate,IEEEtrarisactiorisonpatternMialysisMidmachineintelligence,2005,17(7):641-651],它是一种自上而下的离散化算法。该算法没有给出初始的划分点集应如何确定,而且在如何进行区间的调整方面也没有给出有效的方法,实验表明,以cair值作为离散判别式也是不合适的,其会产生过多的区间而造成训练过度。2004年LukaszA.Kurgan等人提出了CAM(Class-AttributeInterd印endenceMaximization)算法[K.J.Cios,LKurgan.CAIMdiscretizationalgorithm[J].IEEEtransactionsonknowledgeanddataengineering,2004:145—153],它是——禾中全局的、静态的、自上而下的有监督离散化算法。该算法以达到类与属性相关度最大化为目标,以caim值作为离散判别式,算法的时间复杂度为Nlog(N),其中N为数据集中实例的个数。相比于其它离散化算法,CAIM算法具有时间复杂度小,精度和效率相对较高的特点,但该算法存在着三个不足。首先,在离散化的过程中没有考虑到属性的重要性;其次,缺乏对不一致率的考虑;最后,采用caim值作为离散判别式也有其不合理之处。这常常造成信息丢失,从而影响到机器学习的精度。
发明内容本发明要解决的技术问题是基于类-属性关系依赖度提出一种有监督的离散化-致率的算法,使其得到的离散化结果在后继的机器学习中达到更高的精度。本发明的技术方案是(1)基于类-属性关系依赖度的CAIM离散化改进方案。该算法根据DSST差异相似集理论来度量属性重要性,在考虑决策表不-情况下对数据进行进一步的离散化。—个信息系统通常可以表达为S=〈U,C,D,V,f〉,这里U是研究论域(Universe),即研究对象的集合,CUU=R是属性集合,子集C称为条件属性集,D称为决策属性集,f定义一个信息函数,即f:UXR—V,它指定中U每一个对象x的属性值。①属性重要性的相关定义与计算方式定义l.如公式(1)所示,Xi代表第i个实例,Xj代表第j个实例,则差集DSij代和Xj两个实例决策属性不相同时,条件属性也不相同的属性集合。加,,=-A/(a,《)一(1)其中*表示可取该属性值域中的任何值。定义2.当Xi和Xj两个实例的决策属性不相同时,只有一个属性(比如是属性a)的属性值不同,而其余属性值均相同,那么称所有的实例(Xi,Xj)所构成的集合是属性a的——水<formula>formulaseeoriginaldocumentpage6</formula>(2)差集和差集集合的定义为后面的属性重要性定义奠定了基础。在讨论不同的问题时属性具有不同的重要性,可以在相关领域知识下预先假设属性的重要程度,并用权重表示。在差异相似集理论中,没有使用预先设定权重的方式,而是利用决策表中的数据,通过计算各条件属性对决策属性的影响程度来判断各属性的重要性。根据差集集合的定义,我们可以知道如果某一属性的差集集合不为空,即在决策属性值相同,并且其它条件属性值也相同的情况下,则该属性唯一的决定分类的结果。若去掉该属性会使决策表的分类出现错误,产生不一致率。例如,在表l的信息系统中,如果去掉属性a,那么R2和R3在属性b的值相同的条件下,却被划分到了两个不同的类别中,这显然是不正确的。某一属性的差集集合中元素个数越多,说明该属性对决策表的分类结果越重要。于是,我们有了如下的关于属性重要性的定义。表l一个简单的信息系统ubdRlalb20R2albl1R3a2b21R4a3b21定义3决策表中的任意两个条件属性a和b,若|Ua|>|Ub|,即属性a差集成员个数大于属性b差集成员个数且t/。-0,"*0,则称属性a的重要性大于属性b的重要性。在表1所示的信息表达系统中,包含两个条件属性a和b,以及一个决策属性d。由式(1)可知DSu=(W,DSu={ahDSw=(ah那么由式(2)得Ua={(1,3),(1,4)},Ub={(1,2)}。|Ua|>IUbl,即属性a差集成员个数大于属性b差集成员个数,因为属性a的重要性大于属性b的重要性。②决策表不一致率的相关定义在决策表中,如果不存在不一致的分类,则称这个决策表是一致的。反之,则称这个决策表是不一致的文献。定义4.EiGUlind(C)(i=1,2,...,m)代表Ei是C的一个等价类,其中C表示条件属性,m表示条件属性的个数。同样,FjGUlind(D)(j=1,2,...,n)表示Fj是D的等价类,其中D表示决策属性,n表示决策属性的个数。则属性Ei的一致率可由式(3)得到iimax(Ei)=max({|E丄nF」|/|E丄|:F」GU|ind(D)})(3)定义5.决策表的不一致率可由式(4)得到/"匿r(S)"—X!^^鹏(五,)(4)其中,O《ilmcer(S)《1。当决策表的条件属性相同而决策属性不同时,说明该决策表的分类信息产生了不一致率。下面举例说明不一致率是如何计算的。表2.—个简单的知识表达系统7u3bcd0210110122120221x50212在表2中,论域U二^,X2,X3,xJ,条件属性集C=(a,b,ch决策属性D={d}。可以看出,实例Xl和x5具有相同的条件属性值,而它们的决策属性值却是不同的。我们称此时该表产生了不一致率,Puneer(S)=2/5=0.4。在一般情况下,原始数据集的决策表通常是一致的。但是,在离散化过程中,可能会因为加入了不合适的断点,或加入断点个数过少,从而形成了不合理的离散区间,使得原有的连续属性值没有被划分到正确的离散区间中。这种情况会导致离散后的决策表产生不一致率,造成原始数据集的信息丢失,这对后续的分类学习是非常不利的。本发明的效果和益处是能够使重要的属性得到充分的离散化,并且有效的降低了决策表的不一致率,使得后继的机器学习达到了更高的精度。(2)基于类_属性关系依赖度A相关系数离散化方案CAIM算法还存在着两个问题,这是由于使用caim值作为离散判别式而导致的。首先,应用CAIM算法时,决策属性的个数在一定程度上决定着离散断点的个数;其次,caim离散判别式只考虑区间内含有最多样本的类属性,而忽视了其他类属性的分布情况。为了方便说明这两个问题,我们重新分析下caim值的力、式如公式(5)所示。2么、式及CAIM算法的过程ccaim值的计算公max(5)其中q^(i=1,2,...,S;r=1,2,...,n)表示实例中属于第i类且属于区间(4—pdj的个数,maxr是所有qif中的最大值,11+是属于第i类的实例个数总和,M+r是属于区间(4—的实例个数总和,n表示区间个数。第一,由CAIM算法步骤我们可以得知,该算法是一种自上而下的算法,也就是说该算法采用逐次添加断点的方式来形成离散区间。对连续属性进行离散化时,首先将globalcaim置0,计算每一个候选断点的caim值,并选出最大的caim值与globalcaim值比较,若caim〉globalcaim或者k〈s(其中,k表示已经添加的断点个数,s表示决策属性的个数),则将该断点加入到离散断点集合中,并将此caim值赋给globalcaim值,重复上述过程;否则,结束此属性的离散过程,按上述方法对下一属性进行离散,直到所有连续属性全部离散化时结束。在实验过程中,我们发现在计算caim值时,往往加入少量断点后,停止条件中的caim>globalcaim就不再满足了,但由于此时k<s,所以离散化继续进行,直到k=s,即加入断点个数与决策属性值的个数相等为止。这样常常会使离散化进行的不充分,导致分类学习时效果不佳。产生该问题的原因主要是在计算caim值时,分子增加的速率要大于分母增加的速率,在每一次迭代过程中,n值都是线性增加的,而分母增加的幅度明显小于分子。因此,在进行若干次迭代之后,caim值就不大于上一次的caim值(即globalcaim值)。第二,我们从caim的公式中可以明显看出,caim离散判别式只考虑区间内含有最多样本的类属性,而忽视了其他类属性的分布情况。因此,本文提出了一种以A相关系数作为离散判别式的离散化算法。实验证明,采用A相关系数作为离散判别式可以有效的避免加入断点个数与决策属性个数相同的问题。本发明的效果和益处是采用统计学中常用的A相关系数做为离散化判别式,避免了采用caim值作为离散判别式时产生的问题。实验表明,该算法在分类学习时得到了更高的分类识别率。该算法与CAIM算法具有相同的时间复杂度,可用于处理大规模数据集。附图是应用离散化算法的分类学习过程图。具体实施例方式ImprovedCAIM方案的具体过程如下输入一个具有m个实例,t个决策类和s个条件属性的数据集。第一阶段(1)计算每个属性的差集,并按属性重要性由小到大的顺序排序A,^表重要性最小的属性,as代表重要性最大的属性)(2)For(ai=a!;i<=s;i++){St印l:找出属性ai中的最小值Xmin和最大值Xmax;将属性ai中所有不同的值按从小到大的顺序排列{xmin,x2,...xmax};计算出所有相邻的不同值之间的中间值作为候选断点,计算公式为将候选断点从大到小排序,初始化候选断点集合B:{[d。,dj,(dpd2]dn]};初始化断点集合D:{[d。,dn]};初始化globalcaim=0;初始化k=1;St印2:as(a丄代,dn—,,<formula>formulaseeoriginaldocumentpage10</formula>将候选断点集合B中的一个候选断点加入到断点集合D中,并计算加入该点后的caim值;选取具有最大caim值的断点dx;<formula>formulaseeoriginaldocumentpage10</formula>令globalciam令k=k+1;将候选断点d"<formula>formulaseeoriginaldocumentpage10</formula>候选断点集合B中移除,并加入到断点集合D中;<formula>formulaseeoriginaldocumentpage10</formula>将候选断点集合B中的一个候选断点加入到断点集合D中,并算加入该点后的caim值;选取具有最大caim值的断点dx;计}}1While(不一致率改变);性會g评价我们分另U采用CAIM(Class—AttributeInterd印endenceMaximization)算f去禾口本文提出的ImprovedCAIM算f去X寸breast、ion、iris禾口heart等七组标准数据集进行了离散化处理,并对离散后的数据分别采用C4.5决策树和SVM(SupportVectorMachines)支持向量机的方法进行了分析。数据集均来自UCI机器学习数据库,表3为以下实验中可能用到的数据集。表3数据集信息描述第二阶段Do{For(£>=1选出caim值最大的的断点加入到离散断点集合D中;If(不一致率不变)从断点集合D去掉该断点;Continue;数据集条件属性连续属性决策类样本数breast992683ion34322351iris443150heart1362296auto73392glass996214veteran772137cars773楊pid882768采用CAIM算法和ImprovedCAIM算法分别对上述七组标准数据集进行离散化,将离散化后的结果随机选取80%作为训练集,其余20%作为测试集。通过C4.5决策树方法和SVM支持向量机的方法对训练集构建分类器,然后对测试集进行分类。为了更加合理的验证两种离散化方法的性能,我们对每一组标准数据集都进行了10次测试,记录相关结果后取平均值。SVM支持向量机的有关参数设置如下采用一对一分类方式,C-SVC模型,RBF核函数,惩罚因子C搜索范围[1,100],核函数参数y取0.5。因为在核函数计算过程中,较大的属性值会导致计算复杂,训练时间较长,所以本文将属性值进行了归一化处理,如式(8)所示:x广min(x,.)=2-一l(8)max(A)—min(;c,.)归一化后的属性值XiG[-l,l]。对于测试集采用相同的归一化方法。在应用C4.5构造决策树时,对正确识别率和提取出规则的个数进行统计,并计算出10次测试的平均值,其结果如表4所示。表4C4.5实验结果<table>tableseeoriginaldocumentpage12</column></row><table>在提取规则个数方面,除breast数据外,其余六组均有不同程度增加,这主要是因为本文提出的方法在减小不一致率的同时,增加了断点个数,这势必会间接增加C4.5提取规则的个数。而在正确识别率方面,七组数据都有所提高,heart、auto和veteran三组数据的正确识别率提高幅度最大。可见,应用对于不一致率改善效果显著的数据,往往具有更高的正确识别率,充分显示了ImprovedCAIM算法的有效性。在应用SVM支持向量机时,对预测精度和支持向量个数进行统计,并计算出10次测试的平均值,其结果如表5所示。在支持向量个数上,利用ImprovedCAIM算法得到的离散数据均具有更多的支持向量个数,其原因主要是该算法增加了断点个数,从而导致了支持向量机个数的增加。在精度预测方面,iris、glass和veteran这三组数据集有显著的提高,其他数据集的变化不大。表5.SVM实验结果「,预测精度(%)支持向量个数-CAIMImpCAIMImp[O川]<table>tableseeoriginaldocumentpage12</column></row><table>入-CAIM方案的具体过程如下输入一个具有m个实例,t个决策类和s个条件属性的数据集。For(ai=a丄;i<=s;i++)St印l:找出属性A中的最小值Xmin和最大值xmax;将属性A中所有不同的值按从小到大的顺序排列{xmin,x2,...xmax}计算出所有相邻的不同值之间的中间值作为候选断点,计算公式为将候选断点从大到小排序,初始化候选断点集合B:{[d。,dj,",d2]dn]};初始化断点集合D:{d。,dn]};初始化global入=0;初始化k二l;St印2:For(i=1;i<=n;i++){将候选断点集合中的一个候选断点加入到断点集合D中,并计算加入该点后的A值;选取具有最大A值的断点dx;}While(A>globalAork<s){令globalA=A隨;令k=k+1;将候选断点dx从候选断点集合B中移除,并加入到断点集合D中;For(i=1;i<=n;i++){将候选断点集合B中的一个候选断点加入到断点集合D中,并计算加入该点后的A值;选取具有最大A值的断点dx;}}}输出离散化断点集合D性能评价在应用C4.5构造决策树时,对正确识别率和提取出规则的个数进行统计,并计算出10次测试的平均值,其结果如表6所示。表6C4.5实验结果数据集正确识别率(%)rulesCAIM义-CAIMCAIM义-CAIMion94.695.52734iris93.594.399heart75.6815052auto75.982.83542cars83.088.73548pid78.478.53946可以看到,在正确识别率方面,七组数据都有所提高,heart、auto和cars三组数据的正确识别率提高幅度最大。在提取规则个数方面,除iris数据集外,其余六组均有不同程度增加,这主要是因为本文提出的A-CAIM算法在离散化过程中,形成的断点个数要稍微多于CAIM算法形成的断点个数,因此在应用SVM进行学习时,形成的规则数要稍多于CAIM算法。但是,我们可以看到,二者之间的差距不是非常大,仍然在一个数量级上。表7SVM实验结果数据集accuracy(%)SVsCAIM义-CAIMCAIM义-CAIMion9392132.8174iris93.39422.825heart82.482.4134.2155auto79.383.1141125cars77.376.6145140pid75.375.7310302在应用SVM支持向量机时,对预测精度和支持向量个数进行统计,并计算出10次测试的平均值,其结果如表7所示。在支持向量个数上,利用入-CAIM算法得到的离散数据均具有更多的支持向量个数,其原因主要是该算法增加了断点个数,从而导致了支持向量个数的增加。在精度预测方面,iris、auto这两组数据集有显著的提高,其他数据集的变化不大。权利要求一种基于类-属性关系依赖度的数据离散化方法,该方法基于类-属性关系依赖度的CAIM算法,提出了有效的连续属性离散化方案;综合考虑了属性重要性和决策表不一致率对离散化结果的影响,其特征在于具体方法过程如下输入一个具有m个实例,t个决策类和s个条件属性的数据集;第一阶段(1)计算每个属性的差集,并按属性重要性由小到大的顺序排序a1,a2,...as(a1代表重要性最小的属性,as代表重要性最大的属性)(2)For(ai=a1;i<=s;i++){Step1找出属性ai中的最小值xmin和最大值xmax;将属性ai中所有不同的值按从小到大的顺序排列{xmin,x2,...xmax};计算出所有相邻的不同值之间的中间值作为候选断点,计算公式为<mrow><msub><mi>d</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>+</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow><mn>2</mn></mfrac><mo>;</mo></mrow>将候选断点从大到小排序,初始化候选断点集合B{[d0,d1],(d1,d2],...,(dn-1,dn]};初始化断点集合D{[d0,dn]};初始化globalcaim=0;初始化k=1;Step2For(i=1;i<=n;i++){将候选断点集合B中的一个候选断点加入到断点集合D中,并计算加入该点后的caim值;选取具有最大caim值的断点dx;}While(caim>globalcaimork<S){令globalciam=caimmax;令k=k+1;将候选断点dx从候选断点集合B中移除,并加入到断点集合D中;For(i=1;i<=n;i++){将候选断点集合B中的一个候选断点加入到断点集合D中,并计算加入该点后的caim值;选取具有最大caim值的断点dx;}}}第二阶段Do{For(ai=as;i>=1;i--){选出caim值最大的的断点加入到离散断点集合D中;If(不一致率不变){从断点集合D去掉该断点;Continue;}}}While(不一致率改变);输出离散化断点集合D。2.根据权利要求1所述的一种基于类_属性关系依赖度的数据离散化方法,其特征还在于利用统计学中的A相关系数作为离散化判别式来衡量类-属性的相关程度从而自ma、表示由类-属性二维矩阵表中某一区间下的某一属性中样本数最多的值,maX(Mi+)表示决策类中具有样本数最多的某一类的样本数量,M代表样本的总数量;具体过程如下所示输入一个具有m个实例,t个决策类和S个条件属性的数据集;St印l:找出属性A中的最小值xmin和最大值xmax;将属性A中所有不同的值按从小到大的顺序排列{xmin,x2,...xmax};计算出所有相邻的不同值之间的中间值作为候选断点,计算公式为《;^^将候选断点从大到小排序,初始化候选断点集合B:{[d。,dj,(dpd2],...,(d,dn]};初始化断点集合D:([d。,dJ);初始化globalA=0;初始化k=1;St印2:<formula>formulaseeoriginaldocumentpage3</formula>瞎候选断点集合中的一个候选断点加入到断点集合D中,并计算加入该点后的动的选择离散断点;A相关系数作为离散化判别式的公式为入值;选取具有最大A值的断点dx;<formula>formulaseeoriginaldocumentpage4</formula>令globalX=X隨;令k=k+1;将候选断点dx从候选断点集合B中移除,并加入到断点集合D中;<formula>formulaseeoriginaldocumentpage4</formula>将候选断点集合B中的一个候选断点加入到断点集合D中,并计算加入该点后的A值;选取具有最大A值的断点dx;输出离散化断点集合D。全文摘要本发明公开了一种基于类-属性关系依赖度的数据离散化方法,属于数据挖据领域。其特征是首先在CAIM算法的基础上综合考虑了属性重要性和决策表不一致率对离散化结果的影响,提出了一种改进的CAIM算法;其次,采用λ相关系数作为衡量类-属性关系的离散化判别式,提出了一种新的有监督离散化算法,该算法不需要人为输入参数,能够自动的选取离散断点。本发明的效果和益处是在保持从原始数据集中提取信息高效性的同时,权衡了精确性方面的考虑,能够在进行机器学习时得到更高的准确性。文档编号G06F17/30GK101702172SQ20091021983公开日2010年5月5日申请日期2009年11月10日优先权日2009年11月10日发明者李克秋,桑雨,王哲,申严明申请人:大连理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1