《机器学习实战》学习笔记(六)之提升和Adaboost(上)基础理论以及算法推导
2018-01-12 13:55
615 查看
转载请注明作者和出处:http://blog.csdn.net/john_bh/
CSDN博客专栏:##
Github代码获取:##
运行平台: Windows
Python版本: Python3.6
IDE: Sublime text3
一基本理论和概念
1 Bootsting
2 Bagging和随机森林
3 BaggingBoosting二者之间的区别
4 结合策略
41 平均法
43 投票法
43 学习法
二算法推导
1 AdaBoost算法推导
根据个体学习器的生成方式分为两类:
一类是个体学习器之间存在强依赖关系,必须串行生成的序列化方法,代表是Boosting;
另一类是个体学习器之间不存在强依赖关系,可同时生成的并行化方法,代表是Bagging和随机森林。
提升方法:从弱学习算法出发,反复学习,得到一系列弱分类器(又称基分类器),然后组合这些弱分类器,构成一个强分类器。在分类问题中,通过改变训练了样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。
Boosting算法流程:
从初始数据集中训练出一个基学习器
根据基学习器的表现对数据集进行调整:提高前一轮弱分类器误分样本的权值,降低那些被正确分类样本的权值
基于调整后的样本数据集训练下一个基学习器,如此重复进行2,3步骤
直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合:加大分类误差率小的基分类器的权值,使其在表决中起到较大作用;减小分类误差率大的基学习器的权值,使其在表决中起较小作用。
Boosting族算法中最著名的是AdaBoost。
Bagging基本流程:
基于自自主采样法,给定包含m个样本的数据集,我们随机取出一个放回采样中,再把该样本放回原始数据集,使得下次采样中这个样本还有机会被选中;经过m次随机采样,我们得到有m个样本的采样集。 重复T次,可以得到T个采样集。
基于每个采样集训练出一个基学习器。
将步骤2中的T个基学习器进行组合,形成一个强分类器。
Bagging通常对分类任务使用简单投票法,对回归任务使用简单平局法,若分类预测是出现两个类收到同样的票数,最简单的做法是随机选择一个,当然也可以进一步考察基学习器的置信度来确定最后选择。
随机森林:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
2. 样例权重:
Bagging:使用均匀取样,每个样例的权重相等。
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3. 预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4. 并行计算:
Bagging:各个预测函数可以并行生成。
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
决策树与这些算法框架进行结合所得到的新的算法:
Bagging + 决策树 = 随机森林
AdaBoost + 决策树 = 提升树
Gradient Boosting + 决策树 = GBDT
首先,从统计的方面来看,若使用单个学习器可能因为误选导致泛化性能不佳,结合多个学习器则会减少这一风险。
第二,从计算方面来看,学习算法往往会陷入局部极小,有的局部极小点所对应的泛化行性可能很糟糕,通过多次运算之后进行结合,可降低陷入糟糕局部最小点的风险。
第三,从表示方面来看,某些学习任务的真是假设可能不在当前学习算法所考虑的假设空间中,而此时使用单个学习器肯定无效,可以通过结合多个学习器,由于相应的假设空间有所扩大,有可能学得更好的近似。
简单平均法:
H(x)=1T∑i=1Thi(x)
加权平均法:
H(x)=∑i=1Twihi(x)
其中wi是个体学习器hi的权重,通常要求wi≥0,∑Ti=1wi=1。
一般而言,在个体学习器性能相差较大的时候使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。
将hi在样本x上的输出表示为一个N维向量(h1i(x);h2i(x);...;hNi(x);),其中hji(x)是hi在类别标记ci上的输出。
绝对多数投票法:
H(x)={0,reject,∑Ti=1hji(x)>0.5∑Nk=1∑Ti=1hki(x)otherwise
即若某个标记得票过半数了,则预测为该标记,否则拒绝预测。
相对多数投票法:
H(x)=cargmaxj∑i=1Thji(x)
即预测为得票最多的标记,若同时有多个标记获得最高票,从中随机选择一个。
加权投票法:
H(x)=cargmaxj∑i=1Twihji(x)
与平均加权法类似,其中wi是个体学习器hi的权重,通常要求wi≥0,∑Ti=1wi=1。
在现实任务中,不同类型的个体学习器可能产生不同类型的hji(x)值,常见的有:
类标记:
类概率:
CSDN博客专栏:##
Github代码获取:##
运行平台: Windows
Python版本: Python3.6
IDE: Sublime text3
一基本理论和概念
1 Bootsting
2 Bagging和随机森林
3 BaggingBoosting二者之间的区别
4 结合策略
41 平均法
43 投票法
43 学习法
二算法推导
1 AdaBoost算法推导
一、基本理论和概念
集成学习:通过构建并结合多个学习器来完成学习任务的学习方法,有时也叫多分类器系统。根据个体学习器的生成方式分为两类:
一类是个体学习器之间存在强依赖关系,必须串行生成的序列化方法,代表是Boosting;
另一类是个体学习器之间不存在强依赖关系,可同时生成的并行化方法,代表是Bagging和随机森林。
提升方法:从弱学习算法出发,反复学习,得到一系列弱分类器(又称基分类器),然后组合这些弱分类器,构成一个强分类器。在分类问题中,通过改变训练了样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。
1.1 Bootsting
Bootsting:是一族可以将弱学习器提升为强学习的算法。Boosting算法流程:
从初始数据集中训练出一个基学习器
根据基学习器的表现对数据集进行调整:提高前一轮弱分类器误分样本的权值,降低那些被正确分类样本的权值
基于调整后的样本数据集训练下一个基学习器,如此重复进行2,3步骤
直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合:加大分类误差率小的基分类器的权值,使其在表决中起到较大作用;减小分类误差率大的基学习器的权值,使其在表决中起较小作用。
Boosting族算法中最著名的是AdaBoost。
1.2 Bagging和随机森林:
Bagging:是并行式集成学习方法最著名的代表。Bagging基本流程:
基于自自主采样法,给定包含m个样本的数据集,我们随机取出一个放回采样中,再把该样本放回原始数据集,使得下次采样中这个样本还有机会被选中;经过m次随机采样,我们得到有m个样本的采样集。 重复T次,可以得到T个采样集。
基于每个采样集训练出一个基学习器。
将步骤2中的T个基学习器进行组合,形成一个强分类器。
Bagging通常对分类任务使用简单投票法,对回归任务使用简单平局法,若分类预测是出现两个类收到同样的票数,最简单的做法是随机选择一个,当然也可以进一步考察基学习器的置信度来确定最后选择。
随机森林:
1.3 Bagging、Boosting二者之间的区别
1. 样本选择上:Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
2. 样例权重:
Bagging:使用均匀取样,每个样例的权重相等。
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3. 预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4. 并行计算:
Bagging:各个预测函数可以并行生成。
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
决策树与这些算法框架进行结合所得到的新的算法:
Bagging + 决策树 = 随机森林
AdaBoost + 决策树 = 提升树
Gradient Boosting + 决策树 = GBDT
1.4 结合策略
学习器的结合会从三方面带来好处:首先,从统计的方面来看,若使用单个学习器可能因为误选导致泛化性能不佳,结合多个学习器则会减少这一风险。
第二,从计算方面来看,学习算法往往会陷入局部极小,有的局部极小点所对应的泛化行性可能很糟糕,通过多次运算之后进行结合,可降低陷入糟糕局部最小点的风险。
第三,从表示方面来看,某些学习任务的真是假设可能不在当前学习算法所考虑的假设空间中,而此时使用单个学习器肯定无效,可以通过结合多个学习器,由于相应的假设空间有所扩大,有可能学得更好的近似。
1.4.1 平均法
对数值输出型hi(x)∈R,最常见的结合策略就是使用平均法。简单平均法:
H(x)=1T∑i=1Thi(x)
加权平均法:
H(x)=∑i=1Twihi(x)
其中wi是个体学习器hi的权重,通常要求wi≥0,∑Ti=1wi=1。
一般而言,在个体学习器性能相差较大的时候使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。
1.4.3 投票法
对于分类任务来说,学习器hi将从类别标记集合中预测出一个标记,最常用的结合策略是使用投票法(voting)。将hi在样本x上的输出表示为一个N维向量(h1i(x);h2i(x);...;hNi(x);),其中hji(x)是hi在类别标记ci上的输出。
绝对多数投票法:
H(x)={0,reject,∑Ti=1hji(x)>0.5∑Nk=1∑Ti=1hki(x)otherwise
即若某个标记得票过半数了,则预测为该标记,否则拒绝预测。
相对多数投票法:
H(x)=cargmaxj∑i=1Thji(x)
即预测为得票最多的标记,若同时有多个标记获得最高票,从中随机选择一个。
加权投票法:
H(x)=cargmaxj∑i=1Twihji(x)
与平均加权法类似,其中wi是个体学习器hi的权重,通常要求wi≥0,∑Ti=1wi=1。
在现实任务中,不同类型的个体学习器可能产生不同类型的hji(x)值,常见的有:
类标记:
类概率:
1.4.3 学习法
二、算法推导
2.1 AdaBoost算法推导
相关文章推荐
- [置顶] 《机器学习实战》学习笔记(四)之Logistic(上)基础理论及算法推导、线性回归,梯度下降算法
- [置顶] 《机器学习实战》学习笔记(五)之支持向量机(上)基础理论及算法推导
- [置顶] 《机器学习实战》学习笔记(三)之朴素贝叶斯(上)基础理论及基于朴素贝叶斯算法文档分类
- 《机器学习实战》学习笔记(六)之提升和Adaboost(下)项目实战
- 大数据与人工智能基础系列7 反向传导算法理论推导
- [置顶] Python3《机器学习实战》学习笔记(十):提升分类器性能利器-AdaBoost
- Adaboost 算法的原理与推导
- App性能优化系列3-提升App启动速度之理论基础
- 归纳迁移学习算法---Adaboost 算法的原理与推导
- fft的dif算法理论推导成功
- 《算法导论》学习笔记—算法基础
- JAVA代码—算法基础:找出一维数组中重复次数最多的元素以及重复的次数
- Adaboost 算法的原理与推导
- 四旋翼姿态解算——基础理论及推导
- Adaboost 算法的原理与推导
- 《机器学习实战》学习笔记:k-近邻算法实现
- SVD在推荐系统中的应用详解以及算法推导
- 《机器学习实战》学习笔记:利用Adaboost元算法提高分类性能
- SVD在推荐系统中的应用详解以及算法推导
- SVD在推荐系统中的应用详解以及算法推导