zoukankan      html  css  js  c++  java
  • Machine Learning --- Boosting & AdaBoost & Bootstrap

    一、Boosting基本思想

    思想很朴素,“三个臭皮匠顶个诸葛亮”,由若干个弱分类器可组合成强分类器,通过调整样本的权重(概率)来迭代训练弱分类器(如decision tree),最后形成性能优异的强分类器(如SVM)。主要分为两个步骤:1.改变训练样本的权重分布;2.将弱分类器组合起来。算法内容如下:

    二、AdaBoost(多个弱分类器的线性组合)

    在Boosting思想下,AdaBoost算法诞生了(具体化了权重分配与弱分类器组合),算法内容很简单如下:

    image

    图例如下:

    imageimageimage

    image

    image

    训练误差分析:

    弱分类器的错误率(因为弱分类器总比随机猜测好,随机猜测错误率0.5):

    image

    则训练误差(训练误差随循环次数T指数下降):

    因此权重更新公式化简为:分错时Dt+1=Dt/(2ε)  分对时Dt+1=Dt/(2(1-ε))

    当训练次数T很大时通常也不会过拟合,下图采用决策树C4.5做Boosting:

    image

    三、Bootstrap自助法(有放回采样,类似大数定理,用来估计分布的方差/期望)

    Bootstrap是重采样技术的一种,重采样除了Bootstrap法还有刀切法(jackknife)。Bootstrap用来计算任意分布的标准误差(或方差)、偏差和置信区间,是一种基于数据的模拟方法。基本思想:利用样本数据计算统计量和估计样本分布。通过从原始数据X1~n进行b次有放回采样n个数据,得到bootstrap样本Xb1~n 。在一个bootstrap样本中不包含某个原始样本的概率为:

    image

    从T的分布中进行b次Bootstrap重采样,当b无穷大时,bootstrap样本均值无限逼近该分布的期望E(T),同样可用bootstrap样本的方差近似分布的方差V(T)。

    例:求均值

    X=(3.12, 0, 1.57, 19.67, 0.22, 2.2),bootstrap为:

    X1=(1.57, 0.22, 19.67, 0, 0.22, 3.12),X2=(0, 2.2, 2.2, 2.2, 19.67, 1.57),X3=(0.22, 3.12, 19.67, 3.12, 2.2, 0.22)

    mean(X)=4.46≈mean(mean(X1)+mean(X2)+mean(X3))=4.4

  • 相关阅读:
    Hibernate4学习day0--hibernate封装--注解--单元测试
    Hibernate4学习day01--简介--基本配置
    java基础day13---引用数据类型
    java基础day14---static关键字-----继承
    java基础day12---this 关键字-----参数传递
    day05 Struts2文件上传和下载---防重复提交
    java基础day11---空指针异常----引用类型--自定义类型赋值--封装
    java基础的第二轮快速学习!day10
    Struts2,大爷你好!第四天
    java基础的第二轮快速学习!day09
  • 原文地址:https://www.cnblogs.com/jizhiyuan/p/3423050.html
Copyright © 2011-2022 走看看