热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

集成学习①——集成学习原理、分类和结合方法

集成学习系列目录:集成学习②——Adaboost算法原理及python实现集成学习③——Sklearn-Adaboost库参数及实战一、集成学习的原理集成学习就是

集成学习系列目录:
集成学习②——Adaboost算法原理及python实现
集成学习③——Sklearn-Adaboost库参数及实战

一、集成学习的原理

集成学习就是"博采众长",将一组弱学习器通过一定方法给合在一起得到强学习器,这个强学习器的泛化能力相对任何一个弱学习器都要好,甚至还有起到三个臭皮匠,赛过诸葛亮的效果

这里有2个问题,有哪些弱学习器可以用?怎么结合?

弱学习器:以分类来说,分类效果要优于随机分类,也就是准确率高于50%的学习器,且计算速度快,通常以决策树神经网络为主,一组弱学习器可以是一样的,也可以不一样,目前常用的算法还是以同样的为主。

二、集成学习的分类

如何结合:根据弱学习器之间是否存在依赖性,分为Boosting和Bagging。
Boosting:使增长,顾名思义,后训练的学习器会比前一个要更强,代表算法有 Adaboost和Gradient Boosting Tree(GBDT);
Bagging:袋子,源于从袋子里有放回性取样,是说各学习器基于随机样本独立训练,后训练的学习器并比一定比前一个好,代表算法是随机森林

1、Boosting算法原理
Boosting算法可以通过这一张来解释,图来自于机器学习大神 @ 刘健平
在这里插入图片描述
从图上可看出,Boosting算法主要有以下几个步骤:

① 先赋予所有样本相同的权重,比如10个样本,每个样本都是1/10
② 先用一个弱分类器训练后,得到误差率
③ 通过误差率更新样本的权重系数
④ 迭代第二步和第三步,直到误差率达到要求的范围
⑤ 通过一定的方法将弱分类器结合,得到最终分类器

Adaboost是将错误分类的样本权重之和作为误差率,基于误差率降低分类正确样本的仅重,提升分类错误样本的权重,同时计算出此弱学习器最终学习器中的权重,误差率越低,权重越高

2、Bagging算法原理
在这里插入图片描述
从图上可看出,Bagging算法原理更为简单明了,主要有以下几个步骤:

① 从训练集中随机抽样,得到m个样本
② 基于m个样本训练得到一个弱学习器
③ 重复①和②,直到弱学习器数量达到设定要求
④再通过一定策略将弱学习器结合起来,得到最终的分类器

随机采用使得的是自助采样,即有放回式地采样,因此弱分类器之间的训练样本会有重复的一部分,也会有一部分样本始终没有被抽到。

随机森林在样本随机的基础上,还对每棵树的特征选择上也做了随机,进一步提升了模型的泛化能力。

三、集成学习的组合方法

① 投票法
投票法是用于分类问题,由多个学习器投票,哪个类别最多就是哪个。所谓的少数服从多数,如果出现数量相同,那就在相同中随机选择一个;
升级版:
绝对多数投票法,在相对多数投票结果基础上,还要过半才算有效;
加权投票法:赋予不同学习器不同的权重,再加权求和

② 平均法
平均法用于回归预测问题,对学习器的结果求算法平均,得到最终的预测结果
升级版:加权求和

③ stack法
上2个方法都是对弱学习器的结果做平均或者投票,相对比较简单,但是可能学习误差较大,于是就有了学习法这种方法,代表方法是stacking。
当使用stacking的结合策略时, 我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。

在这种情况下,我们将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。


推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 信用评分卡的Python实现与评估
    本文介绍如何使用Python构建和评估信用评分卡模型,涵盖数据预处理、模型训练及验证指标选择。附带详细代码示例和视频教程链接。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 深入浅出TensorFlow数据读写机制
    本文详细介绍TensorFlow中的数据读写操作,包括TFRecord文件的创建与读取,以及数据集(dataset)的相关概念和使用方法。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 本文介绍如何使用 Python 提取和替换 .docx 文件中的图片。.docx 文件本质上是压缩文件,通过解压可以访问其中的图片资源。此外,我们还将探讨使用第三方库 docx 的方法来简化这一过程。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 智能车间调度研究进展
    本文综述了基于强化学习的智能车间调度策略,探讨了车间调度问题在资源有限条件下的优化方法。通过数学规划、智能算法和强化学习等手段,解决了作业车间、流水车间和加工车间中的静态与动态调度挑战。重点讨论了不同场景下的求解方法及其应用前景。 ... [详细]
  • 本文旨在探讨如何利用决策树算法实现对男女性别的分类。通过引入信息熵和信息增益的概念,结合具体的数据集,详细介绍了决策树的构建过程,并展示了其在实际应用中的效果。 ... [详细]
author-avatar
shinesmini
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有