最近在打算法竞赛的时候用到了集成算法,效果还不错,索性就总结了一篇集成算法的文章,希望能帮到正在转行的数据分析师们。

集成算法核心思想

集成算法的核心思想是通过构建并结合多个学习器来完成学习任务,也就是通俗意义上的三个“臭皮匠”顶个“诸葛亮”。

关注问题:1、如何产生一组“个体学习器”?

2、如何利用某种策略将“个体学习器”结合起来?

集成算法种类

根据个体学习器的生成方式,最常用的集成算法可以分为两大类,即个体学习器间存在强依赖关系(多项式学习算法)必须串行生成的序列化算法【Boosting方法,代表算法:Adaboost算法Boosting tree】,以及个体学习器之间不存在强依赖关系,通过并行生成的集成算法【bagging方法,代表算法:随机森林(Randon Forest)

Bagging

1、算法原理:

  • 从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)
  • 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
  • 对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

2、采样策略

自助采样法,有放回抽样n次得到样本量为n的训练样本集用于每次基分类器的训练

3、基学习器组合策略

对于分类问题,基分类器采用投票法得到结果,对于回归问题,通过对基分类器的预测值取平均值得到结果。

4、算法步骤:

4、随机森林

4.1算法原理

以决策树作为基学习器构建bagging集成,并在决策树的训练过程中引入随机属性选择。

4.2随机性:

随机森林的随机性体现在样本的随机性和特征选择的随机性

Boosting

1、算法原理:

通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提升分类性能。大多数的提升方法都是改变训练数据的概率分布(权值),针对不同的训练数据分布调用弱分类算法学习一系列弱分类器。

2、Adaboost

2.1算法原理:

  • 提高前一轮弱分类器错误分类样本的权值,降低正确分类样本的权值
  • 弱分类器的组合,采用加权多数表决的方法,具体地,加大分类误差小的弱分类器的权值,使其在表决中起大作用,减小分类误差大的弱分类器权值

2.2算法步骤:

2.3机器学习视角的解释:

ModelSet:加法模型,基学习模型的线性组合

LossFunction:指数损失函数【分类问题】

优化策略:前向分步算法

3、提升树

3.1核心思想

以分类树或回归树为基本分类器的提升方法,加法模型,与前向分步算法,以决策树为基分类器的提升方法,串联决策树模型,第一个决策树拟合具体数学,以后的决策树拟合前一个决策树的残差。

3.2算法步骤:

3.3机器学习视角的解释:

ModelSet:加法模型,基学习模型的线性组合

LossFunction:指数损失函数【分类问题】、平方误差损失函数【回归问题】

优化策略:前向分步算法

常见面试问题

1、bagging与boosting的区别

  • 样本选择上:Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
  • 样例权重:Bagging:使用均匀取样,每个样例的权重相等Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
  • 预测函数:Bagging:所有预测函数的权重相等。Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
  • 并行计算:Bagging:各个预测函数可以并行生成

Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

2、随机森林与GDBT(提升树)的区别:

  • 随机森林采用的bagging思想,而GBDT采用的boosting思想。这两种方法都是Bootstrap思想的应用,Bootstrap是一种有放回的抽样方法思想。虽然都是有放回的抽样,但二者的区别在于:Bagging采用有放回的均匀取样,而Boosting根据错误率来取样(Boosting初始化时对每一个训练样例赋相等的权重1/n,然后用该算法对训练集训练t轮,每次训练后,对训练失败的样例赋以较大的权重),因此Boosting的分类精度要优于Bagging。Bagging的训练集的选择是随机的,各训练集之间相互独立,弱分类器可并行,而Boosting的训练集的选择与前一轮的学习结果有关,是串行的。
  • 组成随机森林的树可以是分类树,也可以是回归树;而GBDT只能由回归树组成。
  • 组成随机森林的树可以并行生成;而GBDT只能是串行生成。
  • 对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来。
  • 随机森林对异常值不敏感;GBDT对异常值非常敏感。
  • 随机森林对训练集一视同仁;GBDT是基于权值的弱分类器的集成。
  • 随机森林是通过减少模型方差提高性能;GBDT是通过减少模型偏差提高性能。

