机器学习——集成学习框架(GBDT、XGBoost、LightGBM、CatBoost)、调参方法

一、集成学习框架

训练样本较少的结构化数据领域,Boosting算法仍然是常用项

XGBoost、CatBoost和LightGBM都是以决策树为基础的集成学习框架

三个学习框架的发展是XGBoost是在GBDT的基础上优化而来,CatBoost和LightGBM是在XGBoost的基础上优化而来

三个学习框架的决策树构造方式XGBoost是按照层生成(level-wise)得到的是对称树,避免过拟合但存在冗余分裂;CatBoost也是对称树,其为完全二叉树;LightGBM使用的是叶子生长(level-wise),其得到是一个不对称树

三个学习框架对类别特征的处理XGBoost不能自动处理类别特征,对于其中的类别特征,需要人工手动出来成数值形式用于模型训练;LightGBM只需要指定类别特征名称,其内置的算法会自动对其进行处理;CatBoost是专门处理类别特征,其中内置的目标变量统计的特征编码方式实现对数据类别特征的高效处理

知识补充:对称树关注的是结构对称性,而完全二叉树强调层序填充的完整性。两者在定义、构造条件和应用场景上截然不同,但也存在交集(如完全对称的满二叉树)

对称树:二叉树的左右子树呈镜像对称,不能出现左或右子树缺失,或者对应对称节点值不等的情况

完全二叉树:深度为k的二叉树,若其前k-1层节点数达到最大值,且第k层节点从左到右。

连续排列,则称为完全二叉树

在对某一数据集进行多模型训练和测试分类效果比较时:需要展现的表格效果为:

模型1

模型2

.................

模型n

基本超参数

训练集AUC

测试集AUC

训练时间(s)

测试时间(s)

知识补充:AUC是模型在数据上的分类排序能力量化指标,其核心价值在于评估模型拟合能力及辅助判断过拟合

二、调参优化

机器学习中有大量的参数需要人为事先设定,这些统称为超参数(hyperparameter),常见的就如同epoch、batch_size、树深度、学习率和正则化系数等参数的设定
下面来介绍机器学习中常用的调参方法:需要强调的是超参数的最优选择是在模型的验证过程中,即此时需要用到验证集,需要提取对数据集划分好(因为超参数是不参与模型内部参数的自动更新,其是通过外部调优确定最佳取值)

①随机调参法( random search,不是所有超参数组合都尝试)

其采用的方式是对给定分布中抽样规定数量的参数,对这些抽样的超参数进行实验,选取其中模型验证集损失误差最小时的超参数组合即可。有时这种方式更为高效

②网格搜索法(grid search,所有超参数组合都尝试)

这种方法的思路很好理解,其主要适用的场景包括:优化三个及其以下的超参数数量。具体方法:比如我现在有三个参数a/b/c,我想得到三个参数组合的最优模型参数,那么我预先设定三个参数的候选值列表(预设一个待搜索的参数列表空间):a:[0.1,0.3.0.5],b:[50,100,150],c:[3,5,7],那么此时总共的组合方式为3×3×3=27种(笛卡尔乘积组合),此时就依次遍历这27种组合用于模型的参数设置,选择其中模型验证集损失误差最小时的超参数组合即可

③贝叶斯调参优化法(bayesian optimization,这种方式可以同时出来很多参数,当然其计算资源的增加也是指数级别的增加)

贝叶斯优化调参是目前最好的调参方法,贝叶斯优化的核心价值在于以最少试错成本逼近全局最优解。其中的优化方法涉及高斯过程和贝叶斯定理。其高斯过程的核心是对已有的数据点预测区域进行函数建模,求其不确定性和概率分布,对其中概率较大的区间的进行迭代,使得模型的损失达到最低时对应的超参数组合选择,但是这种方式比较消耗计算资源

