集成学习方法

本文介绍了集成学习的基本思想,特别是两种主要方法:Bagging和AdaBoost。Bagging通过有放回的随机抽样创建多个模型,并对分类或回归结果进行投票或平均。而AdaBoost则通过迭代调整错误样本的权重,让后续模型更关注误分类样本,最终结合各模型权重得出结果。在sklearn库中,AdaBoost也得到了实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 什么是集成学习方法

集成学习方法是指组合多个模型,以获得更好的效果,即将多个弱学习器组合成一个强学习器,使集成的模型具有更强的泛化能力。
集成学习主要有两种方法:Bagging和Boosting。

2. Bagging

Bagging方法是从原始的数据集中进行有放回的随机抽样,每次训练从原始样本中有放回的随机抽取n个样本,因为是有放回,所以某些训练样本在某次的训练集中可能出现多次或者根本不出现。这样重复m次就会训练出m个模型,如果是分类问题,则m个模型采用投票方法,投票最多的为最终分类;如果是回归问题,则对m个模型的结果取平均值。

3. AdaBoost

AdaBoost算法对于分类问题的步骤:

  1. 初始化时对每个训练样本赋予相等的权重
  2. 每次训练后,对预测错误的训练样本赋予更大的权重
  3. 训练n次后得到n个训练模型,每个模型的预测结果有不同的权重,准确率高的模型的预测结果权重较大
  4. n个模型的预测结果(Y∈\in{-1,1})进行加权求和得到最终结果

AdaBoost涉及到的两个权重:

  • 预测错误的训练样本的权重更新: 预测正确样本的数量预测错误样本的数量\frac{预测正确样本的数量}{预测错误样本的数量}
    例如初始权重都为1,总样本数为15,第一次训练后,预测错误的样本数量为5,那么预测错误的样本的权重更新为 15−55\frac{15-5}{5}5155=2,这样预测正确样本的权重和 = 预测错误样本的权重和。
  • 模型的权重:ln⁡(accuracy1−accuracy)\ln(\frac{accuracy}{1-accuracy})ln(1accuracyaccuracy) =ln⁡(预测正确样本的数量预测错误样本的数量)\ln(\frac{预测正确样本的数量}{预测错误样本的数量})ln()
    如上述第一次训练后,预测错误的样本数量为5,那么该模型的权重为ln2。

4. sklearn中的Adaboost

from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier
'''
base_estimator: 弱学习器使用的模型
n_estimators: 使用的弱学习器的最大数量
'''
model = AdaBoostClassifier(base_estimator = DecisionTreeClassifier(max_depth=2), 
						   n_estimators = 4)
model.fit(x_train, y_train)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值