AI遮天传 ML-集成学习
“Two heads are better than one.”
“三个臭皮匠,顶一个诸葛亮”
把多个人的智慧集合到一起,可能会比一个人好,放在机器学习上,我们借鉴这一经验,把融合多个学习方法的结果来提升效果的方法,我们叫做:Ensemble learning 集成学习。
一、集成学习简介
假设我们有三个样本,h1、h2、h3代表三个分类器,预测结果如下:
对于上图这种结果,我们可以看到h1、h2、h3预测的准确率都是2/3,我们让h1、h2、h3进行投票,发现在最后一行,三个样本都预测对了,这样便是产生了积极的影响。
同理对于上面两种情况,分别是没有影响和产生了负面影响。
由于可能会产生不同的影响,因此我们要求:分类器需要效果好且不同!
(效果不好(弱分类器 acc<50%):情况c,相同:情况b)
直觉: 把对同一个问题的多个预测结果综合起来考虑的精度,应该比单一学习方法效果好。
证实: (一些理由)
- 很容易找到非常正确的 “rules of thumb(经验法则)” ,但是很难找到单个的有高准确率的规则
- 如果训练样本很少,假设空间很大,则存在多个同样精度的假设。 选择某一个假设可能在测试集上效果较差。
- 算法可能会收敛到局部最优解。融合不同的假设可以降低收敛到一个不好的局部最优的风险。或者在假设空间中穷举地全局搜索代价太大, 所以我们可以结合一些在局部预测比较准确的假设。
- 由当前算法定义的假设空间不包括真实的假设, 但做了一些不错的近似。
两个概念:
强学习器: 有高准确度的学习算法
弱学习器: 在任何训练集上可以做到比随机预测 略好 error = ½ -γ
我们能否把一个弱学习器增强成一个强学习器?
集成学习基本想法
有时一个单个分类器 (e.g. 决策树、神经网络…) 表现 不好,但是它们的加权融合表现不错。
算法池中的每一个学习器都有它的权重。
当需要对一个新的实例作预测时:
- 每个学习器作出自己的预测
- 然后主算法把这些结果根据权值合并起来,作出最终预测。
集成学习策略
法1:平均
- 简单平均
- 加权平均
法2:投票
- 多数投票法
- 加权投票法
法3:学习
- 加权多数
- 堆叠(Stacking ):层次融合,基学习器的输出作为次学习器的输入。
二、Weighted Majority Algorithm (加权多数算法)
加权多数算法 – 预测
假设二值输出:算法池里有n个算法,每个算法已经有自己的输出,它的权值分别是w1,w2...wn, 主算法对其进行加权得到q0和q1,谁大我们就pred谁。
加权多数算法 – 训练
三、Bagging
如果我们只有一个弱学习器,如何通过集成来提升它的表现?
不同的数据上训练可以获得不同的基础模型
一个朴素的方法: 从训练集种采样不同的子集且训练不同的基础模型
这些模型会大不相同,但它们的效果可能很差。
解决办法: 拔靴采样(Bootstrap sampling)
- 给定集合 D ,含有 m 训练样本;
- 通过从D中均匀随机的有放回采样m个样本构建 Di ;
- 希望 Di 会 遗漏掉 D 中的某些样本。
Bagging 算法
For t = 1, 2, …, T Do
- 从S中拔靴采样产生 Dt
- 在 Dt 上训练一个分类器Ht
最后,分类一个新的样本x∈X 时,通过对 Ht 多数投票(等权重)。
比如我们从大集合S中放回采样T组,每组样例都有自己的训练值ci,来了一个新的样本x,我们对每个ci(x)进行输出投票。
数据集: Rousseeuw 和 Leroy (1986),臭氧含量 vs. 温度。 100 拔靴采样样本。
灰色线条: 初始的10个预测器; 红色线条: 平均。
Breiman “Bagging Predictors” Berkeley Statistics Department TR#421, 1994。
给定样例集S,Breiman重复下列工作100次报告平均结果:
方法 I:
- 把 S 随机划分成测试集 T(10%) 和训练集 D (90%)
- 从D中训练 决策树 算法,记 eS 为它在测 试集 T 上的错误率
方法 II:
重复50次: 生成拔靴采样集合Di , 进行决策树学习,记 eB 为决策树多数投票在测试 集T上的错误率 (集成大小 = 50)
同样的实验,但使用最近邻分类器 (欧式距离)
发生了什么? 为什么 ?
Bagging:讨论
Bagging 在学习器“不稳定”时有用,关键是预测方法的不稳定性。
E.g. 决策树、神经网络
为什么?
- 不稳定: 训练集小的差异可以造成产生的假设大不相同。
- “如果打乱训练集合可以造成产生的预测器大不相同,则bagging算法可以提升其准确率。” (Breiman 1996)
总结
加权多数算法
- 相同数据集, 不同学习算法
- 产生多个模型,加权融合
Bagging
- 一个数据集, 一个弱分类器
- 生成多组训练样本 来训练多个模型,然后集成。
四、Boosting
是否有一个集成算法能够考虑学习中数据的差异性?
基本想法--从失败中学习
- 给每个样本一个权值
- T 轮迭代,在每轮迭代后增大错误分类样本的权重。 – 更关注于“难”样本
AdaBoost
简而言之:少数提升,多数降低。
AdaBoost.M1
此时做错的一定是少数派,我们把正确的降低权重(β<1, 归一化),重复t轮融合,去新的权重log(1/β)
我们不停地更新权重w1,w2...wT,把每一个分类器(带着自己权值)融合在一起,来一个新的样本时加权计算。
例如:
最终假设
AdaBoost在实际使用时的优点
- 快
- 简单 + 易编程实现
- 只有一个参数要调 (T )
- 没有先验知识
- 灵活: 可以和任何分类器结合(NN, C4.5, …)
- 被证明是有效的 (尤其是弱学习器)
- 转变了思路: 现在目标是 仅仅需要寻找比随机猜测好一些的假设就可以了
AdaBoost注意事项
性能依赖于 数据 & 弱学习器
在下列情况中使用AdaBoost会 失效
- 弱学习器 太复杂 (过拟合)
- 弱学习器 太弱 (αt ->0 太快),
- 欠拟合
- 边界太窄->过拟合
过去的实验表明,AdaBoost 似乎 很容易受到噪声的影响
五、讨论
Bagging vs. Boosting
训练集合
- Bagging: 随机选择样本, 各轮训练集相互独立
- Boosting: 与前轮的学习结果有关,各轮训练集并不独立
预测函数
- Bagging: 没有权重; 便于并行
- Boosting: 权重变化 呈指数; 只能顺序进行
效果
- 实际中,bagging几乎总是有效。
- 平均地说,Boosting比bagging好一些,但boosting算法也较常出现损害系统性能的情况。
- 对稳定模型来说bagging效果不好,Boosting可能仍然有效。
- Boosting 可能在有噪声数据上带来性能损失,Bagging没有这 个问题。
重新调权 vs. 重新采样
- Reweighting 调整样本权重可能更难处理
- 一些学习方法无法使用样本权重
- 很多常用工具包不支持训练集上的权重
- Resampling 我们可以重采样来代替:
- 对数据使用boostrap抽样,抽样时根据每个样例的权值确定其被抽样的概率
- 一般重新调权效果会更好一些但重新抽样更容易实现
Bagging & boosting 应用
- 互联网内容过滤
- 图像识别
- 手写识别
- 语音识别
- 文本分类
AI遮天传 ML-集成学习相关推荐
- AI遮天传 ML/DL-感知机
感知机的出现是人工智能发展史一大重要里程碑,其后才诞生了:多层感知机.卷积神经网络等一系列的经典网络模型. 在我看来,它虽然是深度学习领域的一大开端,但本身解决的只是线性二分类问题,它本身与机器学习经 ...
- AI遮天传 DL-深度学习在计算机视觉中的应用
本文只做一些在计算机视觉中应用的简单介绍,童叟无欺. 一.图像分类 a. 通用图像分类 将不同图片按照内容进行分类 b. 特定图像分类 特定识别人脸.某种动物.汽车等 1.1 人脸验证 下面是两种典型 ...
- AI遮天传 DL-回归与分类
本文主要介绍Logistic回归和Softmax回归 一.回归与分类回忆 给定数据点集合 和相应的标签 ,对于一个新的数据点x,预测它的标签(目标是找到一个映射 ): 如果是一个连续的集合,称其为回 ...
- AI遮天传 ML-广义线性模型(一)
前文:AI遮天传 ML-回归分析入门_老师我作业忘带了的博客-CSDN博客 前文回顾: 还记得很久很久以前,我们学习了简单的回归分析,这其实与我们在学校所学的求解回归方程并没无太大的区别,或许仅是维度 ...
- 详解人工智能(AI) 机器学习(ML) 深度学习(DL)
有三个词,这两年出现的频率越来越高:人工智能(AI),机器学习(ML),深度学习(DL),到底他们哥仨是什么关系?今天小编化繁为简,用几张图带你迅速看明白.关系如图,从提出概念的时间上来看也很清楚: ...
- AI遮天传 DL-反馈神经网络RNN
本文会先介绍动态系统的概念,然后介绍两种简单的反馈神经网络,然后再介绍两种门控神经网络(LSTM, GRU),最后是关于反馈神经网络的应用(本次以语音识别为例). RNN: Recurrent neu ...
- AI遮天传 DL-CNN
上次我们介绍了多层感知机(MLP),本次将介绍深度学习领域中第二个基本的模型:卷积神经网络(CNN).CNN在MLP之上又引入了两种新的层:卷积层和池化层. 一.简介 1.1 大脑皮层中的局部检测器和 ...
- AI遮天传 ML-KNN
我们之前学习的方法如决策树.回归分析.贝叶斯分析都可以看作是 三步走 的学习方法,即: 估计问题的特征(如分布) 做出模型假设(LSE.Decision.Tree.MAP.MLE ) 找到最优的参数 ...
- AI遮天传 ML-SVM
支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本.非线性及高维模式式识别中表现出许多特有的优势,并 ...
最新文章
- 搭建Eclipse+MyEclipse开发环境
- 移植U-Boot思路和实践 | 基于RK3399
- linux win10 时间同步服务器,windows和linux下服务器时间如何校正?
- python中get和getall_Scrapy框架get() 、getall() 、extract() 、extract_first()的区别
- 学会这5种Excel颜色搭配技巧,表格想做不好看都难
- Linux多台主机互相免密登陆
- html5图片动且平移,HTML5 Canvas平移,放缩,旋转演示
- Qt对话框关闭时清理资源
- 采用 Python 机器学习预测足球比赛结果
- 永磁同步电机PMS直接转矩控制 Matlab/Simulink仿真模型
- ipad下载python_ipad python
- 第一次安装Microsoft SharePoint Protal Server 2003遇到的问题
- iOS app中不能跳转到商店更新
- 【数学分析】从多元函数的定义一直到多元函数的泰勒展开
- Anaconda3 偏好设置
- windows下守护sqlserver进程并将bat注入服务
- pta求一元二次方程的根
- linux安装geoserver、postgis,发布wms、wmts地图服务
- 树形数据的搜索方法---javascript
- 算法设计与分析_算法导论(CLRS)骨灰级笔记分享:目录
热门文章
- eps文件_如何编辑eps文件?
- 微信支付宝支付如何盈利?盈利如何?
- c语言空循环的作用是什么意思,C语言空循环和无穷循环有的区别
- 51NOD L4-第三章 树 刷题记录-zyz
- 羊年内核堆风水: “Big Kids’ Pool”中的堆喷技术
- Allegro 17.2 xnet设置不成功解决方法
- windows installer 窗口一直”正在取消“,无法关闭
- AI顶会ACL发榜,腾讯30篇论文入选
- maven项目对接harbor镜像仓库配置详解分析
- easyui(快速入门)