集成学习

8人阅读 评论(0) 收藏 举报
分类:

集成学习

bagging是一种并行集成学习的代表方法,bootstrap aggregating。先对数据进行采样获得基分类器,然后将基分类器进行结合。M个样本的训练集进行M次有放回抽样,则有1-1/e的样本会被抽到。bagging得到的算法复杂度是T(O(M)+O(S)),与基分类器同阶。bagging主要关注降低方差,在易受扰动的学习器上效果明显。如不剪枝的决策树,神经网络等。

rf(随机森林)是bagging的一个扩展变体。使用多决策树进行bagging集成,并在结点分裂时随机选取特征进行最有属性选取。k一般为 LOG2 d。随机森林的训练效率优于bagging。bagging使用确定型决策树时,计算最优特征会考虑所有的属性。

学习器结合会从三个方面带来好处。从统计方面看,学习任务的假设空间很大,会有很多个假设在训练集上达到同样效果,若使用单学习器,可能会误选导致泛化性能不佳,结合多个学习器会降低这一风险。从计算的方面看,学习算法往往会陷入局部极小,有的局部极小所对应的泛化性能会比较差,多个学习器会降低这一风险。从表示的方面看,某些任务的真是假设可能不在当前学习算法的假设空间当中,多个学习器结合会扩大假设空间。有可能学得更好的近似。

stacking 先从初始数据集训练出初级学习器,然后生成一个新数据集用于训练次级学习器。为了防止过拟合,一般的做法都会通过cv或者留一法来产生用于次级学习器的样本。

       假设我们整个training set包含10000行数据,testing set包含2500行数据,那么每一次交叉验证其实就是对training set进行划分,在每一次的交叉验证中training data将会是8000行,testing data是2000行。每一次的交叉验证包含两个过程,1. 基于training data训练模型;2. 基于training data训练生成的模型对testing data进行预测。在整个第一次的交叉验证完成之后我们将会得到关于当前验证集的预测值,这将会是一个一维2000行的数据,记为a1。在这部分操作完成后,我们还要对数据集原来的整个testing set进行预测,这个过程会生成2500个预测值,这部分预测值将会作为下一层模型testing data的一部分,记为b1。因为我们进行的是5折交叉验证,所以以上提及的过程将会进行五次,最终会生成针对验证集数据预测的5列2000行的数据a1,a2,a3,a4,a5,对testing set的预测会是5列2500行数据b1,b2,b3,b4,b5。

在完成对Model1的整个步骤之后,我们可以发现a1,a2,a3,a4,a5其实就是对原来整个training set的预测值,将他们拼凑起来,会形成一个10000行一列的矩阵,记为A1。而对于b1,b2,b3,b4,b5这部分数据,我们将各部分相加取平均值,得到一个2500行一列的矩阵,记为B1。

以上就是stacking中一个模型的完整流程,stacking中同一层通常包含多个模型,假设还有Model2: LR,Model3:RF,Model4: GBDT,Model5:SVM,对于这四个模型,我们可以重复以上的步骤,在整个流程结束之后,我们可以得到新的A2,A3,A4,A5,B2,B3,B4,B5矩阵。

在此之后,我们把A1,A2,A3,A4,A5并列合并得到一个10000行五列的矩阵作为training data,B1,B2,B3,B4,B5并列合并得到一个2500行五列的矩阵作为testing data。让下一层的模型,基于他们进一步训练。

查看评论

机器学习之集成学习

-
  • 1970年01月01日 08:00

集成学习.pdf集成学习.pdf集成学习.pdf集成学习.pdf

  • 2010年05月17日 09:08
  • 267KB
  • 下载

Ensemble learning 集成学习(一)

一.Ensemble learning(集成学习) 集成学习通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统等。要获得好的集成,个体学习器应”好而不同”,意味着个体学习器要有一定的准...
  • Savinger
  • Savinger
  • 2016-10-17 22:20:13
  • 2534

集成学习综述

机器学习方法在生产、科研和生活中有着广泛应用,而集成学习则是机器学习的首要热门方向。集成学习是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器...
  • qq_28168421
  • qq_28168421
  • 2016-11-27 15:25:57
  • 1184

集成学习(2)--Python

上节课我们介绍了AdaBoost这一算法,其基本思想就是通过集中关注被已有分类器分类错误的那些数据来训练新的分类器。 在上一节中估计每个分类器误差: ϵt=P(ht(x)≠f(x))=分类错...
  • ifruoxi
  • ifruoxi
  • 2016-12-11 13:02:17
  • 913

关于集成学习基础的简单描述

转载自数据工匠:http://datartisan.com/article/detail/32.html 什么是集成学习? 集成建模是优化模型表现的一条重要途径。通常来说,将集成学习方法运...
  • memray
  • memray
  • 2015-09-07 02:49:32
  • 2615

一文读懂集成学习

一文读懂集成学习(附学习资源) 投稿 丨 前沿热点  9134 1320 2017-08-07  THU数据派 Xtecher特稿作者 关注 ...
  • ruiyiin
  • ruiyiin
  • 2017-08-12 13:39:21
  • 2291

机器学习(四)集成学习概述

一、集成学习(Ensemble Learning)集成学习是指通过训练多个分类器,然后将这些分类器组合起来,来获得比单个分类器更优的性能(比最好的那个分类器还要好)。如果每个分类器都是同种类型的(比如...
  • u014230646
  • u014230646
  • 2016-05-31 14:07:13
  • 1234

集成学习:AdaBoost

集成学习:AdaBoost
  • u013790563
  • u013790563
  • 2016-04-07 10:49:17
  • 2161

机器学习:集成学习

机器学习:集成学习        继承学习最初的model是并行的去计算一个model在不同的参数下得到的结果,我们从里面找一个最好。有些时候我们的model实在是精度上不去,就可以上集成学习,因...
  • liyaohhh
  • liyaohhh
  • 2016-04-08 11:41:48
  • 1346
    个人资料
    等级:
    访问量: 97
    积分: 7
    排名: 221万+
    文章分类
    文章存档