zoukankan      html  css  js  c++  java
  • 机器学习(五)集成

    1、集成

    集成指用多个基学习器共同构成一个更加强大的学习器。
    集成包含三种方法:Boosting,Bagging,Stacking
    1、Boosting:包括GBDT和Adaboost,各学习器间存在强依赖关系,只能串行实现
    2、Bagging的代表算法是随机森林,各学习器间不存在强依赖关系,可以并行实现
    3、Stacking主要是分层结构。每个初级学习器负责一部分的领域知识并构成次级学习器。

    2、Boosting

    1、GBDT:梯度提升决策树
    原理简介如下图所示:

    这里写图片描述

    它的基本思想是:迭代第m次的基函数是根据上一颗树的伪残差训练出来的。

    2、Adaboost
    输入:训练数据集(D={(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N})})
    初始化:为每条数据赋一个权重,通常(D_{w}={w_{11},w_{12},...,w_{1N}}),其中,1表示第1次迭代。
    步骤:
    Step1:找到一个二分类器(G_{m}(x)),使下式的这个损失最小:

    [e_{m}=sum^{N}_{i=1}w_{mi}I(G_{m}(x_{I}) eq y_{i}) ]

    Step2:计算$$a_{m}=dfrac{1}{2}logdfrac{1-e_{m}}{e_{m}}$$
    Step3:更新权值$$w_{m+1,i}=dfrac{w_{mi}}{z_{m}}exp(-alpha_{m}y_{i}G_{m}(x_{i}))$$其中,(z_{m})为一归一化因子
    Step4: (m=m+1),并返回Step1进行迭代。

    最终求得的分类函数为$$f(x)=sum^{N}{m=1}alpha{m}G_{m}(x)$$

    3、Bagging

    比较有代表性的Bagging算法就是随机森林,它就是随机采一些样本,随机采一些属性生成多棵决策树进行共同决策。

    Bagging可以减少方差
    Boosting可以减少偏差

  • 相关阅读:
    Unit of Work
    Layered Supertype
    Domain Model
    ASP.Net设计模式读书笔记
    VS2010无法使用nuget安装第三方包的问题
    数据库对象命名
    sql50题
    RESTFul API
    EasyUI日历控件
    ASP.NET MVC 防止前端点击劫持
  • 原文地址:https://www.cnblogs.com/Yolanda7171/p/7242341.html
Copyright © 2011-2022 走看看