机器学习入门|集成学习(boosting,bagging)

简介: 集成学习,顾名思义,把多个学习算法结合起来,以达到比单一学习算法更优秀,泛化性能更好的学习算法。

集成学习,顾名思义,把多个学习算法结合起来,以达到比单一学习算法更优秀,泛化性能更好的学习算法。

不过,把好的学习器和不好的结合在一起,按常理来说会产生一个不好不坏的,为了使结合起来的算法比单一算法更优秀,就需要单一算法是“好而不同”,也就是不同的算法需要有多样性,同时又要有一定的准确性,这样结合起来后,才能达到互补的状态。但同时,准确性与多样性不能兼具,调整这个度非常重要。

boosting

boosting的本质是对学习器之前预测错的样本给予更多关注(即权重),形式是每次改变权重都生成一个新学习器(基学习器),直到基学习器达到指定数量T。最终得到的就是由T个学习器加权结合的集成算法。

那么要解决的问题就是:

  1. 在每一轮如何改变训练数据的权值或概率分布?
  2. 通过什么方式来组合基学习器?

用boosting中代表的adaboost举例:

  1. 采集m个样本,初始化第一个基学习器中每个样本权重为1m
  2. 用给定算法训练样本
  3. 计算误差,超过0.5误差率的学习器就舍弃掉(因为小于0.5准确率的学习器结合只会变得更差),误差率小于0.5的更新权重参数αt=12ln(1εtεt)
  4. 更新样本权重:预测正确的样本权重更新为exp(αt),预测错误的与样本权值更新为exp(αt),并对更新之后的样本权值规范化(使权值和为1,确保样本是一个概率分布)。
  5. 重复2-4T次,或者直到收集到T个基学习器(被抛弃掉的学习器可以进行重新采样)
  6. αt为每个基学习器的权重参数输出加法结合的集成学习器

boosting每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。boosting是一种串行式学习方法,因为后一个模型参数受前一个的影响

bagging

与boosing相对,是一种并行式学习方法,是有放回的拿取数据集中的样本m个,这样形成的基学习器之间没有先后关系。

bagging的算法过程:

  1. 采集样本
  2. 训练样本
  3. 重复T次得到T个模型
  4. 对于分类问题,通过投票的方式,票数最多的就是分类结果;对于回归问题,通过取均值的方式得出结果

由于bagging采样时会有一部分(36.8%)的样本没有被采集到,这些样本还可以用作验证集来验证模型的性能,并优化算法。例如当训练时使用的学习算法是决策树时,可以用来剪枝。

随机森林:引入了bagging的随机性的决策树变体。

随机森林从原本决策树的节点中随机选择一个包含k个类别,1kd(d为节点所有样本包含的类别数)的子集,用这个子集来进行决策树划分。一般k=log2d

目录
打赏
0
0
0
0
1243
分享
相关文章
云上玩转DeepSeek系列之三:PAI-RAG集成联网搜索,构建企业级智能助手
本文将为您带来“基于 PAI-RAG 构建 DeepSeek 联网搜索+企业级知识库助手服务”解决方案,PAI-RAG 提供全面的生态能力,支持一键部署至企业微信、微信公众号、钉钉群聊机器人等,助力打造多场景的AI助理,全面提升业务效率与用户体验。
深入了解机器学习:从入门到应用
【10月更文挑战第6天】深入了解机器学习:从入门到应用
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
254 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
99 2
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
60 1
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
69 1
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
85 0
机器学习基础:使用Python和Scikit-learn入门
本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型选择与训练、模型评估及交叉验证等关键步骤。通过本文,初学者可以快速上手并掌握机器学习的基本技能。
163 2

热门文章

最新文章