4-集成学习
与树学习有很多联系
1. 原理
三个臭皮匠,顶个诸葛亮
- 是一个预测模型的元方法
- 不是一个具体的学习算法
- 思想:单个学习器无法取得比较好的效果,可以使用多个不同的学习器进行集成
1.1. 特点(分类)
- 多个分类器集成在一起,以提高分类准确率
- 由训练数据构筑基分类器,然后根据预测结果进行投票
- 集成学习本身不是一种分类器,而是分类器结合方法
- 通常集成分类器性能回优于单个分类器(并不是绝对的)
例子:以多数投票法为结合方法,每个二分类器分类精度为
准确性和多样性之间的矛盾
1.2. Bias-Variance tradeoff
- Bias:学习结果的期望与真实规律的差距
- $Bias = E\hat{f}-f(x)$
- Variance:学习结果自身的不稳定性
- Total Error以均方误差为例
- 模型的错误由三部分构成
例子:深度学习模型更复杂,比起KNN、SVM更能拟合训练数据,但Random Error也随之增加。
1.3. 核心问题
- 序列集成(基学习器)法
- 利用基学习器之间的依赖关系,一次生成
- 减小偏差bias
- 并行集成(基学习器)法
- 利用基学习器之间的独立关系,并行学习
- 减小方差variance
1.4. 结合策略
- 平均法(回归)
- 简单平均
- 加权平均
- 投票法(分类)
- 绝对多数
- 相对多俗
- 加权投票
1.5. 多样性策略(学习基学习器)
- 数据层面
- 输入样本扰动,构建基学习器
- 输出样本扰动
- 属性层面
- 随机选择部分属性
- 参数层面
- 算法模型参数的扰动
2. Bagging和随机森林
- Bagging (Bootstrap aggregating)基本原理
- 自举/自助法,数据层面的扰动
- 有放回随机采样方法。统计上的目的是得到统计量分布以及置信区间
通过有放回采样,拆分样本空间,是的训练出的基学习器存在差异
2.1. 优点
- 并行式学习,降低分类器方差,改善泛化
- 其性能依赖于基分类器的稳定性。如果基分类器稳定,则其误差主要由基分类器的bias决定
- 由于采样概率相同bagging方法并不侧重于任何实例
- 可以并行化处理,提高效率
2.2. 缺点
- 当基学习器具有高Bias,集成之后也具有高Bias
- 集成之后会缺乏可解释性
- 依赖数据集,计算可能会比较昂贵
2.3. 代表性算法:随机森林
N代表训练样例的个数,M表示特征数目;输入特征数目m,用于确定决策树上一个节点的决策结果;其中m应远小于M。
- 从N个训练用例中以有放回抽样的方式,取样N次,形成一个训练集即bagging取样,并用未用到的样例做预测,估计其误差
- 对于每一个节点,随机选取m个特征(通常为M的均方根
),根据这m个特征,计算最佳的分裂方式 - 每棵树都会完整成长而不会剪枝,这又可能在建成一颗正常树状分类器后被采用
- 重复以上过程充分多次,以产生足够多的随机树
2.3.1. 特点
- 差异性:每棵树不同,使用的特征也不同
- 缓解维度灾难:因为每棵树都没有使用全部的特征,特征空间被缩小了,计算代价减小
- 可并行化:因为每棵树都使用不同特征、数据,可以用并行化方法加速
- 训练-测试划分:训练和测试的划分不是必须的,因为构建每棵树时,因为总有30%的数据没有采样
- 30%可以算出来
- 稳定性:通过多数投票或者平均,结果较为稳定
3. Boosting和AdaBoost
3.1. 提示Boosting
- PAC学习理论/概率近似正确理论
- 强可学习(Strongly learnable):在PAC框架中,一个概念/类,如果存在一个多项式的学习算法能够学习他,并且正确率高,那么称这个概念为强可学习
- 强可学习和若可学习时等价的;
- 一个概念时强可学习的充要条件时这个概念是弱可学习的
- 通过提升方法可以将弱学习器转化为强学习器
每一次都更关注上一轮预测错误的样本,是序列集成的方法
3.2. Adaptive Boost
- 思想:从弱学习算法开始,改变训练数据的概率分布(权值分布),反复学习,得到一系列弱分类器然后进行组合,构成一个强分类器
- 策略:
- 权值分布:提高那些被前一轮弱分类器错误分类样本的权值,降低那些被正确分类样本的权值
以分类问题为例:
- 分类器的误差率和权重系数:
- 样本的权重和集合策略
sign表决加权
3.3. AdaBoost算法解释
加法模型(不同模型加权求和)
目标函数:
优化复杂
3.3.1. 前向分布算法
- 前向分布算法:学习目标函数是加法模型,如果能从前往后,每一步只学习一个基函数及其系数,逐步逼近总目标函数,可以降低优化复杂度。
前向分布算法与AdaBoost
4. Boosting和GBDT、XGBoost
4.1. Boosting Tree
- Boosting方法主要采用加法模型,即基函数的线性组合,与前向分布算法
- 以决策树为基函数的提升方法为决策树boosting tree
在回归树中:
4.1.1. 计算损失
- 使用平方误差损失函数
推广到一般的损失:第m轮的第i个样本的负梯度:
负梯度作为残差近似值
4.2. 梯度提升树GBDT
《The Elements of Statistical Learning》
4.3. XGBoost
5. Stacking学习
对初始数据集训练初始学习器,生成一个新的数据集(元学习器)。然后用新的数据集训练次级学习器。
- 标题: 4-集成学习
- 作者: Charlie
- 创建于 : 2023-10-17 18:10:00
- 更新于 : 2024-07-05 12:55:04
- 链接: https://chillcharlie357.github.io/posts/9ebce654/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论