集成学习(二)

集成学习分为2类:
(1)个体学习器间存在强大依赖关系、必须串行生成的序列化方法,代表算法:Boosting;
(2)个体学习器间不存在依赖关系、可同时生成的并行化方法,代表算法Bagging和“随机森林”RF。
1.Boosting是一族可以将若学习器提升为强学习器的算法,代表算法为AdaBoost
该算法的工作机制:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器。如此反复进行,直至学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。
2.Bagging是并行式集成学习代表方法。
基于“自助采样法”(bootstrap sampling)。自助采样法机制:给定包含m个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下一次采样时该样本还会被采到。这样,经过m次样本采集,我们得到包含m个样本的采样集。采样集中,有的样本出现过很多次,有的没有出现过。Bagging机制:我们采样出T个含m个样本的采样集。然后基于每个采样集训练出一个学习器,再将学习器进行结合。对分类任务使用投票法,对回归任务采用平均值法。
3.随机森林RF:
以决策树为基学习器构建Bagging集成,进一步在决策树的训练过程中引入随机属性选择。传统决策树在选择划分属性的时候是在当前节点所有的属性集合中选出一个左右属性进行划分;而在RF中,对基决策树的每个节点,先从该节点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。这里的参数k控制了随机性的引入程度。如果k=d(全部属性集),则基决策树的构建=传统决策树构建。如果k=1,基决策树每个节点随机选择一个属性进行划分。一般推荐k=log2d。

AdaBoost VS Bagging:

AdaBoost只适用于二分类任务,Bagging适用于多分类、回归等任务。

Bagging VS 随机森林:

Bagging中基学习器的“多样性”通过样本扰动(对初始训练集采样)而获得;随机森林中基学习器的“多样性”不仅来自于样本扰动,而且还可以通过随机属性扰动来获得。这使得随机森立的泛化性能可通过个体学习器之间差异程度的增加而进一步提升。随机森林的使其性能很差,但随着学习器的增加,性能很快就会变好,且强于Bagging。

随机森林
随机森林是由许多决策树组成的模型。 这个模型不是简单地平均树的预测(我们可以称之为“森林”),而是使用两个关键概念,使其名称为随机:

  • 在构建树时对训练数据点进行随机抽样
  • 分割节点时考虑的随机特征子集

Bagging和Boosting的概念与区别
随机森林属于集成学习(Ensemble Learning)中的bagging算法。在集成学习中,主要分为bagging算法和boosting算法。

Bagging(套袋法)
bagging的算法过程如下:

从原始样本集中使用Bootstraping方法(自助法,是一种有放回的抽样方法)随机抽取n个训练样本,共进行k轮抽取,得到k个训练集。(k个训练集之间相互独立,元素可以有重复)

对于k个训练集,我们训练k个模型(这k个模型可以根据具体问题而定,比如决策树,knn等)

对于分类问题:由投票表决产生分类结果;对于回归问题:由k个模型预测结果的均值作为最后预测结果。(所有模型的重要性相同)

Boosting(提升法)
boosting的算法过程如下:

对于训练集中的每个样本建立权值wi,表示对每个样本的关注度。当某个样本被误分类的概率很高时,需要加大对该样本的权值。
进行迭代的过程中,每一步迭代都是一个弱分类器。我们需要用某种策略将其组合,作为最终模型。(例如AdaBoost给每个弱分类器一个权值,将其线性组合最为最终分类器。误差越小的弱分类器,权值越大)
Bagging,Boosting的主要区别
样本选择上:Bagging采用的是Bootstrap随机有放回抽样;而Boosting每一轮的训练集是不变的,改变的只是每一个样本的权重。
样本权重:Bagging使用的是均匀取样,每个样本权重相等;Boosting根据错误率调整样本权重,错误率越大的样本权重越大。
预测函数:Bagging所有的预测函数的权重相等;Boosting中误差越小的预测函数其权重越大。
并行计算:Bagging各个预测函数可以并行生成;Boosting各个预测函数必须按顺序迭代生成。

简单来说,随机森林就是对决策树的集成,但有两点不同:

(1)采样的差异性:从含m个样本的数据集中有放回的采样,得到含m个样本的采样集,用于训练。这样能保证每个决策树的训练样本不完全一样。

(2)特征选取的差异性:每个决策树的n个分类特征是在所有特征中随机选择的(n是一个需要我们自己调整的参数)

决策树相当于一个大师,通过自己在数据集中学到的知识对于新的数据进行分类。但是俗话说得好,一个诸葛亮,玩不过三个臭皮匠。随机森林就是希望构建多个臭皮匠,希望最终的分类效果能够超过单个大师的一种算法。
那随机森林具体如何构建呢?有两个方面:数据的随机性选取,以及待选特征的随机选取。

贝叶斯算法

在scikit-learn中,一共有3个朴素贝叶斯的分类算法类。分别是GaussianNB,MultinomialNB和BernoulliNB。其中GaussianNB就是先验为高斯分布的朴素贝叶斯,MultinomialNB就是先验为多项式分布的朴素贝叶斯,而BernoulliNB就是先验为伯努利分布的朴素贝叶斯。

高斯朴素贝叶斯
GaussianNB 实现了运用于分类的高斯朴素贝叶斯算法。特征的可能性(即概率)假设为高斯分布:

在这里插入图片描述

参数σyσy 和 μyμy使用最大似然法估计。

多项分布朴素贝叶斯
在这里插入图片描述

伯努利朴素贝叶斯
BernoulliNB 实现了用于多重伯努利分布数据的朴素贝叶斯训练和分类算法,即有多个特征,但每个特征 都假设是一个二元 (Bernoulli, boolean) 变量。 因此,这类算法要求样本以二元值特征向量表示;如果样本含有其他类型的数据, 一个 BernoulliNB 实例会将其二值化(取决于 binarize 参数)。

伯努利朴素贝叶斯的决策规则基于

P(xi∣y)=P(i∣y)xi+(1−P(i∣y))(1−xi)
P(xi∣y)=P(i∣y)xi+(1−P(i∣y))(1−xi)

与多项分布朴素贝叶斯的规则不同 伯努利朴素贝叶斯明确地惩罚类 y 中没有出现作为预测因子的特征 i ,而多项分布分布朴素贝叶斯只是简单地忽略没出现的特征。

在文本分类的例子中,词频向量(word occurrence vectors)(而非词数向量(word count vectors))可能用于训练和用于这个分类器。 BernoulliNB 可能在一些数据集上可能表现得更好,特别是那些更短的文档。 如果时间允许,建议对两个模型都进行评估。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值