bagging与随机森林(python实现)

bagging

采用数据随机重抽样的分类器构建方法,从训练集进行子抽样组成每个基学习器的子训练集,结合所有基学习器的预测结果进行最终的预测。如下图所示:
bagging与随机森林(python实现)_第1张图片
关于“随机采样”:
随机采样(bootsrap)就是从我们的训练集里面采集固定个数的样本,但是每采集一个样本后,都将样本放回。也就是说,之前采集到的样本在放回后有可能继续被采集到。对于我们的Bagging算法,一般会随机采集和训练集样本数m一样个数的样本。这样得到的采样集和训练集样本的个数相同,但是样本内容不同。如果我们对有m个样本训练集做T次的随机采样,,则由于随机性,T个采样集各不相同。其中有1/e(计算很简单)的数据是从未采样到的,可以用来作为测试集。
GBDT的子采样是无放回采样,bagging是有放回采样。
为什么说bagging是减少variance,而boosting是减少bias?
链接:https://www.zhihu.com/question/26760839/answer/40337791
随机森林的改进:
首先,RF使用了CART决策树作为弱学习器,这让我们想到了梯度提升树GBDT。第二,在使用决策树的基础上,RF对决策树的建立做了改进,对于普通的决策树,我们会在节点上所有的n个样本特征中选择一个最优的特征来做决策树的左右子树划分,但是RF通过随机选择节点上的一部分样本特征,这个数字小于n,假设为nsub,然后在这些随机选择的nsub个样本特征中,选择一个最优的特征来做决策树的左右子树划分。这样进一步增强了模型的泛化能力。
随机森林的优缺点

RF的主要优点有:

1) 训练可以高度并行化,对于大数据时代的大样本训练速度有优势。这是的最主要的优点。

2) 由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的训练模型。

3) 在训练后,可以给出各个特征对于输出的重要性

4) 由于采用了随机采样,训练出的模型的方差小,泛化能力强。

5) 相对于Boosting系列的Adaboost和GBDT, RF实现比较简单。

6) 对部分特征缺失不敏感。

RF的主要缺点有:

1)在某些噪音比较大的样本集上,RF模型容易陷入过拟合。

2) 取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。

你可能感兴趣的:(机器学习基础)