本文我们重点讲一下:
1、集成学习、Bagging和随机森林概念
2、随机森林参数解释及设置建议
3、随机森林模型调参实战
4、随机森林模型优缺点总结
集成学习、Bagging和随机森林
集成学习并不是一个单独的机器学习算法,它通过将多个基学习器(弱学习器)进行结合,最终获得一个强学习器。这里的弱学习器应该具有一定的准确性,并且要有多样性(学习器之间具有差异),比较常用的基学习器有决策树和神经网络。
集成学习的核心就是如何产生并结合好而不同的基学习器,这里有两种方式是,一种是Bagging(基学习器之间没有强依赖关系,可同时生成的并行化方法),一种是Boosting(基学习器之间有强依赖关系,必须串行生成)。集成学习另一个关键问题是结合策略,主要有平均法、投票法和学习法,这里不再展开。
Bagging是Bootstrap AGGregaING的缩写,Bootstrap即随机采样,比如给定含有个样本的数据集,每次随机的从中选择一个样本,放入新的数据集,然后将其放回初始数据集,放回后有可能继续被采集到,重复这个动作次,我们就得到新的数据集。
用这种方式,我们可以采样出含m个训练样本的采样集,然后基于每个采样集训练基学习器,再将基学习器进行结合,这便是Bagging的基本流程。
随机森林是非常具有代表性的Bagging集成算法,它在Bagging基础上进行了强化。它的所有基学习器都是CART决策树,传统决策树在选择划分属性时是在当前结点的属性集合(假定有d个属性)中选择最优属性。但是随机森林的决策树,现在每个结点的属性集合随机选择部分k个属性的子集,然后在子集中选择一个最优的特征来做决策树的左右子树划分,一般建议.
随机森林参数解释及设置建议
在scikit-learn中,RandomForest的分类类是RandomForestClassifier,回归类是RandomForestRegressor,需要调参的参数包括两部分,第一部分是Bagging框架的参数,第二部分是CART决策树的参数。
随机森林优缺点总结
RF优点
不容易出现过拟合,因为选择训练样本的时候就不是全部样本。
可以既可以处理属性为离散值的量,比如ID3算法来构造树,也可以处理属性为连续值的量,比如C4.5算法来构造树。
对于高维数据集的处理能力令人兴奋,它可以处理成千上万的输入变量,并确定最重要的变量,因此被认为是一个不错的降维方法。此外,该模型能够输出变量的重要性程度,这是一个非常便利的功能。
分类不平衡的情况时,随机森林能够提供平衡数据集误差的有效方法
RF缺点
随机森林在解决回归问题时并没有像它在分类中表现的那么好,这是因为它并不能给出一个连续型的输出。当进行回归时,随机森林不能够作出超越训练集数据范围的预测,这可能导致在对某些还有特定噪声的数据进行建模时出现过度拟合。
对于许多统计建模者来说,随机森林给人的感觉像是一个黑盒子——你几乎无法控制模型内部的运行,只能在不同的参数和随机种子之间进行尝试。
参考:
https://www.jianshu.com/p/708dff71df3a
https://www.cnblogs.com/pinard/p/6156009.html