• 《统计学习方法》笔记--提升方法


    就分类问题的训练而言,求比较粗糙的分类规则(弱分类器)要比求精确的分类规则(强分类器)容易。而提升方法即从若分类器算法的学习出发,反复学习,得到一系列的弱分类器,然后通过组合,构成一个强分类器。

    当然,在这提升方法中,有两个问题需要解决:

    1. 如何在每一轮的训练中改变数据的权值或是概率分布;
    2. 如何将弱分类器组合成一个强分类器。

       

      AdaBoost算法

      提升算法中,最具有代表性的算法是AdaBoost算法

      而对提升算法中的两个问题,AdaBoost算法对第一个问题的解决方法是:提高那些在前一轮分类器被误分的样本的权值,而降低那些被正确分类的样本权值,这样就能是的在下一轮的分类学习中,更加注重那些被误分的样本。

      对于第二个问题,AdaBoost算法的解决方法是:采用加权多数表决的方法,即加大分类误差率小的弱分类器的权值,使其在表决中能起较大作用;减小分类误差率大的弱分类器的权值,使其在表决中起作用较小。

       

      AdaBoost算法流程:

      输入:训练数据集和弱学习方法;

      输出:最终分类器

    3. 初始化训练数据的权值分布(初始平均分配,D的下标和的第一个下标表示训练的轮次)

    4. 对于第m次训练,
      1. 使用具有权值分布的训练数据集学习,得到基本分类器

      1. 计算在训练数据集上分类误差率

      1. 计算的系数

      1. 更新训练数据集的权值

    5. 将上述得到的弱分类器进行线性组合

      最终得到分类器

       

      向前分步算法

      实际上Adaboost算法是向前分步算法的特例,即Adaboost算法是模型为加法模型、损失函数为指数函数、学习算法为向前分步算法时的二分类学习方法。

      向前分步算法(forward stagewise algorithm)学习的模型也是加法模型,能够从前向后,每步只学习一个基函数及其系数,进而使算法优化的复杂度得到降低。

      向前分步算法流程:

      输入:训练数据集;损失函数;基函数集合;(损失函数的形式和基函数集合都是给定的,而在这算法的流程中,是基函数的参数,是基函数的系数)    

      输出:加法模型

      (1)初始化

      (2)对于第m次训练,

      (a)极小化损失函数

      得到参数

      (b)更新

    6. 得到加法模型

       

       

       

       

       

  • 相关阅读:
    ASP.NET2.0中将文件上传到数据库
    C#中数据类型转换
    数据绑定以及Container.DataItem的具体分析
    CodeSmith开发系列资料总结
    Jquery信息专题收集
    microsoft .net framework专题汇总
    ASP.NET中插入FLASH代码
    javascript专题汇总
    经典SQL行列转换
    前台js调用后台c#方法
  • 原文地址:https://www.cnblogs.com/lincz/p/12562468.html
Copyright © 2020-2023  润新知