| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 集成学习-Task4 Boosting -> 正文阅读 |
|
[人工智能]集成学习-Task4 Boosting |
1. Bagging与Boosting的联系和区别? ? ? ? Bagging与Boosting都是集成学习模型,它们都需要将多个不同的模型整合到一起进行预测。 ? ? ? ? Bagging思想的本质是:通过bootstrap的方式对全样本数据集做有放回抽样得到多个子集,在不同的子集上训练不同的弱分类器,最后通过投票的方式决定最终预测结果。这些弱分类器都倾向于过拟合并且Bagging会通过降低方差的方式减少预测误差。 ? ? ? ? Boosting则是采取另一种思想:使用全样本数据集训练一系列弱分类器,然后将这些弱分类器组合形成一个预测性能更好的分类器。这些弱分类器都倾向于欠拟合并且Boosting会通过降低偏差的方式减少预测误差。 2. Boosting要解决的问题? ? ? ? Boosting会从弱可学习算法出发,将其提升为强可学习算法。大多数的Boosting方法都是通过改变训练数据集中不同数据的概率分布来实现提升的。具体来说,Boosting在每一轮的学习中会改变数据集中不同样本的权值。并且在最后将各个弱分类器组合起来。 ? ? ? ? 对于Boosting来说,有两个问题需要解决: ????????1. 如何改变数据的概率分布; ????????2. 如何将各个弱分类器组合起来。 3. Adaboost——最经典的Boosting算法3.1 Adaboost原理? ? ? ? 对于Adaboost而言,解决这两个问题的方法是: ? ? ? ? 1.?上一轮分类错误的样本增加权重,分类正确的样本减少权重; ? ? ? ? 2.?加权投票表决。表现好的分类器增加权重,表现差的分类器减少权重。 ? ? ? ? 下面我们具体介绍Adaboost算法。假设给定一个二分类数据集 其中为特征空间中的特征向量,为数据对应的标签且取值范围为{-1, +1}。记最终的分类器为,则 ????????(1)用均匀分布对数据权重做初始化,即权重分布为 ? ? ? ? (2)对于, ? ? ? ? (2.1)使用权重分布训练基分类器 ? ? ? ? (2.2)计算在训练集上的分类误差 ? ? ? ? (2.3)利用分类误差计算分类器的权重 ? ? ? ? (2.4)利用分类器权重更新训练数据的权重分布 ? ? ? ? (3)构建基分类器的线性组合,则最终的分类器为 ? ? ? ? 根据(2.3)分类误差越小,基分类器的权重越大。根据(2.4)被正确分类的样本权重会减小,而被错误分类的样本权重会增加。 3.2?在sklearn中使用Adaboost
? ? ? ? 输出结果如下:?
3.3?对实例结果做进一步的分析? ? ? ? 我们从结果中可以发现:单层决策树似乎对训练数据欠拟合,而Adaboost模型正确地预测了训练数据的所有分类标签。同时,与单层决策树相比,Adaboost的测试性能也略有提高。我们可以通过画图的方式来解释出现这种现象的原因。
? ? ? ? ?我们可以发现Adaboost的决策边界比单层决策树的决策边界要复杂的多。换句话说,Adaboost试图用增加模型复杂度从而降低偏差的方式去减小总误差。但是这一过程引入了方差,可能出现过拟合,因此在训练集和测试集的性能上存在较大的差距。 ????????与单个分类器相比,Adaboost等Boosting方法增加了计算的复杂度,在实践中需要仔细思考是否愿意为预测性能的提升而增加计算成本。同时,Boosting无法做到现在流行的并行计算的方式,因为每一步迭代都要基于上一部的基分类器。 ?3.4?由Adaboost引出的前向分步算法? ? ? ? 前向分步算法是比Adaboost更高级的框架。这个框架不但可以解决分类问题,还可以解决回归问题。它的算法流程可以与Adaboost的做类比。 ? ? ? ? 我们参考Adaboost,将最终的分类器表示为 其中,是基分类器,为基分类器参数,为基分类器权重。假设模型最终的损失函数为,则学习就等价于 这个最优化问题很难用一般的凸优化知识解决,因为这里有很多的和需要我们一次性求出。但是前向分步算法可以把这个类型的问题做分解。由于这个模型是一个加法模型,因此可以从前往后,在每一步只优化一个基分类器及其系数。具体来说,每一步只需要优化 就可以。 ? ? ? ? 更具体来说,我们给定 ?其中为特征空间中的特征向量,为数据对应的标签且取值范围为{-1, +1}。记最终的分类器为,损失函数为,基分类器集合为,则 ? ? ? ? (1)初始化 ? ? ? ? (2)对, ? ? ? ? (2.1)极小化损失函数 ?得到参数和 ? ? ? ? (2.2)更新 ? ? ? ? (3)不断重复上述过程直到得到最后的模型 ? ? ? ? ?这样,前向分步算法就将一次求解所有和的问题分解成了逐个求解的问题。 4.?从回归问题的集成学习到梯度提升决策树(GBDT)4.1?用决策树和Boosting来解决回归问题 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 18:41:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |