(一):随机森林算法梳理

2019-04-03  本文已影响0人  两个橘子

1. 集成学习概念

集成学习的是先通过一定的规则生成多个学习器,再采用某种集成策略进行组合,最后综合判断输出最终结果。一般而言,通常所说的集成学习中的多个学习器都是同质的"弱学习器"。基于该弱学习器,通过样本集扰动、输入特征扰动、输出表示扰动、算法参数扰动等方式生成多个学习器,进行集成后获得一个精度较好的"强学习器"。

2.个体学习器概念

个体学习器通常由一个现有的学习算法从训练数据产生,是为了集成学习而产生的个体,通常有以下几种:

3.Boosting & Bagging

根据个体学习器的生成方式,目前集成学习的方法大致可分为两大类:

3.1 Boosting

什么是 Boosting 算法呢?
    Boosting 算法是集成算法中的一种,同时也是一类算法的总称。这类算法先从初始训练集训练出一个弱学习器,然后根据弱学习器的表现对训练样本分布进行调整,不断训练出多个弱学习器,最后将它们进行加权组合成一个强分类器,为什么要这么做呢?因为弱学习器好训练,强学习器不好得。因此要打造一个好的强学习器,最好的方式就是训练多个弱学习器,然后让这些弱学习器组合起来,这样往往可以得到很好的效果。这就是 Boosting 算法的原理。
    Boosting 最著名的算法是 AdaBoost算法。

3.2 Bagging

Bagging是并行式集成学习方法的代表,是一种基于自助采样法(bootstrap sampling)发展而来的算法。
    假定有m个训练集,我们采用自助采样法,每次随机抽取一个放入采样集中,然后再把样本放回训练集,一共抽取m次,获得一个用于训练的采样集(里面有m个样本)。根据需要我们一共抽取T个采样集,学习出T个基学习器。
在进行预测时,对于分类任务采用简单投票法,回归任务采用简单平均法。

总结:
    Boosting 的含义是提升,它的作用是每一次训练的时候都对上一次的训练进行改进提升,在训练的过程中这 K 个“专家”之间是有依赖性的,当引入第 K 个“专家”(第 K 个分类器)的时候,实际上是对前 K-1 个专家的优化。而 Bagging 在做投票选举的时候可以并行计算,也就是 K 个“专家”在做判断的时候是相互独立的,不存在依赖性。

4结合策略(平均法,投票法,学习法)

平均法:简单平均、加权平均
适用范围:

投票法:

学习法:
    对于学习法,代表方法是stacking,当使用stacking的结合策略时, 我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。
    在这种情况下,我们将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。

5随机森林思想

随机森林的英文是 Random Forest,英文简写是 RF。它实际上是一个包含多个决策树的分类器,每一个子分类器都是一棵 CART 分类回归树。所以随机森林既可以做分类,又可以做回归。当它做分类的时候,输出结果是每个子分类器的分类结果中最多的那个。你可以理解是每个分类器都做投票,取投票最多的那个结果。当它做回归的时候,输出结果是每棵 CART 树的回归结果的平均值。

6随机森林的推广

6.1extra trees

extra trees是RF的一个变种, 原理几乎和RF一模一样,仅有区别有:

1) 对于每个决策树的训练集,RF采用的是随机采样bootstrap来选择采样集作为每个决策树的训练集,而extra trees一般不采用随机采样,即每个决策树采用原始训练集。

2) 在选定了划分特征后,RF的决策树会基于信息增益,基尼系数,均方差之类的原则,选择一个最优的特征值划分点,这和传统的决策树相同。但是extra trees比较的激进,他会随机的选择一个特征值来划分决策树。
    从第二点可以看出,由于随机选择了特征值的划分点位,而不是最优点位,这样会导致生成的决策树的规模一般会大于RF所生成的决策树。也就是说,模型的方差相对于RF进一步减少,但是bias相对于RF进一步增大。在某些时候,extra trees的泛化能力比RF更好

6.2 Totally Random Trees Embedding

