APP下载

机器学习随机森林算法的应用现状

2018-05-10杭琦杨敬辉

电子技术与软件工程 2018年24期
关键词:随机森林机器学习

杭琦 杨敬辉

摘要

随机森林(RF)是机器学习算法中的一种组合分类器,也是集成学习的代表性算法之一。它通过bagging算法集成多个决策树并以投票的形式输出结果,在学术界和工业界均取得了很好的评价。本文将具体介绍随机森林算法的构建过程,总结随机森林算法在性能改进、性能指标方面的研究,对目前随机森林已经有的理论和应用研究做一个系统的总结和整理,以利于后续的算法优化研究。

【关键词】机器学习 集成学习 随机森林

机器学习算法主要解决的是分类和聚类的问题。分类问题是根据用户的分类数据得到预测的分类结果。根据分类器的个数,分类器又分为单分类器和多分类器。例如决策树、贝叶斯都是传统单分类算法。这些传统的机器学习算法在一定程度上都促进了分类学习的发展,但由于单分类器有其自身的限制,容易产生过拟合等现象。故学者们提出集成多个分类器形成组合分类器,把一个学习问题分解到各个子学习器内,让其一起学习。多分类器的分类思想起源子集成学习,Boosting和Bagging是最早将集成学习思想应用到机器学习分类算法里中两种算法。随着集成学习的发展,TinKam Ho在1995年提出了随机决策森林的思想,1998年,他又提出了新的随机子空间的集成方法,Breiman根據随机子空间的思想在2001提出了随机森林算法,从理论和实践两方面做了系统的阐述,自此随机森林算法成为机器学习领域中的一个具有代表性的集成学习的方法。

本篇文章第一节针对随机森林算法构建过程进行简单介绍;第二节介绍随机森林在性能改进方面的研究;第三节针对随机森林的性能指标进行研究总结;最后总结全文。

1随机森林算法的构建过程

随机森林算法是一种集成分类模型,它的构建过程主要由三个方面构成,训练集的生成、决策树的构建和算法的产生。要构建随机森林首先要生成一个规模大小为N的随机森林,就需要有N颗树,因此需要N组训练集。故首先我们需要从原始数据中通过抽样产生训练集。通过Bagging算法从原始数据集中抽取N个样本。每个样本都会生产一个决策树,且生成的决策树不需要做剪枝处理,从而建立起N棵决策树形成森林。随机森林生成过程中涉及到如下三个评估过程:

(1)指定m值,由于在每棵决策树分裂的过程中,不是样本中全部K个特征属性都参与分裂,而是从中随机抽取m个变量,同时分裂过程中特征属性的选择需满足节点不纯度最小原则。

(2)应用Bagging随机取样法在原数据集中有放回地随机抽取k个样本集,组成k棵决策树;

(3)根据k个决策树组成的随机森林对待分类样本进行分类或预测,分类的结果由单颗决策树的分类结果投票决定。

从随机森林三个评估过程中可以看出。随机森林的构建过程中掺入了随机性,从而降低了随机森林过拟合现象的产生。

2随机森林算法优化方法研究

基于集成学习的随机森林算法从根源上改善了决策树容易过拟合的特性。但是该算法在算法处理不同类型数据集特别是不平衡数据集和算法分类精度的方面,还需要一定程度的改进。因此国内外的学者专家们就随机森林算法的优化方面提出了很多的改进的方法,细分起来,它们可以分成以下三个主要的方面。

2.1结合数据预处理对随机森林算法进行优化

不平衡数据集的分类问题是当前机器学习领域的一大挑战。故针对随机森林处理不平衡数据集上的分类问题上,学者专家们将数据预处理融入到随机森林算法优化的研究中来,通过数据预处理,随机森林的性能得到了一定的提升。

文献[4]提出代价敏感随机森林算法,在随机森林算法中引入代价敏感学习,让分类器更偏向少数类,使得总的误分类代价最小化。文献[5]首次提出对原始数据进行NCL(Neighborhood Cleaning Rule)处理,并将处理过的数据结合随机森林算法进行分类,实验表明经过NCL技术改进后的随机森林算法拥有更好的分类精度。文献[6]提出了分层抽样的随机森林算法,并且在节点分裂处采用支持向量机算法作为算法的基分类器,结果表明经过改进的随机森林算法在非平衡数据的处理效果比传统的随机森林、过采样支持向量机、欠采样支持向量机的都要好。

