高维数据的分类算法的制作方法

文档序号:11775315阅读:954来源:国知局

本发明涉及数据处理领域,尤其高维数据的分类算法。



背景技术:

随着互联网和物联网等科学技术的飞速发展,许多实际应用产生的数据规模越来越大,维度越来越高,由于高维数据的普遍性和重要性,研究高维数据挖掘具有非常重要的意义,因而在学术界引起了高维数据挖掘研究热潮的兴起,目前研究的热点主要集中在高维数据分类上,由于受维度效应的影响,许多在低维数据上表现良好的分类方法运用在高维数据上时无法获得好的分类效果,因此,高维数据分类对传统的分类技术而言是新的挑战,高维数据分类具有重要的意义,其能帮助人们自动分类数据所属的类别,譬如,新闻文本的自动分类,基因表达的所属功能的自动判别,网络营销中不同兴趣用户的区分,舆情分析中有用信息的过滤等,然而对于高维数据的分类问题,目前的研究结果和技术还很少,高维数据分类存在许多研究问题需要解决,因此,针对高维数据分类展开研究,主要考虑多噪音属性的高维数据分类问题、多领域转移学习问题、多类标学习问题、多实例多类标学习问题,提出系列算法来解决这四个研究问题,

随机森林是一种高效的分类方法,但是基于随机采样的随机森林方法不能有效处理高维数据的子空间选择问题,因此,本章提出了一种新的分层抽样子空间选择方法,该方法结合了强属性集和弱属性集进行随机森林子空间采样,实验结果证明,分层随机森林方法能够比其他随机森林算法获得更好的分类性能,为高维数据分类提供了一种有效的方法,针对多噪音属性的高维数据分类问题提出了基于分层抽样的随机森林算法,通过总结多噪音属性的高维数据分类研究问题,以及分析随机采样子空间选择方法不足的基础上,提出了研究的分层抽样子空间选择方法,文中针对具体不同的高维数据分类问题,提出了相应的分层抽样随机森林算法,针对多噪音属性的高维数据分类,提出了srf算法,该方法能够有效处理基因、图像等高维数据分类;针对不平衡文本数据分类,提出了forestexter算法,该方法有效提高不平衡数据中小类类别的分类精度;针对全基因组数据分析,提出了gwa-srf算法,该方法避免了穷举搜素最优子空间大小的计算代价,同时能够自动计算属性重要性和发现与研究疾病相关的重要属性,

随机森林(randomforest)是一个基于子空间选择构建多个决策树分类器的集成学习方法,大量实验研究已经证明,与传统的决策树等分类算法相比,随机森林具有更强的泛化能力和更好的分类效果,随机森林在生物信息学]和计算机视觉等领域有着广泛的应用,随机森林算法的优化理论研究[80–82]和应用研究已经成为当前数据挖掘的研究热点,随机森林的一个核心步骤是对于每个节点选择不同的属性子空间来构建决策树,目前,研究学者已经提出了不同的子空间选择方法,其中随机选择子空间的策略是最常用的方法,随机森林的分类性能取决于每个决策树的分类准确度,以及多个决策树之间的分类多样性,breiman分析了随机森林的分类误差,证明了其分类性能

取决于多个决策树的平均强度和平均相关度,breiman指出随机森林的泛化误差等于决策树平均强度除以平均相关度的平方,高维数据大部分的属性可能与待分类的类别不相关,随机的方法所选择的许多子空间可能并不包含有信息的属性,因此,基于这些子空间中生成的决策树可能会导致其平均强度的减少,从而增加了随机森林的泛化误差界,本章的目的是提出一种分层采样的方法来选择属性子空间,该方法主要是针对高维数据的,其基本思想是引入一个分层变量对数据集的特征属性划分为两组:一组包含强信息的属性,另一组包含弱信息的属性,然后,从每组属性集中各自随机选择一部分属性,以确保能够包含每个属性组有代表性的属性,这种方法可以保证对高维数据选择子空间时,每个子空间能够包含足够的有信息属性,从而提高随机森林对于高维数据的分类性能,

综上所述,特别需要高维数据的分类算法,以满足社会发展的需求。



技术实现要素:

本发明的目的是提供高维数据的分类算法,节点间的类标传递模式能够有效地对多类标数据进行分类,并且自动发现类标之间的关系,在多类标数据上的实验结果表明ml-tree算法的分类结果明显优于传统算法。

本发明为解决其技术问题所采用的技术方案是:

本发明提供了高维数据的分类算法:包含有随机森林算法、forestexter算法、gw-srf算法;

随机森林是一种决策树集成学习模型,随机森林的算法流程可以描述如下:

1).首先用bagging抽样方法对训练数据集x进行可放回的采样(samplewithreplacement),得到k个数据子集{x1,x2,...,xk};

2).对于每一个训练数据子集xk,使用cart[91]方法构建一个决策树,对于决策树的每个节点,随机从属性空间s中选择p个属性(p≤n)作为一组属性子集(属性子空间),然后根据这p个属性,计算其所有的分裂点的gini值,其中,最好的分裂点(即最大的gini准则)将选取作为决策树节点的分裂点,该分裂过程一直迭代直到能够满足停止条件:即所有训练样本都属于同一个类别,或者所有属性都是相同的值,或者训练数据集包含的样本数已经少于设定的阀值nmin;

3).随机森林中的k个决策树h1(x1),h1(x1),h1(x1),h1(x1)都按不剪枝的方式构建,随机森林的分类输出类别由k个决策树集成在一起输出的类别的众数而定;

