【机器学习】ensemble learning
0. ensemble leaning集成学习
0.1核心思想
集成学习的核心思想是:“三个臭皮匠赛过诸葛亮”。
我们大部分解除的分类器classifier,很多时候效果不一定是好的。比如一个分类器根据自己的特性可以识别出这个数据集的一部分规律,另一个分类器可以识别出另一些规律。
打个比方,想探究一下股价是怎么波动的。一个分类器可以从基本面上查看,发现公司利润和股价是有关系的。另一个分类器看一下新闻,发现人们评价好了公司股价就上涨。他们都不是完美的,但是如果能结合起来就好了。
0.2 证明有用
我们要从数学分析的角度证明一下“三个臭皮匠赛过诸葛亮”。
假设一个臭皮匠的犯错概率是 ε \varepsilon ε = 0.25.2个或2个以上人犯错的概率:(2个人同时犯错或者3个人同时犯错,这个时候最终投票出来的结果肯定是错的)
(相当于X = 2和X=3时的伯努利分布。概率是:
P = C ( m , n ) ∗ p n ∗ ( 1 − p ) m − n P = C(m,n) *p^n *(1-p)^{m-n} P=C(m,n)∗pn∗(1−p)m−n
也就是说
P ( X ≥ 2 ) = ∑ i = 2 3 ( 3 , i ) ε i ( 1 − ε ) 3 − i = 0.15625 P(X≥2) = \sum_{i=2}^3 (3,i)\varepsilon^i (1-\varepsilon)^{3-i} = 0.15625 P(X≥2)=i=2∑3(3,i)εi(1−ε)3−i=0.15625
所以最终犯错的概率是0.15625,远远小于0.25. 那么还是人多点儿决策更好。
0.3 如何操作
那要如何结合呢?
对于分类问题,就是把每一个classifier想象成一个人,每个人都有投票权,像古希腊民主的方法一样大家一起来投票,所有人投票这个答案是什么最终就是什么。
对于回归问题,采用加权平均。其实仔细想想,用众多方法进行估值也可以用这个思路敲定最后公司的估值是什么。
OK,组装模型的思路主要有两个:
- Bagging
- Boosting
注意这是组装模型的思路,但是这不是独立的模型!选啥模型都是可以的。
1. Bootstrap
1.1 Bootstrap
bootstrap原本的含义是鞋后跟那个提的小东西,后面人们又引申为自力更生。大概就是说,在一个大的样本中不断抽取小的样本进行模型训练。
1.2 Bagging(Bootstrap aggregating自助聚合算法)
Bagging装袋算法就是基于bootstrap的一种算法。
特殊的地方在于,每一个小样本都有一个classifier。
这个方法就是最简单的古希腊式投票方法,用民主的一人一票的方法来进行投票,也就是大家受众的决定权是等权重的。
选择同样的classifier但是每次投喂不同的训练集。这个训练集都是来自于同一个大的训练集。在选择小训练集的时候,采取的是随机抽取。
这种大大可以降低overfitting,不会找到一些专属于这个训练集自己的特点。
而且所有人都投票了,一个人判断错了也没什么,所以variance也会降低。
左边是bootstrap,右边是bagging,其实不一样的地方就是用了不同的model。
2. Bootsting
2.1 Bootsting
核心思想是:挑选精英。
已经验证过,古希腊民主选举的方法是有问题的。不然苏格拉底也不会死掉。由此,人们决定让精英有更大的决定权,因为他们会考率得更全面一些,最后得出的结论和真实情况会更加相近,也就是说bias会更小。
具体来说吗,就是把基础模型先进行线性组合。然后每一轮训练都要增加那些更准确的模型的权重,降低不准确模型的权重。在这之中,每一轮的训练集是不变的。
主流的有:
- Adaboost
- Gradient boosting
Reference
- https://easyai.tech/ai-definition/ensemble-learning/
- UYSD QUBS6850
【机器学习】ensemble learning相关推荐
- 深入理解机器学习——集成学习(Ensemble Learning):基础知识
分类目录:<深入理解机器学习>总目录 集成学习基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好.实际上,就是" ...
- 机器学习-集成学习(ensemble learning)
集成学习ensemble learning:本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务. 可以用两句话形容: 1."三个臭皮匠顶个诸葛亮":一堆 ...
- ensemble learning 学习分享:机器学习的数学基础
文章目录 高等数学 多元函数的相关概念 多元函数的偏导数 梯度向/矢量Gradient 雅克比矩阵(Jacobian矩阵) 海森矩阵(Hessian 矩阵) 多元函数下的极值问题(最优化问题) 带等式 ...
- 集成学习(Ensemble Learning)
在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好).集成学习就是组 ...
- RDKit |基于集成学习(Ensemble learning)预测溶解度
Ensemble learning 集成学习 集成学习(Ensemble learning)是这样一个过程,按照某种算法生成多个模型,如分类器或者称为专家,再将这些模型按照某种方法组合在一起来解决某个 ...
- EL:集成学习(Ensemble Learning)的概念讲解、问题应用、算法分类、关键步骤、代码实现等相关配图详细攻略
EL:集成学习(Ensemble Learning)的概念讲解.算法分类.问题应用.关键步骤.代码实现等相关配图详细攻略 目录 集成学习Ensemble Learning 1.集成学习中弱分类器选择 ...
- 集成学习(ensemble learning)(四)
文章目录 一.GBDT概述 二.GDBT原理 1.负梯度拟合 2.GBDT回归算法 3.GBDT分类算法 (1)二元GBDT分类算法 (2)多元GBDT分类算法 4.GBDT常用损失函数 (1)分类任 ...
- 集成学习(ensemble learning)(一)
文章目录 一.集成学习概述 二.个体学习器 三.Boosting 四.Bagging 五.结合策略 1.平均法 2.投票法 3.学习法 (1)核心图解 a.构建新的训练集 b.构建新的测试集 c.最终 ...
- Ensemble learning(集成学习)
定义 集成学习是一种机器学习范式,其中多个学习器被训练来解决相同的问题. 这与试图从训练数据中学习一个假设的普通机器学习方法相反,集成方法尝试构造一组假设并将它们结合使用. 一个集合包含一些通常被称为 ...
- 集成学习(ensemble learning)干货系列(3)——Boosting方法详解
集成学习(ensemble learning)干货系列(1)--集成学习概述 集成学习(ensemble learning)干货系列(2)--随机森林(Bagging) Boosting基本原理 提升 ...
最新文章
- python字符编码讲解_python 字符编码讲解
- python简单的小程序_初学python的一些简单程序(1)
- yum 安装报Header V3 DSA signature: NOKEY 的错
- 访问被拒绝:“microsoft.web.ui.webcontrols”的解决办法
- android webView注入js方法
- linux上部署最新版本zookeeper伪分布式集群
- python输入输出基本点
- ora-01950:对表空间XXX无权限
- 25.XSS跨站原理分类和攻击手法
- 1.3.9 快速生成树配置
- [转帖]星际和魔兽的区别
- 计算机粘贴复制知识,不能复制粘贴怎么办?Win7电脑不能复制粘贴是什么原因及解决方法...
- 19个免费的UI界面设计工具及资源
- 学习日记5-C语言函数的应用
- Windows系统精华
- HOW TO:菜单名称有关操作
- Windows程式开发设计指南(十六)调色盘管理器
- HP小型机远程控制台(拨入MODEM)的配置步骤
- [C++]-Windows下获取CPU、内存利用率
- 创作ios快捷指令打开支付宝二维码等操作