集成学习(含常用案列)

2023-05-16

集成学习原理:
工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测
集成学习算法分类:
集成学习算法一般分为:bagging、boosting和Stacking
基学习器注意事项:
1.基础学习器之间要存在差异性。
2.基础学习器的能力不需要很强,只需要比随机猜测 0.5 高一点就行。
Bagging 框架
原理:
Baggging 框架通过有放回的抽样产生不同的训练集,从而训练具有差异性的弱学习器,然后通过平权投票、多数表决的方式决定预测结果。
Bagging 使用 bootstrap 采样, 会存在大约 ⅓ 左右的数据未被选中用于训练弱学习,这部分未被选中的数据被称为 oob(out of bag), 即:包外估计数据集。(也就是随机性体现在随机取样以及随机挑选特征)
随机森林:
算法:
1.用N来表示训练用例(样本)的个数,M表示特征数目。
2.输入特征数目m,用于确定决策树上一个节点的决策结果;其中m应远小于M。
3.从N个训练用例(样本)中以有放回抽样的方式,取样N次,形成一个训练集(即bootstrap取样),并用未抽到的用例(样本)作预测,评估其误差。
4.对于每一个节点,随机选择m个特征,决策树上每个节点的决定都是基于这些特征确定的。根据这m个特征,计算其最佳的分裂方式。
5.对每棵树进行平权投票(分类)或者求平均(预测或者回归问题)
随机深林 API:(sklearn.ensemble.RandomForestClassifier())
n_estimators:决策树数量,(default = 10)
Criterion:entropy、或者 gini, (default = gini)
bootstrap:是否采用有放回抽样,如果为 False 将会使用全部训练样本,(default = True)
min_samples_split: 结点分裂所需最小样本数,(default = 2)
min_samples_leaf: 叶子节点的最小样本数,(default = 1)
min_impurity_split: 节点划分最小不纯度
Boosting:
Boosting 体现了提升思想,每一个训练器重点关注前一个训练器不足的地方进行训练,通过加权投票的方式,得出预测结果。
Boosting算法的著名代表就是Adaboost算法,前人栽树后人乘凉就是Ababoost,算法原理如下:
1.首先,初始化训练数据的权值分布。每一个训练样本最开始时都被赋予相同的权值:1/N
2.训练弱分类器:本轮训练中,若某样本分错,则提高它的权值,相反分类正确的样本被降低权值。然后,权值更新过的全体样本被用于训练下一个分类器,使得下一个分类器更关注权重大的难分样本。多次迭代,训练多个弱分类器。
3.加权组合弱分类器:加大分类误差率小的弱分类器的权重,使其在最终表决中起较大作用,而降低分类误差率大的弱分类器的权重,使其在最终表决中起较小作用。
Bagging 与 Boosting区别:
区别一:数据方面
Bagging:有放回采样
Boosting:全部数据集, 重点关注前一个弱学习器不足
区别二:投票方面
Bagging:平权投票
Boosting:加权投票
区别三:学习顺序
Bagging的学习是并行的,每个学习器没有依赖关系
Boosting学习是串行,学习有先后顺序
GBDT:(这个知道原理即可,现在有很多改进版)
GBDT(Gradient Boosting Decision Tree)是一种迭代的决策树算法,由多棵决策树组成,所有树的结论累加起来作为最终答案。
通俗理解:假如有个人30岁,我们首先用20岁去拟合,发现损失有10岁,这时我们用6岁去拟合剩下的损失,发现差距还有4岁,第三轮我们用3岁拟合剩下的差距,差距就只有一岁了。如果我们的迭代轮数还没有完,可以继续迭代下面,每一轮迭代,拟合的岁数误差都会减小。最后将每次拟合的岁数加起来便是模型输出的结果。
若采用平方损失函数,则有:
在这里插入图片描述
可以省略倍数和常数项
XGBoost 原理:
XGBoost 是(eXtreme Gradient Boosting)的简称,是优化的分布式梯度提升库:基本原理与GBDT相同,属于Gradient Boosting 类型的机器学习算法,是对GBDT的优化,在训练每一棵树的时候GBDT采用了并行的方式进行训练,提高了模型训练速度。
模型的加法表达式:
在这里插入图片描述
值得一提的是,其实算预测结果的时候,前t-1的值实际上是知道的,原表达式右边可以用1到t-1的累加加上ft(Xi)(前向分布算法)
目标函数:
在这里插入图片描述
关于损失函数的说明:这里说2点,1、为啥不用梯度,因为大多数的树是局部连续甚至是离散的,不能使用梯度下降。2、损失函数主要受节点值的影响。
关于负责度控制的说明:上图最后一个表达式由2个超参数控制,1个是叶子节点数,1个是平均数求和,这样做是为了防止过拟合。
将目标函数进行二阶泰勒展开(其实GBDT可以使用1阶泰勒展开):
在这里插入图片描述
确定树结构的方法:
1.穷举法(特征数少的话使用),求出所有obj的值比较
2.贪心算法:当前树中的每一个叶子节点,用不同特征尝试进行分割,并用下面的函数计算分裂前和分裂后的增益分数,找到最优的分割方案(下图为英文文档的伪代码)
在这里插入图片描述
注意:i是样本的集合,d是特征维度(个人感觉是作者笔误,理解有误请指正,我用C++模拟实现的时候,用d的话是对的)
缺失值处理: 在训练过程中,如果特征出现了缺失值,会为该特征计算一个缺失值划分方向(左子树,右子树)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集成学习(含常用案列) 的相关文章

  • GitHub Action构建并推送DockerHub

    前言 偶尔会构建一些自己用的容器 xff0c 之前一直用的是Docker提供的构建服务 xff0c 然而Docker开始收费了 xff0c 那只能另寻他法 之所以不本地构建推送 xff0c 是因为构建的时候经常因为网络问题 xff0c 访问
  • BIO与NIO的方式实现文件拷贝

    面试题 编程实现文件拷贝 xff08 这个题目在笔试的时候经常出现 xff0c 下面的代码给出了两种实现方案 xff09 span class hljs keyword import span java io FileInputStream
  • 一路(16)走来,一起(17)依然同行

    来个自我介绍吧 xff0c 我叫 xff0c 计算机科学与技术专业 xff0c 本科 xff0c 这句话应该是16年整整一年说过最多的 那么我去年整整一年我又有那些收获呢 xff0c so xff0c 我也来个年终总结 xff0c 年初展望
  • 电路城(www.cirmall.com)-学习IoT,BLE编程绝佳平台,nRF52832 BLE(蓝牙低能耗)开发板

    该nRF52832 BLE xff08 蓝牙低能耗 xff09 开发板是一款具有温度 xff0c 湿度 xff0c 环境光和加速度传感器的蓝牙低能耗开发板 该蓝牙开发板具有ARM Cortex M4F CPU的nRF52832 BLE So
  • Linux上jmeter-server启动失败

    贴个广告 楼主的博客已全部搬迁至自己的博客 xff0c 感兴趣的小伙伴请移步haifeiWu与他朋友们的博客专栏 Jmeter server启动失败 xff1a Cannot start Unable to get local host I
  • Mysql的七种join

    对于SQL的Join xff0c 在学习起来可能是比较乱的 我们知道 xff0c SQL的Join语法有很多inner的 xff0c 有outer的 xff0c 有left的 xff0c 有时候 xff0c 对于Select出来的结果集是什
  • shell脚本实现自动保留最近n次备份记录

    贴个广告 楼主的博客已全部搬迁至自己的博客 xff0c 感兴趣的小伙伴请移步haifeiWu与他朋友们的博客专栏 项目中出现的问题 某天上午服务器出现卡顿特别严重 xff0c 页面加载速度奇慢 xff0c 并且某些页面刷新出现404的问题
  • Java实现终止线程池中正在运行的定时任务

    贴个广告 楼主的博客已全部搬迁至自己的博客 xff0c 感兴趣的小伙伴请移步haifeiWu与他朋友们的博客专栏 源于开发 最近项目中遇到了一个新的需求 xff0c 就是实现一个可以动态添加定时任务的功能 说到这里 xff0c 有人可能会说
  • TCP 粘包问题浅析及其解决方案

    最近一直在做中间件相关的东西 xff0c 所以接触到的各种协议比较多 xff0c 总的来说有TCP xff0c UDP xff0c HTTP等各种网络传输协议 xff0c 因此楼主想先从协议最基本的TCP粘包问题搞起 xff0c 把计算机网
  • Redis协议规范(译文)

    原文地址 xff1a haifeiWu的博客 博客地址 xff1a www hchstudio cn 欢迎转载 xff0c 转载请注明作者及出处 xff0c 谢谢 xff01 Redis客户端使用名为RESP xff08 Redis序列化协
  • Netty 源码中对 Redis 协议的实现

    原文地址 xff1a haifeiWu的博客 博客地址 xff1a www hchstudio cn 欢迎转载 xff0c 转载请注明作者及出处 xff0c 谢谢 xff01 近期一直在做网络协议相关的工作 xff0c 所以博客也就与之相关
  • 高性能无锁队列 Disruptor 初体验

    原文地址 xff1a haifeiWu和他朋友们的博客 博客地址 xff1a www hchstudio cn 欢迎转载 xff0c 转载请注明作者及出处 xff0c 谢谢 xff01 最近一直在研究队列的一些问题 xff0c 今天楼主要分
  • Vultr(云服务器)安装GUI图形化界面(已解决)

    服务器 xff1a Vultr OS xff1a Ubuntu 14 04 步骤 xff1a 1 远程登陆到服务器 2 确保所有的包和依赖关系是最新的 apt span class hljs keyword get span update
  • WorkerMan客户端连接失败

    workerman客户端连接失败 今天访问客服聊天功能发现不能发送信息 xff0c 然后看到是因为 WebSocket 连接失败 xff0c 图如下 xff1a 根据字面意思已经了解了问题是因为连接拒绝 xff0c 那么为什么会拒绝呢 xf
  • 2020计算机技术类,部分人工智能与软件工程SCI一区期刊列表(基于letpub数据)

    网上找了很久将计算机技术作为独立大区的期刊列表 xff0c 还是没有找到 所以我决定根据letpub的数据 xff0c 自己整理下 xff0c 方便以后查看 注 xff1a 由于2020与2019年的数据存在一些冲突 xff0c 部分数据可
  • IoT -- 解读物联网四层架构

    本文以物联网四层架构为基础 xff0c 从物联网产品设计的角度来解读每层架构的功能以及主要内容 xff0c 旨在为物联网产品设计以及实现思路感兴趣的物联网产品或研发人员有些帮助 通过互联网 xff0c 人和人之间可以传递和交流信息 物联网
  • 【putty无法连接Linux-centos7】

    一 二 1 vmware中打开虚拟机 xff0c 选择网络适配器 xff0c 选择模式 选择桥接模式 xff0c 则跟电脑主机一样使用以太网 xff0c 可以联网 xff0c 也可以ping通其他主机 xff0c 选择vmnet8 NAT模
  • 我的视觉SLAM学习的小小入门---Ubuntu18配置VINS-MONO

    前言 作为一名才接触视觉SLAM的菜鸟 xff0c 除了捧着高翔老师的书看着那晦涩难懂的代码与理论 xff0c 就是跟着高翔老师的课程囫囵吞枣地学着 但是似乎总不见成效 xff0c 时常想象着何时可以像大佬们一样建图 Vins mono可算
  • 关于Ubuntu(Debian)软件源报错问题及解决

    问题 xff1a 在执行sudo apt get update时出现以下报错 xff0c 查询得知是因为换源以后 xff0c 新的下载源没有公钥 W GPG error http mirrors aliyun com debian bust
  • Cmake常用指令

    1 SET SET lt variable gt lt value gt CACHE lt type gt lt docstring gt FORCE 将缓存条目variable设置为值 lt value gt xff0c 除非用户进行设置