在理论分析方面,breiman提出了随机森林的误差界,该误差界是由多样性correlation(ρ)和强度strength(s)两个因素决定的,假设x代表训练数据集y代表学习类标,随机森林的树的数目为k,基于从训练集x抽样得到的xk构建的第k个决策树为hx(xk),给定xi∈x,xi关于类别j的out-of-bag值为

其中i(·)是指示函数,q(xi,j)代表的是没有包含样本xi的决策树中将xi划分为类标

j的比例,根据q(xi,j),随机森林的强度可以定义如下:

其中n代表样本数,yi代表xi的真实类标,随机森林的相关性可以定义如下:

其中

以及

这里,代表除了正确的类别外得到最多票数的类别,根据随机森林的强度s以及相关度ρ,可以估计其out-of-bag误差界c/s2,计算公式为c/s2=ρ/s2。

优选的,forestexter算法文本数据通常用bagofwords模型来表示,每一个文本样本表示为一个特征词向量,每一个属性是一个特征词,一个文本样本中只包含一部分少量的特征词,因此,文本数据是高维稀疏的,在处理高维稀疏的文本数据时,大部分特征词是不出现不相关的,因此需要使用特征选择的方法选择与样本相关的特征词,现有研究表明,特征选择方法能够有效提高knn,llsf和naivebayes算法对高维文本数据的分类精度,yang和pedersen实验分析了informationgain(ig),mutualinformation(mi),和χ2statistics等多种基于文本数据的特征选择方法;

假设t是一个包含n个属性(特征词){t1,t2,...,tn}的属性集,c是一个两类分类问题的正类,a1代表特征词ti和类别c共同出现的次数,a4代表两者ti和c没有共现的次数,a2代表ti出现时候c没有出现的次数,a3代表类别c出现时候ti没有出现的次数,

根据上述(a1,a2,a3,a4)的值,可以将特征词分成两组(一组包含正例属性,另一组包含负例属性),给定一个特征词ti,(a1,a2,a3,a4)代表ti和类标属性y的关系,可以定义如下指示函数sign(ti,c)来判定特征词ti是正例属性还是负例属性:

当a1a4-a2a3≥0时候,该指示函数的值为正,否则为负,在文献[109]中,zheng等人结合正例属性和负例属性对不平衡文本数据进行分类,得到了较好的分类效果,进一步提出了基于正例属性和负例属性分布进行分层抽样的方法,该方法使用χ2

统计的方法计算正例属性和负例属性的分布,具体地,特征词ti相对于类别c的χ2统计可以形式化地定义如下:

其中n是所有文本样本数量,基于正例属性和负例属性的χ2分布,可以将属性集t划分为两个子集:tp和tn(针对类别c),使得t=tp∪tn以及满足:

tp={ti∈t|sign(ti,c)ispositive}

以及

tn={ti∈t|sign(ti,c)isnegative}

假设np代表tp的属性数量,nn代表tn的属性数量,则所有属性的数量n=np+nn,假设tp中属性为{t1,t2,...,tnp},tn中属性为{tnp+1,...,tnp+nn};

定义一个非负φ函数作为评价特征词ti相对于类别c的信息量,φ可以用χ2公式计算,根据φ的计算值,我们可以对正例属性ti∈tp的φi值进行归一化;

另一方面,负例属性的φ的归一化如下:

归一化后θi的值范围在0到1之间,基于归一化后所得到的权重值,可以对不同特征值根据不同权重值分别对待,其中,权重越大代表该属性与分类任务的相关性越强,在使用分层抽样方法选择一个大小为mtry(>1)的属性子空间是,我们根据属性的权重值分别从正属性集tp和负属性集tn中进行加权选择,其中,从tp和tn中选择的属性数量与它们的大小成正比,即从tp中选择mtrys=mtry×npn个属性,并且从tn中选择mtryn=mtry-mtrys个属性,然后将选择的属性合并作为随机森林节点中的属性子空间,

基于分层抽样的属性子空间选择方法能够保证子空间中包含来自正属性集合负属性集合的重要属性,基于分层抽样属性子空间选择的过程如下:

(i)将属性集t划分为正属性集tp和负属性集tn;

(ii)使用χ2统计作为φ函数计算各个特征词的权重值,对tp和tn中属性根据其φ值分别进行归一化;

(iii)从tp加权抽样mtrys=mtry×npn个属性,从tn加权抽样mtryn=mtry-mtrys个属性,然后合并所选择的属性作为随机森林节点上的属性子空间,其中子空间大小为mtry=mtryp+mtryn。

优选的,基于分层抽样的子空间选择方法首先把属性集分成多个属性子集,假设属性子集的数量为:

gtry,在每个属性子集中选择的属性数量为vtry,其中vtry=log2n+1,假设属性集包含n个特征属性{x1,x2,...,xn},属性集用a表示,y是类别属性,考虑一个非负函数φi,该函数度量属性xi相对于类别y的信息值,使用χ2统计或信息增益计算φ,χ2统计和信息增益可以形式化地定义如下:

其中,o(x,y)和e(x,y)是x=x和y=y共现的观察值和期望值;

其中p(x)和p(y)是先验概率值,p(y|x)是y=y和a=x的条件概率,然后根据φi的值归一化并计算θi,使其取值范围在0到1之间;

归一化后的θi值作为属性xi在属性集a中的相对信息值;

我们通过设计一种等宽信息量的离散散化方法将属性集a划分为多个属性子集a1∪a2∪...∪agtry=a,其中属性子集的数量为gtry,每个子集中包含的属性信息和是等量的,每个属性xi划分到一个分组中,使得假设分层抽样方法选择属性子空间时,可以从每个属性子集选择vtry个属性,然后合并所选择的属性组成一个大小为mtry=gtry×vtry的属性子空间,其中,设置vtry为默认值log2n+1,从而保证从每个属性子集中都抽取一定数量的属性。