2.2针对随机森林算法构建过程的优化

针对算法自身构建过程的改进主要表现在降低泛化误差,减少每颗决策树之间的相关性。

由于传统随机森林算法中各个决策树的之间的权重相同,故修改决策树之间权重的思想被广泛的用于随机森林的改进。Li,Wang[7]等人根据袋外数据误分率进行权重设置,用正确的分类与随机森林分类器的结果进行比较,统计随机森林分类器分类错误的数目。雍凯[8]利用卡方检验进行特征的相关性评估,依据评估的结果进行随机特征选择,该方法可以很好的降低随机森林泛化误差的上界,进而提高整体的分类精度。孙丽丽[9]等人根据由聚类数据构建的多棵决策树构成的随机森林来进行分类器的加权集成,通过加权集成可以很好的降低数据集的复杂性,提高整体的分类效率和分类准确度。

2.3引入新算法进行随机森林的优化

Breiman根据随机子空间的思想在2001提出了随机森林算法。从本质上讲,该算法是Bagging方法和Random Subspace方法的组合。近几年来对于随机森林的改进方法的研究大部分在组合算法上,通过将优秀的算法融入到随机森林算法中,从而提升分类精度。

旋转森林算法(Rotation Forests)[10]中引入了主成分分析算法进行特征向量的变换,通过把原始数据集上的原始向量通过坐标变换旋转到主成分所在的方向,再进行随机森林的构建。霍夫森林算法(Hough forests) [11]将霍夫变换引入到随机森林的投票过程中,对随机森林的投票机制进行了优化。马景义[12]等我国学者们将Adaboost算法与随机森林算法进行组合,提出了一种改进的随机森林算法算法一拟自适应分类随机森林算法,此算法不用区分数据集,通过发挥两种算法各自的优势,得到了较好的分类效果。

从上文的三种优化方法来看,对于随机森林算法分类性能的提升,第一种改进方法主要侧重于对于不平衡数据的优化研究上;第二种改进方法主要集中于各种组合算法的研究上,这些组合算法一般都被用于某个特定的问题上;而第三个种优化方式主要集中在算法本身的改进上,在权重的优化方面改进较多,这类算法具有一定的通用性,可以在不同的領域中使用。

3随机森林算法的性能指标研究

随机森林分类性能受外部因素和内部因素的共同影响,从内部因素来看,一般从每棵决策树的最大树深度、决策树的分类强度和决策树之间的相关性来考虑。从外部因素看,主要来自原始数据本身的分布情况,包括正负样本的分类,样本的规模等情况。评价随机森林性能的指标一般有两种:分类效果指标和泛化误差。

3.1分类效果指标

随机森林算法的应用场景最多的还是出现在预测和分类模型中,表1中的混淆矩阵是二分类中经常用到的评估分类效果的指标。

其中TP指被模型预测为正的正样本数量TN指的是被模型预测为负的负样本数量;FP指被模型预测为正的负样本数;FN指的是被模型预测出来为负的正样本数。

精确率( Precision),表示预测为正例的样本中,真正为正例的比例计算公式为:

分类准确率(Accuracy),表示分类模型总体的分类精度,计算公式为:

3.2泛化误差

