随机森林小结

  1. 集成学习概念
  2. 个体学习器概念
  3. boosting bagging
  4. 结合策略(平均法,投票法,学习法)
  5. 随机森林思想
  6. 随机森林的推广
  7. 优缺点
  8. sklearn参数
    9.应用场景

什么是集成学习

在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。

个体学习器介绍

个体学习器通常是用一个现有的学习算法从训练数据产生,例如C4.5决策树算法、BP神经网络算法等。此时集成中只包含同种类型的个体学习器,例如“决策树集成”中的个体学习器全是决策树,“神经网络集成”中就全是神经网络,这样的集成是“同质”(homogeneous)的,同质集成中的个体学习器也称为“基学习器”(baselearner),相应的学习算法称为“基学习算法”(baselearning algorithm)。有同质就有异质(heterogeneous),若集成包含不同类型的个体学习器,例如同时包含决策树和神经网络,那么这时个体学习器一般不称为基学习器,而称作“组件学习器”(componentleaner)或直接称为个体学习器

boosting bagging

Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器,更准确的说这是一种分类算法的组装方法。即将弱分类器组装成强分类器的方法。

首先介绍Bootstraping,即自助法:它是一种有放回的抽样方法(可能抽到重复的样本)。

1、Bagging (bootstrap aggregating)

Bagging即套袋法,其算法过程如下:

A)从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)

B)每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)

C)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

2、Boosting

其主要思想是将弱分类器组装成一个强分类器。在PAC(概率近似正确)学习框架下,则一定可以将弱分类器组装成一个强分类器。

关于Boosting的两个核心问题:

1)在每一轮如何改变训练数据的权值或概率分布?
通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。

2)通过什么方式来组合弱分类器?

通过加法模型将弱分类器进行线性组合,比如AdaBoost通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值。

而提升树通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。

3、Bagging,Boosting二者之间的区别
1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

4)并行计算:

Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果

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

结合策略
优点:
1.提高泛化性能
2.降低进入局部最小点的风险
3.扩大假设空间

平均法:简单平均、加权平均
适用范围:
+规模大的集成,学习的权重较多,加权平均法易导致过拟合
+个体学习器性能相差较大时宜使用加权平均法,相近用简单平均法。

投票法:
1.绝对多数投票法:某标记超过半数;
2.相对多数投票法:预测为得票最多的标记,若同时有多个标记的票最高,则从中随机选取一个。
3.加权投票法:提供了预测结果,与加权平均法类似。

学习法
Stacking描述:先从初始数据集中训练出初级学习器,然后“生成”一个新数据集用于训练次级学习器。在新数据集中,初级学习器的输出被当做样例输入特征,初始样本的标记仍被当做样例标记。
随机森林小结

什么是随机森林算法?

首先,随机森林算法是一种监督式分类算法。我们从名字上也能看出来,它是用来以某种方式创建一个森林,并使其随机。森林中的树的数量直接关系到算法得到的结果:树越多,结果就越准确。但是需要注意一点是,创建森林并不等同于用信息增益或构建索引的方法来创建决策。

熟悉决策树的人在首次接触随机森林时可能会有些困惑。决策树是一种决策辅助工具,它是用一种树状的图形来展示可能的结果。如果你将一个带有目标和特征的训练集输入到决策树里,它就会表示出一些规律出来。这些规律就可以用于执行预测。举个例子,假如你想预测你的女儿是否会喜欢一部动画片,你就可以收集她以前喜欢的动画片,将某些特征作为输入。然后通过决策树算法,你就可以生成相应的规律。而收集这些信息节点和形成规律的过程就是使用信息增益方法和基尼系数计算的过程。

随机森林算法和决策树算法分不同之处就是,在随机森林中,找到根节点和划分特征节点的过程会以随机的方式进行。

为何用随机森林算法?

我们为何使用随机森林算法主要有四点原因。第一点就是如开头所说,随机森林既可用于分类问题,也可用于回归问题。第二点,过拟合是个非常关键的问题,可能会让模型的结果变得糟糕。但对于随机森林来说,如果森林中的树足够多,那么分类器就不会过拟合模型。第三点是随机森林的分类器可以处理缺失值。最后一点,随机森林分类器可以用分类值建模。

随机森林算法的现实例子

我们举出一些例子,让你更好的理解随机森林。假设小明想去不同的地方度假两周,向朋友征求意见。朋友会问小明他都去过哪些地方,喜不喜欢这些地方。根据小明的回答,朋友就开始给出建议。这里,小明的朋友用的就是决策树方法。

小明想问问更多朋友的意见,因为他觉得一个朋友的方法没法帮他做出准确的决定。于是其他的朋友们同样问了小明很多随机的问题,然后给出建议。最后,小明把推荐人数最多的那个地方作为度假目的地。我们详细说说这里所举的例子。

其中一位朋友问了小明一些问题,并根据他的回答给出了目的地建议。单从这里看,这是典型的决策树方法。朋友根据小明的回答形成了规律,然后用规律去找到符合规律的答案。

但小明的朋友们同时还以随机的方式问了他很多不同的问题,并给出了建议,也就是对度假目的地的投票。最后,得票率最高的地方就是小明选择的目的地。这里用到的就是典型的随机森林方法。

随机森林算法的工作原理

随机森林算法又两个阶段,一个阶段是创建随机森林,另一个是根据前一个阶段创建的随机森林分类器做出预测。整个过程如下所示:

首先是随机森林创建阶段:

  • 从全部“m”个特征中随机选择“K”个特征,其中k << m
  • 在“K”个特征中,用最佳分裂点计算节点“d”
  • 用最佳分裂将节点分裂为子节点
  • 重复前面三步的过程,直到获得“I”个数量的节点。
  • 重复第1到第4步“n”次创建“n”个树,从而形成一个森林。

参考链接:
https://zhuanlan.zhihu.com/p/38383952
https://blog.****.net/loveitlovelife/article/details/79398745
https://www.cnblogs.com/liuwu265/p/4690486.html