优选的,分层抽样的子空间选择与子空间多样性假设a是一组包含n个属性的属性集{a1,a2,···,an},用属性空间s来描述,设y是类别属性,可以用一个非负函数φ来衡量类别属性y与输入属性ai之间信息值:

其中,θi是属性ai在整个属性集a中的相对信息值,它的值在0和1之间,如果θi的值大(小),代表ai是强(弱)信息的属性,基于θi的值,将属性集a划分为两个分组as和aw,划分步骤如下:(i)根据{θi}值对属性集a进行降序排列;(ii)设定一个α阀值将属性集a划分为两个分组,a=as∪aw,其中以及as={ai∈a|θi<α}andaw={ai∈a|θi≥α},将属性集a划分为as和aw后,使用分层抽样的方法分别从两个分组中随机选择属性构成一个属性子空间,子空间所包含属性数量为p(>1),从as和aw中分别选择的属性的数量与as与aw所包含的属性数量成正比,也就是说,随机从强属性集as中选择ps=p×nsn个属性,其中ns是强属性集aw的属性数量而n是所有属性的数量,同时,从弱属性集aw中选择pw=p-ps个属性,然后,合并所选择的p个属性作为决策树节点中所用的属性子空间集,对于包含大量无信息噪音属性的高维数据来说,分层抽样的方法子空间选

择能够比完全随机的子空间选择方法获得更加准确的建树效果,接下来对分层抽样选择的子空间多样性进行分析研究,假设as和aw中包含的属性数量分别为ns和nw,并且ns+nw=n,其中n是整个属性集a中的属性数量,从as中选择ps个属性,不同的选择组合数为

而从aw中选择pw个属性,不同的选择组合数为:

通过从as和aw中随机选择属性构建属性子空间,子空间的多样性c代表不同子空间组合数,可以用通过以下公式计算:

如果ns<<n,子空间的多样性可以表示为

上述公式表明,子空间的多样性随着p和ps增加而增加,分层抽样的方法能够保证足够的子空间多样性,例如假设所有的属性数量是n=100,强信息属性的数量为ns=50,如果选择的子空间属性数量为10,其中强信息属性的数量为5,那么不同的子空间的数量会有40亿,如果选择的子空间属性数量为p=int(log2(n)+1)=7(如文献[75]中的建议值),其中int(x)是大于x的第一个整数值,那么不同的子空间的数量也将达到有3亿。

优选的,多变量决策树由于cart决策树所使用的单变量gini分裂准则不能有效的处理不平衡文本数据,采用多变量分裂准则的多变量决策树作为构建随机森林的基础分类器,传统随机森林使用的单变量决策树分类器产生的是于数据空间垂直的决策平面,而多变量决策树能够产生的是于数据空间倾斜的(任意方向)决策平面;

选择svm的主要原因是现有研究已经表明svm方法能够有效地处理文本数据,在文本数据上有较好的分类效果,采用svms作为多变量分裂准则构建多变量分类器主要有两方面的优点,一方面是svm能够处理高维数据,svm能够不受数据维度的影响,结合svm的随机森林算法能够在处理高维数据上有更好的泛化能力,另一方面,大部分文本分类问题是线性可分的[113],而svm是处理线性可分的文本数据上有很好的性能;

在多变量决策树的每个节点中,通过构建一个svm分类器来学习一个将数据划分到子节点的决策平面,每个数据样本根据svm分类器的结果划分到相关性最大的子节点上,对未知类别的测试样本进行分类时,每个多变量决策树输出该样本与类别的相关概率结果,该相关概率值由从根节点到叶子节点的决策路径上每个svm分类器的分类概率输出结果联合计算产生,具体而言,假设n该决策路径上的节点集合,probn(xific)是节点n上样本xi对学习类别c的分类概率输出结果,则多变量决策树对测试样本xi的概率输出结果为

forestexter方法是集成多个多变量决策树的随机森林方法,假设训练数据集为d,属性集t={t1,t2,...,tn}包含n个特征词,forestexter的算法流程如下所示:

1.将属性集t划分为正属性集tp和负属性集tn;

2.用bagging抽样方法生成k个数据子集{d1,d2,...,dk};

3.每一个子集di,构建一个多变量决策树hi(di),在每个节点中,首先忽略样本中没有出现的特征词,从出现的特征词中加权抽样mtry(>1)个特征词,其中mtryp个正属性,mtryn个负属性;在每个节点上学习一个svm分类器将样本划分到子节点,递归上述过程直到满足以下停止条件:所有数据的类标都相同或者所有数据的svm分类结果都相同;

4.将k个未剪枝多变量决策树h1(d1),h2(d2),...,hk(dk)合并集成为随机森林,使用集成投票方法做分类决策;

假设数据集大小为m,属性数量为n,计算代价为o(mn),构建多变量决策树分类器需要在每个节点上学习一个svm分类器,svm分类的计算复杂度为o(m3),基于svm实现计算代价接近o(m2),其中m是节点中训练样本数量m<<m,假设多变量决策树的高度为h,则决策树的节点数量为o(2h)(假设决策树为二叉树),因此,构建多变量决策树的计算代价为o(m22h)≈o(m22h),通常情况下,h大约等于o(√m),因此,构建一个svm多变量决策树的代价为o(m22√m),构建包含k个决策树的随机森林的代价为o(km22√m)。

本发明的优点在于,层次树中每个节点都能进行学习和多类标预测,父节点学习的预测类标可以传递和继承给子节点,节点间的类标传递模式能够有效地对多类标数据进行分类,并且自动发现类标之间的关系。在多类标数据上的实验结果表明ml-tree算法的分类结果明显优于传统算法,设计新颖,是一项很好的设计方案,很有市场推广前景,而且感观性能优。

