机器学习笔记十三:Ensemble思想(上)

从上面几篇的决策树开始,就可以开始进入到集成学习(ensemble learning)了,与其说集成学习是一种算法,倒不如说集成学习是一种思想.

集成学习的思想也是很自然很符合人类直观理解的. 用通俗的不能更通俗的话来说,要是一个机器学习器解决不了问题,那就多训练几个.再把这些学习器结合起来完成机器学习任务. 可以类比开会,一群人讨论得到的解决办法一般比一个人拍板的要好.

用过集成学习之后,一般来说,效果都会比某些单一的算法效果要好.所以,不管是为了排名还是为了其他的东西,kaggle等机器学习竞赛一大部分方案都会使用集成学习的,你懂得.

这篇只讲集成学习的主要思想和最常见的学习策略.并不带有太多的理论数学推导,在之后的下篇会加入进来.

一.概述

前面就已经讲到了,集成学习的思想是,我们可以训练很多个学习器,通过一定的结合策略,最终形成一个强的学习器.形象一点看下图.

所以,你会很自然的考虑:

我们通过怎样的方式来得到n个学习器呢?

得到n个学习器之后,我们通过怎样的策略来结合呢?

下面的内容就这两个疑惑来讲一下常见的训练多个学习器的方法和结合多个学习器的方法.

二.怎么得到多个学习器

这一部分举两个最常见的得到多个学习器的思路.一种是bagging,另外一种是boosting.

Ⅰ.bagging

要理解bagging,首先知道bootstrap词汇的故事.这个词汇表示的是靴子上面的小环或者是悬挂物等等,通过这个小东西能够方便穿靴子.意思是不依靠外界的帮助,或者叫做自助法.

在这里表示一种有放回的抽样方法.所以以后看到bootstrap这个词不要不知道是什么意思.同样,你可能会经常看到一个词叫做bootstrap sampling.这个词的意思是自助采样,对于N个样本的训练集,我从里面随机取出m个样本,得到一个子训练集.然后把这些样本放回. 然后再取m个样本,得到第二个子训练集,再放回去………..重复这样的步骤k次,得到k个子训练集.

Bagging可以看做是bootstrap aggregation的简写.

bagging得到多个学习器的方式为:

通过自助采样的方法得到K个训练集,然后分别在这K个训练集上面训练学习器.然后就得到了K个学习器.

非常简单的思想,形象一点如下图所示.

符合bagging思想的比较出名的学习算法就是随机森林了,在后面会详细来讲随机森林.这里先知道随机森铃的思想算是bagging就行.

Ⅱ.boosting

boosting的思想是:

训练集(其中各个元素)的权重是根据学习器的表现来改变的.

这个和bagging就有很大的不同了.bagging采用自助采样的方式”产生”出多个训练集.但是boosting只有一个训练集,但是训练集中各个元素(输入向量)的权重是不同的.

详细一点,boosting是先从具有初始权重的训练集训练出一个弱学习器1,然后根据弱学习器1的表现,来更新样本的权重. 然后再具有新的权重的训练集上面训练弱学习器2,然后根据弱学习器2的表现来更新样本的权重……..反复多次 ,得到m个学习器,最后整合这些弱学习器得到强学习器.

形象一点的话看下图.

这里并不详细展开讲权重改变的具体细节,因为这篇的目的是快速理解思想,为后面的打基础.更具体的在后面的博客会详细给出.

Boosting框架下面比较出名好用的就是Adaboost算法和提升树了.后面都会讲到.

三.通过怎样的策略结合学习器

这里只能说要粗略的带过了,因为后面会从具体的实例里面体会怎么结合各种学习器.比在这里泛泛而谈要有用得多.

重点是要好好理解bagging和boosting的思想.

时间: 2024-08-25 06:07:22

机器学习笔记十三:Ensemble思想(上)的相关文章

机器学习笔记—svm算法(上)

本文申明:本文原创,如转载请注明原文出处. 引言:上一篇我们讲到了logistic回归,今天我们来说一说与其很相似的svm算法,当然问题的讨论还是在线性可分的基础下讨论的. 很多人说svm是目前最好的分类器,那我们就来看看我们的svm好在哪里. 一:初识svm 问题:用一条直线把下图的圆球和五角星分离开来. 解答:有N种分法,如下图: 附加题:找出最佳分类? 解答:如图: Exe me?鬼知道哪一条是最佳?? 等等这个最佳分类是不是等价于,地主让管家给两个儿子分地,是不是只要让两家之间一样多就可

机器学习笔记 贝叶斯学习(上)

