美文网首页
Bagging-随机森林

Bagging-随机森林

作者: zhouycoriginal | 来源:发表于2020-02-06 12:40 被阅读0次

    Bagging流派的机器学习, 其学习器之间没有没有依赖关系, 这意味着可以并行计算, Bagging的弱学习器之间没有boosting那样的联系, 它的特点在于随机采样, 这个采样是有放回的采样
    对于某个样本, 它在含有m个样本的数据中, 每次被采集到的概率是\frac{1}{m}, 那么不被采样到的概率是1-\frac{1}{m}, 如果样本经过m次采样都没有被采到, 那么这个概率是(1-\frac{1}{m})*m, 当m\rightarrow\infty时, (1-\frac{1}{m})*m \rightarrow \frac{1}{e} \approx 0.368, 也就是说, bagging每轮随机采样中, 大约有36.8%的样本没有被采集到, 这部分数据通常被称作袋外数据(Out-Of-Bag, OOB), 这些数据没有参与训练模型, 可以被用来检测模型的泛化能力

    Bagging 算法的流程

    1. 输入样本T, m个样本
    2. 对于迭代次数 k=1,2,...,K:
    • 对训练集进行随机采样, 得到包含 m个样本的数据集D_k
    • 训练一个分类器 G_k(x)
    1. 回归/分类算法结束

    随机森林

    • 首先,RF使用了CART决策树作为弱学习器
    • RF对决策树的建立做了改进,RF通过随机选择节点上的一部分样本特征,这个数字小于n,假设为n_{sub},然后在这些随机选择的n_{sub}个样本特征中,选择一个最优的特征来做决策树的左右子树划分。这样进一步增强了模型的泛化能力。
      如果n_{sub}=n,则此时RF的CART决策树和普通的CART决策树没有区别。
      n_{sub}越小,则模型越健壮,当然此时对于训练集的拟合程度会变差。也就是说n_{sub}
      越小,模型的方差会减小,但是偏差会增大。在实际案例中,一般会通过交叉验证调参获取一个合适的n_{sub}的值.
      为什么会出现这样的情况呢? n_{sub}变小, 相当于模型使用的数据变小了, 那么对应得方差变化区间受到限制, 但预测准确性则变低

    RF的算法原理也终于讲完了,作为一个可以高度并行化的算法,RF在大数据时候大有可为。 这里也对常规的随机森林算法的优缺点做一个总结。

    RF的主要优点有:

    • 训练可以高度并行化,速度快

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

    • 随机, 这个做法,在统计里, 是一个非常重要的概念, 比较抽象, 有时候,能增强模型的泛化能力

    • 在训练后,可以给出各个特征对于输出的重要性:
      之所以能给出特征的重要性, 是因为有OOB的存在, 对于生成的每一个弱分类器, 计算它的OOB, 之后对这些树使用的feature加入噪声, 再次计算OOB误差, 看两次的OOB, 如果变化不大, 证明这些(个)feature是重要的

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

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

    • 对部分特征缺失不敏感。
      RF的主要缺点有

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

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

    相关文章

      网友评论

          本文标题:Bagging-随机森林

          本文链接:https://www.haomeiwen.com/subject/zriyxhtx.html