附图说明

下面结合附图和具体实施方式来详细说明本发明:

图1是本发明的模块图;

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合图示与具体实施例,进一步阐述本发明,

参见图1,本发明本发明提供了高维数据的分类算法:包含有随机森林算法、forestexter算法、gw-srf算法;

随机森林是一种决策树集成学习模型,随机森林的算法流程可以描述如下:

1).首先用bagging抽样方法对训练数据集x进行可放回的采样(samplewithreplacement),得到k个数据子集{x1,x2,...,xk};

2).对于每一个训练数据子集xk,使用cart[91]方法构建一个决策树,对于决策树的每个节点,随机从属性空间s中选择p个属性(p≤n)作为一组属性子集(属性子空间),然后根据这p个属性,计算其所有的分裂点的gini值,其中,最好的分裂点(即最大的gini准则)将选取作为决策树节点的分裂点,该分裂过程一直迭代直到能够满足停止条件:即所有训练样本都属于同一个类别,或者所有属性都是相同的值,或者训练数据集包含的样本数已经少于设定的阀值nmin;

3).随机森林中的k个决策树h1(x1),h1(x1),h1(x1),h1(x1)都按不剪枝的方式构建,随机森林的分类输出类别由k个决策树集成在一起输出的类别的众数而定;

在理论分析方面,breiman提出了随机森林的误差界,该误差界是由多样性correlation(ρ)和强度strength(s)两个因素决定的,假设x代表训练数据集y代表学习类标,随机森林的树的数目为k,基于从训练集x抽样得到的xk构建的第k个决策树为hx(xk),给定xi∈x,xi关于类别j的out-of-bag值为

其中i(·)是指示函数,q(xi,j)代表的是没有包含样本xi的决策树中将xi划分为类标

j的比例,根据q(xi,j),随机森林的强度可以定义如下:

其中n代表样本数,yi代表xi的真实类标,随机森林的相关性可以定义如下:

其中

以及

这里,代表除了正确的类别外得到最多票数的类别,根据随机森林的强度s以及相关度ρ,可以估计其out-of-bag误差界c/s2,计算公式为c/s2=ρ/s2。

优选的,forestexter算法文本数据通常用bagofwords模型来表示,每一个文本样本表示为一个特征词向量,每一个属性是一个特征词,一个文本样本中只包含一部分少量的特征词,因此,文本数据是高维稀疏的,在处理高维稀疏的文本数据时,大部分特征词是不出现不相关的,因此需要使用特征选择的方法选择与样本相关的特征词,现有研究表明,特征选择方法能够有效提高knn,llsf和naivebayes算法对高维文本数据的分类精度,yang和pedersen实验分析了informationgain(ig),mutualinformation(mi),和χ2statistics等多种基于文本数据的特征选择方法;

假设t是一个包含n个属性(特征词){t1,t2,...,tn}的属性集,c是一个两类分类问题的正类,a1代表特征词ti和类别c共同出现的次数,a4代表两者ti和c没有共现的次数,a2代表ti出现时候c没有出现的次数,a3代表类别c出现时候ti没有出现的次数,

根据上述(a1,a2,a3,a4)的值,可以将特征词分成两组(一组包含正例属性,另一组包含负例属性),给定一个特征词ti,(a1,a2,a3,a4)代表ti和类标属性y的关系,可以定义如下指示函数sign(ti,c)来判定特征词ti是正例属性还是负例属性:

当a1a4-a2a3≥0时候,该指示函数的值为正,否则为负,在文献[109]中,zheng等人结合正例属性和负例属性对不平衡文本数据进行分类,得到了较好的分类效果,进一步提出了基于正例属性和负例属性分布进行分层抽样的方法,该方法使用χ2

统计的方法计算正例属性和负例属性的分布,具体地,特征词ti相对于类别c的χ2统计可以形式化地定义如下:

其中n是所有文本样本数量,基于正例属性和负例属性的χ2分布,可以将属性集t划分为两个子集:tp和tn(针对类别c),使得t=tp∪tn以及满足:

tp={ti∈t|sign(ti,c)ispositive}

以及

tn={ti∈t|sign(ti,c)isnegative}

假设np代表tp的属性数量,nn代表tn的属性数量,则所有属性的数量n=np+nn,假设tp中属性为{t1,t2,...,tnp},tn中属性为{tnp+1,...,tnp+nn};

定义一个非负φ函数作为评价特征词ti相对于类别c的信息量,φ可以用χ2公式计算,根据φ的计算值,我们可以对正例属性ti∈tp的φi值进行归一化;

另一方面,负例属性的φ的归一化如下:

归一化后θi的值范围在0到1之间,基于归一化后所得到的权重值,可以对不同特征值根据不同权重值分别对待,其中,权重越大代表该属性与分类任务的相关性越强,在使用分层抽样方法选择一个大小为mtry(>1)的属性子空间是,我们根据属性的权重值分别从正属性集tp和负属性集tn中进行加权选择,其中,从tp和tn中选择的属性数量与它们的大小成正比,即从tp中选择mtrys=mtry×npn个属性,并且从tn中选择mtryn=mtry-mtrys个属性,然后将选择的属性合并作为随机森林节点中的属性子空间,

基于分层抽样的属性子空间选择方法能够保证子空间中包含来自正属性集合负属性集合的重要属性,基于分层抽样属性子空间选择的过程如下:

(i)将属性集t划分为正属性集tp和负属性集tn;

(ii)使用χ2统计作为φ函数计算各个特征词的权重值,对tp和tn中属性根据其φ值分别进行归一化;