泛化能力(generalizadon ability)是指机器学习算法对新鲜样本的适应能力。即对于具有相同分布规律训练集以外的数据,该模型也能做出正确的判断。在很多工业生产的应用场景中,我们通常用泛化误差(GeneralizationError)来评估机器学习算法的泛化能力,如果泛化误差越大,那么该模型学习性能越差,反之则性能越好。泛化误差从理论上来说可以通过公式直接计算出来的。但是从实际应用来看我们无法获得准确的样本分布情况和样本的期望输出。目前用来估计分类器的泛化误差的方法主要有两种,一种是分析模型(AnalyticalModel)还有一种是交叉验证(Cross-validation,CV)。分析模型对于简单的线性分析是比较有效的,但由于其难以对随机森林的有效参数做出合理估计,所以对于非线性等复杂的问题难以突出其优点。交叉验证是通过把训练数据分成了训练集和测试集,用训练集来训练算法,再用测试集来验证算法,从而通过验证集来估计泛化误差。而OOB估计是随机森林算法的一种比较好的估计泛化误差的方法。在构建决策树时需要对训练集进行随机且有放回地抽取,故对于随机森林模型中的初始训练集来说总会有一些原始数据没有参加模型的训练,而这些没有参加模型训练的样本就是OBB数据。Breiman已经在论文中用实例表明OOB估计与同样误差大小的测试集有着相同的分类精度,OBB估计可以作为随机森林泛化误差的一个无偏估计。

4结语

在如今,机器学习算法是被很多学者专家们追捧的学习方法,随机森林也是在其中孕育而生的。随机森林算法是集成学习中具有代表性的一个算法,它简单高效、应用广泛,在金融学、医学、生物学等众多应用领域均取得了很好的成绩。故本文对随机森林构建过程做了研究,还通过其性能改进和性能指标两方面进行了总结。但作为学术界和工业界均应用很广的一个算法,我们还需要考虑在数据量日益增大的复杂分类任务中,在如何有效提升模型复杂度,如何处理非平衡数据、连续性数据以及如何提升算法的分类精度这些问题上都值得我们进行深入的探讨。

参考文献

[1]T.K. Ho. RandomDecision Forest [J]. InProceedings of the3rd InternationalConFerence on Document Analysisand Recognition. Montreal, Canada,1995,8:278-282.

[2]T. K. Ho, he Random Subspace Method for Constructing Decision Forests.[J].IEEE Transactions on PatternAnalysis and Machine Intelligence,1998, 20 (8): 832-844.

[3]L. Breiman, Random Forests [J].MachineLearning, 2001,45 (1): 5-32.

[4]houQ, Zhou H, Li T. Cost-sensitivefeature selection using randomforest: Selecting low-costsubsetsof

informa tivefeatures [J].Knowledge-Based Systems,2015: S0950705115004372.

[5]吴琼,李运田,郑献卫,面向非平衡训练集分类的随机森林算法优化[J],工业控制计算机201213, 26 (07): 89-90

[6]Wu Q, Ye Y, Zhang H, et al.ForesTexter: An efficient randomforest algorithm for imbalanced textcategorizat ion [J].

Knowledge-BasedSystems, 2014, 67 (3): 105-116.

[7]L1 H B, Wang W, Ding H W, et al.Trees Weighting Random Forest Methodfor Classifying High-DimensionalNoisy Data [C]. IEEE InternationalConference on E-business Engineering.IEEE, 2011.

[8]雍凯,随机森林的特征选择和模型优化算法研究[D].哈尔滨工业大学,2008.

[9]孙丽丽,基于属性组合的随机森林[D],河北大学,2 011.

[10] Rodriguez J J, Kuncheva L I ,Alonso C J. Rotation Forest: A NewClassifier Ensemble Method[J]. IEEETrans Pattern Anal Mach Intell,2006, 28 (10):1619-1630.

[ll]LempitskyV. Hough Forests for ObjectDetection, Tracking, and ActionRecognition[J]. IEEE Transactionson Pattern Analysis & MachineIntelligence, 2011, 33 (11): 2188-2 02.

[12]马景义,吴喜之,谢邦昌,拟自适应分类随机森林算法[J].数理统计与管理,2010, 29 (05): 805-811.

[13] Cortes C. Prediction ofGeneralization Ability in LearningMachines [J]. 1995.

[14]刘凯,随机森林自适应特征选择和参数优化算法研究[D].长春工业大学,2018.

猜你喜欢

随机森林机器学习
拱坝变形监测预报的随机森林模型及应用
前缀字母为特征在维吾尔语文本情感分类中的研究
基于支持向量机的金融数据分析研究
基于随机森林算法的B2B客户分级系统的设计
基于多视角特征融合与随机森林的蛋白质结晶预测