经典提升算法——Adaboost

提升是一个机器学习技术,可以用于回归和分类问题,它每一步产生一个弱预测模型(决策树),并加权累加到总模型中;如果每一步的弱预测模型生成都是依据损失函数的梯度方向,则称之为梯度提升。

梯度提升算法首先给定一个目标损失函数,它的定义域是所有可行的弱函数集合(基函数);提升算法通过迭代的选择一个负梯度方向上的基函数来逐渐逼近局部极小值。这种在函数域的梯度提升观点对机器学习的很多领域有深刻影响。

       提升的理论意义:如果一个问题存在弱分类器,则可以通过提升的办法得到强分类器。

       Adaboost算法是经典的提升算法,该算法是模型为加法模型,损失函数为指数函数,学习算法为前向分步算法时的学习方法。Adaboost的训练误差是以指数速率下降的,它具有自适应性,它能自适应弱分类器的训练误差率。另外, Adaboost算法是稳健的,具有robost,调参数没有这么麻烦。但是,Adaboost算法容易出现过拟合现象。

Adaboost算法的计算步骤如下:

(1).设训练数据集,初始化训练数据的权值分布

 Adaboost:对于m=1,2,...M

(2).使用具有权值分布Dm的训练数据集学习,得到基本分类器

(3).计算Gm(x)在训练数据集上的分类误差率

(4)计算Gm(x)的系数

(5)更新训练数据集的权值分布

这里,Zm是规范化因子,确保为1  ,从而使得成为一个概率分布。

(6)构建基本分类器的线性组合

(7)得到最终分类器

 注意:Adaboost不可能出现越分越差情况。如果分类器分错了某个样本,则

因为,(其中误差率e一般是小于0.5,否则基本分类器就没有意义)。这就说明了对于分类分错的样本,权值提升,分类器会更加注重该样本,对于分对的样本,,样本权值减少了。

时间: 2024-10-07 21:07:22

经典提升算法——Adaboost的相关文章

提升算法——Adaboost

思路:通过改变训练样本权重,学习多个分类器,并将这些分类器进行线性组合,提高分类器性能.大多数提升方法都是改变训练数据的概率分布(数据的权值) 强可学习:存在一个多项式的学习算法能够学习他,并且正确率很高 弱可学习:存在一个多项式学习算法学习,正确率比随机猜测要好一些 具体问题: (1)在每一轮如何改变数据权值:提高被前一轮分类器错误分类样本的权值 (2)如何将弱分类器组成强分类器:加权多数表决法,加大正确率高(误差率小)的弱分类器的权值 AdaBoost算法: 原文地址:https://www

Adaboost提升算法从原理到实践

1.基本思想: 综合某些专家的判断,往往要比一个专家单独的判断要好.在"强可学习"和"弱科学习"的概念上来说就是我们通过对多个弱可学习的算法进行"组合提升或者说是强化"得到一个性能赶超强可学习算法的算法.如何地这些弱算法进行提升是关键!AdaBoost算法是其中的一个代表. 2.分类算法提升的思路: 1.找到一个弱分类器,分类器简单,快捷,易操作(如果它本身就很复杂,而且效果还不错,那么进行提升无疑是锦上添花,增加复杂度,甚至上性能并没有得到提升

机器学习第5周--炼数成金-----决策树,组合提升算法,bagging和adaboost,随机森林。

决策树decision tree 什么是决策树输入:学习集输出:分类觃则(决策树) 决策树算法概述 70年代后期至80年代初期,Quinlan开发了ID3算法(迭代的二分器)Quinlan改迚了ID3算法,称为C4.5算法1984年,多位统计学家在著名的<Classification and regression tree>书里提出了CART算法ID3和CART几乎同期出现,引起了研究决策树算法的旋风,至今已经有多种算法被提出 算法的核心问题 该按什么样的次序来选择变量(属性)?最佳分离点(连

AdaBoost装袋提升算法

参开资料:http://blog.csdn.net/haidao2009/article/details/7514787 更多挖掘算法:https://github.com/linyiqun/DataMiningAlgorithm 介绍 在介绍AdaBoost算法之前,需要了解一个类似的算法,装袋算法(bagging),bagging是一种提高分类准确率的算法,通过给定组合投票的方式,获得最优解.比如你生病了,去n个医院看了n个医生,每个医生给你开了药方,最后的结果中,哪个药方的出现的次数多,那

机器学习——提升方法AdaBoost算法,推导过程

0提升的基本方法 对于分类的问题,给定一个训练样本集,求比较粗糙的分类规则(弱分类器)要比求精确的分类的分类规则(强分类器)容易的多.提升的方法就是从弱分类器算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合这些弱分类器,构成一个强分类器.大多数的提升方法都是改变训练数据集的概率分布(训练数据的权值分布),针对不同的训练数据分布调用弱学习算法学习一系列弱分类器. 这样,对于提升方法来说,有两个问题需要回答:一是在每一轮如何改变训练数据的权值或概率分布,二是如何将弱分类器组合成一

18大经典数据挖掘算法小结

18大经典数据挖掘算法小结 本文所有涉及到的数据挖掘代码的都放在了我的github上了. 地址链接: https://github.com/linyiqun/DataMiningAlgorithm 大概花了将近2个月的时间,自己把18大数据挖掘的经典算法进行了学习并且进行了代码实现,涉及到了决策分类,聚类,链接挖掘,关联挖掘,模式挖掘等等方面.也算是对数据挖掘领域的小小入门了吧.下面就做个小小的总结,后面都是我自己相应算法的博文链接,希望能够帮助大家学习. 1.C4.5算法.C4.5算法与ID3

8.提升方法AdaBoost

1.提升方法AdaBoost算法AdaBoost的思想:是先得到一个弱分类器,然后在这个弱分类器的基础上将其提升到强分类器,具体方法是提升上一个分类器中被误分类的样本的权重,使得本次训练的分类器更加重视这些样本,最后的分类器是所有的分类器的线性组合.前一次没有正确分类的样本点在后一次会被更加重视,前一次的分类器训练结果是会影响后一次分类器结果的.AdaBoost先对所有划分选择出一个误分类最小的划分,得出一个分类器,分类器的权值 ,样本的权值也发生更新,也就是说前一次的训练的结果会被这次的分类器

【最全】经典排序算法(C语言)

本文章包括所有基本排序算法(和其中一些算法的改进算法): 直接插入排序.希尔排序.直接选择排序.堆排序.冒泡排序.快速排序.归并排序.基数排序. 算法复杂度比较: 算法分类 一.直接插入排序 一个插入排序是另一种简单排序,它的思路是:每次从未排好的序列中选出第一个元素插入到已排好的序列中. 它的算法步骤可以大致归纳如下: 从未排好的序列中拿出首元素,并把它赋值给temp变量: 从排好的序列中,依次与temp进行比较,如果元素比temp大,则将元素后移(实际上放置temp的元素位置已经空出) 直到

十大经典预测算法六---集成学习(模型融合算法)

模型融合算法概念 它不是具体的指某一个算法,而是一种把多个弱模型融合合并在一起变成一个强模型的思想 用模型融合算法的原因 1.单个模型容易过拟合,多个模型融合可以提高范化能力 2.单个模型预测能力不高,多个模型往往能提高预测能力 3.对于数据集过大或过小,可以分别进行划分和有放回的操作,产生不同的数据子集,然后通过数据子集训练不同的分类模型,最终合并成一个大的分类器 4.对于多个异构的特征集的时候,很难进行融合,可以考虑每个数据集构建一个分类模型,然后将多个模型融合 5.模型融合算法成功的关键在