Python3入门机器学习

11.2 Bagging和Pasting

集成学习就是集成多个算法,让不同的算法对同一组数据进行分析得到结果,最终投票来看哪个结果是大家公认的更好的、更正确的结果。但是这样进行集成学习还是有问题,最大的问题就是:虽然有很多机器学习方法,但是从投票的角度看,仍然不够多。如果我们想保证有一个好的结果,我们希望有更多的投票者才能保证结果可信,类似于概率论里的大数定理。

所以,我们要创建更多的子模型,集成更多子模型的意见。更加重要的是子模型之间不能一致,也就是说子模型之间要有差异性。

怎样创建更多的子模型,并且保证子模型之间具有差异性呢?一个简单的办法就是每个子模型只看样本数据的一部分。例如:一共有500个样本数据,而每个子模型只看100个样本数据。

每个子模型不需要太高的准确率,这也是集成学习的威力。例如:
在这里插入图片描述
在这里插入图片描述

可以看到,随着子模型数量的增加,相应的集成学习的整体准确率也是在不断上升的。

如何创建子模型之间具有差异性呢?
由于每个子模型只看样本数据的一部分,所以取样有两种方式:放回取样和不放回取样。放回取样:Bagging;不放回取样:Pasting。Bagging更常用。统计学中,放回取样为bootstrap。

通常在集成学习中,我们要集成成百上千个子模型的话,首选是决策树模型。原因在于决策树这种非参数的学习方式更能产生出差异相对比较大的这种子模型,它里面有很多的参数、很多的剪枝方式等都能帮助我们使得我们集成的每一个子模型更加的有差异,或者说更加的随机。而集成学习喜欢我们集成的每一个子模型要有区别。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