(iii)从tp加权抽样mtrys=mtry×npn个属性,从tn加权抽样mtryn=mtry-mtrys个属性,然后合并所选择的属性作为随机森林节点上的属性子空间,其中子空间大小为mtry=mtryp+mtryn。

优选的,基于分层抽样的子空间选择方法首先把属性集分成多个属性子集,假设属性子集的数量为:

gtry,在每个属性子集中选择的属性数量为vtry,其中vtry=log2n+1,假设属性集包含n个特征属性{x1,x2,...,xn},属性集用a表示,y是类别属性,考虑一个非负函数φi,该函数度量属性xi相对于类别y的信息值,使用χ2统计或信息增益计算φ,χ2统计和信息增益可以形式化地定义如下:

其中,o(x,y)和e(x,y)是x=x和y=y共现的观察值和期望值;

其中p(x)和p(y)是先验概率值,p(y|x)是y=y和a=x的条件概率,然后根据φi的值归一化并计算θi,使其取值范围在0到1之间;

归一化后的θi值作为属性xi在属性集a中的相对信息值;

我们通过设计一种等宽信息量的离散散化方法将属性集a划分为多个属性子集a1∪a2∪...∪agtry=a,其中属性子集的数量为gtry,每个子集中包含的属性信息和是等量的,每个属性xi划分到一个分组中,使得假设分层抽样方法选择属性子空间时,可以从每个属性子集选择vtry个属性,然后合并所选择的属性组成一个大小为mtry=gtry×vtry的属性子空间,其中,设置vtry为默认值log2n+1,从而保证从每个属性子集中都抽取一定数量的属性。

优选的,分层抽样的子空间选择与子空间多样性假设a是一组包含n个属性的属性集{a1,a2,···,an},用属性空间s来描述,设y是类别属性,可以用一个非负函数φ来衡量类别属性y与输入属性ai之间信息值:

其中,θi是属性ai在整个属性集a中的相对信息值,它的值在0和1之间,如果θi的值大(小),代表ai是强(弱)信息的属性,基于θi的值,将属性集a划分为两个分组as和aw,划分步骤如下:(i)根据{θi}值对属性集a进行降序排列;(ii)设定一个α阀值将属性集a划分为两个分组,a=as∪aw,其中以及as={ai∈a|θi<α}andaw={ai∈a|θi≥α},将属性集a划分为as和aw后,使用分层抽样的方法分别从两个分组中随机选择属性构成一个属性子空间,子空间所包含属性数量为p(>1),从as和aw中分别选择的属性的数量与as与aw所包含的属性数量成正比,也就是说,随机从强属性集as中选择ps=p×nsn个属性,其中ns是强属性集aw的属性数量而n是所有属性的数量,同时,从弱属性集aw中选择pw=p-ps个属性,然后,合并所选择的p个属性作为决策树节点中所用的属性子空间集,对于包含大量无信息噪音属性的高维数据来说,分层抽样的方法子空间选

择能够比完全随机的子空间选择方法获得更加准确的建树效果,接下来对分层抽样选择的子空间多样性进行分析研究,假设as和aw中包含的属性数量分别为ns和nw,并且ns+nw=n,其中n是整个属性集a中的属性数量,从as中选择ps个属性,不同的选择组合数为

而从aw中选择pw个属性,不同的选择组合数为:

通过从as和aw中随机选择属性构建属性子空间,子空间的多样性c代表不同子空间组合数,可以用通过以下公式计算:

如果ns<<n,子空间的多样性可以表示为

上述公式表明,子空间的多样性随着p和ps增加而增加,分层抽样的方法能够保证足够的子空间多样性,例如假设所有的属性数量是n=100,强信息属性的数量为ns=50,如果选择的子空间属性数量为10,其中强信息属性的数量为5,那么不同的子空间的数量会有40亿,如果选择的子空间属性数量为p=int(log2(n)+1)=7(如文献[75]中的建议值),其中int(x)是大于x的第一个整数值,那么不同的子空间的数量也将达到有3亿。

基于分层抽样方法所提出的分层随机森林算法(stratifiedrandomforest或者srf)可以总结如下:

1.对于每一个属性ai,用一个非负计算函数φ计算ai的信息值φi,然后将所得的值根据公式2-1归一化得到θi;

2.指定一个分层划分阀值α将属性集a划分为两个分组as和aw;

3.使用bagging方法[91]产生k个训练数据子集{x1,x2,...,xk};

4.根据每个训练数据子集xi构建一个决策树分类器hi(xi)。在每个节点中,根据比例分别从as和aw中随机抽取属性构成一个大小为p(>1)的属性子空间。基于子空间的属性值得到一个布尔测试函数τ将训练数据划分为左孩子节点与右孩子节点。迭代该过程直到满足以下停止条件:所有的数据都是属于同一个类别,或者每个属性都有相同的值,或训练数据数量小于一个最小值nmin;

5.集成k个未剪枝的决策树分类器h1(x1),h2(x2),...,hk(xk)成为一个随机森林,使用多个决策树集成投票策略作为随机森林的分类决策方法。

在srf算法中,用一个信息函数φ来评价一个属性的信息值。一个属性ai的信息量φi可以使用fisher判别方法来计算,将训练数据往特征空间上最佳方向进行投影,即基于类别属性y和输入属性x=(x1,...,xn)计算s=wtx,其中w=(w1,...,wn)代表投影的权重。当一个属性对于分类重要(不重要)的时候,对应会得到大(小)的权重值。因此使用wi的绝对值作为特征ai的信息值φi[94]。

根据φi和归一化后得到的θi值,可以通过使随机森林泛化误差最小化的策略pe*≤-ρ(1-s2)/s2[75]来计算分层划分的参数阀值α。为了提高计算效率,srf采用了{θi}的平均值作为分层划分的阀值。

