【集成模型】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. 对于任意一种集成方法, 我们都希望学习出来的基分类器具有较高的准确性和多样性, 基 ...
随机推荐
- openwrt双机热备
转自:https://oldwiki.archive.openwrt.org/doc/recipes/high-availability 先记号一下,有空再仔细研究. ---------------- ...
- 解决服务器openssh漏洞
解决服务器openssh漏洞 发表于 2019 年 11 月 27 日 1. 检查升级 下载7.4p1 ,链接如下 http://www.openssh.com/portable.html 2.安 ...
- python logging记录日志的方式
python的logging模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志级别等级:critical > error > warning > info > deb ...
- 26.C# 文件系统
1.流的含义 流是一系列具有方向性的字节序列,比如水管中的水流,只不过现在管道中装的不是水,而是字节序列.当流是用于向外部目标比如磁盘输出数据时称为输出流,当流是用于把数据从外部目标读入程序称为输入流 ...
- Python 'takes exactly 1 argument (2 given)' Python error
Python,定义urlConfig 接收参数,正常传递参数时,出现,多给了一个参数的错误问题, 定义class的函数之后,在调用的时候出现“'takes exactly 1 argument (2 ...
- socket、端口、进程的关系
本文属网络编程部分.socket的引入是为了解决不同计算机间进程间通信的问题. 端口是TCP/IP协议中的概念,描述的是TCP协议上的对应的应用,可以理解为基于TCP的系统服务,或者说系统进程!如下图 ...
- 实现strStr()函数
方法一:暴力解法 int strStr(string haystack, string needle) { if (needle.empty()) ; int M = haystack.size(); ...
- 数位DP【模板】
经典题型 数位 DP 问题往往都是这样的题型,给定一个闭区间 $[l, r]$,让你求这个区间中满足 某种条件 的数的总数. 强烈推荐 OI Wiki——数位DP 例题 BZOJ 1026 题目:wi ...
- jquery判断两次密码不一致
jquery检测输入密码两次不一样提示 输入密码: <input type="password" name="password1" id="pa ...
- BZOJ 2277 strongbox (gcd)
题意 有一个密码箱,0到n-1中的某些整数是它的密码. 且满足,如果a和b都是它的密码,那么(a+b)%n也是它的密码(a,b可以相等) 某人试了k次密码,前k-1次都失败了,最后一次成功了. 问:该 ...