自学数据挖掘十大算法之AdaBoost「建议收藏」

自学数据挖掘十大算法之AdaBoost「建议收藏」Adaboost简介:Adaboost(adaptiveboosting)是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。该算法其实是一个简单的弱分类算法提升过程

大家好,又见面了,我是你们的朋友全栈君。

Adaboost简介:

Adaboostadaptive boosting)是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。

该算法其实是一个简单的弱分类算法提升过程,这个过程通过不断的训练,可以提高对数据的分类能力。整个过程如下所示:

1. 先通过对N个训练样本的学习得到第一个弱分类器

2. 将分错的样本和其他的新数据一起构成一个新的N个的训练样本,通过对这个样本的学习得到第二个弱分类器 

3. 12都分错了的样本加上其他的新样本构成另一个新的N个的训练样本,通过对这个样本的学习得到第三个弱分类器

4. 最终经过提升的强分类器 。即某个数据被分为哪一类要通过分类器的多数表决权重。

存在的问题及改进方法

对于boosting算法,存在两个问题:

1. 如何调整训练集,使得在训练集上训练的弱分类器得以进行;

2. 如何将训练得到的各个弱分类器联合起来形成强分类器。

针对以上两个问题,adaBoost算法进行了调整:

1. 使用加权后选取的训练数据代替随机选取的训练样本,这样将训练的焦点集中在比较难分的训练数据样本上; 

2. 将弱分类器联合起来,使用加权的投票机制代替平均投票机制。让分类效果好的弱分类器具有较大的权重,而分类效果差的分类器具有较小的权重。

                      自学数据挖掘十大算法之AdaBoost「建议收藏」    

       

上图是整个分类器的构建过程:从Y1一直到Ym,最终我们形成的强分类器如下:

自学数据挖掘十大算法之AdaBoost「建议收藏」

AdaBoost提供的是一种分类模型,根据具体问题需要我们可以向里面加载不同的学习方案。

计算模型的错误率,求Mi误分类数据集Di中每个元组的加权和:

自学数据挖掘十大算法之AdaBoost「建议收藏」

是Xj的误分类误差,如果Xj被误分类则其值等于1,否则等于0.如果某分类器的错误率超过0.5则认为该分类器性能太差,可以丢弃重新产生训练集Di生成新的分类器Mi 

分类器Mi 的表决权重公式(可自定义):

自学数据挖掘十大算法之AdaBoost「建议收藏」

AdaBoost的算法过程:

自学数据挖掘十大算法之AdaBoost「建议收藏」


一个具体的例子:

我们在这里初始化每个元组的权重为Mi = 1/ d, d代表整个数据集的数据个数。

自学数据挖掘十大算法之AdaBoost「建议收藏」

                        

最终我们得到了一个强分类器: 自学数据挖掘十大算法之AdaBoost「建议收藏」

参考:

韩家炜《数据挖掘概念与技术》

http://baike.baidu.com/view/2395336.htm

http://blog.csdn.net/haidao2009/article/details/7514787

http://blog.csdn.net/dark_scope/article/details/14103983

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136535.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java aqs详解_Java中的File文件类详解

    java aqs详解_Java中的File文件类详解今天学了学并发AQS机制,是抽象队列同步器,用户主要通过继承AQS类,来实现自定义锁,从而完成特定功能,AQS提供了两种锁(1)共享锁(2)排他锁。下面这个博客介绍的AQS机制挺不错可以看看原文链接一、概述  谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock

    2022年8月8日
    8
  • 部署项目启动提示找不到locahost:8080…..地址问题

    部署项目启动提示找不到locahost:8080…..地址问题这个遇到过好几次,因为想让项目在本地运行,我们就需要修改下连接地址:一般会在web.xml\当行文件,也会涉及到一些配置文件,需要我们自己改成本地环境还有测试环境。…

    2022年10月31日
    0
  • c++深拷贝和浅拷贝[通俗易懂]

    c++深拷贝和浅拷贝[通俗易懂]C++中类的拷贝有两种:深拷贝,浅拷贝当出现类的等号赋值时,会调用拷贝函数在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制。当数据成员中没有指针时,浅拷贝是可行的。但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,当对象快结束时,会调用两次析构函数,而导致指针悬挂现象。所以,这时,必须采用深拷贝。深拷贝与浅拷贝

    2022年10月1日
    0
  • 大数据处理的基本流程是什么?[通俗易懂]

    写在前面本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!本专栏目录结构和文献引用请见100个问题搞定大数据理论体系解答大数据处理流程主要分为3步:1.数据抽取和集成2.数据分析3.数据解释补充1.数据抽取与集成由于大数据处理的数据来源类型丰富,利用多个数据库来接收来自客户端的数据,包括企业内部数据库、互联网数据和物联网数据,所以需要从数据中提取关系和实体,经过关联和聚合等操作,按照统一定义的格式对数据

    2022年4月9日
    75
  • vue(21)初识Vuex[通俗易懂]

    vue(21)初识Vuex[通俗易懂]Vuex是做什么的?官方解释:Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex

    2022年7月30日
    5
  • 把表单上的数据清除就可以了

    把表单上的数据清除就可以了

    2021年10月20日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号