集成学习

一.集成算法综述

参考https://blog.csdn.net/ruiyiin/article/details/77114072

1. 集成算法是一种优化手段或者策略,它通常是结合多个简单的弱机器学习算法,去做更可靠的决策。

2.集成模型是一种能在各种的机器学习任务上提高准确率的强有力技术,集成算法往往是很多数据竞赛关键的一步,能够很好地提升算法的性能

3.现实生活中,我们经常会通过投票,开会等方式,以做出更加可靠的决策。集成学习就与此类似。集成学习就是有策略的生成一些基础模型,然后有策略地把它们都结合起来以做出最终的决策。集成学习又叫多分类器系统。

4.集成方法是由多个较弱的模型集成模型组,一般的弱分类器可以是DT, SVM, NN, KNN等构成。其中的模型可以单独进行训练,并且它们的预测能以某种方式结合起来去做出一个总体预测。该算法主要的问题是要找出哪些较弱的模型可以结合起来,以及如何结合的方法。这是一个非常强大的技术集,因此广受欢迎。

二.集成学习框架(3种)

这里写图片描述

1.Bagging

基于数据随机重抽样的分类器构建方法。从训练集从进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果。
这里写图片描述

2.Boosting

训练过程为阶梯状,基模型按次序一一进行训练(实现上可以做到并行),基模型的训练集按照某种策略每次都进行一定的转化,每次都是提高前一次分错了的数据集的权值,最后对所有基模型预测的结果进行线性组合产生最终的预测结果。
这里写图片描述

3.Stacking

将训练好的所有基模型对训练基进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,最后基于新的训练集进行训练。同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后再对测试集进行预测:
这里写图片描述
Stacking算法分为2层,第一层是用不同的算法形成T个弱分类器,同时产生一个与原数据集大小相同的新数据集,利用这个新数据集和一个新算法构成第二层的分类器。

三.集成学习原理

1.基本概述

引用块内容这里写图片描述

2.构建不同的基学习器

这里写图片描述

引用块内容
(1)
这里写图片描述
(2)
这里写图片描述
(3)
这里写图片描述

3.基础分类器结果整合的主要方式

(1)对于回归预测(数值预测)

这里写图片描述

(2)对于分类(类别预测)

引用块内容

(3)集成学习的核心

1.如何构建具有差异性的分类器;
2.如何对这些分类器的结果进行整合。

基学习器之间的性能要有较大的差别,否则集成效果会很不好,也就是要保证多样性(Diversity),基学习器可以是DT, SVM, NN, KNN等,也可以是训练过程不同的同一种模型,例如不同的参数,不同的训练集,或者不同的特征选择等。

4.Bootstrap方法

Bootstrap方法是非常有用的一种统计学上的估计方法。Bootstrap是一类非参Monte Carlo方法,其实质是对观测信息进行再抽样,进而对总体的分布特性进行统计推断。
首先,Bootstrap通过重抽样,避免了Cross-Validation造成的样本减少问题;
其次,Bootstrap也可以创造数据的随机性。
Bootstrap是一种有放回的重复抽样方法,抽样策略就是简单的随机抽样。

5.Bagging(基于Bootstrap )

这里写图片描述

(1) Bagging(Bootstrapped Aggregation的简称)对于给定数据处理任务,采用不同的模型、参数、特征训练出多个模型,最后采用投票或者加权平均的方式输出最终结果。基学习器可以是相同的模型,也可以是不同的,一般使用的是同一种基学习器,最常用的是DT决策树。
(2)Bagging通过对原数据集进行有放回的采样构建出大小和原数据集D一样的新数据集D1,D2,D3…..,然后用这些新的数据集训练多个分类器g1,g2,g3….。因为是有放回的采样,所以一些样本可能会出现多次,而有些样本会被忽略,理论上新的样本会包含67%的原训练数据
(3)Bagging通过降低基分类器的方差改善了泛化能力,因此Bagging的性能依赖于基分类器的稳定性,如果基分类器是不稳定的,Bagging有助于降低训练数据的随机扰动导致的误差,但是如果基分类器是稳定的,即对数据变化不敏感,那么bagging方法就得不到性能的提升(没有体现其功能)。

6.随机森林

(1)简介

随机森林(Random Forest)是许多决策树的平均,每个决策树都用通过Bootstrap的方式获得随机样本训练。森林中的每个独立的树都比一个完整的决策树弱,但是通过将它们结合,可以通过多样性获得更高的整体表现。

随机森林会首先生成许多不同的决策树,每棵树变量的个数可以为 K K K K <script type="math/tex" id="MathJax-Element-2">K</script>为可用变量的个数),这样能够显着的加速模型的训练速度。一般的基础分类器的个数为500棵或者可以更多。

