一种遥感影像分类方法
技术领域
本发明属于遥感影像自动化分类领域,具体涉及一种遥感影像分类方法。
背景技术
遥感影像为土地利用检测提供了快速,实时的大范围的地理信息来源。如何从大量的影像数据中提取地物是土地利用变化监测所面临的重要问题。借助于机器学习方法,遥感信息的提取得到了快速的发展。如最大似然法(Maximum Likelihood,ML)、决策树法(Decision Tree,DT)、最小距离法(Minimum Distance,MD)、支持向量机(Support VectorMachine,SVM)、朴素贝叶斯(Naive Bayes,NB)、人工神经网(Artificial Neural Network,ANN)等都在遥感影像分类中得到了广泛的应用。然而,使用单独分类器进行分类存在着错分漏分,精度低等一系列的缺陷。为此研究者提出了一系列的提升方法,通过构建一系列的分类器,来提遥感影像的分类精度。其中,Bagging和AdaBoost就是这样的提升方法。Bagging通过有放回随机抽样的方式获取样本并训练多个基分类器,然后对待分类样本,每个基分类器的输出结果通过多数投票的方法进行集成,得到优于单分类器的精度。AdaBoost,则通过逐次迭代,更改样本权重来增加错误分类样本在下一轮迭代中被选中的概率,来生成一系列的基分类器。其中每个基分类器的权重,由该分类器对所有样本的分类误差决定。针对待分类像元,每个基分类器的输出结果,通过加权投票的方式获得。这两种提升方法能够作用于大多数的分类算法,得到比一般分类器更高的分类精度。但是两者由于抽样方式和集成方式的不同,在对分类算法精度进行提升的时候都遇到了一定的问题。Bagging直接使用有放回随机抽样的方式获取固定个数的训练样本,使得基分类器的多样性降低;AdaBoost只能应用于一般的分类算法,分类算法自身特性严重影响其稳定性。这些问题影响到Bagging和AdaBoost性能的发挥,造成精度提升空间有限,对遥感影像分类精度低的缺陷。
发明内容
针对现有技术中存在的上述技术问题,本发明提出了一种遥感影像分类方法,设计合理,克服了现有技术的不足,具有良好的效果。
为了实现上述目的,本发明采用如下技术方案:
一种遥感影像分类方法,包括如下步骤:
步骤1:在基分类器层,通过传统分类算法得到基分类器hl;
步骤2:在M-Bagging层,通过M-Bagging方法,对步骤1中基分类器层的基分类器的分类结果进行集成,得到M-Bagging分类器h;
具体为:将抽样比例设置成一个10%至100%之间的随机数,从训练样本中使用随机抽样的方法获取训练样本,分别使用基分类器层中的基分类器对训练样本进行分类,将分类得到的结果通过多数投票的方法进行集成,得到M-Bagging分类器h;
步骤3:在AdaBoost层,通过使用AdaBoost方法,对步骤2中的M-Bagging分类器进行精度提升,得到M-Bagging-AdaBoost集成分类器H;
具体为:通过M-Bagging分类器对整个训练样本进行分类,计算M-Bagging分类器的误差,利用AdaBoost方法,生成多个M-Bagging分类器,并集成它们的分类结果,得到M-Bagging-AdaBoost集成分类器H;
步骤4:将待分类像元,输入到M-Bagging-AdaBoost集成分类器,通过M-Bagging层和AdaBoost层后,得到遥感影像的最终分类结果。
优选地,在步骤2中,具体包括如下步骤:
步骤2.1:确定M-Bagging的迭代次数Kb;
步骤2.2:获取0.1到1之间的随机数zl,计算从样本集S中抽取样本的个数nl;通过控制样本的个数实现分类器的多样性;
其中,样本集S={(x1,y1),(x2,y2),…,(xn,yn)}(xj∈X,yj∈Y),其中,n是样本的总个数,X和Y分别为样本的特征空间和类别标签;
步骤2.3:采用有放回随机抽样的方法,从样本集S中抽取nl个训练样本,得到一个训练集Sl,并训练一个基分类器hl:X→Y,其中l=1,2,...,Kb;
步骤2.4:使用基分类器hl,对样本集S中的训练样本进行分类;
步骤2.5:循环执行步骤2.2-步骤2.4Kb次,生成Kb个基分类器,对于一个未知类别的实体x,其最终分类结果,通过对基分类器hl按照公式(1)使用加权投票的方法集成,从而得到一个M-Bagging分类器h;
其中,hl(x)表示使用基分类器hl对样本x的分类结果。
优选地,在步骤3中,具体包括如下步骤:
步骤3.1:确定AdaBoost的迭代次数Ka,初始化样本集S中样本的权重W(j);
其中,样本集S={(x1,y1),(x2,y2),…,(xn,yn)}(xj∈X,yj∈Y),其中,n是样本的总个数,X和Y分别为样本的特征空间和类别标签,W(j)为样本j(j=(1,2,..,n))的权重;
步骤3.2:通过加权有放回采样的方法,从S中获取训练样本,训练一个M-Bagging分类器hi:X→Y,其中,i=1,2,…,Ka;根据公式(2),计算hi的误差εi:
其中,hi(xj)表示M-Bagging分类器hi对第j个样本xj的分类结果;
如果εi>0.5,则初始化样本集S中样本j的权重,W(j)=1/n,然后转到步骤3.2;
步骤3.3:计算βi=εi/(1-εi),并按照公式(3),更新样本权重Wi+1(j):
其中,Zi为使所有样本权重之和为1的归一化因子;
步骤3.4:计算λi=log(1/βi),并将λi作为hi的投票权重;
步骤3.5:按照公式(4),通过加权投票的方法进行集成,得到一个M-Bagging-AdaBoost集成分类器H;
其中,x表示未知类别的实体,hi(x)表示第i个M-Bagging分类器对x的分类结果。
本发明所带来的有益技术效果:
针对传统的AdaBoost用于提升特定的分类算法精度差的缺点,本发明将Bagging方法与AdaBoost进行了结合,用于提升影像的分类精度,该发明主要由Bagging层和AdaBoost层构成,能够应用于所有的分类算法;首先,对于Bagging层,从训练样本中使用随机抽样的方法获取训练样本,训练多个分类器,在此,针对传统Bagging存在的随机抽样比例固定造成基分类器多样性差的缺点,本发明对Bagging做了改进,将抽样比例设置成一个10%至100%之间的随机数,使得每次Bagging迭代使用的训练样本个数和结构都不相同,从而增加Bagging分类的多样性,提高其基分类器的互补性;然后,分别使用这些基分类器对训练样本进行分类,将分类得到的结果通过多数投票的方法集成,得到一个Bagging分类器;接着,在AdaBoost层中,用该分类器对整个训练样本分类,计算其误差,利用AdaBoost的方法,对所有的Bagging分类器进行分类性能的提升,得到一个融合了Bagging和AdaBoost特性的集成分类器;最后,将一个待分类像元,输入到该集成分类器,通过Bagging层和AdaBoost层后,得到更加精准的分类结果;该方法在改进的Bagging算法的基础上,使用了AdaBoost方法,通过分层提升的方式来提高遥感影像的分类精度,具有较强的科学基础和实用价值。
M-Bagging-AdaBoost基于M-Bagging能够生成具有多样性的基分类器,从而集成得到具有较高精度的Bagging分类器的特点,通过AdaBoost迭代的方式,对M-Bagging的分类性能做了进一步的提升,克服了传统Bagging和AdaBoost的缺点,集成了Bagging和AdaBoost的优势,得到比Bagging和AdaBoost更好的精度提升效果,从而达到了高效、高精度遥感影像分类目的。
附图说明
图1为本发明方法的流程图。
具体实施方式
下面结合附图以及具体实施方式对本发明作进一步详细说明:
首先介绍本发明所需要的理论基础,Bagging和AdaBoost。
Bagging算法能够通过降低分类器的方差的方法来避免过拟合,在遥感影像分类方面得到了较为广泛的应用。该方法的基本思想是对训练样本采用独立随机有放回的方式抽取训练样本,构建大小相同,但内容不同的训练集来生成不同的基分类器,最后通过多数投票的方法实现所有分类器分类结果的集成。
假设样本集S={(x1,y1),(x2,y2),…,(xn,yn)}(xj∈X,yj∈Y),其中,n是样本的总个数,X和Y分别代表样本的特征空间和类别标签,K是迭代的次数;Bagging的具体算法如下:
输入:S;K;弱分类算法WeakLearn;
训练:1、For l=1,…,K do:
2、通过有放回采样的方法,从S中获取训练样本集,调用WeakLearn训练一个基分类器hl:X→Y;
3、End for;
分类:根据公式(1),使用简单投票的方法获取未知类别的实体x的最终预测;
在M-Bagging方法的基础上使用AdaBoost对M-Bagging和AdaBoost进行融合得到M-Bagging-AdaBoost。M-Bagging-AdaBoost的制作流程如图1所示,该方法分为三层,第一层为基分类器层,该层为一系列基于某一种传统分类算法的分类器。第二层为M-Bagging层,该层通过M-Bagging方法,对基分类器层的分类器的分类结果进行集成,得到一个Bagging分类器。第三层是AdaBoost层,通过使用AdaBoost方法,对第二层中的Bagging分类器进行精度提升,得到一个超强分类精度提升方法M-Bagging-AdaBoost。
AdaBoost首先为每个样本赋予相同的权重,权重的大小用于决定该样本被选到训练集中生成基分类器的概率;然后,以加权抽样的方式从样本集中抽取训练样本生成弱分类器,利用弱分类器对所有的样本进行分类,计算当前分类器的误差,再根据误差分别计算每一个样本的权重,使被错误分类的样本权重更高。这样,在下一轮迭代时,选取的训练样本更集中于那些容易被错分的样本,新生成的分类器将对这些样本予以更高的关注。以此类推,经过多次迭代,可以生成一系列的弱分类器。对于某个未知实体,所有的弱分类器都对其进行分类,最后通过加权投票的方法集成所有的分类结果。AdaBoost衍生出了很多版本,最典型的算法主要有两种:AdaBoost.M1和AdaBoost.M2。AdaBoost.M1主要用于多类别分类,而AdaBoost.M2则主要用于二值分类。一般情况下,遥感影像分类都属于多分类问题,因此AdaBoost在遥感自动解译中的应用主要是以AdaBoost.M1为主。本发明所涉及的AdaBoost主要是指AdaBoost.M1,具体算法如下:
假设样本集S={(x1,y1),(x2,y2),…,(xn,yn)}(xj∈X,yj∈Y),其中,n是样本的总个数,X和Y分别代表样本的特征空间和类别标签,K是迭代的次数,W(j)代表样本j(j=(1,2,..,n))的权重。算法的具体过程为:
输入:S;K;弱分类算法WeakLearn;
训练:1、将S中的样本j的权重初始化:W(j)=1/n;
2、For i=1,…,K do:
3、通过加权有放回采样的方法,从S中获取训练样本,调用WeakLearn训练一个分类器Hi:X→Y,(i=1,2,…,Ka);根据公式(2),计算Hi的误差εi:
4、如果εi>0.5,则初始化样本集S中样本j的权重,W(j)=1/n,然后转到步骤3;
5、计算βi=εi/(1-εi),并按照公式(3),更新Wi+1(j)
其中,Zi为可以使所有样本权重之和为1的归一化因子;
6、计算λi=log(1/βi)作为Hi的投票权重;
7、End for;
分类:根据公式(4),对于未知类别的实体x的最终预测可以通过加权投票的方式获得;
在Bagging的基础上,对其进行改进,改进后的Bagging(M-Bagging)算法如下:
输入:初训练样本集S;Bagging的迭代次数K;弱分类算法WeakLearn;
训练:1、For l=1,…,K do:
2、获得0.1到1之间的随机数zl,计算从S中抽取样本的个数nl;
3、通过有放回采样的方法,从S中获取nl个训练样本集,调用WeakLearn训练一个基分类器hl:X→Y;
4、End for;
分类:根据公式(5),使用简单投票的方法获取未知类别的实体x的最终预测;
本发明具体的实施过程如下:
步骤1:在基分类器层,通过传统分类算法得到基分类器hl;
步骤2:在M-Bagging层,通过M-Bagging方法,对步骤1中基分类器层的基分类器的分类结果进行集成,得到M-Bagging分类器h;
具体为:将抽样比例设置成一个10%至100%之间的随机数,从训练样本中使用随机抽样的方法获取训练样本,分别使用基分类器层中的基分类器对训练样本进行分类,将分类得到的结果通过多数投票的方法进行集成,得到M-Bagging分类器h;具体包括如下步骤:
步骤2.1:确定M-Bagging的迭代次数Kb;
步骤2.2:获取0.1到1之间的随机数zl,计算从样本集S中抽取样本的个数nl;通过控制样本的个数实现分类器的多样性;
其中,样本集S={(x1,y1),(x2,y2),…,(xn,yn)}(xj∈X,yj∈Y),其中,n是样本的总个数,X和Y分别为样本的特征空间和类别标签;
步骤2.3:采用有放回随机抽样的方法,从样本集S中抽取nl个训练样本,得到一个训练集Sl,并训练一个基分类器hl:X→Y,其中l=1,2,...,Kb;
步骤2.4:使用基分类器hl,对样本集S中的训练样本进行分类;
步骤2.5:循环执行步骤2.2-步骤2.4Kb次,生成Kb个基分类器,对于一个未知类别的实体x,其最终分类结果,通过对基分类器hl按照公式(1)使用加权投票的方法集成,从而得到一个M-Bagging分类器h;
其中,hl(x)表示使用基分类器hl对样本x的分类结果。
步骤3:在AdaBoost层,通过使用AdaBoost方法,对步骤2中的M-Bagging分类器进行精度提升,得到M-Bagging-AdaBoost集成分类器H;
具体为:通过M-Bagging分类器对整个训练样本进行分类,计算M-Bagging分类器的误差,利用AdaBoost方法,生成多个M-Bagging分类器,并集成它们的分类结果,得到M-Bagging-AdaBoost集成分类器H;具体包括如下步骤:
步骤3.1:确定AdaBoost的迭代次数Ka,初始化样本集S中样本的权重W(j);
其中,样本集S={(x1,y1),(x2,y2),…,(xn,yn)}(xj∈X,yj∈Y),其中,n是样本的总个数,X和Y分别为样本的特征空间和类别标签,W(j)为样本j(j=(1,2,..,n))的权重;
步骤3.2:通过加权有放回采样的方法,从S中获取训练样本,训练一个M-Bagging分类器hi:X→Y,其中,i=1,2,…,Ka;根据公式(2),计算hi的误差εi:
其中,hi(xj)表示M-Bagging分类器hi对第j个样本xj的分类结果;
如果εi>0.5,则初始化样本集S中样本j的权重,W(j)=1/n,然后转到步骤3.2;
步骤3.3:计算βi=εi/(1-εi),并按照公式(3),更新样本权重Wi+1(j):
其中,Zi为使所有样本权重之和为1的归一化因子;
步骤3.4:计算λi=log(1/βi),并将λi作为hi的投票权重;
步骤3.5:按照公式(4),通过加权投票的方法进行集成,得到一个M-Bagging-AdaBoost集成分类器H;
其中,x表示未知类别的实体,hi(x)表示第i个M-Bagging分类器对x的分类结果。
步骤4:将待分类像元,输入到M-Bagging-AdaBoost集成分类器,通过M-Bagging层和AdaBoost层后,得到遥感影像的最终分类结果。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。