集成方法-概念理解

集成方法(ensemble method)又叫元算法(meta-algorithm):将不同的分类器组合起来。

通俗的说:就是三个臭皮匠赛过诸葛亮。做决定时,考虑多个人的意见,不是一个人的意见

集成方法:

  1. bagging(自举汇聚法):基于数据随机重抽样的分类器构建方法。并行算法

  2. boosting(再学习):基于所有分类器的加权求和的方法。              串行算法。

bagging:从原始数据集选择S次后得到S个新数据集的一种技术。新数据集和原数据集的大小相等。

其实就是有放回采样,获得一个和原来大小一样的新数据集。这个新数据集可能会有重复值,原始数据集的某些值在新数据集中可能不在出现。

用这样的方法构建S个新的数据集参与训练,就会得到S个分类器。测试新数据时,送到S个分类器里,得到的结果投票,数量最多的就是分类结果(得民心者得天下)。

boosting:串行训练。第一个训练完,第二个在第一个的基础上接着训练。重点关注前面分类器错分的数据(说白了就是背锅侠,前面哥们犯的错,后面的去解决)。

目前 bagging 方法最流行的版本是: 随机森林(random forest)
选男友:美女选择择偶对象的时候,会问几个闺蜜的建议,最后选择一个综合得分最高的一个作为男朋友

目前 boosting 方法最流行的版本是: AdaBoost
追女友:3个帅哥追同一个美女,第1个帅哥失败->(传授经验:姓名、家庭情况) 第2个帅哥失败->(传授经验:兴趣爱好、性格特点) 第3个帅哥成功

bagging和boosting共同点和差异点:

  1. bagging 是一种与 boosting 很类似的技术, 无论是boosting还是bagging,所使用的多个分类器的类型(数据量和特征量)都是一致的(就是说要用KNN,都用KNN,要用决策树,那就都用决策树)。
  2. bagging 是由不同的分类器(1.数据随机化 2.特征随机化)经过训练,综合得出的出现最多分类结果;boosting 是通过调整已有分类器错分的那些数据来获得新的分类器,得出目前最优的结果。
  3. bagging 中的分类器权重是相等的;而 boosting 中的分类器加权求和,所以权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。(就是说bagging投票是一人一票,权重相等。而boosting权重不等,可能有的权重大,有的权重小)

 

 

转载于:https://www.cnblogs.com/gezhuangzhuang/p/10004304.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机按键防抖程序_这些单片机按键设计方案,请拿好,不谢!

在单片机系统里,按键是常见的输入设备,在本文中介绍几种按键硬件、软件设计方面的技巧。一般的在按键的设计上,一般有四种方案,创客学院带你零基础学习电子产品设计。一是GPIO口直接检测单个按键,如图1.1所示;二是按键…

Oracle 11G 安装详解

oracle官网下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 官网下载需要注册orcale账号,比较繁琐,这里直接放已经下载好的安装包链接 Oracle11G下载链接: https://pan.baidu.com/s/1v6oD4jAt…

程序员何苦为难程序员?

