当前位置:文档之家› 随机森林与支持向量机分类性能比较

随机森林与支持向量机分类性能比较

软件 2012年33卷 第6期 SOFTWARE 国际IT传媒品牌 - 1 - 随机森林与支持向量机分类性能比较

黄 衍,查伟雄 (华东交通大学交通运输与经济研究所,南昌 330013) 摘要:随机森林是一种性能优越的分类器。为了使国内学者更深入地了解其性能,通过将其与已在国内得到广泛应用的支持向量机进行数据实验比较,客观地展示其分类性能。实验选取了20个UCI数据集,从泛化能力、噪声鲁棒性和不平衡分类三个主要方面进行,得到的结论可为研究者选择和使用分类器提供有价值的参考。 关键词:随机森林;支持向量机;分类 中图分类号:O235 文献标识码: A

Comparison on Classification Performance between Random Forests and Support Vector Machine HUANG Yan, ZHA Weixiong (Institute of Transportation and Economics, East China Jiaotong University, Nanchang 330013, China)

【Abstract 】

Random Forests is an excellent classifier. In order to make Chinese scholars fully understand its

performance, this paper compared it with Support Vector Machine widely used in China by means of data experiments to objectively show its classification performance. The experiments, using 20 UCI data sets, were carried out from three main aspects: generalization, noise robustness and imbalanced data classification. Experimental results can provide references for classifiers’ choice and use.

【Key words】Random Forests; Support Vector Machine; classification

0 引言 分类是数据挖掘领域研究的主要问题之一,分类器作为解决问题的工具一直是研究的热点。常用的分类器有决策树、逻辑回归、贝叶斯、神经网络等,这些分类器都有各自的性能特点。本文研究的随机森林[1](Random Forests,RF)是由Breiman提出的一种基于CART决策树的组合分类器。其优越的性能使其在国外的生物、医学、经济、管理等众多领域到了广泛的应用,而国内对其的研究和应用还比较少[2]。为了使国内学者对该方法有一个更深入的了解,本文将其与分类性能优越的支持向量机[3](Support Vector Machine,SVM)进行数据实验比较,客观地展示其分类性能。本文选取了UCI机器学习数据库[4]的20个数据集作为实验数据,通过大量的数据实验,从泛化能力、噪声鲁棒性和不平衡分类三个主要方面进行比较,为研究者选择和使用分类器提供有价值的参考。 1 分类器介绍

1.1 随机森林 随机森林作为一种组合分类器,其算法由以下三步实现: 1. 采用bootstrap抽样技术从原始数据集中抽取ntree个训练集,每个训练集的大小约为原始数据集的三分之二。 2. 为每一个bootstrap训练集分别建立分类回归树(Classification and Regression Tree,CART),共产生ntree棵决策树构成一片“森林”,这些决策树均不进行剪枝(unpruned)。在

作者简介:黄衍(1986-),男,硕士研究生,主要研究方向:数据挖掘与统计分析。 通信联系人:查伟雄,男,博士,教授,主要研究方向:交通运输与经济统计分析。 E-mail: huangyan189@163.com. 软件 2012年33卷 第6期 SOFTWARE 国际IT传媒品牌 - 2 - 每棵树生长过程中,并不是选择全部M个属性中的最优属性作为内部节点进行分支(split),而是从随机选择的mtry≤M个属性中选择最优属性进行分支。 3. 集合ntree棵决策树的预测结果,采用投票(voting)的方式决定新样本的类别。 随机森林在训练过程中的每次bootstrap抽样,将有约三分之一的数据未被抽中,这部分数据被称为袋外(out-of-bag)数据。随机森林利用这部分数据进行内部的误差估计,产生OOB误差(out-of-bag error)。Breiman通过实验证明,OOB误差是无偏估计,近似于交叉验证得到的误差。 随机森林分类器利用基于Breiman随机森林理论的R语言软件包randomForest 4.6-6[5]

