机器学习—集成学习

在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。

集成方法是将几种机器学习技术组合成一个预测模型的元算法,以达到减小方差(bagging)、偏差(boosting)或改进预测(stacking)的效果。

集成学习在各个规模的数据集上都有很好的策略。

数据集大:划分成多个小数据集,学习多个模型进行组合

数据集小:利用Bootstrap方法进行抽样,得到多个数据集,分别训练多个模型再进行组合

集合方法可分为两类:

  • 序列集成方法,其中参与训练的基础学习器按照顺序生成(例如 AdaBoost)。序列方法的原理是利用基础学习器之间的依赖关系。通过对之前训练中错误标记的样本赋值较高的权重,可以提高整体的预测效果。
  • 并行集成方法,其中参与训练的基础学习器并行生成(例如 Random Forest)。并行方法的原理是利用基础学习器之间的独立性,通过平均可以显著降低错误
    在这里插入图片描述

1.bagging

bagging即套袋法,先说一下bootstrap,bootstrap也称为自助法,它是一种有放回的抽样方法,目的为了得到统计量的分布以及置信区间,其算法过程如下:

A)从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)

B)每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)

C)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
  在这里插入图片描述

2.boosting

主要思想是将弱分类器组装成一个强分类器。在PAC(probably approximately correct,概率近似正确)学习框架下,则一定可以将弱分类器组装成一个强分类器。

关于Boosting的两个核心问题:

1)在每一轮如何改变训练数据的权值或概率分布?

通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。

2)通过什么方式来组合弱分类器?

通过加法模型将弱分类器进行线性组合。
  在这里插入图片描述

3.stacking

Stacking 是先用全部数据训练好基模型,然后每个基模型都对每个训练样本进行的预测,其预测值将作为训练样本的特征值,最终会得到新的训练样本,然后基于新的训练样本进行训练得到模型,然后得到最终预测结果。
在这里插入图片描述

4.实例

4.1Random Forest(bagging)

随机森林中,集成中的每棵树都是由从训练集中抽取的样本(即 bootstrap 样本)构建的。另外,与使用所有特征不同,这里随机选择特征子集,从而进一步达到对树的随机化目的。
在这里插入图片描述
根据下列算法而建造每棵树 :

  1. 用N来表示训练样本的个数,M表示特征数目。
  2. 从N个训练样本中以有放回抽样的方式,取样N次,形成一个训练集(即bootstrap取样),并用未抽到的用例(样本)作预测,评估其误差。
  3. 对于每一个节点,随机选择m(m<<M)个特征,决策树上每个节点的决定都是基于这些特征确定的。根据这m个特征,从这m个特征中选择最优的特征分裂。
  4. 每棵树都会完整成长而不会剪枝,这有可能在建完一棵正常树状分类器后会被采用)。

4.2Adaboost

Adaboost 算法采用调整样本权重的方式来对样本分布进行调整,即提高前一轮个体学习器错误分类的样本的权重,而降低那些正确分类的样本的权重,这样就能使得错误分类的样本可以受到更多的关注,从而在下一轮中可以正确分类,使得分类问题被一系列的弱分类器“分而治之”。对于组合方式,AdaBoost采用加权多数表决的方法,具体地,加大分类误差率小的若分类器的权值,减小分类误差率大的若分类器的权值,从而调整他们在表决中的作用。

其算法流程如下:

有如下二分类数据集(N为样本数): T = { ( x 1 , y 1 ) , ( x 1 , y 1 ) , … , ( x N , y N ) } y i ϵ Y = { − 1 , 1 } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{1}, y_{1}\right), \ldots,\left(x_{N}, y_{N}\right)\right\} \quad y_{i} \epsilon Y=\{-1,1\} T={ (x1,y1),(x1,y1),,(xN,yN)}yiϵY={ 1,1}
输入:数据集 T;弱学习算法
输出:最终分类器G(x)
(1) 初始化训练数据的权值分布 D 1 = ( w 11 , w 12 , … , w 1 N ) , w 1 i = 1 N , i = 1 , 2 , … , N D_{1}=\left(w_{11}, w_{12}, \ldots, w_{1 N}\right), \quad w_{1 i}=\frac{1}{N}, \quad i=1,2, \ldots, N D1=(w11,w12,,w1N),w1i=N1,i=1,2,,N
(2) 对 m = 1 , 2 , . . . , M m=1,2,...,M m=1,2,...,M (弱分类器的个数,对每个弱分类器做如下):

 (a)使用具有权值分布 D m D_m Dm训练数据集学习,得到基本分类器;
G m ( x ) : X → { − 1 , 1 } G_{m}(x): X \rightarrow\{-1,1\} Gm(x):X{ 1,1} (b) 计算 G m ( x ) G_m(x) Gm(x)在训练数据集上的分类误差率 e m e_{m} em (错误分类的样本的权重之和);
e m = ∑ i = 1 N P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) e_{m}=\sum_{i=1}^{N} P\left(G_{m}\left(x_{i}\right) \neq y_{i}\right)=\sum_{i=1}^{N} w_{m i} I\left(G_{m}\left(x_{i}\right) \neq y_{i}\right) em=i=1NP(Gm(xi)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mrs.King_UP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值