最小径集的算法_机器学习的利器——集成算法相关推荐

  1. louvian算法 缺点 优化_机器学习中的优化算法(1)-优化算法重要性,SGD,Momentum(附Python示例)...

    本系列文章已转至 机器学习的优化器​zhuanlan.zhihu.com 优化算法在机器学习中扮演着至关重要的角色,了解常用的优化算法对于机器学习爱好者和从业者有着重要的意义. 这系列文章先讲述优化算 ...

  2. halcon机器视觉算法原理与编程实战_快速弄懂机器学习里的集成算法:原理、框架与实战...

    作者:  博观厚积 简书专栏:https://www.jianshu.com/u/2f376f777ef1 1. 关于集成学习算法 集成学习算法,通俗地讲就是:三个臭皮匠,顶个诸葛亮,这在很多地方都有 ...

  3. gbdt 算法比随机森林容易_机器学习军火库 | 浪漫算法 随机森林

    一.基本原理 顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的.在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行 ...

  4. k近邻算法_机器学习之K近邻分类算法的实现

    K近邻算法(k-nearest neighbors, KNN)是最基本的机器学习算法之一.所谓的K,就是距离最近的K个邻居的意思.其实,KNN在我们平常的生活中也会不自主的应用,比如,俗语说的&quo ...

  5. 协同过滤算法_机器学习 | 简介推荐场景中的协同过滤算法,以及SVD的使用

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第29篇文章,我们来聊聊SVD在上古时期的推荐场景当中的应用. 推荐的背后逻辑 有没有思考过一个问题,当我们在淘宝或者是 ...

  6. 机器学习朴素贝叶斯算法_机器学习中的朴素贝叶斯算法

    机器学习朴素贝叶斯算法 朴素贝叶斯算法 (Naive Bayes Algorithm) Naive Bayes is basically used for text learning. Using t ...

  7. 机器学习算法_机器学习之EM算法和概率图模型

    [晓白]今天我准备更新Machine Learning系列文章希望对机器学习复习和准备面试的同学有帮助!之前更新了感知机和SVM,决策树&代码实战,关注我的专栏可以的文章哦!今天继续更新EM算 ...

  8. apriori算法_机器学习(无监督学习)关联规则Apriori算法原理与python实现

    关联规则Apriori算法 1.关联规则概述 关联规则算法是在一堆数据集中寻找数据之间的某种关联,通过该算法我们可以对数据集做关联分析--在大规模的数据中寻找有趣关系的任务.这些关系可以有两种形式:频 ...

  9. em算法怎么对应原有分类_机器学习系列之EM算法

    我讲EM算法的大概流程主要三部分:需要的预备知识.EM算法详解和对EM算法的改进. 一.EM算法的预备知识 1.极大似然估计 (1)举例说明:经典问题--学生身高问题 我们需要调查我们学校的男生和女生 ...

最新文章

  1. 面试必备:ArrayList源码解析(JDK8)
  2. 一个函数让你看懂 'Why 0.1+0.2!=0.3'
  3. ios app的真机调试与发布配置
  4. map、mapPartitions、mapPartitionsWithIndex区别在哪里?
  5. 云计算时代企业内部IT人员的新定位
  6. LeetCode 2144. 打折购买糖果的最小开销(贪心)
  7. (Pr)Premiere Pro 2022 软件下载+Pr安装教程
  8. 计算机桌面全部内容自定义,电脑win10如何恢复自定义桌面图标排列的方法
  9. C++ ACM程序设计大赛--练习1
  10. 论文查重怎么看查重率
  11. socketException之broken pipe
  12. 范式通俗理解:1NF、2NF、3NF和BNCF
  13. 安全专业委员会发言_护理专业委员会发言稿
  14. 计算机网络技术中的单位换算,计算机存储/网络传输中单位换算1000还是1024
  15. 流水线扫描条码自动分拣方案
  16. 3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】
  17. Cocos2dx之Scene和Scene Graph
  18. Embedded Linux S3C2440 - QEMU and Graphic
  19. 关于微信小程序云开发以及云开发实例展示
  20. ailx10的hacknet攻略002

热门文章

  1. 2022-2028年中国数字乡村建设深度调研及投资前景预测报告
  2. 2022-2028年现代农业背景下中国家庭农场深度调研及投资前景预测报告
  3. 记录一次简单、高效、无错误的linux上安装pytorch的过程
  4. 两个月番茄组长的收获总结
  5. “Attention is All You Need 翻译
  6. GOF23设计模式(创建型模式)单例模式
  7. 大数据调度平台Airflow(一):什么是Airflow
  8. 2021年大数据HBase(二):HBase集群安装操作
  9. Java 静态变量,静态方法,静态常量(java static 关键字)
  10. CSS3——对齐 组合选择符 伪类 伪元素 导航栏 下拉菜单