有时候想想程序员为何为难程序员呢? 扳扳手指走上码农这个行业也有几年了,但是越来越觉得这个行业很累,有人说程序员就是二代农民工,我个人还是比较赞同的,对于刚入道的同仁们来说确实就是个体力(脑力,眼力…

kubeadm部署k8s_用 kubeadm 部署生产级 k8s 集群

概述kubeadm 已⽀持集群部署,且在1.13 版本中 GA,⽀持多 master,多 etcd 集群化部署,它也是官⽅最为推荐的部署⽅式,⼀来是由它的 sig 组来推进的,⼆来 kubeadm 在很多⽅⾯确实很好的利⽤了 kubernetes 的许…

poj 题目分类

1000 AB Problem 送分题 1001 Exponentiation 高精度 1003 Hangover 送分题 1004 Financial Management 送分题 1005 I Think I Need a Houseboat 几何 1006 Biorhythms 送分题 1007 …

模板的语法

我已经碰到过好几次这种错误了. template<typename R>static_inline vec4<typename R::scalar>point(constrhs2<R>&v) { returnvec4<P>(v.x, v.y, 0, 1); } template<typename R>static_inline vec4<typename R::sca…

统计学习方法概论---分类问题

为什么80%的码农都做不了架构师&#xff1f;>>> 分类问题 转载于:https://my.oschina.net/liyangke/blog/2945185

IEPLUS(IE增强性插件)

用Vista好长好长时间了&#xff0c;除了比较吃硬件、老的游戏不兼容、我350W像素的老罗技不能用等等&#xff0c;感觉不是非常不错的。IE 7也还可以&#xff0c;后来我试用了傲游、火狐&#xff0c;在多标签后傲游的一些操作更人性化&#xff0c;我最喜欢它的托拉即可自动出新标…

CENTOS7 Python3.7 PyAudio 安装

2019独角兽企业重金招聘Python工程师标准>>> 出现错误: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/usr/local/python371/include/python3.7m -c src/_portaudiomodule.c -o build/temp.linux-aarch64-3.7/src/…

bash for循环_Bash 中的 For 循环

循环是编程语言的基本概念之一。当你想要一遍又一遍地运行一系列命令直到达到某个条件后终止退出时&#xff0c;循环很方便。在诸如 Bash 之类的脚本语言中&#xff0c;循环对于自动执行重复性任务非常有用。在 Bash 脚本中有3个基本的循环结构&#xff0c;for 循环&#xff0c…

Atlas Unknown Error

if("using Atlas" and "there are some js codes in HEAD tag") then "Unknown Error" solution: copy the js codes to other position 转载于:https://www.cnblogs.com/JoeHou/archive/2009/02/03/1383231.html

软件工程师的6年总结

“又是一年毕业时”&#xff0c;看到一批批学子离开人生的象牙塔&#xff0c;走上各自的工作岗位&#xff1b;想想自己也曾经意气风发、踌躇满志&#xff0c;不觉感叹万千……本文是自己工作6年的经历沉淀或者经验提炼&#xff0c;希望对所有的软件工程师们有所帮助&#xff0c…

linux 信号_Linux的信号和线程

Linux的信号和线程-Tech Talk 让技术发出声音​www.ttalk.im什么是线程线程&#xff0c;有时被称为轻量级进程(Lightweight Process&#xff0c;LWP&#xff09;&#xff0c;是程序执行流的最小单元。一个标准的线程由线程ID&#xff0c;当前指令指针(PC&#xff09;&#xff0…

tomcat部署教程

参考博客地址&#xff1a; https://blog.csdn.net/xiaoyu940601/article/details/54950673转载于:https://www.cnblogs.com/liuniublogs/p/10019068.html

选择文字就能选择复选框

更方便的单选框下面为脚本显示区  看看下面的选择框&#xff0c;似乎没有什么不同的。微妙之处在于&#xff0c;选择项目时不必非得在框内点击鼠标了&#xff0c;在文本上选择即可。不信试一试吧。 经常来这里 偶尔来看看 转载于:https://www.cnblogs.com/leevane/archive/200…

python 数据结构

一. 深入链表 先来介绍一些链表具备的一些常用方法&#xff1a; append(x) : 把一个元素添加到链表的结尾 extend(L) : 将另外一个链表合并到该链表中 insert(i,x) : 插入一个元素到指定位置的前面 remove(x) : 删除链表中第一个值为x的元素 如果没有这样的元素 则返回错误 pop…

python笔试编程题_Python——面试编程题

一、python----输出1-100之和的方法 方法一&#xff1a; print(sum(range(1,101))) 方法二&#xff1a; from functools import reduce print(reduce(lambda x, y: xy, range(101))) 方法三: t0 for i in range(101): ti print(t) 方法四&#xff1a; print(sum([x for x in ra…

go语言项目优化(经验之谈)

1 Go的应用场景 在斗鱼我们将GO的应用场景分为以下三类&#xff0c;缓存类型数据&#xff0c;实时类型数据&#xff0c;CPU密集型任务。这三类应用场景都有着各自的特点。 ● 缓存类型数据在斗鱼的案例就是我们的首页&#xff0c;列表页&#xff0c;这些页面和接口的特点是不同…

AddTransient、AddSingleton、AddScoped 三者都应该在什么场景下使用

网上随便一搜&#xff0c;能搜出一大堆对三者进行区别分析的文章&#xff0c;但是呢&#xff0c;理论是一回事&#xff0c;实际使用又是另外一回事&#xff0c;到底在何种场景下应该使用何种注入方式呢&#xff1f; 通过这篇文章和我自身的实际经验&#xff0c;来说一说实际应用…