来实现。需要设置三个主要的参数:森林中决策树的数量(ntree)、内部节点随机选择属性的个数(mtry)及终节点的最小样本数(nodesize)。 1.2 支持向量机 支持向量机是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,已在众多领域得到了广泛的应用。支持向量机最初是为了求解二分类问题而诞生的,其基本思想可以表述如下。目标是寻找一个最优分类超平面(separating hyperplane),使两类间相邻最近的样本点之间的边缘(margin)最大化。在最大化边缘边界上的样本点被称为支持向量(support vectors),边缘的中间切面为最优分类超平面。被边缘误分的点,其权重将被降低,以减少其影响。当数据线性不可分时,通过核函数将数据点映射到高维空间,使其线性可分。寻找超平面的过程可以转化为求解一个二次规划问题。 支持向量机分类器采用R语言软件包e1071 1.6[6]实现,该软件包是以台湾大学林智仁教授的libsvm[7]源代码为基础开发的。libsvm包含了四种主要的核函数:线性核函数(Linear)、多项式核函数(Polynomial)、径向基核函数(Radial Basis Function,RBF)以及Sigmoid核函数。本文采用径向基核函数,原因有四方面:(1)线性核函数只能处理线性关系,且被证明是径向基核函数的一个特例[8];(2)Sigmoid核函数在某些参数上近似径向基核函数的功能,径向基核函数取一定参数也可得到Sigmoid核函数的性能[9];(3)多项式核函数参数较多,不易于参数优选;(4)本文实验数据均非高维数据,径向基核函数可以适用。径向基核函数支持向量机包含两个重要的参数:惩罚参数Cost和核参数Gamma。此外,libsvm可用于多分类问题,采用的是“一对一”(one-against-one)的策略,即每两类建立一个支持向量机分类器,共建立k(k-1)/2个分类器,k为类别数,最后采用投票的方式决定新样本的类别。 2 分类器性能比较

实验将从三个主要方面比较两个分类器的性能:泛化能力、噪声鲁棒性和不平衡分类。选取UCI机器学习数据库的20个数据集作为实验数据,数据集信息见表1,编号1到10的数据集为二分类,11到20为多分类。为了更好地比较,对两个分类器均进行参数优选。随机森林参数优选过程分两步:(1)在整个训练集上训练,根据OOB误差选择ntree和nodesize,选择标准是使总误差或目标类别误差降到足够低且稳定;(2)采用训练集十折交叉验证(Cross-validation)对参数mtry进行遍历确定最优值,参数选择标准可根据实际问题确定,最低误差或最大AUC(Area under ROC Curve)。支持向量机采用训练集十折交叉验证对参数Cost和Gamma进行网格寻优(Grid-search)确定最优值,参数选择标准同上。两个分类器在每个数据集上均进行10次参数优选。为了判断两个分类器是否有显著差异,引软件 2012年33卷 第6期 SOFTWARE 国际IT传媒品牌 - 3 - 入了非参数置换检验[10, 11](Permutation Test)进行统计比较,显著性水平设置为0.05。全部实验均在R 2.14.1软件平台上完成。 表1 实验数据集信息 Tab.1 Information of experiment data sets 编号 数据集 类别数 属性数 样本数 训练集 测试集

1 Breast Cancer 2 30 569 286 283 2 Vertebral Column 2 6 310 166 144 3 Blood Transfusion 2 4 748 500 248 4 Haberman's Survival 2 3 306 160 146 5 Ionosphere 2 34 351 175 176 6 Parkinsons 2 22 195 102 93 7 MAGIC 2 10 19020 184 18836 8 Pima Indians Diabetes 2 8 768 196 572 9 Connectionist Bench 2 60 208 104 104 10 Heart 2 13 270 121 149 11 Wine 3 13 178 98 80 12 Iris 3 4 150 73 77 13 Cardiotocography 3 21 2126 231 1895 14 Vehicle Silhouettes 4 18 846 206 640 15 Glass 6 9 214 153 61 16 Breast Tissue 6 9 106 56 50 17 Image Segmentation 7 19 2310 254 2056 18 Segmentation 7 18 2310 210 2100 19 Ecoli 8 7 336 212 124 20 Libras Movement 15 90 360 179 181 2.1 泛化能力比较 采用泛化误差作为泛化能力的评价标准。先在训练集上确定最优参数,然后在整个训练集上训练模型,最后利用测试集计算泛化误差,该过程迭代10次。考虑到对数据进行预处理可能影响分类器的性能,分别在预处理前后的数据上进行了实验。预处理的方法主要为异常值归约、0-1归一化等。实验结果见表2和表3,表2为二分类数据实验结果,表3为多分类。表中给出的误差值为10次迭代的平均值,粗体的数值为各分类器的最优值,“前”和“后”表示数据预处理前后,名义胜者是比较两分类器最优值得出的结果。

相关主题