zoukankan      html  css  js  c++  java
  • Bootstrap,Bagging and Random Forest Algorithm

    Bootstrap Method:在统计学中,Bootstrap从原始数据中抽取子集,然后分别求取各个子集的统计特征,最终将统计特征合并。例如求取某国人民的平均身高,不可能测量每一个人的身高,但却可以在10个省市,分别招募1000个志愿者来测量并求均值,最终再求取各省市的平均值。

    Bagging(Bootstrap Aggregating):应用了 Bootstrap的思想,从Training Set抽取k次subset,分别用来训练k个单独的模型,然后用这k个模型来做预测。最终,如果是Regression问题,则Average k个模型的输出;如果是Classification问题,则进行Majority Vote。

    Example:Bagged Decision Trees.引用自Springer Nature的文章‘Ensemble methods: bagging and random forests’。我们可以看到,图a中的数据点,是根据抛物线图(虚线)叠加噪音而生成。如果直接采用CART Decision Tree,拟合模型如图a的实线;图b给出了4个Bootstraps分别的拟合图像;图c的蓝线则是将4个Bootstrap进行了平均,更好的还原了抛物线图像。

    其中εB是对bags内部数据的差错曲线,而εOOB则是对Out-Of-Bag数据的测评。OOB在这里的作用类似于Cross Validation。

    Random Forest: 和Bagged Decision Tree的大体结构十分相似,Random Forest也是对Training Set进行k次随机抽样、种树、再求取平均(Majority Vote)。但Random Forest修改了Decision Tree中Greedy Search的部分:Decision Tree在每次分割时,会考虑所有的feature,然后选择最佳分割点;Random Forest为了增加随机性,在分割时使用1/3*D( regression), sqrt(D)(classification)的features来做选择,由此也减少了属于书之间的关联性。

    所以说,Bagged Decision Tree只有一个参数,那就是树的数量;而Random Forest却有两个参数:树的数量,以及分割时feature的数量。

  • 相关阅读:
    通用Logging框架设计
    slf4j 与各个 logging框架的适配器说明
    优雅的使用Spring
    Python : 反射
    Python: Tools
    Python : Class
    Python : Module
    Python 入门:基本语法
    docker:版本变更
    Linux: yum配置说明
  • 原文地址:https://www.cnblogs.com/rhyswang/p/9551956.html
Copyright © 2011-2022 走看看