【机器学习基础】自适应提升

Weighted Base Algorithm

(1)基本算法引入权重

加权这类算法给每个数据一个权重,这个权重可以看做是该数据点有几份。

在之前介绍的SVM算法中,对于一个错误扣除C的分数,而对错误加权之后,每个数据点将扣除C·un这个多的分数,这个参数经过二次规划的计算之后,就会到α的上限中去。

对于逻辑回归来说,un可以作为样本(xn,yn)的抽样比例。

这两个例子说明将权重系数放入具体的算法中是可行的。

(2)让假设差别更大

上一节介绍Aggregation时我们知道,各种假设的区别越不一样,通过组合的机制可以得到更好的结果。那么,我们该如何改变u让假设g差别越大越好?

我们知道g(t)是由un(t)加权得到的,g(t+1)是由un(t+1)加权得到的。

那么,如果g(t)使用un(t+1)进行加权的结果效果非常不好,那么使用un(t+1)得到的g就会和g(t)非常不一样,那么就得到了和g(t)差别很大的g(t+1)。

于是,我们就得到了让g(t)和g(t+1)非常不一样的方法:让g(t)在下一轮的权重之下,表现很差。

如果g(t)的表现很差是什么意思?就是g(t)的表现是随机的,在二元分类的情况下,其加权之后的误差被均一化之后的结果应该是1/2。

上面这个式子其实可以表示为(犯错误的数据与相应权重的乘积) / (犯错误的数据乘以相应权重+没有出错的数据乘以其权重)。也就是说,犯错误的数据乘以相应权重的值 = 没有出错的数据乘以其权重的值。

为了达到这个目的,最优更新权重(optimal re-weighting)的方式是:把做对的数据对应的权重un(t)乘上错误的比率εt,把做错的数据对应的权重un(t)乘上正确的比率(1-εt),这样来更新权重un(t+1)。

Adaptive Boosting Algorithm

放缩因子

上一小节中,我们讨论了最优更新权重方法,通过事先计算出来错误率εt,然后将错分数据的权重乘上(1-εt),将正确分类数据的权重乘上εt得到新的权重。

下面,我们使用一种更加简单等价的方式来更新权重,这里的放缩因子称为◆t:

这里的◆t有更清晰的物理意义,通常情况下εt < 1/2(因为是学习之后的结果,错误率应该小于0.5),这样◆t将大于1;那么,犯错的数据将乘上大于1的数,正确数据将除以大于1的数,使得提升了犯错数据的权重(scale up incorrect),降低做对数据的权重(scale down correct)。这样使得更加专注在犯了错的地方,来得到不一样的假设(diverse hypotheses)。

边得到g边确定系数α

这里介绍Linear Aggregation的流程大体是这样的:

首先u(1)=[1/N, 1/N, … , 1/N],通过某个算法得到g(t),不断更新u(t),这里还需要得到α(t),最终通过α(t)和g(t)的线性组合的形式,得到G(x)。

现在的问题是α(t)是什么?基本的想法是,好的g应该α大一点,坏的g应该α小一点。那么,好的g,其ε小(错误率低),那么◆比较大,那么α应该是◆的单调函数的结果。设计这个算法的人将α认为是ln(◆)。

算法流程如下:

这里之所以认为αt = ln(◆t),处于下面的考虑:

如果εt = 1/2, 那么◆t = 1,则αt = 0,意思是随机乱猜的情况下(二元分类错误率为0.5),认为是坏的g,则一票不给个,不使用该g
如果εt = 0, 那么◆t = ∞,则αt = ∞,意思是正确率为0的情况,给它无限多票数

上面介绍的方法称为Adaptive Boosting方法,其中有三个元素,其中包括弱算法、放缩因子和线性的组合。

可以将这个流程看做是学生在课堂上进行学习,学生看了数据资料,进行分类的选择(由于缺乏全面的认识,得到知识可能是准确的),然后老师再将数据资料进行重要性的放大和缩小(将学生犯错的数据资料拿出来给予更多的重视,对于做对的数据资料给予较少的关注),将这一系列的过程合起来,相当于通过不同学生的认识综合起来,得到一个更好的认知结果。

