《机器学习(周志华)》Chapter8 集成学习

    想了解更多的同学强烈建议阅读下参考网址。

    


    集成学习大致可分为两类,第一类的代表是Boosting,个体学习器间存在强依赖关系、必须串行生成的序列化方法;第二类的代表是Bagging和“随机森林”,个体学习器间不存在强依赖关系、可同时生成的并行方法。




1、bagging:从训练集从进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果:


2、boosting:训练过程为阶梯状,基模型按次序一一进行训练(实现上可以做到并行),基模型的训练集按照某种策略每次都进行一定的转化。对所有基模型预测的结果进行线性综合产生最终的预测结果:


3、stacking:将训练好的所有基模型对训练基进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,最后基于新的训练集进行训练。同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后再对测试集进行预测:



基础分类器结果整合的主要方式:

1、对于回归预测(数值预测),平均法:

  • 简单平均法:\[H(x) = \frac{1}{T}\sum\limits_{i = 1}^T {\mathop h\nolimits_i } (x)\]
  • 加权平均法:\[H(X) = \sum\limits_{i = 1}^T {\mathop {\mathop w\nolimits_i h}\nolimits_i (x)} \]

其中Wi是个体学习器hi的权重,通常要求\(\mathop w\nolimits_i  \ge 0\),\(\sum\limits_{i = 1}^T {\mathop {\mathop w\nolimits_i }\nolimits_{} }  = 1\)

2、对于分类(类别预测),投票法:

  • 绝对多数套票法:(即若某标记得票过半数,则预测为该标记;否则拒绝预测)

  • 相对多数投票法:(即预测为得票最多的标记,若同时有多个标记获得最高票,则从中随机选取一个)

  • 加权投票法:(与加权平均法类似)

其中Wi是个体学习器hi的权重,通常要求\(\mathop w\nolimits_i  \ge 0\),\(\sum\limits_{i = 1}^T {\mathop {\mathop w\nolimits_i }\nolimits_{} }  = 1\)


AdaBoost算法推导:

AdaBoost算法是Boosting族算法最著名的代表,推导方式有多种,基于“加性模型”比较容易理解,即基学习器的线性组合,\[H(x) = \sum\limits_{t = 1}^T {\mathop \alpha \nolimits_t } \mathop h\nolimits_t (x)\]

采用最小化指数损失函数(为什么采用指数损失函数可参考给出的参考网址):\[\mathop \ell \nolimits_{\exp } (H|D) = \mathop E\nolimits_{x \sim D} [\mathop e\nolimits^{ - f(x)H(x)} ]\]

若H(x)能令指数函数最小化,则考虑上式对H(x)求偏导等于零可解出H(x):\[\frac{{\partial \mathop \ell \nolimits_{\exp } (H|D)}}{{\partial H(x)}} = \mathop e\nolimits^{ - H(x)} P(f(x) = 1|x) + \mathop e\nolimits^{ - H(x)} P(f(x) =  - 1|x)\]

\[H(x) = \frac{1}{2}\ln \frac{{P(f(x) = 1|x)}}{{P(f(x) =  - 1|x)}}\]

因此最终的集成结果为:


AdaBoost算法先选取一个基分类器,然后再迭代产生ht和αt,当基分类器ht基于分布Dt产生后,该基分类器的权重αt应使得αtht最小化指数损失函数:




等于零解得:







参考网址:

http://www.cnblogs.com/jasonfreak/p/5657196.html

http://www.xtecher.com/Xfeature/view?aid=7974



### 关于周志华机器学习中的集成学习方法与应用 #### 定义与概述 集成学习是一种通过构建并组合多个基础估计器来改进预测性能的方法。这种方法不仅能够提升模型的准确性,还能增强其稳定性[^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、付费专栏及课程。

余额充值