其核心思想很好理解:比如在使用贝叶斯优化方法时,我希望在目前选择的一个参数1条件下(前提),使得其去组合另外一个参数2,使得模型效果更好,那么我怎么更好的去寻找到满足前提条件中最好的值(即这个前提条件是最优的),此时寻找的方法就可以使用高斯过程,找到这个最好的前提条件值,此时就只需要对另外一个参数2做考虑即可,迭代参数2的范围,找到模型性能最好的那组对应的超参数组合。幸运的是,目前这个好理解但实现复杂的方法已经被封装在bayes_opt中,可以在pycharm中直接调用使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/41901.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode 最长递增子序列的个数

java solution class Solution {public int findNumberOfLIS(int[] nums) {//边界情况处理int n nums.length;if(n < 1) return n;//然后我们创建2个数组, 分别是count数组和length数组,//length[i]的含义是以i结尾的子数组的最长递增子序列长度//count[i]的含义是以i结尾…

原型验证后客户推翻原有需求,如何止损

原型验证后客户推翻原有需求时止损的有效方法包括&#xff1a;迅速评估影响范围、立即开展沟通确认、调整项目计划和资源配置、更新变更管理流程、协商成本分担机制。其中&#xff0c;迅速评估影响范围是关键&#xff0c;项目团队必须立即明确此次变更的具体影响&#xff0c;包…

在rockylinux9.4安装mongodb报错:缺少:libcrypto.so.10文件库

问题点&#xff1a; rockylinux9.4系统环境报错&#xff1a; ./mongod: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory 解决方法&#xff1a; Ps&#xff1a;解压之后&#xff0c;检查mongodb的依赖环境…

如何应对竞品分析不足导致的方案偏差

应对竞品分析不足导致方案偏差的有效措施包括&#xff1a;深入竞品调研、建立定期竞品分析机制、明确竞品分析维度、引入专业竞品分析工具、优化内部沟通反馈机制。其中&#xff0c;深入竞品调研尤为重要。通过全面深入地分析竞争对手的产品策略、市场定位及用户反馈&#xff0…

基于Python+LanceDB实战向量搜索

本篇实战演示向量搜索的实现和示例。 预期效果 给出一个查询的字符串&#xff0c;通过向量搜索&#xff0c;在下面三个语句中搜索出关联性最大的那句。 "熊猫是中国的国宝&#xff0c;主要栖息在四川山区。","长城是古代中国建造的军事防御工事&#xff0c;全…

在 Linux(Ubuntu / CentOS 7)上快速搭建我的世界 MineCraft 服务器,并实现远程联机,详细教程

Linux 部署 MineCraft 服务器 详细教程&#xff08;丐版&#xff0c;无需云服务器&#xff09; 一、虚拟机 Ubuntu 部署二、下载 Minecraft 服务端三、安装 JRE 21四、安装 MCS manager 面板五、搭建服务器六、本地测试连接七、下载樱花&#xff0c;实现内网穿透&#xff0c;邀…

【科研绘图系列】R语言绘制重点物种进化树图(taxa phylogenetic tree)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图输出图片系统信息介绍 【科研绘图系列】R语言绘制重点物种进化树图(taxa phylogenetic tree) 加载R包 library(tidyverse) library(ape…

浏览器渲染过程

浏览器的渲染过程是多个线程、进程和阶段的复杂编排&#xff0c;它将原始的 HTML、CSS 和 JavaScript 转换为屏幕上的交互像素。 你在浏览器中输入一个 URL 并按下回车键 网站在你的屏幕上呈现出来 注意&#xff1a;本文中&#xff0c;将使用 “客户端&#xff08;client&am…

华鲲振宇天工TG225 B1国产服务器试装openEuler22.03 -SP4系统

今天测试了一下在华鲲振宇公司的天工TG225 B1国产服务器上进行openEuler22.03 -SP4操作系统的试装&#xff0c;本文记录整个测试过程。 一、服务器信息 1、服务器型号 Huakun TG225 B1 (D) 2、登录IPMI帐户信息 初始用户名Tech.ON 密码TianGong8000 二、磁盘RAID配置 测试…

Qemu-STM32(十二):STM32F103 框架代码添加

简介 本系列博客主要描述了STMF103的qemu模拟器实现&#xff0c;进行该项目的原因有两点: 作者在高铁上&#xff0c;想在STM32F103上验证一个软件框架时&#xff0c;如果此时掏出开发板&#xff0c;然后接一堆的线&#xff0c;旁边的人估计会投来异样的目光&#xff0c;特别是…

英伟达与通用汽车深化合作,澳特证券am broker助力科技投资

在近期的GTC大会上&#xff0c;英伟达CEO黄仁勋宣布英伟达将与通用汽车深化合作&#xff0c;共同推进AI技术在自动驾驶和智能工厂的应用。此次合作标志着自动驾驶汽车时代的加速到来&#xff0c;同时也展示了英伟达在AI技术领域的最新进展。      合作内容包括&#xff1a;…

将 Markdown 表格结构转换为Excel 文件

在数据管理和文档编写过程中&#xff0c;我们经常使用 Markdown 来记录表格数据。然而&#xff0c;Markdown 格式的表格在实际应用中不如 Excel 方便&#xff0c;特别是需要进一步处理数据时。因此&#xff0c;我们开发了一个使用 wxPython 的 GUI 工具&#xff0c;将 Markdown…

HarmonyOS NEXT 关于鸿蒙的一多开发(一次开发,多端部署) 1+8+N

官方定义 定义&#xff1a;一套代码工程&#xff0c;一次开发上架&#xff0c;多端按需部署。 目标&#xff1a;支撑开发者快速高效的开发支持多种终端设备形态的应用&#xff0c;实现对不同设备兼容的同时&#xff0c;提供跨设备的流转、迁移和协同的分布式体验。 什么是18…

Nacos

简介 Nacos&#xff08;Dynamic Naming and Configuration Service&#xff09;是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台&#xff0c;旨在为微服务架构提供高可用、高性能的解决方案。其核心功能包括服务注册与发现、动态配置管理、服务健康监测、动态 DNS …

Win11系统下qq远程不能控制对方电脑(鼠标点不动)的解决方法

在被控制的电脑上&#xff0c;打开控制面板&#xff0c;点击系统和安全 点击更改用户账户控制设置 下拉用户控制设置至最低&#xff0c;从不通知&#xff0c;点击确定 返回控制面板系统与安全&#xff0c;带年纪允许远程访问 点击允许远程协助连接这台计算机 重启电脑 再次打…

猎豹移动营收连续三季增长,AI驱动的猎豹成绩单怎么分析?

3月26日&#xff0c;猎豹移动发布2024年Q4及全年财报&#xff0c;这份财报我们到底该该怎么分析呢&#xff1f; 首先&#xff0c;整体财务表现稳健&#xff0c;营收连续三季增长。从财务数据来看&#xff0c;猎豹移动整体表现稳健。2024年Q4及全年财报显示&#xff0c;总收入达…

函数:链式访问

链式访问是将函数的返回值当作回传值就是链式访问 这是原本的字符数回传代码 int main() {int len strlen("seig heil");printf("%d", len);return 0; } 运行结果&#xff1a; 这是链式访问的代码&#xff1a; int main() {printf("%d\n",s…

C++ map容器总结

map基本概念 简介&#xff1a; map中所有元素都是pair pair中第一个元素为key&#xff08;键值&#xff09;&#xff0c;起到索引作用&#xff0c;第二个元素为value&#xff08;实值&#xff09; 所有元素都会根据元素的键值自动排序 本质&#xff1a; map/multimap属于关…

23种设计模式-代理(Proxy)设计模式

代理设计模式 &#x1f6a9;什么是代理设计模式&#xff1f;&#x1f6a9;代理设计模式的特点&#x1f6a9;代理设计模式的结构&#x1f6a9;代理设计模式的优缺点&#x1f6a9;代理设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是代理设计模式…

UE4学习笔记 FPS游戏制作29 更换武器时更换武器的图标

文章目录 制作物体图标UI添加获取武器图标的方法使用事件分发器&#xff0c;通知UI要换枪定义事件分发器调用事件分发器注册事件分发器 制作物体图标UI 在Fpp-UI上添加一个图片&#xff0c;改名为五weaponIcon&#xff0c;勾选SizeToContent,锚点放在右下角&#xff0c;对齐改…