集成学习——机器学习(周志华)

本文深入探讨集成学习的基本概念,包括Boosting和Bagging两大类方法,以及随机森林的原理。阐述了集成学习如何通过组合多个弱学习器实现性能超越单一模型,并介绍了平均法、投票法和学习法等结合策略。

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

集成学习

目录:

  • 个体和集成
  • Boosting
  • Bagging与随机森林
    • Bagging
    • 随机森林
  • 综合策略
    • 平均法
    • 投票法
    • 学习法
  • 多样性
    • 误差-分歧分解
    • 多样性度量
    • 多样性增强

内容:

个体和集成

集成学习是通过构建并结合多个学习器来完成学习任务,如下图,集成学习通过将多个学习器结合,获得比单一学习器显著优越的泛化性能。集成学习分为同质集成和异质集成,如果个体学习器全是一种算法称为同质集成,如果由不同算法生成,称为异质集成。基学习器是对于同质集成说的。
在这里插入图片描述

  • 要获得好的集成,个体学习器应该“好而不同”。如下图,图1中每个分类器只有66.6%的精度,集成之后精度为100%,图2中集成之后性能没有提高,图3中每个分类器只有33.3%的精度,集成之后变得更糟。
    在这里插入图片描述

  • 目前集成学习方法大致分为两大类。

    • 个体学习器间存在强依赖关系、必须串行生成得序列化方法(Boosting)
    • 个体学习器间不存在强依赖关系、可同时生成得并行化方法(Bagging和随机森林)

Boosting

Boosting的原理图如下
在这里插入图片描述

Boosting族算法最著名得代表是Adaboost。Adaboost算法流程如下,详细流程见集成学习之Adaboost算法原理小结,另外梯度提升树(GBDT)原理小结
在这里插入图片描述

Bagging与随机森林

Bagging

Bagging的原理图如下
在这里插入图片描述

  • Bagging采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些及学习器进行结合。
  • 采样的方法使用自助采样法。
  • 从偏差-方差分解的角度看,Bagging主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效果更明显。

随机森林

随机森林是Bagging的一个扩展变体,是以决策树为及学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入随机属性选择。具体来说,传统决策树在选择划分属性时是在当前结点的属性集合(假定有d 个属性)中选择一个最优属性;而在RF 中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分. 这里的参数k 控制了随机性的引入程度;若令 k = d k = d k=d, 则基决策树的构建与传统决策树相同;若令k = 1 , 则是随机选择一个属性用于划分; 一般情况下,推荐值 k = l o g 2 d k = log_2 d k=log2d

综合策略

平均法

对于回归任务通常使用平均法。

  • 简单平均法
    H ( x ) = 1 T ∑ i = 1 T h i ( x ) H(\bm{x}) = \frac{1}{T}\sum_{i=1}^{T}h_i(\bm{x}) H(x)=T1i=1Thi(x)
  • 加权平均法
    H ( x ) = ∑ i = 1 T ω i h i ( x ) H(\bm{x}) = \sum_{i=1}^{T}\omega_ih_i(\bm{x}) H(x)=i=1Tωihi(x)

投票法
对于分类任务通常使用投票法。

  • 绝对多数投票法
    H ( x ) = { c i , i f ∑ i = 1 T h i j ( x ) > 0.5 ∑ k = 1 N ∑ i = 1 T h i k ( x ) r e j e c t , o t h e r w i s e H(\bm{x})= \begin{cases} c_i, & if \quad \sum_{i=1}^{T}h_i^j(x) > 0.5\sum_{k=1}^N\sum_{i=1}^Th_i^k(\bm{x})\\ reject, & otherwise \end{cases} H(x)={ci,reject,ifi=1Thij(x)>0.5k=1Ni=1Thik(x)otherwise
  • 相对多数投票法
    H ( x ) = c a r g max ⁡ j ∑ i = 1 T h i j ( x ) H(\bm{x}) = c_{arg\max \limits_{j} \sum_{i=1}^{T} h_i^j(\bm{x})} H(x)=cargjmaxi=1Thij(x)
  • 加权投票法
    H ( x ) = c a r g max ⁡ j ∑ i = 1 T h i j ( x ) H(\bm{x}) = c_{arg\max \limits_{j} \sum_{i=1}^{T} h_i^j(\bm{x})} H(x)=cargjmaxi=1Thij(x)

学习法
当训练数据很多时,一种更为强大的结合策略就是“学习法”,即通过一个学习器来进行结合。Stacking是学习法的典型代表。Stacking 先从初始数据集训练出初级学习器,然后"生成"一个新数据集用于训练次级学习器.在这个新数据集中,初级学习器的输出被当作样例输入特,?而初始样本的标记仍被当作样例标记. Stacking 的算法描述如图。
在这里插入图片描述

多样性

误差-分歧分解

多样性度量

多样性增强

### 关于周志华机器学习中的集成学习方法与应用 #### 定义与概述 集成学习是一种通过构建并组合多个基础估计器来改进预测性能的方法。这种方法不仅能够提升模型的准确性,还能增强其稳定性[^1]。 #### 基本策略 集成学习主要分为两大类:序列化方法和并行化方法。前者代表性的有Boosting系列算法,在每一轮迭代中调整样本权重使得后续的学习器更加关注之前分错的数据;后者则以Bagging为代表,通过对原始数据集进行重采样得到若干子集用于训练不同的基学习器,最终将这些独立得出的结果综合起来作为整体输出[^2]。 #### 具体实现方式 - **Bagging (Bootstrap Aggregating)** Bagging通过自助法(bootstrap sampling)创建多样化的训练集合,进而训练出一组弱分类器,并采用投票机制决定最终类别标签。随机森林(Random Forests)便是基于这一原理发展而来的著名算法之一。 - **AdaBoost** AdaBoost即自适应boosting, 是一种典型的加权更新方案下的boosting算法。它赋予那些被前序个体学习器错误分类过的样本更高的权重,从而让新的学习器更专注于难处理的部分。随着轮次增加,各成员贡献逐渐累积形成强分类器[^3]. ```python from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier # 使用RandomForest作为bagging的例子 rf = RandomForestClassifier(n_estimators=100) # 使用AdaBoost作为boosting的例子 adaboost = AdaBoostClassifier(n_estimators=50) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) rf.fit(X_train, y_train) adaboost.fit(X_train, y_train) ``` #### 应用场景 集成学习广泛应用于各类监督式学习任务当中,特别是在解决复杂模式识别问题上表现出色,比如图像识别、自然语言处理等领域内的多分类或多标记分类任务。此外,在异常检测方面也有着不俗的表现,例如金融欺诈预警系统等实际案例中均可见到该技术的身影[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值