Bagging(Bootstrap aggregating)、随机森林(random forests)、AdaBoost

本文深入介绍了Bagging、随机森林和AdaBoost算法,通过scikit-learn库在Wine数据集上的应用进行比较。Bagging通过集成多个决策树改善模型稳定性,随机森林通过特征子集选择进一步降低过拟合风险,而AdaBoost则通过连续训练弱分类器并调整权重来提升整体性能。三种方法各有优缺点,适合不同场景的应用。
摘要由CSDN通过智能技术生成

引言

在这篇文章中,我会详细地介绍Bagging、随机森林和AdaBoost算法的实现,并比较它们之间的优缺点,并用scikit-learn分别实现了这3种算法来拟合Wine数据集。全篇文章伴随着实例,由浅入深,看过这篇文章以后,相信大家一定对ensemble的这些方法有了很清晰地了解。

Bagging

bagging能提升机器学习算法的稳定性和准确性,它可以减少模型的方差从而避免overfitting。它通常应用在决策树方法中,其实它可以应用到任何其它机器学习算法中。如果大家对决策树的算法不太理解,请大家参考这篇文章:决策树ID3、C4.5、C5.0以及CART算法之间的比较,在下面的例子中,都会涉及到决策树,希望大家能理解一下这个算法。

下面,我介绍一下bagging技术的过程:

假设我有一个大小为 n 的训练集D,bagging会从D中有放回的均匀地抽样,假设我用bagging生成了 mDiDij 。由于我有放回的进行抽样,那么在 Di 中的样本有可能是重复的。如果 j=n ,这种取样称为bootstrap取样。现在,我们可以用上面的 m 个训练集来拟合 m 个模型,然后结合这些模型进行预测。对于回归问题来说,我们平均这些模型的输出;对于分类问题来说,我们进行投票(voting)。bagging可以改良不稳定算法的性能,比如:人工神经网络、CART等等。下面,我举一个具体的例子说明一下bagging。

假设有一个训练集 D 的大小为7,我想用bagging生成3个新的训练集 Di,Di7 ,结果如下表:

样本索引 baggingD1 baggingD2 baggingD3
1 2 7 3
2 2 3 4
3 1 2 3
4 3 1 3
5 5 1 6
6 2 5 1
7 6 4 1

那么现在我就可以用上面生成的3个新训练集来拟合模型了。

决策树是一个很流行的机器学习算法。这个算法的性能在特征值的缩放和各种转换的情况下依然保持不变,即使在包含不相关特征的前提下,它依然很健壮。然而,决策树很容易过拟合训练集。它有低的偏差,但是有很高的方差,因此它的准确性不怎么好。

bagging是早期的集成方法(ensemble method),它可以重复地构建多个决策树基于有放回地重新采样,然后集成这些决策树模型进行投票,从而得到更好地准确性。稍后,我会介绍决策森林算法,它可以比bagging更好地解决决策树overfitting的问题。这些方法虽然会增加一些模型的偏差和丢失一些可解释性,但是它们通常会使模型具有更好地性能。

下面,我用scikit-learn实现bagging来拟合Wine数据集来实战一下bagging方法。这是数据集的介绍:Wine数据集

<
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值