zoukankan      html  css  js  c++  java
  • AdaBoost算法概述

    Bagging是从原始数据集中进行有放回抽样,新数据集和原始数据集的大小相等,再将算法分别作用于各个数据集得到N个分类器,最后进行投票抉择(典型算法如:Bagging + 决策树 = 随机森林)

    Boosting是将弱分类器组装成一个强分类器,boosting是通过训练集中关注被已有分类器错分的那些数据来获得新的分类器(典型算法如:AdaBoost + 决策树 = 提升树;Gradient Boosting + 决策树 = GBDT)

    Bagging和Boosting的区别:摘自http://www.cnblogs.com/liuwu265/p/4690486.html

      1)样本选择

        Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间相互独立

        Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

      2)样本权重

        Bagging:使用均匀取样,每个样例的权重相等

        Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大

      3)分类器权重

        Bagging:所有分类器的权重相等

        Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重

      4)并行

        Bagging:各个分类器可以并行生成

        Boosting:各个分类器只能顺序生成,因为后一个模型参数需要前一轮模型的结果

    Boosting有两个主要的思考点,一是如何改变训练数据的概率分布来学习到一系列弱分类器;二是如何将弱分类器组合成一个强分类器

    AdaBoost的做法是:

      一是对于前一轮分类器中分类错误的样本,提高其权值,引起后一轮分类器的更大关注

      二是加大分类误差率小的分类器权值,使其在表决时起更大作用

    AdaBoost详细实例讲解:http://blog.csdn.net/GYQJN/article/details/45501185

    AdaBoost优缺点

      优点:泛化错误率低,无需参数调整

      缺点:对离群点敏感

     为什么AdaBoost不会过拟合?

      关于Adaboost,它是boosting算法,从bias-variance(偏差-方差)的角度来看,boosting算法主要关注的是降低偏差

      而boosting算法每个分类器都是弱分类器,而弱分类器的特性就是high-bias & low variance(高偏差-低方差),其与生俱来的优点就是泛化性能好

      因此,将多个算法组合起来之后,可以达到降偏差的效果,进而得到一个偏差小、方差小的泛化能力好的模型。

    AdaBoost总结

      adaboost算法首先为训练集中的每个样本赋予一个均分权重,构成向量D;

      接着训练第一个弱分类器,计算其错误率e,再调整样本权重,提高误分类样本权值,进行下一轮训练

      并且,由于最终结果是由各分类器投票产生,所以还需为每个分类器计算权重值α,α是根据错误率e更新的,e越小,α越大

      训练过程不断持续,直至e为0或分类器数目达到指定值时算法停止

    (以上大部分内容摘自http://blog.csdn.net/dream_angel_z/article/details/52348135(推荐关注))

  • 相关阅读:
    appium应用切换以及toast弹出框处理
    selenium元素定位方法之轴定位
    基于appium的常用元素定位方法
    基于appium的模拟单点或多点触屏操作
    app自动化测试初体验
    app自动化测试环境搭建之node+appium+ADT+MUMU模拟器
    linux的vi编辑器常用用法一览
    踩过了这些坑,你真的懂python基础吗?
    mysql分页查询
    Jenkins—Master/Slave模式
  • 原文地址:https://www.cnblogs.com/xiaoyun94/p/7382221.html
Copyright © 2011-2022 走看看