AdaBoost算法完整流程

AdaBoost理论特性

通过之前的VC Bound,来约束测试误差,其中蓝色的部分是模型的复杂度,O(dvc(H))为g的模型复杂度,而O(dvc(H))·T·logT是模型G的复杂度。原作者证明说,可以用O(logN)次迭代可以将Ein(G)做到很小,并且当数据量N足够多的情况下,又可以使得模型复杂度变得很小,从而使得模型复杂度得到控制。最终预测效果Eout也会很好。

AdaBoost的保证是让一个很弱的算法不断变强,最终得到一个很强是算法(Ein=0,Eout is small)。

Adaptive Boosting in Action

上面的AdaBoost只需要一个很弱的算法就可以使用。

一般情况下,可以使用决策桩(Decision Stump),该模型相当于在某一个维度上的Perceptron模型。

转载请注明作者Jason Ding及其出处

GitCafe博客主页(http://jasonding1354.gitcafe.io/)

Github博客主页(http://jasonding1354.github.io/)

CSDN博客(http://blog.csdn.net/jasonding1354)

简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)

Google搜索jasonding1354进入我的博客主页

时间: 2024-10-11 06:28:03

【机器学习基础】自适应提升的相关文章

如何在响应式基础上提升移动性能///响应式不是万能的!教你提升响应式设计的移动性能(一)

如何在响应式基础上提升移动性能 摘要:如何在响应式基础上提升移动性能,从细节做起,结合网站,做好响应式页面的设计优化工作.,随着互联网的高速发展,合肥网站建设小编今天为大家介绍,为解决移动性能的响应式页面设计并不是万能的,而应该不断的改进,从而更好的为用户服务.随着互联网的高速发展,例如近段时间炒得火热的谷歌申请的无人机技术,以及电商门户网站阿里巴巴的上市等等,这都促进了互联网日新月异的变化. 所以作为网站seo人员不应固步自封,而应该努力的跟上时代的步伐,不仅需要学习相关的seo知识,而且对于

【机器学习基础】决策树算法

引言 在之前的两节博文<混合和装袋>和<自适应提升>中,我们已经有现成的一堆假设g在手中,我们还如何将这些g混合起来,得到更好的分类器. 混合方式可以分为三种情况: 把g看做是同等地位,通过投票或者平均的方式将它们合起来,称为Bagging g是不平等的,有好有坏,一个可行的做法是把g当成是特征的转换,然后丢进线性模型训练就可以了,这称为AdaBoost 如果是不同的条件下,使用不同的g,那么我们仍然可以将g当做是特征转换,接下来使用一个非线性模型来得到最终的模型参数,这就是该文要

机器学习基础——带你实战朴素贝叶斯模型文本分类

本文始发于个人公众号:TechFlow 上一篇文章当中我们介绍了朴素贝叶斯模型的基本原理. 朴素贝叶斯的核心本质是假设样本当中的变量服从某个分布,从而利用条件概率计算出样本属于某个类别的概率.一般来说一个样本往往会含有许多特征,这些特征之间很有可能是有相关性的.为了简化模型,朴素贝叶斯模型假设这些变量是独立的.这样我们就可以很简单地计算出样本的概率. 想要回顾其中细节的同学,可以点击链接回到之前的文章: 机器学习基础--让你一文学会朴素贝叶斯模型 在我们学习算法的过程中,如果只看模型的原理以及理

【机器学习基础】混合和装袋

融合模型(Aggregation Model) 如果我们已经得到了一些特征或者假设,它们和我们做机器学习的目标有若干的一致性的话,我们可以将这些假设综合起来,让预测效果变得更好,这样的模型被称为融合模型. 融合模型是通过混合(mix)和组合(combine)一些假设的方式,得到更好的预测结果. 下面列举了四种不同的混合组合方式,并给出了数学表示形式: 当有多个假设时,我们选择检验误差最小的假设作为我们最信任的目标函数: 我们现在有多个假设,我们可以给每个假设一个投票的权利,综合所有假设的投票结果

机器学习实战笔记1(机器学习基础)

1:如何选择合适的算法 2:python简介 (1)   python的优势:相对于matlab,matlab单个软件授权就要花费数千美元,也没有一个有影响力的大型开源项目.相对于c++/c/java,完成简单的操作就需要编写大量的代码:而如今我们应该花费更多的时间去处理数据内在的含义,而无需花费太多精力解决计算机如何得到数据结果(python简洁) (2)   python具有numpy科学函数库,它是一个使运算更容易.执行更迅速的库:另外还有matplotlib绘图工具. 3:python语

第一章:机器学习基础

第一部分:分类 本书前两部分主要探讨监督学习(supervisedieaming).在监督学习的过程中,我们只需要给定输入样本集,机器就可以从中推演出指定目标变量的可能结果.监督学习相对比较简单,机器只需从输入数据中预测合适的模型,并从中计算出目标变量的结果.      监督学习一般使用两种类型的目标变量:标称型和数值型.标称型目标变量的结果只在有限目标集中取值,如真与假.动物分类集合{爬行类.鱼类.哺乳类.两栖类.植物.真菌};数值型目标变量则可以从无限的数值集合中取值,如0.100.42.0

【机器学习实战】第1章 机器学习基础

第1章 机器学习基础 机器学习 概述 机器学习就是把无序的数据转换成有用的信息. 获取海量的数据 从海量数据中获取有用的信息 我们会利用计算机来彰显数据背后的真实含义,这才是机器学习的意义. 机器学习 场景 例如:识别动物猫 模式识别(官方标准):人们通过大量的经验,得到结论,从而判断它就是猫. 机器学习(数据学习):人们通过阅读进行学习,观察它会叫.小眼睛.两只耳朵.四条腿.一条尾巴,得到结论,从而判断它就是猫. 深度学习(深入数据):人们通过深入了解它,发现它会'喵喵'的叫.与同类的猫科动物

机器学习实战之第一章 机器学习基础

第1章 机器学习基础 机器学习 概述 机器学习就是把无序的数据转换成有用的信息. 获取海量的数据 从海量数据中获取有用的信息 我们会利用计算机来彰显数据背后的真实含义,这才是机器学习的意义. 机器学习 场景 例如:识别动物猫 模式识别(官方标准):人们通过大量的经验,得到结论,从而判断它就是猫. 机器学习(数据学习):人们通过阅读进行学习,观察它会叫.小眼睛.两只耳朵.四条腿.一条尾巴,得到结论,从而判断它就是猫. 深度学习(深入数据):人们通过深入了解它,发现它会'喵喵'的叫.与同类的猫科动物

【机器学习基础】线性可分支持向量机

引言 接下里的一系列有关机器学习的博文,我将具体的介绍常用的算法,并且希望在这个过程中尽可能地结合实际应用更加深入的理解其精髓,希望所付出的努力能得到应有的回报. 接下来的有关机器学习基础博文主要根据机器学习技法课程的学习,围绕特征转换(feature transforms)这个主要工具,从以下三个方向进行探讨: 如果现在有很多特征转换可以使用的时候,我们该如何运用这些特征转换,如何控制特征转换中的复杂度的问题,从这个角度刺激了支持向量机(Support Vector Machine)算法的发展

2.4.5-Java语言基础(类型提升&amp;强制转换)

自动类型转换(也叫隐式类型转换) 强制类型转换(也叫显式类型转换) 类型转换的原理 什么时候要用强制类型转换? 表达式的 数据类型自动提升 ?  所有的byte型.short型和char的值将被提升到int型. ?  如果一个操作数是long型,计算结果就是long型: ?  如果一个操作数是float型,计算结果就是float型: ?  如果一个操作数是double型,计算结果就是double型. 分析 ?  System.out.println('a') 与System.out.printl