随机推荐

  • [LeetCode] Two Sum 两数之和 java实现 C++实现

    LeetCode Two Sum 两数之和 java实现 C 43 43 实现 Given an array of integers return indices of the two numbers such that they add
  • FreeRTOS学习总结 (一)

    FreeRTOS学习总结 一 移植 上图是从FreeRTOS官网下载的源文件目录 xff0c 移植所需要的文件都在Source文件夹下 如上图 xff0c 在工程文件夹下创建FreeRTOS文件夹 xff0c 子文件夹和相应文件 xff0c
  • FreeRTOS学习总结 (二)

    FreeRTOS学习总结 四 软件定时器 软件计时器由FreeRTOS内核实现 xff0c 并在其控制之下 它们不需要硬件支持 xff0c 也与硬件计时器或硬件计数器无关 软件计时器功能是可选的 要使用软件计时器功能 xff1a 1 构建F
  • 网络编程及三大协议(TCP + UDP + Http)

    网络编程及三大协议 xff08 TCP 43 UDP 43 Http xff09 一 网络编程 1 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备 xff0c 通过通信线路连接起来 xff0c 在网络操作系统 xff0
  • 仿真软件GCKontorl之软件在环(SiL)仿真

    摘要 xff1a 软件在环SiL Software in the Loop 仿真 xff0c 是将仿真工程中的某些仿真模型或控制策略 xff0c 采用写手代码替代 xff0c 完成软件在环 SiL 的仿真测试及验证 特别是C语言在嵌入式系统
  • [数学建模]数学建模算法和模型(B站视频)(一)

    数学建模 数学建模算法和模型 xff08 B站视频 xff09 xff08 一 xff09 层次分析法 层次分析法 xff0c 简称AHP xff0c 是指将与决策总是有关的元素分解成目标 准则 方案等层次 xff0c 在此基础之上进行定性
  • 决策树的各类概述

    LogisticRegression 1 决策树的前世今生1 1 什么是决策树1 2 决策树的构建1 3 sklearn中使用决策树 2 决策树的特征选择2 1 信息论相关概念2 2 信息熵2 3 条件熵2 4 信息增益2 5 信息增益率2
  • 事件流及其三阶段

    事件流 1 事件的捕获阶段 2 事件的目标阶段 3 事件的冒泡阶段 事件有三个阶段 xff0c 首先发生的是捕获阶段 xff0c 然后是目标阶段 xff0c 最后才是冒泡阶段 xff0c 对于捕获和冒泡 xff0c 我们只能干预其中的一个
  • 卡尔曼滤波

    这篇文章完全是我自己为了记录一下自己对于KF的印象 xff0c 表层的不能再表层了 如果是需要详细了解KF的请去阅读高手的文章 xff0c 不要在此篇上浪费时间 前言 xff1a 在读一些文章的时候 xff0c 总会看到研究方法基于卡尔曼滤
  • Nvidia Jetson TX2入门指南(白话版)

    最近要用到jetson tx2 xff0c 但之前也完全没有接触过 边用边学 xff0c 这篇文章就是向新手介绍下jetson tx2刚入手的一些事项 适合纯小白 一 TX2初认识 开发板全称 xff1a Nvidia Jetson tx2
  • Nvidia Jetson TX2+Intel Realsense D435i跑ORB_SLAM3

    前言 xff1a 网上的教程实在是太多 xff0c 从诸多教程中找到一个适合自己的实属不易 将此记录下来 xff0c 希望能够帮助到有需要的人 因为时间紧迫 xff0c 没时间写特别详细的内容 xff0c 只能引用一些他人的步骤 请见谅 x
  • catkin_make

    普通情况下编译文件都是使用cmake make工具 xff0c 与此有关的内容可以参考 xff1a cmake CMakeLists txt make makefile的关系 但ROS中还有catkin make xff0c 不清楚他们之间
  • Airsim仿真

    Airsim设计的目的 xff1a 1 现实世界开发测试自动驾驶车辆算法费时费力 2 迎合AI的发展 xff0c 需要在各种条件下和环境下收集大量带注释训练数据 模块化设计 xff0c 强调可扩展性 提供很多API xff0c 核心组件包括
  • 0404---通过SSH连接远程服务器运行图形界面程序问题

    远程运行 linux 服务器图形界面程序问题 通常部署在数据中心机房中的服务器是没有图形桌面的 xff0c 对服务器的日常运维也往往通过远程客户端命令窗口来进行 xff0c 但有时候往往需要在服务器上远程安装或运行图形窗口类软件 xff0c
  • Jetson NX emmc版本系统转移到SSD

    因emmc版本的NX自带内存不够大 xff0c 只有16GB xff08 手上的是这个型号 xff09 xff0c 安装系统大概需要除去4G多内存 xff0c 再安装CUDA cuDNN TensorRT等内存直接爆满 无法继续使用 所以需
  • ssh远程登录报错:kex_exchange_identification: Connection closed by remote host

    基本信息 系统 xff1a MacOS Catalina 10 15 7 报错信息 xff1a 终端登录远程 服务器 时报错 xff1a kex exchange identification Connection closed by re
  • 如何在Windows的cmd下让程序在后台执行

    如何在Windows的cmd下让程序在后台执行 xff1f Hu Dennis 2008 12 24 在windows下启动JBoss服务器 xff0c 需要在命令行中输入run bat 但是运行后如果你想停止服务器 xff0c 可能的做法
  • 嵌入式LINUX识别U盘的问题

    我试过mount U盘 当开机后mount 第一个U盘时 xff0c 一般设备名为sda xff0c 然后umount xff0c 并重插另外一个U盘 xff0c 再mount xff0c 发现设备名变为sdb了 此试验进行了几次 xff0
  • yolov4+deepsort(yolo目标检测+自适应卡尔曼滤波追踪+毕业设计代码)

    项目介绍 该项目一个基于深度学习和目标跟踪算法的项目 xff0c 主要用于实现视频中的目标检测和跟踪 该项目使用了 YOLOv4 目标检测算法和 DeepSORT 目标跟踪算法 xff0c 以及一些辅助工具和库 xff0c 可以帮助用户快速
  • 集成学习(含常用案列)

    集成学习原理 xff1a 工作原理是生成多个分类器 模型 xff0c 各自独立地学习和作出预测 这些预测最后结合成组合预测 xff0c 因此优于任何一个单分类的做出预测 集成学习算法分类 xff1a 集成学习算法一般分为 xff1a bag