本发明涉及计算机人工智能领域,具体涉及对带噪音标签的高维数据的样本维和属性维进行深度数据挖掘的渐进式集成分类方法。
背景技术:
集成学习作为机器学习的一个重要分支,应用于数据挖掘、智能交通系统、生物信息学、模式识别等领域,获得了越来越多研究者的关注。相对于单一分类器,集成学习方法可以集成不同情况下的多个分类器,成为一个统一的分类器。这类集成分类器具有稳定性、鲁棒性和高准确率的特点。总而言之,集成分类器由于出色的表现,已经成功地运用在不用的领域中。
但是,传统的集成学习方法主要是把样本维和属性维分开来进行研究,并没有对其进行整体的研究。例如,bagging算法只对样本维进行研究,而randomsubspace算法只对属性维进行研究。这种只考虑样本维度或者只考虑属性维度的方法,不足以构建一个强大的集成分类器,并对带噪音的样本进行处理。例如,在某些数据集中,具有特征的样式存在某些属性维中,但对于其他数据集,同样的特征样式不能起到相同的效果。另一方面,在机器学习中,对于模式识别分类器,比较有效的方法是使用大量训练集来提高分类器的鲁棒性和准确率。在这个思想下,任务的结果非常依赖于训练样本的质量。但是在很多的实际任务中,获取大量的、高质量的样本是非常困难的。因此,对于该类不常见的样本,一段时间可能只可以获取部分的数据。在这种情况下,当新每获得新的训练样本时,非常需要在不改变原来的分类器的基础上加入新的训练样本,从而在不费劲的情况下提高系统的有效性。从知识管理(knowledgemanagemen,km)角度来看,在不修改之前模型的基础上加入新的数据进行运算,会出现常见的鲁棒性与可塑性的悖论:当使用新数据覆盖原来数据进行训练时,新的数据可能会缺失原有的一些模式。该理论指出了一个完全稳定的分类器会保持着现有的特性,但并不适用于新信息;一个完全可塑动态的系统会一直学习新的数据,但是丢失了之前原有的信息量。
比较常见的方法是把原来的训练数据和新数据组成新的训练集,重新训练新的分类器,去掉原来的旧的分类器。比较常见的算法有:kohonennetworks、waveletnetworks、radialbasisfunctionnetworks和multilayerperceptron。这种方法的优点是能够较好的提高系统的稳定性,但去掉了系统之前已获得的知识。该问题在学术界上称之为灾难性失忆(catastrophicforgetting)。进一步说,该方法在很多场景下并不适用。
技术实现要素:
本发明的目的是针对传统集成学习在分类器训练和集成方面的不足,提出了一种基于渐进式学习的集成分类方法,对高维数据的样本维和属性维同时进行深入挖掘,并科学应用了渐进式分类器选择算法和权值优化算法,大大地提高了算法的有效性,在实际的分类任务中获得了更好的分类准确率。
本发明实现上述目的的基本思路是:首先,将高维数据集分为训练集和测试集,将该数据集平均分成5份,使用5倍交叉验证(5-foldscross-validation)来进行实验,通过改变训练集和测试集来验证模型对于不同数据集的泛化能力;然后,对训练集使用bootstrap方法进行样本维采样,得到b个bootstrap分支,并使用lda线性判别分析方法对b个bootstrap分支训练分类器,生成各自的分类器;紧接着,新建一个集成分类器集合γ(p),初始化为空,并从所生成的分类器中选取准确率最高的分支分类器作为第一个被选择的分类器,加入到γ(p)中,在剩下的分类器中逐步选取后续加入后未使分类准确率降低的分支分类器加入到γ(p)中,直到选取的分支数目达到预先设定的集成分类器集合的分支数目g,停止选择,同时输出选择好的集成分类器集合及各分类器分支对应的权重;最后,利用集成分类器集合及各分类器分支对应的加权投票结果对测试样本进行分类,得出最后的预测结果和分类准确率。
本发明的目的可以具体通过如下技术方案实现:
一种基于渐进式学习的集成分类方法,所述方法包括以下步骤:
(1)输入样本数据集
1a)输入一个待分类的带噪音标签的数据集x;
1b)将该数据集平均分成5份;
1c)将其中一份作为测试数据集pe,剩下4份作为训练数据集pr;
(2)产生训练样本的bootstrap分支集合
2a)确定统一化随机变量,在固定采样率下对原始训练数据集pr随机采取样本下标;
2b)使用有放回的采样,直至采样值大于样本下标值;
2c)使用不同的采样率重复步骤2a)和步骤2b),挑选b次,得到b个bootstrap分支集合;
(3)生成分类器
3a)依次选取采样后的bootstrap分支集合,提取其中的训练样本数据;
3b)确定所选分支分类器的线性判别分析目标函数,重复b次,得到b个bootstrap分支分类器;
(4)对样本进行分类
4a)选择其中一个bootstrap分支分类器;
4b)在相应分支训练数据集中选取标签预测样本;
4c)通过步骤3b)的目标函数,计算所选样本的最小风险值;
4d)根据最小风险值对所选样本进行分类;
4e)循环步骤4b)到4d),将所选bootstrap分支集中的所有训练样本都进行分类,得到该分支训练样本的预测结果集lt,并计算其相应的分类准确率;
4f)对每个bootstrap分支分类器依次执行步骤4a)到4e),得到b个分类器的预测结果集;
(5)选择第一个分类器
5a)新建一个集成分类器集合γ(p),初始化为空;
5b)初始化所有样本的权重,令
5c)根据每个bootstrap分支分类器的分类准确率,选取准确率最高的分支分类器作为第一个被选择的分类器;
5d)计算第一个被选择分类器的权重;
5e)将第一个被选择的分类器加入到集成分类器集合γ(p)中;
5f)更新所有训练样本的权重;
(6)选择渐进式分类器
6a)根据分类器损失函数,计算未被选入γ(p)的集成分类器分支
6b)对未被选入γ(p)的分类器按损失函数值由小到大进行排序;
6c)依次选取排序好的分支分类器加入到集成分类器集合γ(p)中,直到所加入新的分类器后集成分类器集合的损失函数值不大于原集成分类器集合的损失函数值,取该分类器作为步骤6f)中加入集成分类器集合γ(p)的分类器;
6d)计算新的集成分类器每个分支的误分类样本的带权重总和误差;
6e)更新当前新增的分类器权重;
6f)把最新的分类器加入到已选择的分类器集合中,生成最新的集成分类器集合;
6g)在新的集成分类器集合的基础上更新已选择分类器的权重;
6h)重复步骤6a)到6g)直到选取的分分类器支数目达到预先设定的分支数目g,停止迭代;
6i)输出选择好的集成分类器集合γg及对应的权重;
(7)得到预测结果和分类准确率
7a)将步骤1c)中分割出来的1份测试数据集pe作为该分类器的输入数据的属性维;
7b)选择其中一个输入测试数据xi进行标签类别预测;
7c)使用各分支分类器对xi进行分类,得出每个分支对样本的预测标签;
7d)对步骤7c)得到的各分支标签类别预测进行带权重的投票,获得最后的预测结果;
7e)依次对测试集中的每个数据进行步骤7b)到7d)的标签类别预测,得到集成分类器集合对测试数据集的分类结果,即集成分类器集合的预测标签集lensemble;
7f)将集成分类器集合的预测标签集lensemble与测试数据真实标签集ltrue进行比较,计算相应的分类准确率。
进一步地,步骤2a)所描述的随机采取样本下标步骤是,每一轮bootstrap分支集合采样使用有放回的采样,共进行b次,每次挑选出
τ1∈[0,1]为统一化随机变量,该方法根据训练样本pi下标来进行随机的一个一个样本抽取,具体的采样下标为:
其中m为挑选出来的训练样本的下标,τ2∈[0,1]为统一化随机变量,l表示样本的数量。
进一步地,步骤3b)所描述的确定分支分类器的线性判别分析目标函数的步骤是,把步骤3a)中选择的每个bootstrap分支单独作为一个训练集,使用线性判别分析算法,通过寻找一个子空间,使得类内距离最小化,类间距离最大化,尽可能地保存标签信息,从而生成独立的分类器
ξb表示目标函数,k表示标签的数目总和,λ(k|pb)表示在bootstrap分支ob中的样本pb的标签k的先验概率函数,υ(yb|k)为样本分类结果的损失函数,其中k为真实标签,yb为预测标签,并当样本被正确分类时,有υ(yb|k)=0,否则υ(yb|k)=1;目标函数中λ(k|pb)的计算方式为:
其中,
上式中的
进一步地,步骤5d)计算第一个被选择分类器的权重的步骤是,根据每个样本的初始权重和错误函数值,计算样本的带权重总和误差,并以此为依据确定第一个被选择的分类器χ1及其对应的权重θ1;样本的错误函数定义为:
其中,i∈{1,...,l},χ(pi)代表分类器χ对于样本pi的分类结果,为1或者-1;第一个被选择分类器的误分类样本的带权重总和误差计算方法如下:
由此计算第一个被选择分类器χ1对应的权重为:
其中,∈1表示第一个被选择分类器的误分类样本的带权重总和误差。
进一步地,步骤5f)更新所有训练样本的权重的步骤是,以样本的初始权重和第一个被选择分类器的权重为依据,同时考虑分类器对样本的分类结果,对所有训练样本的权重进行赋值,保证分类错误的样本得到一个较高的权重,新的权重
其中,θ1为第一个被选择的分类器χ1对应的权重,x1(pi)代表分类器χ1对于样本pi的分类结果,为1或者-1;yi表示样本pi的实际类别标签,yi=c表示样本pi属于c类,c∈{0,1,...,k-1}为具体的类标号,k为总类别数;
该权重已经进行归一化,因此有:
进一步地,步骤6a)求解分类器损失函数值的方法的步骤是,综合考虑样本权重调节后,准备要加入的分支与已经选出来的分支集合的相关性,根据一定的逻辑计算每个分支
其中的ξj为样本权重调节后的
具体的:bootstrapoj与oh能够看成两个高斯混合分布,分别记为ωj与ωh,对于两个高斯混合模型:
其中,
式中
进一步地,步骤6c)选择新加入分类器的方法的步骤是,先计算剩余的未加入集成分类器的每个分支的分类器损失函数的值
成立时,选择该分类器为下一个加入集成分类器集合γ(p)的分类器,集成分类器损失函数定义为:
上式中,
其中,c∈{-1,1}为样本标签即真实标签的集合,χh为已获得的集成分类器集合γg-1(p)中的第h个线性判别分析分类器。
进一步地,步骤6d)和6e)计算新的集成分类器每个分支的误分类样本的带权重总和误差和更新当前新增的分类器权重的方法的步骤是,计算集成分类器各分支中样本的现权重和分类误差的累加和,得到每个分支的误分类样本带权重总和误差,并根据该总和误差值更新新增的分类器权重,各分支的误分类样本的带权重总和误差∈g的计算方法如下:
其中的
进一步地,步骤6g)在新的集成分类器的基础上更新已选择分类器权重的方法的步骤是,先把最新的分类器加入到上一步已选择的集合中,生成最新的集成分类器集合,方法是:
然后在新的集成分类器的基础上,更新样本的权重,计算方法如下:
其中,
进一步地,步骤7d)对步骤7c)得到的各分支标签类别预测进行带权重投票的方法的步骤是,通过集成分类器中各分支分类器对数据进行预测,对各分类器的预测结果和分类器权重的乘积进行累加,确定累加和最大的分类结果为输入数据的预测标签,记
其中,
在上式中,b代表bootstrap的分支数目,y*代表该算法对样本的预测标签,θb代表分支b对应的权重;
步骤7f)计算相应的分类准确率的方法的步骤是,根据集成分类器标出的结果,与原始的测试数据集样本的真实标签结果进行对比,从而得到对应的集成分类器分类准确率ac:
其中,pe表示测试数据集,|pe|表示在测试数据集pe中的测试样本数目,对于样本pi,
本发明与现有技术相比,具有如下优点和有益效果:
本发明提供的基于渐进式学习的集成分类方法,与传统的集成学习分类算法相比之下,准确性、稳定性和鲁棒性都有着非常大的优势。与传统的集成分类算法相比,本发明技术有如下创新点:第一,同时考虑高维数据样本维度和属性维度的深度数据挖掘,构建一个强大的集成分类器;第二,带有线性判别分析算法的渐进式集成学习算法具有较好的带噪音数据的分类能力;第三,本发明将集成学习与渐进式学习相结合,解决了分类器训练过程中使用新数据导致的原始数据信息丢失问题,在不改变原来模型的基础上,加入新的数据或者模型,组成了一个更为有效的系统。
附图说明
图1为本发明实施例基于渐进式学习集成分类方法的流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例:
本实施例提供了一种基于渐进式学习的集成分类方法,流程图如图1所示,包括以下步骤:
步骤1,输入样本数据集
输入一个待分类的带噪音标签的高维数据集x,行向量对应样本维,列向量对应属性维,将该数据集平均分成5份,并把其中一份作为测试数据集pe,剩下4份作为训练数据集pr;
步骤2,产生训练样本的bootstrap分支集合
针对选取处理的训练数据集pr,每一轮bootstrap分支样本集合采样使用有放回的采样,共进行b次,每次挑选出
τ1∈[0,1]为统一化随机变量。该方法根据训练样本pi下标来进行随机的一个一个样本抽取。具体的采样下标为:
其中的m为挑选出来的样本的下标,τ2∈[0,1]为统一化随机变量。
步骤3,生成分类器
把每个bootstrap分支单独作为一个训练集,使用线性判分析算法,通过寻找一个子空间,使得类内距离最小化,类间距离最大化,尽可能地保存标签信息,从而生成独立的分类器
ξb表示目标函数,k表示标签的数目总和,λ(k|pb)表示在bootstrap分支ob中的样本pb的标签k的先验概率函数,υ(yb|k)为样本分类结果的损失函数,其中k为真实标签,yb为预测标签,并当样本被正确分类时,有υ(yb|k)=0,否则υ(yb|k)=1。目标函数中λ(k|pb)的计算方式为:
其中,
上式中的
步骤4,对样本进行分类
对每一个bootstrap分支数据集中的训练样本进行分类,分类的方法是通过步骤3所建立的分类器目标函数,计算所选样本的最小风险值,实现最小风险所对应的类为样本的预测分类。对所选bootstrap分支集中的每个训练样本都进行分类,得到该分支训练样本的预测结果集lt,并计算其相应的分类准确率;对每个bootstrap分支数据集依次执行上述操作,得到b个分类器的预测结果集。
步骤5,选择第一个分类器
首先初始化所有样本的权重,令
θ(χ(p),y,i)=e-yiχ(pi)
其中,i∈{1,...,l},χ(pi)代表分类器χ对于样本pi的分类结果,为1或者-1。第一个被选择分类器的误分类样本的带权重总和误差计算方法如下:
由此计算第一个被选择分类器χ1对应的权重为:
确定第一个被选择的分支分类器以后,以样本的初始权重和第一个被选择分类器的权重为依据,同时考虑分类器对样本的分类结果,对所有训练样本的权重进行重新赋值,保证分类错误的样本得到一个较高的权重。新的权重
其中,θ1为第一个被选择的分类器χ1对应的权重,χ1(pi)代表分类器χ1对于样本pi的分类结果,为1或者-1。
该权重已经进行归一化,因此有:
步骤6,选择渐进式分类器
后续的分类器选择是渐进式的。首先,根据分类器样本权重调节后,准备要加入的分支与已经选出来的分支集合具有一定的相关性,按一定的逻辑计算每个分支
其中的ξj为样本权重调节后的
具体的:bootstrapoj与oh可以看成两个高斯混合分布(gaussianmixturemodels,gmms),分别记为ωj与ωh,对于两个高斯混合模型:
其中,
式中
在计算完所有未加入集成分类器的每个分支的分类器损失函数的值
成立时,选择该分类器为下一个加入集成分类器集合γ(p)的分类器,即:
集成分类器损失函数定义为:
上式中,
其中,c∈{-1,1}为样本标签(真实标签)的集合,xh为已获得的集成分类器集合γg-1(p)中的第h个线性判别分析分类器。
紧接着,在每选择一个分支分类器加入集成分类器集合后,需要计算集成分类器各分支中样本的现权重和分类误差的累加和,得到每个分支的误分类样本带权重总和误差,并根据该总和误差值更新新增的分类器权重,各分支的误分类样本的带权重总和误差∈g的计算方法如下:
其中的
最后在新的集成分类器的基础上,更新最新样本的权重,计算方法如下:
其中,
重复上述工作,直到选取的分支数目达到预先设定的分支数目g为止,输出选择好的集成分类器集合γg及对应的权重;
步骤7,得到预测结果和分类准确率
通过集成分类器中各分支分类器对数据进行预测,对各分类器的预测结果和分类器权重的乘积进行累加,确定累加和最大的分类结果为输入数据的预测标签,并根据分类结果计算集成分类器集合的分类准确率。记
其中,
在上式中,b代表bootstrap的分支数目,y*代表该算法对样本的预测标签。
根据集成分类器标出的结果,与原始的测试数据集样本的真实标签结果进行对比,从而得到对应的集成分类器分类准确率(classificationaccuracy,ac):
其中,ps表示测试集,|ps|表示在测试集ps中的测试样本数目。对于样本pi,
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。