Totally Random Trees Embedding(以下简称 TRTE)是一种非监督学习的数据转化方法。它将低维的数据集映射到高维,从而让映射到高维的数据更好的运用于分类回归模型。我们知道,在支持向量机中运用了核方法来将低维的数据集映射到高维,此处TRTE提供了另外一种方法。
    TRTE在数据转化的过程也使用了类似于RF的方法,建立T个决策树来拟合数据。当决策树建立完毕以后,数据集里的每个数据在T个决策树中叶子节点的位置也定下来了。比如我们有3颗决策树,每个决策树有5个叶子节点,某个数据特征划分到第一个决策树的第2个叶子节点,第二个决策树的第3个叶子节点,第三个决策树的第5个叶子节点。则x映射后的特征编码为(0,1,0,0,0, 0,0,1,0,0, 0,0,0,0,1), 有15维的高维特征。这里特征维度之间加上空格是为了强调三颗决策树各自的子编码。
    映射到高维特征后,可以继续使用监督学习的各种分类回归算法了。

6.3 Isolation Forest

Isolation Forest(以下简称IForest)是一种异常点检测的方法。它也使用了类似于RF的方法来检测异常点。
    对于在T个决策树的样本集,IForest也会对训练集进行随机采样,但是采样个数不需要和RF一样,对于RF,需要采样到采样集样本个数等于训练集个数。但是IForest不需要采样这么多,一般来说,采样个数要远远小于训练集个数?为什么呢?因为我们的目的是异常点检测,只需要部分的样本我们一般就可以将异常点区别出来了。
    对于每一个决策树的建立, IForest采用随机选择一个划分特征,对划分特征随机选择一个划分阈值。这点也和RF不同。
    另外,IForest一般会选择一个比较小的最大决策树深度max_depth,原因同样本采集,用少量的异常点检测一般不需要这么大规模的决策树。

对于异常点的判断,则是将测试样本点x拟合到T颗决策树。计算在每颗决策树上该样本的叶子节点的深度ht(x)。,从而可以计算出平均高度h(x)。此时我们用下面的公式计算样本点x的异常概率:
s(x,m)=2−h(x)c(m)
    其中,m为样本个数。c(m)的表达式为:
c(m)=2ln(m−1)+ξ−2m−1m,ξ为欧拉常数
    s(x,m)的取值范围是[0,1],取值越接近于1,则是异常点的概率也越大。

7.优缺点

随机森林的优缺点

优点:

1)随机森林算法能解决分类与回归两种类型的问题,表现良好,由于是集成学习,采用了随机采样,训练出的模型的方差和偏差都比较小,泛化性能优越;
2)随机森林对于高维数据集的处理能力很好,它可以处理成千上万的输入变量,并确定最重要的变量,因此被认为是一个不错的降维方法。此外,该模型能够输出特征的重要性程度,这是一个非常实用的功能。

  1. 可以应对缺失数据;
    4)当存在分类不平衡的情况时,随机森林能够提供平衡数据集误差的有效方法;
  2. 高度并行化,易于分布式实现,对于大数据时代的大样本训练速度有优势。
  3. 由于是树模型 ,不需要归一化即可之间使用
    7)相对于Boosting系列的Adaboost和GBDT, RF实现比较简单。

缺点:

a)随机森林在解决回归问题时并没有像它在分类中表现的那么好,这是因为它并不能给出一个连续型的输出。当进行回归时,随机森林不能够作出超越训练集数据范围的预测,这可能导致在对某些还有特定噪声的数据进行建模时出现过度拟合。
b)对于许多统计建模者来说,随机森林给人的感觉像是一个黑盒子——你几乎无法控制模型内部的运行,只能在不同的参数和随机种子之间进行尝试。
c) 忽略属性之间的相关性

8.sklearn参数

在 sklearn 中,我们使用 RandomForestClassifier() 构造随机森林模型,函数里有一些常用的构造参数:


image.png

当我们创建好之后,就可以使用 fit 函数拟合,使用 predict函数预测

9. 应用场景

数据维度相对低(几十维,在初学者的我来说,感觉不低了。。),同时对准确性有较高要求时。
因为不需要很多参数调整就可以达到不错的效果,基本上不知道用什么方法的时候都可以先试一下随机森林。

参考资料:

  1. EddyLiu2017 的《机器学习》笔记-集成学习(8)https://www.jianshu.com/p/2424fa91534b
  2. loveitlovelife 的 集成学习三结合策略及(平均、投票、stacking)与多样性https://blog.csdn.net/loveitlovelife/article/details/79398745
  3. 刘建平Pinard 的 集成学习原理小结 https://www.cnblogs.com/pinard/p/6131423.html 和 Bagging与随机森林算法原理小结
    https://www.cnblogs.com/pinard/p/6156009.html
  4. KongQingQing29 的 随机森林,GBDT,XGBoost的对比https://blog.csdn.net/yingfengfeixiang/article/details/80210145
上一篇下一篇

猜你喜欢

热点阅读