zoukankan      html  css  js  c++  java
  • Bagging、随机森林

    Bagging原理

    Bagging是n个相互无信赖的弱学习器,通过一定的策略,得到一个强学习器。

    随机采样

    Bagging一个主要的特点是随机采样,bagging是有放回的采样。

    对于一个有m个样本的数据集,每次采集一个样本,被采的概率是(frac{1}{m}),不被采的概率是(1-frac{1}{m}),如果m次采样都没有被采中的概率是((1-frac{1}{m})^m),当(m oinfty)时,((1-frac{1}{m})^m ofrac{1}{e}simeq0.368),也就是说,在每轮采样中,大绝36.8%的样本没有被采中。这此没有参与拟合的数据,可以提高模型的泛化能力。

    bagging应用

    bagging常用于决策树和这神经网络。

    bagging决策策略

    常用的策略是平均法和投票法

    随机森林

    随机森林Random Forest(RF)是bagging算法思想的进化版本。

    随机森林使用了CART决策树作为弱学习器,RF对决策树的建立进行了改进。

    RF对决策树的改进

    对于普通的决策树,我们会在节点上所有n个样本特征中选择一个最优的特征来做决策树的左右子树划分。但对于RF算法,只选择节点上一部分特征假设为(n_{sub}),然后在随机选择的特征中,选择一个最优的特征进行左右子树的划分,增强模型的泛化能力。

    随机森林RF的应用

    随机森林RF在实际应用中有良好的特性,基于RF有很多推广。如extra trees、Totally Random Trees Embedding、Isolation Forest

    随机森林总结

    主要优点:

    1. 训练可以高度并行
    2. 随机特征划分,在样本维度很高时,仍然能高效训练
    3. 训练完成后,可以给出各特征的重要性
    4. 随机采样,模型方差小,泛化能力强
    5. 对于Boosting系列的adaboost和GBDT,RF实现更简单。
    6. 对部分特征缺失不敏感

    主要缺点:

    1. 在某些噪声较大的样本集上,RF容易过拟合。
    2. 取值划分较多的特征容易对RF决策产生更大的影响,从而影响模型效果。

    sklearn随机森林RF使用

    类库

    from sklearn.ensemble import RandomForestClassifier
    from sklearn.ensemble import RandomForestRegressor
    

    参数

    1. n_estimators:弱学习器迭代次数
    2. oob_score:是否采用袋外样本评估模型
    3. criterion:CART树对特征的评价标准

    实例

    rf = RandomForestClassifier(oob_score=True,random_state=10)
    rf.fit(x,y)
    

    使用GridSearchCV交叉验证调参

    param_test1 = {'n_estimators': range(20, 81, 10)}
    gs2 = GridSearchCV(estimator=RandomForestClassifier(random_state=10),
                       param_grid=param_test1,scoring='roc_auc',cv=5)
    
  • 相关阅读:
    并不对劲的辛普森积分
    并不对劲的概率与期望
    并不对劲的cdq分治解三维偏序
    68.机器人的运动范围
    67.矩阵中的路径
    66.滑动窗口最大值
    65.数据流的中位数
    64.二叉搜索树的第K个节点
    63.序列化二叉树
    62.把二叉树打印成多行
  • 原文地址:https://www.cnblogs.com/guesswhy/p/12882561.html
Copyright © 2011-2022 走看看