• 【转载】 机器学习实战


    原文地址:

    https://www.cnblogs.com/steven-yang/p/5686473.html

    -----------------------------------------------------------------------------------------------------------------

    前言

    最近在看Peter Harrington写的“机器学习实战”,这是我的学习笔记,这次是第7章 - 利用AdaBoost元算法提高分类性能。

    这个思路称之为Adaboost算法,是对其它算法组合的一种方式。
    我们可以看出弱算法是同类的算法,也就是说,它们是基于相同的算法只不过参数不同。这样元算法在训练算法的步骤中就好容易控制。

    注:也有其它的的元算法,可以针对不同算法的。

    基本概念

    • 元算法(meta-algorithm),是对其它算法组合的一种方式。也称为集成方法(ensemble method)。
    • 弱算法:准确度较低的算法。元算法通过组合多个弱算法来提高准确率。
    • 强算法:可以认为是组合后的算法。
    • boosting : 是一种元算法,将多个弱算法变成强算法的算法族。除了AdsBoost,还有LPBoost, TotalBoost, BrownBoost, xgboost, MadaBoost, LogitBoost, and others.
    • Adaboost : Adaptive Boosting的简称。一个具体的boosting算法。本章就是介绍这个算法。

    详解Adaboost

    说明:书中弱算法是一个单层决策树算法,返回的是一个二类分类结果(-1, 1)。所以书中Adaboost也是一个二类分类算法。

    Adaboost训练算法

    • 输入
      • 样本数据
      • 弱算法的数量
    • 输出
      • 一个弱算法数组(弱算法参数,弱算法权重)
    • 逻辑
    在一个迭代中(弱算法数量)
        计算当前算法的参数
        计算当前算法的错误率
        计算当前算法的权重
        计算下次样本数据的权重
        计算当前的样本数据错误数,如果是0,退出。

     

     解释:
    假如有1000个sample,有100个sample被分错类,则:

     

     可以看出错误的sample占的比例越小,下次的权重是二次方级数增大。

    Adaboost分类算法

    • 输入
      • 分类数据
      • 弱算法数组
    • 输出
      • 分类结果
    • 逻辑
    在一个迭代中(弱算法数量)
        用当前弱算法计算分类结果$classified_i$
        计算强分类结果(使用下面的公式)
    返回分类结果

    AdaBoost分类器中计算公式

    参考

    -------------------------------------------------------------------------------------

  • 相关阅读:
    潜水员
    混合背包
    多重背包问题
    归并排序——最省时的排序
    HDU 1556 Color the ball
    2016 ACM/ICPC Asia Regional Dalian Online Football Games
    poj 2352 Stars
    poj 2299 Ultra-QuickSort
    关于原码反码补码以及位元算
    2016 湖南省省赛 Problem A: 2016
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/10830468.html
Copyright © 2020-2023  润新知