在随机森林中,每个决策树分类器都是自顶而下的方式构建。在每一个节点,通过分层采样方法选择子空间,然后基于子空间属性的值得到一个布尔测试值wtx≤τ或wtx>τ将训练数据集分裂到孩子节点上,其中τ是不同类别的训练样本在投影后的平均值,也就是τ=1cc∑i=1~mi,其中c是类别数量,~mi是类别为ci的样本投影后的均值。

综上所述,srf算法中共有三个参数:属性子空间大小p,决策树数量k,节点最少训练样本数(nmin)。在文献[75]中,k通常设为100,nmin设为1。对于高维数据,需要构建更多决策树分类器来获得更优分类结果,因此使用k=500,nmin=1作为srf算法默认参数设置。子空间大小p是一个调整随机森林模型所构建的决策树强度和随机性的控制参数,如果p=n,子空间包含数据集所有属性,每个决策树等价于传统cart决策树分类器,产生的决策树之间的多样性最小。如果p=1,得到的是完全随机的决策树分类器。在文献[75]中,breiman建议使用p=int(log2n+1),其中int(x)指第一个大于x的整数。在本章实验中,将分析研究不同p参数值设置对于算法性能的影响。

假设有m个训练样本,n个特征属性,以及子空间大小为p(p<<n)。在最坏的情况下,使用多变量lda作为分裂策略构建一个决策树分类器的计算复杂度为o(pm2)。如文献[75]中设置子空间大小p=int(log2n+1),则所需计算复杂度为o(log(n)m2)。更确切地说,需要在每个节点上计算一个训练数据集为m′×p的最小二乘结果,使用文献[95]中介绍的线性计算方法的复杂度为o(pm′),其中m′是在节点中的训练样本的数量。粗略地说,构建决策树中同一层的所有树节点的计算复杂度为o(log(n)m)。假设树的高度为h,构建整个决策树的复杂度为o(log(n)mh)。在所构建的决策树结构极度不平衡的特殊情况下,树的高度h≈o(m),对应构建树的复杂度为o(log(n)m2)。对于一个平衡的决策树h≈o(logn),则构建树的复杂度为o(log(nn)m)。

在srf算法中,构建决策树分类器前需要先对属性进行分层划分,也可以在每一个节点中重新计算强/弱属性的值。该过程代表每个节点上属性的强/弱特质,通过学习每个节点上的训练数据的新分布特征得到新的分层属性划分。值得注意的是,每个节点上重新计算分层划分需要增加额外的计算复杂度o(m′n),其中m′是节点中训练样本数量。

对于高维数据,在随机森林构建决策树分类器前对特征属性集预先进行分层划分能够保证算法高效性。但这种预先计算方法并不能有效处理属性之间的相互作用,每一个节点上进行数据分裂后,属性的信息值会因为相互作用而发生变化。预计算分层划分的方法忽视了这种相互作用和信息值更新的要素。由于每个属性的信息值在建树过程的不同节点上是不断更新变化的,而每个节点上的分层抽样还是使用预先计算的信息值来选择子空间。因此,这种方法导致随机森林的性能下降。一种非常直观而且有用的解决方法来解决这个问题就是在每个节点的数据分裂后重新计算属性的信息值,然后将属性划分强/弱信息分组。在本章实验中,对预先计算属性分组和重复计算属性分组这两种不同的策略对srf算法的影响进行实验对比,实验的结果说明了这两种方法的优缺点。

为验证本章提出的分层抽样随机森林srf算法的性能,选取了9个人工数据集、12个基因数据集和4个图像数据集进行实验。这些数据集都是高维数据。最近garuana等[1]在多个标准数据上对不同的分类算法(svm,ann,lr,nb,knn,rf,bagging,boostedtrees,prc)进行了对比实验。实验结果表明支持向量机svm和随机森林rf是性能最好、泛化能力最强的两个算法。因此,实验使用的对比方法包括svm、最近邻(nn)、朴素贝叶斯(nb)以及不同的随机森林方法randomforest(rf)、extremelyrandomizetree(ert)、enrichrandomforest(enrich-rf)和obliquerandomforest(oblique-rf)。

下面介绍实验中不同算法的参数设置:svm使用libsvm1的线性核实现作为核函数,其中线性核的正则参数c的选择范围从2-5到215,实验中通过交叉验证选择c的最优值。对于不同的随机森林算法,在构建决策树集成时,使用cart作为决策树方法,构建的树数目为500,选择的子空间的属性数目为log2n+1。另外,对于不同的子空间属性数目、树深度、建树数目选择的影响也都进行了实验分析。对于最近邻方法,使用余弦距离作为距离公式。朴素贝叶斯方法的实现使用的是iccv图像分类的开源代码2。

实验使用错误率err(testerror)和roc曲线下面积auc(areaundertheroccurve)作为算法的性能验证指标。auc的定义是针对两类分类问题的,hand和till[96]提出auc的在多类问题的计算方法。多类auc由多个两类auc的来计算,其计算公式定义如下:

其中|c|表示的是类别的数目,auc(ci,cj)是ci和cj两类auc的结果。

实验中所用的人工高维数据集由有信息属性和大量噪音属性构成。我们基于uci标准数据集构建人工数据集。所构建的人工数据集包含a和b两部分属性。a表示uci标准数据集的原有属性集,b代表人工生成的噪音属性集。在实验中,通过改变b所包含的噪音属性数量从而考虑不同的噪音属性的影响。具体的,噪音属性集b通过参数k来控制:|b|=k|a|,噪音属性b随着k增大而增加。

本实验所用人工数据,随机抽取90%作为训练集,剩下的10%作为测试集。基于训练集可以估计随机森林的out-of-bag强度、相关度、误差界,基于测试集可以计算不同算法的错误率err和roc下面积auc。