随机森林具有Self-testing的特性,因为随机森林是通过Bootstrap的方式采样,理论上往往会有大约1/3的原始数据没有被选中,我们叫做OOB(out of bag),而这部分数据刚好可以用来做测试,类似于Cross-Validation的作用。

随机森林是当今机器学习中非常流行的算法。它是一种“集群智慧”,非常容易训练(或构建),且它往往表现良好。

(2)随机森林优缺点

优点

1.所有的数据都能够有效利用,而且不用人为的分出一部分数据来做cross-validation;
2.随机森林可以实现很高的精确度,但是只有很少的参数,而且对于分类和回归都适用;
3.不用担心过拟合的问题;
4.不需要事先做特征选择,每次只用随机的选取几个特征来训练树。

缺点

相比于其他算法,其输出预测可能较慢。

6.Boosting

Boosting(Adaptive Boosting的简称),基于错误提升分类器性能,通过集中关注被已有分类器分类错误的样本,构建新分类器并集成。其思想为模型每次迭代时通过调整错误样本的损失权重,提升对数据样本整体的处理精度。
结果:讲多次迭代训练得到的弱分类器进行加权相加得到最终的强分类器。
这里写图片描述
核心思想是 通过改变训练集进行有针对性的学习。通过每次迭代,增加错误样本的权重,减小正确样本的权重。知错就改,越来越好。

7.Boosting与Bagging区别

Boosting与Bagging 相比来说最大的区别就是Boosting是串行的,而Bagging中所有的分类器是可以同时生成的,之间没有什么关系,而Boosting中则必须先生成第一个分类器,然后根据第一个分类器的结果生成第二个分类器,依次往后进行。这里写图片描述

三.偏差和方差

这里写图片描述

1.定义

模型的偏差:训练出来的模型在训练集上的准确度。

模型的方差:模型是随机变量。设样本容量为n的训练集为随机变量的集合(X1, X2, …, Xn),那么模型是以这些随机变量为输入的随机变量函数(其本身仍然是随机变量):F(X1, X2, …, Xn)。抽样的随机性带来了模型的随机性。

2.研究模型偏差和方差的现实意义

方差越大的模型越容易过拟合:假设有两个训练集A和B,经过A训练的模型Fa与经过B训练的模型Fb差异很大,这意味着Fa在类A的样本集合上有更好的性能,而Fb反之,这便是我们所说的过拟合现象。

3.强弱模型

(1)弱模型偏差高(在训练集上准确度低)方差小(防止过拟合能力强)的模型。
(2)我们常说集成学习框架中的基模型是弱模型。并不是所有集成学习框架中的基模型都是弱模型。
(3) bagging和stacking中的基模型为强模型(偏差低方差高),boosting中的基模型为弱模型。

在bagging和boosting框架中,通过计算基模型的期望和方差,我们可以得到模型整体的期望和方差。为了简化模型,我们假设基模型的权重、方差及两两间的相关系数相等。

四.AdaBoost算法

1.算法概述

这里写图片描述

引用块内容这里写图片描述

2.算法原理

引用块内容
D1是样本权重,m是分类器个数,Gm(x)是基分类器(对点进行标注,1或-1)
em越大,am越小。也就是分类越不准确,分类器(分类准确率)的系数am越小
这里写图片描述yi是对点的标注,1或-1,Dm是样本权重分布,wmi是每个样本权重

AdaBoost算法说明

这里写图片描述这里写图片描述

3.举例

这里写图片描述

(1)m=1

引用块内容
这里写图片描述

(2)m=2

这里写图片描述这里写图片描述这里写图片描述

(3)m=3

这里写图片描述这里写图片描述这里写图片描述随着分类器的增加,上一轮分错的样本点加大权重(比较m1,m2,m3),最终全部分类正确
有两种权重,样本分布权重w和分类器权重α样本分对了,w减小,α增大.

解释第三步为什么误分类点为0个:根据阈值v取5.5,直观上分错点为3,4,9,其实不然。此时所有点分类是根据分类器权重来决定y(1或-1),发现都没有分错。

(1)误差上限

引用块内容
证明
这里写图片描述

(2)训练误差界

引用块内容
证明

(3)结果

AdaBoost训练误差是以质数速率下降的

引用块内容

5.优缺点

引用块内容8

五.Xgboost

高性能版的GBDT,集合GBDT优点

https://blog.csdn.net/wsp_1138886114/article/details/80554701

六.GBDT

1.GBDT与Adaboost区别

这里写图片描述

2.GBDT算法思想

引用块内容

3.GBDT优缺点

这里写图片描述

4.举例

这里写图片描述这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值