2024年4月13日发(作者:)
维普资讯
第32卷
第7期
、,bt.32
・
计算机工程
2006年4月
April 2006 脑7
Computer Engineering
人工智能殛识别技术・
一
文章■号t looo1_3428(2呻6)o7— l9 _一03 文献标识码。A 中啊分类号。TP183
种基于投票的Stacking方法
书艳艳¨,李—深
(1.广西大学计算机与电子信息学院,南宁530004;2.广西民族学院计算机与信息科学学院,南宁530006)
■蔓:根据基于类的特征向量方法的原理,提出了一种基于投票的叠加泛化方法,对0-层分类器的预测结果‘‘投而不决”,由l一层分类
算法来归纳投票情况与正确类之间的关系。实验表明,该方法在具有明显类分布倾斜的多类数据集上有较理想的泛化效果。
关■诩:Stacking;分类器组合;投票
A New Approach of Stacking Based on Voting
WEI Yanyan 一.LI Taoshen
(1.College of Computer,Electronics and Information Engineering,Guangxi University,Nanning 530004
2.College of Computer and Information Science,Guangxi University of Nationality,Nanning 530006)
[Abstract]This paper describes a new strategy for forming class vector,which employs voting mechanism tO“vote but not make’’the final
predictions of all the level一0 classiierfs.In this approach,the relations between votes and the true class are induced by classiicatifon algorithm of
level一1.Experimental result shows that it achieves good performance 0n those datasets with highly skewed class distributions.
[Key wordsI Stacking;Classiifers combination;Vote
叠加泛化法(简称Stacking)是Wolpert…提出的一个重要
这个新的数据集就是第1一层泛化数据,数据集中的每一
个样本就是尺 。空间中的一个输入分量。用一个分类算法对
的分类器组合框架,它通过对多个分类器的输出结果进行泛
化,利用前一层分类器的输出结果作为下一层的学习输入信
息,使前一次的学习能充分用于后面的归纳过程中,发现并
且纠正分类偏差,以获得比组成它们的单个分类器更高的分
这些数据进行归纳得到的模型M就是第1一层模型(元模型),
它描述的是O一层模型的预测与真实结果之间的关系,即在已
知O一层模型预测的前提下,推测在什么情况下呵以得出正确
结果。整个过程如图1,D表示数据集,c表示分类器。
C
类准确率。Stacking在其1一层泛化中通常使用基于0一层分类
器输出的特征向量,而且越高的分类准确率,越是需要使用
高维的特征向量。但在分布式数据挖掘应用中,这种方式使
得分类器组合的可扩展性较差,即O一层分类器个数的增加会
导致1一层泛化效率的降低。文献【2]提出采用基于类的特征向
量来解决这个问题。基于类的特征向量的关键因素是类特征
值必须尽可能地体现O-层分类器对各个类的分类情况。本文
把投票机制融入l一层泛化当中,提出一种基于投票的叠加泛
化方法,其思想是:根据O一层分类器对各个类的预测情况进
兰卜 。一 . 一一一 一 f 一一一一 f 一一一一一一
圈1 Stacking帕泛化示意圈
行投票,由分类学习算法来归纳出投票情况与正确类之间的
关系,得到l一层分类器。
l Stacking框架的原理
1.1泛化过程
设数据集D={(Y , ), =1…,Ⅳ)构成的尺空间为“0-
层空间”,其中Y 表示类, 表示第n个样本的特征向量。
随机将数据划分成J个大小基本相等的子集DI,D2….,D,。分
别定义D 和D卜J =D-D 为l,一折交叉验证中的第 折测试集
和训练集。给定 个分类学习算法作为第0层归纳算法,对
1.2分类过程
生成O一层和l一层分类器后,就可对未知类别的样本进行
分类了。给定一个待分类样本 ,对它的分类过程分成2步:
(1)由O一层分类器对它进行分类,得到预测结果;(2)将
O 层分类器的预测结果看作是一个新的预测样本,送入l一层
分类器,由l 层分类器来预测它的类别(如图2所示)。
基j盆r项目:广西新世纪十百千人才工程基金资助项目(桂人函
2001213号);广西留学回国人员科学基金资助项目(桂科回0342001)
训练集D 用第k个算法归纳得到模型 :-√ ,k:-I,…K。
对于J一折交叉验证中的第 层测试集D 中的每一个样
本 ,模型 :I√ 对它的预测表示为Z 在整个交叉验证过
程结束后,将 个模型的输出组成一个新的数据集,即
D
=
作者倚介:韦艳艳(1976--),女,硕士、助教,主研方向:数据挖
掘,机器学习;李陶深,教授
收藕日精:2005一O4—3O E-mail:tshli@gxu.edu.cn
c
.[(y ,z …。z ), =1…Ⅳ)
l99—
维普资讯
例予x
圈2 Stacking对样本的分类过程
1.3 l-层泛化特征
1一层泛化特征表示的是0一层分类器的分类输出特征,它
是否能全面准确地代表0一层的分类行为,以及所包含的信息
多少,都直接影响到l一层分类器的构造。因此,研究使用何
种数据作为代表0一层分类器的预测特征就显得非常重鬻。在
Stacking中,用于l一层泛化的特征主要是基于分类器输出的
特征向量。它是文献研究较多的一种方法,也最能直接体现
出Woplert对Stacking的设计思想的一种泛化特征。基于分
类器输出的特征就是直接利用0一层分类器输出的预测结果,
以分类器作为特征向量,组成l一层泛化的特征数据。
设N个0一层分类器分别为cl,c2….,c ,问题域中的类有
k个,分别是classl,class2…,classk。对样本 作出的预测为
C,( ),C ( ),…,C ( ),则l一层泛化的特征向量为
{cI( ),C2( )…,C ( );TrueClass(x)} (】)
其中TrueClass(x)代表样本 的真实类。分类器的预测
C,( ),C ( )….,C..( )可以是类,也可以是后验概率。
基于分类器预测得到l一层特征向量是以每一个0一层分类
器的输出信息作为l一层泛化的基准,这种方法存在着一个不
可忽视的问题,那就是当0一层分类器个数非常多的时候,J一
层泛化特征的维数也随之增大。目前许多的研究大都是利用
每一个0.层分类器对所有类预测的后验概率作为l一层的输
入,所产生的特征维数等于0一层分类器个数与类个数的乘积,
如果参与分类的0一层分类器数{雾}增加并且分类问题域中的类
个数较多时,l-层特征的维数将会非常大,由此产生维度灾
难(curse ofdimension),导致泛化的时间效率降低。
2一种基于投票的类向量方{皇}
2.1基于类昀特征向量
为有效降低1一层泛化特征的维数,0一层分类器的输出信
息可归结为对各个类的预测情况,因为对于某一个分类任务
而言,其问题域的类的个数通常是不变的,只要将预测信息
按类输入1一层进行泛化,就可有效地控制l一层的特征个数。
这一方法把基于分类器的特征向量进行一定的转换,以0一层
分类器对问题域的类的分类情况作为1一层泛化的特征向量,
即根据式(1)得到:
{class-,class2…・,classk;TrueClass(x)l (2)
这样,不管参与分类的0一层分类器数量有多少,用于l一
层泛化的特征将始终保持与分类任务中的类个数一致,达到
有效降低特征维数的目的。
文献[2】用所有()一层分类器输出的后验概率按类求平均
值,得到l一层泛化特征向量。这使得在第二次分类学习的时
间开销大大减小。但在将分类器输出的预测向量转化为基于
类的预测向量的过程中,遗漏了各个O一层分类器的预测对最
终判决的贡献信息,故得到的分类准确率要低于基于分类器
输出的预测类方法。
2.2关健问鼍及解决
由于基于类的特征向量是从基于分类器的特征向量转变
而来的,后者表示的是O一层分类器最直接、最原始的预测结
一
20 一
果;前者则以一种间接的方式把0一层分类器对样本的预测结
果按照它们对各个类的分类情况表示出来。因此寻找基于分
类器的特征向量到基于类的特征向龟的最佳转换方式,使之
最能体现0一层分类器预测结果,是提高1一层分类器准确率的
关键所在。
基于类的特征向量的分量就是问题域的类,以平均后验
概率作为特征值,显然不足以描述各0一层分类器对各个类具
体的预测情况。这里引入投票机制,将0一层分类器对类的预
测以投票的形式表示为类特征向量值。但是以投票的结果作
为类特征值呢,还是以所投的票数作为特征值呢?我们分析
认为:如果将投票的结果作为类特征值,则需要采取一定的
表决策略,不同的表决策略对投票结果必定存在或多或少的
偏差,即是说,任何表决策略都不可能保证表决的结果完全
正确,有偏差的类特征值会误导分类算法对l一层分类器的构
造;而如果只是“投而不决”,由l一层分类算法根据投票结果
归纳出0一层分类器的投票情况与正确类之间的关系,则可降
低由于采取表决策略所引起的决策偏差。因此,我们提出一
种基于投票的类向量方法Vstacking。
2.3 Vstacking
设0一层分类器C 对样本 预测的类向量为:
(Ⅱ a …o }),定义矩阵
)
其含义是:当分类器C 预测样本 为类classj时,则输
出类向量a 的值为1,否则就为0。由于分类器通常把后验
概率值最高的类作为它的最终预测,因此最终的预测类只有
】个,即
∑“ =l
矩阵中的行下标代表每个0一层分类器,列下标代表分类
任务中的类。按每一列统计0一层分类器所投的票数为
=
∑
由于每个0一层分类器只能投上一票,因此票数之和等于
0一层分类器的个数,即
∑ =n
J=l
于是得到有K个分量的类向量(Vl,V2….,vO,每个分
量代表所有0一层分类器对相应类的预测所投的票数。这样,
把分类器输出的预测向量转化成基于类的预测向量时,用分
类任务中的每个类得到的票数来体现0一层分类器的预测情
况,并一一反映在类向量中。投票后不采用任何表决策略决
定样本所属的类,这一步留到l一层泛化时完成。1-层泛化的
任务就是归纳出0一层分类器对验证集所有样本的整体分类行
为(即投票情况),使得l一层分类器可根据0一层分类器的投
票情况来给出样本最终的类预测。
3实验及结果分析
我们设计了2组实验:第l组考察它在不同数据集上的
泛化情况;第2组考察当0-层分类器的个数增多时,它在同
一
个数据集上的泛化表现以及l一层泛化数据的规模变化情
况。两组实验都使用基于分类器的特征向量(式(1))作为对比。
3.1实验1
我们用UCI[31中的分类数据作为实验数据,用VFMLf4l
进行数据划分。实验设置如下:每个数据集划分成6个大致
维普资讯
相等的子集,1个作为验证集,其余5个用于构造5个O一层
分类器。用Stacking方法和Vstacking方法分别构造l一层泛
化数据。1一层分类器的性能用分类准确率来表示。实验结果
如表l所示。
裹1 Vstacking与Stacking的测试对比
数据集 类数 1・层分类算法
N
urseFV
S
plice
5
IBK
C4 5
IBK
C4 5
特征规模差异较大,l一层泛化的效率也不相同,用Stacking
得到的特征维数呈线性增长趋势,而Vstacking得到的特征空
问就筒单得多,这说明分类算法的泛化效率提高了,生成的
分类器也更加简单。
表2 o・层分类器个数变化时Vstacking与Stacking的对比
数据集 0.层分类器个 I.层分类算
数 法
3 IBK
C4.5
Vstacking
93.43±0
93.43±0
Stacking
93.53±0.17
93.34±0.11
V
stacking
83.23±0.09
83
29±0 09
+
Stacking
82.39±0 36
83.58±0.41
84 74±0 44
85 09±0.4
84.45±0j3
84.28±0.26
83.04±0.4l
83.24±O 56
3
93.6±()28
93.44±0.13
94.05±0.14
92.98±O 39
5
Adull
IBK
C4 5
85.2±0.25
85.2±0.2S
84,23±0 36
84
23±036
.
C
onnect一4
C
ar
A
3
IBK
C4
5
.
72.6±0.13
73.08±0
82.42±0.64
72.37±().43
7I.9l±O.62
82 26±O.58
7 IBK
C4 5
4
IBK
C4
.
5 82.2±0I85
98.53±0 75
79.75±1 04
98.53±O.75
9 IBK
C4.5
84.63±0.25
84.63±0.25
uto‘mpg 5
IBK
C4
5
.
97.31±0.71
87.04±0.24
86
57±0.34
.
95.47±0.54
87.04±0.24
85 l8±O.38
84.75±O.44
85.09±O.4
98.58±0.1
98.6士0.37
Connect.4
3 IBK
C4.5
75.25±0.13
75.29±0.07
72.6±O.13
73.08士0
74.15±0.07
74.41±0.11
74.52±0.29
74 94±0.27
74.59±0.24
72.37±0.43
71.9l±0 62
74 06±0.48
72 37±0 6
72 24±0 38
A
nneal
Ad
6
IBK
C4 5
IBK
5 IBK
C4+5
ult 2 C4 5
85.2士0.24
85.2±0.25
97.52±O 27
97.52±0.24
7 IBK
C4 5
Ch
ess 2
iBK
C4
5
.
9 lBK
C4 5 74.03±0.24 71.86±0.55
C
rx 2 C4 5
IBK 8538±0.77
85.38±0 77
85.7±0.93
87.27±0.¨
表3 1-层泛化特征规模对比(单位:kB)
数据集
Adult
Ti
c・tae toe 2 C4
.
IBK
5
75.71±l 33
75.7I±I 33
89()l±0.18
89 01士O.18
78.47±1.53
78,61±1.44
89.73±0.28
90.46±0.37
0一层分类器个数
3
Stacking
24.0
Vstacking
10 7
S
pambase 2
IBK
C4
5
.
5
7
35 4
47 2
lO.7
1O 7
从测试结果来看,在前7个数据集中,Vstacking的泛化
效果比Stacking好。前l4组测试数据中Vstacking与Stacking
之间胜/平/负(win/draw/loss)之比为l 0/2/2。在后4个数据
集中,Vstacking的泛化精度比Stacking有所下降。在所有的
9
3
C
onnecl一4
5
7
9
58 9
l9.8
29.()
38
5
.
lO.7
l2.5
l2.5
l2.5
l2.5 47 7
数据集中,分类准确率获得提高的前7个数据集除了Adult
属于2一类分类问题,其余数据集都是属于多类问题,说明
Vstacking在非2一类数据集上的分类效果要优于Stacking。
3.2实验2
4结论
Stacking作为一种典型的分类器组合方法,其l一层泛化
特征的组成对l一层分类器的分类准确率和效率至关重要,目
接下来考察基于投票的类向量方法在泛化性能上与O一层
分类器个数之间的关系。我们选取了UCI中样本量较大的两
前多数方法仍依赖于高维的l-层泛化特征,这对分类器的构
造效率和分类响应速度有着较大的影响。基于类的l一层泛化
特征可以较好地解决这些问题,但其分类准确率并不是太理
想。本文提出的基于投票的类向量方法,在具有明显类分布
倾斜的数据集上取得了较好的分类效果,在泛化精度与效率
的折中方面具有较明显的优势。对于数据集的类分布均匀的
情况,仍需作进一步探讨。
个数据集Adult和Connect一4分男Ⅱ进行测试。验证集与实验l
的相同(原始数据集16%的样本),原始数据集的其余部分划
分成3,5,7,9个数据子集,用于对O一层分类器的泛化。
从表2的结果来看,Vstacking在Adult数据集上的8个
测试结果有5个要优于Stacking,当有9个O 层分类器参与
组合时,两种方法的泛化效果差别最大;而在Connect・4数
据集上,用Vstacking得到的所有测试结果都比Stacking具有
更高的准确率。
两种方法在这两个数据集上用于l一层泛化的数据规模比
参考文献
1 Wolpen D.Stacked Generalization【JJ.Neural Networks,1992,5(2):
241—260.
2 Tsoumakas Q Vlahavas I.Distributed Data Mining of Large Classiierf
Ensembles[C].Proc.of 2 HelIenic Conference on AI,Thessaloniki,
Greece,2002:249—256.
较,如表3所示。从表中可看出,随着参与分类的O一层分类
器的个数增多,Stacking得到的l一层泛化数据规模几乎呈线
性增长,而Vstacking则表现出很好的稳定性: 即分类器个数
的变动对l一层泛化的数据量没有影响。
此外,由于这两种方法在O一层分类器增加时得到的l一层
3 UCI Repository of Machine Learning Databases[EB/OL].http:gwww.
ics.uci.edu/ ̄mlearn/MLRepository.html,1998—08.
4 VFML[EB/OL].http://WW.CS.wachington.edu/dm/vfml/main.htmI.
,nn,.1n
更 正
由于我们工作上的疏忽,导致《计算机工程》2006年第1期第46页《方程诊断算法在Malek故障模型中的应用 一文的
第三作者许宏所属单位错误,正确的单位应是“南京财经大学信息工程学院”。特此更正,并向作者表示歉意
计算机工程 编辑部
2Ol—
发布者:admin,转转请注明出处:http://www.yc00.com/web/1712939914a2152008.html
评论列表(0条)