【集成模型】Boosting
0 - 思想
Bagging算法思想是减少预测方差(variance),Boosting算法思想是为了减少预测偏差(bias)。
Boosting算法思想是将“弱学习算法”提升为“强学习算法”。一般来说,弱学习算法容易找到,而后通过反复学习得到一系列弱分类器,再通过加权将他们组合起来得到一个强分类器。
Boosting算法主要有两个核心概念:加法模型和前向分步算法。
加法模型即是将一系列弱分类器线性相加组成强分类器的过程,有如下形式
$$F_M(x;P)=\sum_{m=1}^n\beta_m h_m(x;a_m),$$
其中$h(x;a_m)$表示第$m$个弱分类器,$a_m$对应该弱分类器的最优参数,$\beta_m$表示该分类器在强分类器中所占比重,$P$是所有$a_m$和$\beta_m$的组合。
前向分步指的是在训练过程中,下一轮迭代产生的分类器是在上一轮的基础上训练得到的(顺序依次进行训练,sequentially),可以表达为
$$F_m(x)=F_{m-1}(x)+\beta_m h_m(x;a_m).$$
不同的Boosting算法具有不同的损失函数,常用的AdaBoost是损失函数为指数损失的Boosting算法。
1 - AbaBoost
1.0 - 特点
- 在每一轮迭代中,AdaBoost改变了训练数据的权值(即改变了样本的概率分布),其目标是为了将关注点放在被错误分类的样本上。具体做法为:减少上一轮被正确分类的样本权值,增加上一轮被错误分类的样本权值。综合起来来说,就是每一轮迭代的弱分类器学习的侧重点是不一样的。
- AdaBoost采用加权多数表决方法,即加大分类误差小的弱分类器的权重,降低分类误差大的弱分类器的权重。
1.1 - 算法
输入:训练集$D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_m,y_m)\}$,基础学习算法$\varsigma$,迭代次数$T$,误差终止条件
输出:$H(x)=sign\left (\sum_{t=1}^{T}\alpha_t h_t(x)\right )$
- $\omega_1(x)=1/m$(初始化权重分布)
- for $t=1,\cdots,T$
- $h_t=\varsigma(D,\omega_t)$ (以数据集$D$和权重分布$\omega_t$训练弱分类器$h_t$)
- $\epsilon_t=P_{x\sim \omega_t}(h_t(x)\neq f(x))$ (衡量弱分类器$h_t$的误差)
- if $\epsilon_t$满足误差终止条件 then break
- $\alpha_t=\frac{1}{2}ln\left ( \frac{1-\epsilon_t}{\epsilon_t} \right )$ (计算弱分类器$h_t$在最终强分类器中的权重)
- $\omega_{t+1}(x)=\frac{\omega_t(x)}{Z_t}\times\left\{\begin{matrix} exp(-\alpha_t)\ if\ h_t(x)=f(x)\\exp(\alpha_t)\ if\ h_t(x)\neq f(x) \end{matrix}\right.=\frac{\omega_t(x)exp(-\alpha_t f(x)h_t(x))}{Z_t}$(更新权重分布,其中$Z_t$是归一化因子)
- end
2 - 总结
- Boosting是一种按序构造的加模型
- AdaBoot是用指数损失作为损失函数的Boosting算法
- 采用基础回归模型并用梯度下降法来优化log损失的方法:LogitBoost
- 其他的变种:L2Boost或者其他更一般的Gradient Boosting(functional gradient descent)
3 - 参考资料
https://www.cnblogs.com/ScorpioLu/p/8295990.html
【集成模型】Boosting的更多相关文章
- Python机器学习(基础篇---监督学习(集成模型))
集成模型 集成分类模型是综合考量多个分类器的预测结果,从而做出决策. 综合考量的方式大体分为两种: 1.利用相同的训练数据同时搭建多个独立的分类模型,然后通过投票的方式,以少数服从多数的原则作出最终的 ...
- DeepMind提出空间语言集成模型SLIM,有效编码自然语言的空间关系
前不久,DeepMind 提出生成查询网络 GQN,具备从 2D 画面到 3D 空间的转换能力.近日.DeepMind 基于 GQN 提出一种新模型.可以捕捉空间关系的语义(如 behind.left ...
- 『Kaggle』分类任务_决策树&集成模型&DataFrame向量化操作
决策树这节中涉及到了很多pandas中的新的函数用法等,所以我单拿出来详细的理解一下这些pandas处理过程,进一步理解pandas背后的数据处理的手段原理. 决策树程序 数据载入 pd.read_c ...
- 【集成模型】Bootstrap Aggregating(Bagging)
0 - 思想 如下图所示,Bagging(Bootstrap Aggregating)的基本思想是,从训练数据集中有返回的抽象m次形成m个子数据集(bootstrapping),对于每一个子数据集训练 ...
- 集成学习-Boosting 模型深度串讲
首先强调一下,这篇文章适合有很好的基础的人 梯度下降 这里不系统讲,只介绍相关的点,便于理解后文 先放一个很早以前写的 梯度下降 实现 logistic regression 的代码 def tidu ...
- 决策树与树集成模型(bootstrap, 决策树(信息熵,信息增益, 信息增益率, 基尼系数),回归树, Bagging, 随机森林, Boosting, Adaboost, GBDT, XGboost)
1.bootstrap 在原始数据的范围内作有放回的再抽样M个, 样本容量仍为n,原始数据中每个观察单位每次被抽到的概率相等, 为1/n , 所得样本称为Bootstrap样本.于是可得到参数θ的 ...
- 集成学习—boosting和bagging
集成~bagging~权值~组合~抽样~样例~基本~并行 一.简介 集成学习通过构建并结合多个学习器来完成学习任务,常可获得比单一学习器显著优越的泛化性能 根据个体学习器的生成方式,目前的集成学习方法 ...
- 集成学习—boosting和bagging异同
集成学习 集成学习通过构建并结合多个学习器来完成学习任务.只包含同种类型的个体学习器,这样的集成是“同质”的:包含不同类型的个体学习器,这样的集成是“异质”的.集成学习通过将多个学习器进行结合,常可获 ...
- 集成学习方法Boosting和Bagging
集成学习是通过构架并结合多个学习器来处理学习任务的一种思想, 目前主要分为两大类:Boosting和Bagging. 对于任意一种集成方法, 我们都希望学习出来的基分类器具有较高的准确性和多样性, 基 ...
随机推荐
- javascript方法注释
参考资源 文章标题:Javascript注释规范 文章地址:https://blog.csdn.net/lianlin21212411/article/details/78530913 /** * @ ...
- Go 性能分析之案例一
思考 相信大家在实际的项目开发中会遇到这么一个事,有的程序员写的代码不仅bug少,而且性能高:而有的程序员写的代码能否流畅的跑起来,都是一个很大问题.而我们今天要讨论的就是一个关于性能优化的案例分析. ...
- Linux基础之终端、控制台、tty、pty等概念简介
基本概念: 1>tty(终端设备的统称): tty一词源于teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘阅读和发送信息的东西,后来这东西被 ...
- 1127 模型层orm表操作
目录 昨日回顾 模型层 1.配置测试脚本 1.1 应用下tests文件 1.2 新建任意名称文件 2. 数据的增删改查 2.1 创建数据 2.2 修改数据 2.3 删除数据 2.4查询数据 十三门徒 ...
- redis五中数据类型
MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加 ...
- css、js文件后的后缀作用是什么?
文章转自:https://blog.csdn.net/yelbosh/article/details/47303247 <link rel="stylesheet" type ...
- Mybatis-Generator逆向工程,复杂策略(Criteria拼接条件)
基于上一篇修改 1.Generator配置文件修改,将targetRuntime改为MyBatis3 2.项目结构目录 这个xxxExample就是拼接条件用的 3.测试代码 注释写的很详细 publ ...
- unordered_map初用
unordered_map,顾名思义,就是无序map,STL内部实现了Hash 所以使用时可以当做STL的Hash表使用,时间复杂度可做到O(1)查询 在C++11前,使用unordered_map要 ...
- Postgresql pg_dump 与 pg_restore 使用举例
pg_dump备份 备份本地osdb数据库,全备份,不需要密码 pg_dump osdb > osdb.sql 备份远程osdb数据库 pg_dump -h 192.168.122.1 -Uos ...
- jQuery相关方法7----各种事件和绑定事件
一.jQuery事件 1.鼠标事件 click与dbclick事件 click事件其实是由mousedown与mouseup 2个动作构成,所以点击的动作只有在松手后才触发 $ele.click(): ...