机器学习中及集成学习

集成学习(Enable Learning)

记录学习集成学习笔记~

  • 简介

在机器学习的监督学习算法中,我们的目的是学习出一个的稳定且在各个方面表现较好的模型,但实际情况并不理想。有时只能得到某些方面较好的模型,也就是偏好的模型。集成学习就是组合多个有偏好的弱模型以得到更好更全面的监督模型,集成学习的思想就是某个偏弱模型得到了错误的预测,其他模型也可以弥补回来。集成学习并不是一种算法,而是一种训练思。

集成学习在各个规模的数据集都有不同的方法:
数据集大:划分成小的数据集,学习多个模型进行组合。
数据集小:使用Booststrap方法进行抽样,得到更多的数据集,分别训练多个模型再进行组合。

集成学习的方法主要有三种:Bagging,Boosting,Stacking,Bagging 的代表就是随机森林,Boosting 主要有:Adaboost,GBDT,XGBOOST。

  • Bagging(封袋法)
    是boosttrap aggregating 的缩写,主要对样本训练集合进行随机化抽样,通过反复的抽样训练新的模型,最终在这些模型的基础上取平均。
  • 基本思想:
  1. 给定一个学习算法(较弱),和一个训练集;
  2. 单个学习算法准确率不高;
  3. 将该学习算法使用多次,得到预测函数序列,进行投票;
  4. 最后结果准确率将得到提高。

随机森林(Random Forest)为例说明,随机森林就是随机的方式建立一个森林,森林由很多的决策树组成,这些决策树之间是独立的,没有关联。

随机森林由LeoBreiman(2001)提出,从原始训练样本集N中有放回地重复随机抽取k个样本生成新的训练样本集合,然后根据自助样本集生成k个分类树组成随机森林,新数据的分类结果按分类树投票多少形成的分数而定。

其实质是对决策树算法的一种改进,将多个决策树合并在一起,每棵树的建立依赖于一个独立抽取的样品,森林中的每棵树具有相同的分布,分类误差取决于每一棵树的分类能力和它们之间的相关性。

特征选择采用随机的方法去分裂每一个节点,然后比较不同情况下产生的误差。能够检测到的内在估计误差、分类能力和相关性决定选择特征的数目。单棵树的分类能力可能很小,但在随机产生大量的决策树后,一个测试样品可以通过每一棵树的分类结果经统计后选择最可能的分类。

预测的时候,随机森林中每一颗树都对输入进行预测,最后进行投票,哪个类别多,输入样本就属于哪个类别。每个树比较弱,但组合到一起就比较强。
随机森林的过程

  • 从训练数据中选取n个作为训练数据输入,一般情况下n是远小于整体的训练数据N的,这样就会造成有一部分数据是永远无法选取到的,这部分数据称之为袋外数据,可以使用袋外数据做误差估计。
  • 选取输入数据之后,需要构建决策树,即每个分裂节点从整体的特征集M中选取m个特征构建,一般m<<M。
  • 构建决策树时,按照选取最小的基尼指数进行分裂节点的选取构建决策树。
  • 重复2-3步骤,每一次输入数据对应一颗决策树,这样就得到了随机森林,可以用来对预测数据进行决策。
  • 输入的数据选择完毕,决策树也创建完成,对预测数据进行预测,比如说输入一个待预测数据,多颗决策树同时进行决策,最后采用多数投票的方式进行类别决策。
    随机森林的特点:
    1 构建决策树时不需要剪枝
    2 整个森林的决策树量和每棵树的特征数需要人为的进行设定
    3 构建决策树时分裂节点的选择依据最小基尼系数
    - Boosting
    提升算法常用的统计学习算法,属于迭代算法,通过不断地使用一个弱学习器弥补前一个弱学习器的不足过程,串行的构造较强的学习,使得目标函数值足够小。
    基本思想
  1. 赋予每个训练相同概率;
  2. 然后进行T次迭代,每次迭代后,对错误样本加大权重,使得在下一轮迭代中更加关注这些样本。
    Boosting系列算法里最著名算法主要有AdaBoost算法和提升树(boosting tree)系列算法。提升树系列算法里面应用最广泛的是梯度提升树(Gradient Boosting Tree)。

Bagging与Boosting异同
1.样本选择:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的.
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化.而权值是根据上一轮的分类结果进行调整。
2. 样例权重
Bagging:使用均匀取样,每个样例的权重相等。
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大.
3.预测函数
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重
4. 并行计算
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能执行一次,因为后一个模型参数需要前一轮模型的结果

参考:https://zhuanlan.zhihu.com/p/32798104

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值