在本实验中,通过分层抽样随机森林(stratified-rf或srf),传统随机森林(randomforest或rf),完全随机森林(extremely-rt或ert)三种方法的比较来验证srf算法在人工数据集上的性能。三种算法的out-of-bag强度(strength)与不同噪音属性数量,x-轴代表生成噪音属性数量的乘积因子k,y-轴代表随机森林的分类强度。当数据集所包含的噪音属性较少时,三种不同随机森林方法的强度值非常接近。但是随着噪音属性的增加,rf方法与ert方法的强度值迅速地降低。而提出的分层抽样随机森林方法能够保持稳定的分类强度。分层随机森林方法能够有效地提高随机森林的强度并且保持较好的相关度。不同随机森林算法在四个人工数据集上3的误差界。看出几乎所有的srf方法的误差界都比rf和ert方法的误差界要低。随着噪音数据的增加,srf的误差界并没有显著变化。图中结果表明了srf方法能够有效降低高维数据的随机森林的误差界。不同随机森林算法的错误率的结果。结果可以看到srf方法能够在高维数据上获得比传统随机森林更优的分类性能,而且分类性能的提高随着噪音数据的增加而逐渐增大。

基因数据是常见的高维数据,并且基因数据往往包含大量噪音属性却只有非常少量的训练样本。本实验所采用的12个标准基因数据集所示。表中数据集分为两部分,第一部分包括四个两类分类问题,第二部分包含八个多类分类问题。这12个数据集有2至26个不同类别,60至308个样本以及2000至16,063个特征属性。这些基因数据的特征数目是样本数目的数倍。

在本实验中,随机森林子空间的属性数目p是通过乘积因子k来控制的。实验中子空间的属性数目设定为p=k(log2n+1),其中k取值范围从5到50以5为单位不断增加。实验中比较了三种不同随机森林算法在不同子空间大小p的取值,可以看出srf方法的比rf方法和ert方法有更好的auc结果。由此可见,srf方法能够在高维基因数据上有较好的分类性能,并且在不同的子空间大小条件下都能获得比rf方法和ert方法更优的结果。

优选的,多变量决策树由于cart决策树所使用的单变量gini分裂准则不能有效的处理不平衡文本数据,采用多变量分裂准则的多变量决策树作为构建随机森林的基础分类器,传统随机森林使用的单变量决策树分类器产生的是于数据空间垂直的决策平面,而多变量决策树能够产生的是于数据空间倾斜的(任意方向)决策平面;

选择svm的主要原因是现有研究已经表明svm方法能够有效地处理文本数据,在文本数据上有较好的分类效果,采用svms作为多变量分裂准则构建多变量分类器主要有两方面的优点,一方面是svm能够处理高维数据,svm能够不受数据维度的影响,结合svm的随机森林算法能够在处理高维数据上有更好的泛化能力,另一方面,大部分文本分类问题是线性可分的[113],而svm是处理线性可分的文本数据上有很好的性能;

在多变量决策树的每个节点中,通过构建一个svm分类器来学习一个将数据划分到子节点的决策平面,每个数据样本根据svm分类器的结果划分到相关性最大的子节点上,对未知类别的测试样本进行分类时,每个多变量决策树输出该样本与类别的相关概率结果,该相关概率值由从根节点到叶子节点的决策路径上每个svm分类器的分类概率输出结果联合计算产生,具体而言,假设n该决策路径上的节点集合,probn(xific)是节点n上样本xi对学习类别c的分类概率输出结果,则多变量决策树对测试样本xi的概率输出结果为

forestexter方法是集成多个多变量决策树的随机森林方法,假设训练数据集为d,属性集t={t1,t2,...,tn}包含n个特征词,forestexter的算法流程如下所示:

1.将属性集t划分为正属性集tp和负属性集tn;

2.用bagging抽样方法生成k个数据子集{d1,d2,...,dk};

3.每一个子集di,构建一个多变量决策树hi(di),在每个节点中,首先忽略样本中没有出现的特征词,从出现的特征词中加权抽样mtry(>1)个特征词,其中mtryp个正属性,mtryn个负属性;在每个节点上学习一个svm分类器将样本划分到子节点,递归上述过程直到满足以下停止条件:所有数据的类标都相同或者所有数据的svm分类结果都相同;

4.将k个未剪枝多变量决策树h1(d1),h2(d2),...,hk(dk)合并集成为随机森林,使用集成投票方法做分类决策;

假设数据集大小为m,属性数量为n,计算代价为o(mn),构建多变量决策树分类器需要在每个节点上学习一个svm分类器,svm分类的计算复杂度为o(m3),基于svm实现计算代价接近o(m2),其中m是节点中训练样本数量m<<m,假设多变量决策树的高度为h,则决策树的节点数量为o(2h)(假设决策树为二叉树),因此,构建多变量决策树的计算代价为o(m22h)≈o(m22h),通常情况下,h大约等于o(√m),因此,构建一个svm多变量决策树的代价为o(m22√m),构建包含k个决策树的随机森林的代价为o(km22√m)。

在实验中对比了forestexter与传统的随机森林算法(rf)和svm算法在三个不平衡文本数据集上的分类性能,其中,svm算法在文本分类中已经被广泛使用[8,113]。另外,还与基于采样方法的rf和svm方法进行了比较实验,包括使用下采样的随机森林(undersamplingrf)和过采样的svm(oversamplingsvm)。undersampling方法是通过删除大类类别的样本使得大类和小类的样本数量保持平衡,而oversampling方法是通过复制小类类别的样本使得大类和小类的样本数量保持平衡。

