高级算法梳理之随机森林
本系列将重点续写集成算法,其中包括随机森林(RF)—>GBDT—>XGB—>LightGBM,本文将重点介绍随机森林算法(RF)。
1. 什么是集成学习
集成学习,有个说法叫“三个臭皮匠,顶一个诸葛亮”,如下图所示,简单来说就是对于训练集数据,我们通过训练若干个个体学习器,通过一定的结合策略,就可以最终形成一个强学习器,以达到博采众长的目的。
其中个体学习期的选择方法要给予,低方差、高偏差的原则。
2、什么是个体学习器
个体学习器分为同质个体学习器和异质个体学习器。
同质个体学习器:个体分类器属于同种,比如决策树分类器、神经网络分类器
异质个体学习器:个体分类器不属于同种,比如一个分类问题,分类器同时用到了SVM、LR、朴素贝叶斯等等,然后利用某种结合策略形成最终的强分类器
2.1、同质个体学习器
是否存在依赖关系可以分为两类
强依赖关系(串行):Boost算法系列(AdaBoost、GDBT、XgBoost、GBM)
不存在强依赖关系(并行):Bagging算法系列(随机森林)
3、Boosting算法
如上图所示,Boosting算法的工作原理,简要叙述就是,对于训练数据集,先设置样本初始权重,一般利用均值作为初值。然后训练个体学习器1,经过个体学习器1学习后的学习误差率更新样本权重,原则就是加大被分错样本的权重,减小分类正确样本的权重。然后在训练个体学习期2,以此类推,得到个体学习器T。最后将这T个个体学习期以某种结合策略得到最终的强学习器。
4、Bagging算法
过程如上图所示,对m个样本进行又放回抽样,每抽样一次,就训练一次个体学习器(弱学习器),然后对T个个体学习期进行某种结合策略形成强学习器。
5、结合策略
结合策略一般分为三种方法
1、平均法:针对回归问题
2、投票法:针对分类问题
3、学习法:代表方法stacking.
5.1、平均法
假定有T个弱分类器{h1,h2,…hT}
对于数值类的回归预测问题,通常使用的结合策略是平均法。最简单的就是算数平均,最终结果为
如果每个个体学习器有一个权重w,则最终结果为
其中 是个体学习器 hi 的权重。
5.2、投票法
相对多数投票法:少数服从多数
绝对多数投票法:票过半数
加权投票法:同加权平均法一样
5.3、学习法
代表方法是stacking,当使用stacking的结合策略时,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。
在这种情况下,我们将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。
6、随机森林
6.1、随机森林建立方法
生成方法:
1、从样本集中通过重采用的方式产生n个样本
2、利用这n个样本训练时,随机选择部分属性,在这些部分属性中选择一个最优特征进行划分。
3、重复抽样m次,产生m可决策树
4、采用投票(分类问题)/平均(回归问题)的方式进行预测
随机性体现在两点:1、样本选择的随机性。2、特征选择的随机性
6.2、随机森林的特性
优点:
缺点:
随机森林是一种集成学习+决策树的分类模型,它可以利用集成的思想(投票选择的策略)来提升单颗决策树的分类性能(通俗来讲就是“三个臭皮匠,顶一个诸葛亮”)。
集集成学习和决策树于一身,随机森林算法具有众多的优点,其中最为重要的就是在随机森林算法中每棵树都尽最大程度的生长,并且没有剪枝过程。
随机森林引入了两个随机性——随机选择样本(bootstrap sample)和随机选择特征进行训练。两个随机性的引入对随机森林的分类性能至关重要。由于它们的引入,使得随机森林不容易陷入过拟合,并且具有很好得抗噪能力(比如:对缺省值不敏感)。
实战
不均衡数据处理方法
随机森林