机器学习笔记(一) 今天正式开始机器学习的学习了,为了激励自己学习,也为了分享心得,决定把自己的学习的经验发到网上来让大家一起分享. 贝叶斯学习 先说一个在著名的MLPP上看到的例子,来自于Josh Tenenbaum 的博士论文,名字叫做数字游戏. 用我自己的话叙述就是:为了决定谁洗碗,小明和老婆决定玩一个游戏.小明老婆首先确定一种数的性质C,比如说质数或者尾数为3:然后给出一系列此类数在1至100中的实例D= {x1,...,xN} :最后给出任意一个数x请小明来预测x是否在D中.如果小明猜

猪猪的机器学习笔记(十三)贝叶斯网络

贝叶斯网络 作者:樱花猪 摘要 本文为七月算法(julyedu.com)12月机器学习第十三次次课在线笔记.贝叶斯网络又称信度网络,是Bayes方法的扩展,是目前不确定知识表达和推理领域最有效的理论模型之一.贝叶斯网络适用于表达和分析不确定性和概率性的事件,应用于有条件地依赖多种控制因素的决策,可以从不完全.不精确或不确定的知识或信息中做出推理.本节课从朴素贝叶斯模型开始,详细描述了贝叶斯网络的意义,构建方案以及其他衍生算法. 引言 贝叶斯网络是机器学习中非常经典的算法之一,它能够根据已知的条件

机器学习笔记——SVM之一

SVM(Support Vector Machine),中文名为 支持向量机,就像自动机一样,听起来异常神气,最初总是纠结于不是机器怎么能叫"机",后来才知道其实此处的"机"实际上是算法的意思. 支持向量机一般用于分类,基本上,在我的理解范围内,所有的机器学习问题都是分类问题.而据说,SVM是效果最好而成本最低的分类算法. SVM是从线性可分的情况下最优分类面发展而来的,其基本思想可以用下图表示: (最优分类面示意图) 图中空心点和实心点代表两类数据样本,H为分类线

机器学习笔记

下载链接:斯坦福机器学习笔记 这一系列笔记整理于2013年11月至2014年7月.所有内容均是个人理解,做笔记的原因是为了以后回顾相应方法时能快速记起,理解错误在所难免,不合适的地方敬请指正. 笔记按照斯坦福机器学习公开课的notes整理,其中online学习部分没有整理,reinforcement learning还没接触,有时间补上. 这份笔记主要记录自己学习过程中理解上的难点,所以对于初学者来说可能不容易理解,更详细和全面的说明可以参照JerryLead等的机器学习博文. 水哥@howde

机器学习笔记(1)

今天按照<机器学习实战>学习 k-邻近算法,输入KNN.classify0([0,0],group,labels,3)的时候总是报如下的错误: Traceback (most recent call last): File "<pyshell#75>", line 1, in <module> KNN.classify0([0,0],group,labels,3) File "KNN.py", line 16, in classi

[读书笔记]鱼头的思想

如果你看厭了城市里的小資文字和那些頹廢悲觀情緒,看煩了針砭時弊的激揚文字,再讀這些有芳香泥土氣息的文字,你會慢慢安靜下來,閉上眼睛享受陽光溢滿自己的那種溫暖明媚的味道.真正的幽默是溫柔的,自然流露的,在你不設防的時候突然觸摸了你的笑神經. 吃出情趣,吃出文化和思想--這就是古清生帶給我們的永不落幕的盛宴. 水煮魚端桌上,油汪汪一盆,橙紅油亮,光芒四射,如一輪太陽.品嘗起來抵達人的味覺巔峰,一個渾圓的熱烈,在記憶中不朽. 一切美食原則,重在講味道,講口感,講美觀.水煮魚浸于紅油之下,顯得白嫩若玉,

机器学习笔记——人工神经网络

人工神经网络(Artificial Neural Networks,ANN)提供了一种普遍而实用的方法从样例中学习值为实数.离散值或向量的函数. 人工神经网络由一系列简单的单元相互密集连接构成,其中每一个单元有一定数量的实值输入(可能是其他单元的输出),并产生单一的实数值输出(可能成为其他单元的输入). 适合神经网络学习的问题: 实例是很多"属性-值"对表示的 目标函数的输出可能是离散值.实数值或者由若干实数或离散属性组成的向量 训练数据可能包含错误 可容忍长时间的训练 可能需要快速求

机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)

之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradient Decent)> 2.<机器学习笔记02:多元线性回归.梯度下降和Normal equation> 3.<机器学习笔记03:Normal equation及其与梯度下降的比较> 说明:本文章所有图片均属于Stanford机器学课程,转载请注明出处 面对一些类似回归问题,我们可