在实验中使用libsvm10的线性核svm算法实现。其中惩罚项c的取值范围从2-5到215,通过3-折交叉验证来选择最优的c值。在forestexter算法中,使用χ2统计作为分层抽样随机森林子空间的加权函数,每个节点中的线性核svm使用默认参数设置c=1.0。rf和forestexter中的其它参数采用文献[2]中的推荐参数设置,即决策树的数量为k=100,子空间的大小为mtry=n/10。

在不平衡数据分类中,分类正确率并不适合作为评价的指标。现有研究表

明,auc是不平衡数据和代价敏感问题的可靠评价指标[118],因此,实验中采用areaunderthereceiveroperatingcharacteristiccurve(auc)[119]作为不平衡数据的实验评价指标。

假设对于类别c的两类分类问题的输出为b(tp,fp)。其中tp(truepositive)代表了文档正确分类为c的比率

另一方面,fp(falsepositive)代表属于-c的文档被错误分类为c的比率

roc曲线是基于tp和fp的二维图。其中fp为x轴,tp为y轴。通过设置不同的分类决策阀值得到不同的b(tp,fp)结果,该结果对应图中的一个数据点。通过设置分类决策阀值的范围从-∞到+∞可以得到roc空间的roc曲线。theareaundertheroccurve(auc)可以用于评价学习算法的分类性能,auc作为一种可靠的评价指标,已经广泛地使用在不平衡分类问题上。

在简单随机抽样(rs)方法中,假设n代表所有属性数量,随机抽样的子空间大小为gtry

×vtry(与分层抽样的子空间大小相同)。随机采样的属性信息方差为:

其中

是总体信息的方法,θi是属性信息值,-θ是所有属性的信息均值。在分层抽样(ss)方法中,假设n1,n2,···,ngtry代表分层抽样中每个属性子集。分层抽样均值其中θh是第h个属性分组的信息均值。由于每个分组都是独立采样,采样的信息方差

其中在第h个分组中的信息方差,θh,i是第h个分组中第i个

属性信息值,第h个分组的信息均值,代表最大属性子集大小,可以得到:

以及

因此,两种采样方法(随机采样和分层采样)所得到的方差的差值为

由于每个属性子集选择属性数量一定比所有选择的属性数量少,所以公式中第二项总是正数。根据以上公式可得,gtry参数设定不能太大,否则公式中第一项可能为负数。另一方面,当gtry增大时,s2h和(-θh--θ)2的值变小。随机森林构建的时间也会增加。因此,设log2n+1为gtry的默认值。

针对多噪音属性的高维数据分类问题,提出了基于分层抽样的随机森林子空间选择方法。针对不同高维数据类型上的分类问题。通过随机森林为载体提出一系列的分层抽样随机森林算法。针对高噪音属性数据分类,提出了srf算法。该方法能够有效提高包含大量噪音属性的高维数据的分类精度。针对不平衡文本数据分类,提出了forestexter算法。该方法能够有效提高不平衡数据中小样本类别的分类精度。针对全基因组数据分析,提出了gwa-srf算法。该方法能够有效避免穷举搜素最优子空间大小的计算代价,并且自动计算属性重要性,发现与研究疾病相关的重要属性。这些方法的提出为高维数据分类带来更多更好的选择。

针对高维数据的多领域转移学习,提出了基于联合马尔可夫链的mt-learn算法。该算法通过构建相同样本空间内的样本相似性关系,以及不同样本空间之间的样本相似性关系,将所有样本关联在一个联合马尔可夫链的转移概率图中进行随机游走,最后得到一个稳态概率集合,该集合代表不同样本空间中各个学习任务的分类结果。从理论上分析证明了mt-learn算法解的存在性、唯一性以及求解算法收敛性。在图像和文本数据上的实验结果表明mt-learn算法能够在多领域转移学习问题上获得较好的分类精度。

针对多类标学习问题,提出了基于层次树模型的ml-tree算法。该算法的特点包括以下三方面:

1)层次树中每个节点都能进行学习和多类标预测;

2)父节点学习的预测类标可以传递和继承给子节点;

3)节点间的类标传递模式能够有效地对多类标数据进行分类,并且自动发现类标之间的关系。在多类标数据上的实验结果表明ml-tree算法的分类结果明显优于传统算法。

针对多实例多类标学习问题,提出了基于马尔可夫链模型的markov-miml算法。该算法通过实例与实例之间相似性关系,以及对象与实例之间从属关系进行学习,推衍出对象与对象之间相似性关系。算法中通过构建马尔可夫链模型将所有对象关联在一个马尔科夫链的转移概率图中进行随机游走,最后得到一个稳态概率分布。该分布代表多实例多类标对象的类标排序结果。从理论上分析了markov-miml算法解的存在性、唯一性以及求解算法收敛性。在图像和文本数据集上的实验结果表明markov-miml算法能够优于传统miml算法。总体而言,围绕多噪音属性的高维数据分类、多领域转移学习、多类标学习、多实例多类标学习这四个研究问题,提出了srf算法,mt-learn算法,ml-tree算法和markov-miml算法。的研究将推动高维数据分类研究的进一步发展,并且有望为高维数据研究带来新方向。以高维数据为研究对象,具体针对高维数据的分类问题展开研究。在多噪音属性的高维数据分类方面,考虑分层抽样的随机森林方法,提出srf算法;在多领域转移学习分类方面、提出mt-learn算法;在多类标分类方面,提出ml-tree算法;在多实例多类标分类方面,提出markov-miml算法。对于每个算法,结合相应的理论基础,从高维数据分类实际问题出发,提出相应的分类算法,研究算法的理论基础,结合两者给出解决方法。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点,本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内,本发明要求保护范围由所附的权利要求书及其等同物界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1