机器学习-CatBoost

参考书籍:《机器学习-公式推导和代码实现》

官方文档提供的原生接口代码参考书籍的P187~P188

简介

全称是Categorical + Boosting,由俄罗斯搜索引擎巨头Yandex于2017年提出。突出的优势是在于可以高效地处理数据中的类别特征

ML中对类别特征的处理方法

硬编码

  • 对类别特征进行数值映射,有多少类别就有多少数值。适用于类别特征取值有明显的“顺序性”,如学历特征取值为“高中”、“本科”、“硕士研究生”和“博士研究生”

one-hot编码

类别特征的取值较多的话,特征会比较稀疏,增加训练负担。折中的方式:将类别数目进行重新归类,降低类别数目后再进行one-hot编码

目标变量统计(target statistics,TS)

计算每个类别对于目标变量的期望值,并将类别特征转换为新的数值特征。CatBoost在常规TS的基础上做了改进。

模型详解

分为处理类别变量的目标变量统计、特征组合和排序提升算法、其它这4个纬度进行介绍

目标变量统计

维度内容
目标更好地处理类别特征
思路常规的TS算法:对类别对应的标签平均值进行替换。缺点:训练集、测试集会因为数据分布不一样而产生条件偏移问题CatBoost:增加先验项,用以减少噪声、低频类别型数据对数据分布的影响。提供的方法有holdout TS、leave-one-out TS、ordered TS等几种改进的TS算法

类别特征组合

维度内容
目标对类别特征之间的组合进行筛选,避免类别特征数量称指数及增长,而且避免了联合信息的丢失。比如,考虑用户ID、广告主题之间的联合信息
思路采用贪心的策略考虑特征的组合将当前树的所有组合、类别特征与数据集中的所有类别特征相结合,并将新的类别组合型特征动态地转换为数值特征

    排序提升算法(order boosting)

    维度内容
    目标解决预测偏移(predict shift)
    相关概念预测偏移:训练样本的分布和测试样本的分布之间产生的偏移
    思路采用基于ordered TS的排序提升算法

    其它

    基分类器

    相比于GBDT、XGBoost、LightGBM,采用对称树作为基分类器

    1. 对称树:在树同一层,分裂标准相同,具有平衡、不宜过拟合、大大缩短测试时间特点

    多GPU训练

    提供多GPU训练加速支持

    结尾

    亲爱的读者朋友:感谢您在繁忙中驻足阅读本期内容!您的到来是对我们最大的支持❤️

    正如古语所言:"当局者迷,旁观者清"。您独到的见解与客观评价,恰似一盏明灯💡,能帮助我们照亮内容盲区,让未来的创作更加贴近您的需求。

    若此文给您带来启发或收获,不妨通过以下方式为彼此搭建一座桥梁: ✨ 点击右上角【点赞】图标,让好内容被更多人看见 ✨ 滑动屏幕【收藏】本篇,便于随时查阅回味 ✨ 在评论区留下您的真知灼见,让我们共同碰撞思维的火花

    我始终秉持匠心精神,以键盘为犁铧深耕知识沃土💻,用每一次敲击传递专业价值,不断优化内容呈现形式,力求为您打造沉浸式的阅读盛宴📚。

    有任何疑问或建议?评论区就是我们的连心桥!您的每一条留言我都将认真研读,并在24小时内回复解答📝。

    愿我们携手同行,在知识的雨林中茁壮成长🌳,共享思想绽放的甘甜果实。下期相遇时,期待看到您智慧的评论与闪亮的点赞身影✨!

    万分感谢🙏🙏您的点赞👍👍、收藏⭐🌟、评论💬🗯️、关注❤️💚~ 


    自我介绍:一线互联网大厂资深算法研发(工作6年+),4年以上招聘面试官经验(一二面面试官,面试候选人400+),深谙岗位专业知识、技能雷达图,已累计辅导15+求职者顺利入职大中型互联网公司。熟练掌握大模型、NLP、搜索、推荐、数据挖掘算法和优化,提供面试辅导、专业知识入门到进阶辅导等定制化需求等服务,助力您顺利完成学习和求职之旅(有需要者可私信联系)

    友友们,自己的知乎账号为“快乐星球”,定期更新技术文章,敬请关注!   

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

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

    相关文章

    MPLS 多协议标签交换

    前言: 多协议标签交换MPLS(Multiprotocol Label Switching)是一种IP(Internet Protocol)骨干网技术。MPLS在无连接的IP网络上引入面向连接的标签交换概念,将第三层路由技术和第二层交换技术相结合&#xf…

    CTF Web PHP弱类型比较与布尔值判断

    题目源码与注释 <?php show_source("index.php"); // 显示自身源码&#xff0c;方便分析 include("flag.php"); // 包含flag变量 $a $_GET[a]; // 获取GET参数a&#xff0c;抑制报错// 关键判断 if($a 0 and $a){echo $flag; …

    AntV G6动态连线

    完整代码如下 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>AntV G6 动态连线</titl…

    puppeteerSharp html转pdf

    部属到linux 上报错&#xff1a; Failed to launch browser! /wwwroots/xxx/Chrome/Linux-138.0.7204.92/chrome-linux64/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory 问题服务包缺少依赖&…

    springBoot接口层时间参数JSON序列化问题,兼容处理

    背景&#xff1a;解决前端传入时间参数格式不固定场景&#xff0c;避免接收参数报错时间格式不能序列化。一、概述在 Java 后端开发中&#xff0c;处理 JSON 数据时&#xff0c;经常需要对日期时间字段进行反序列化。Java 中常用的日期时间类型是 java.time.LocalDateTime&…

    List、Set、Map三者之间的关系

    1、数据结构与核心特性接口数据结构顺序性唯一性键值对null 元素List动态数组/链表有序&#xff08;插入顺序&#xff09;允许重复否允许多个 nullSet哈希表 / 红黑树无序&#xff08;HashSet&#xff09;有序&#xff08;LinkedHashSet/TreeSet&#xff09;不允许重复否仅 Has…

    进程控制----进程终止

    一、进程终止的核心场景正常终止&#xff08;代码完整运行完毕&#xff09;成功&#xff1a;进程执行到main函数结束或调用exit()&#xff0c;返回退出码 0&#xff08;约定为执行成功&#xff09;。失败&#xff1a;代码执行完毕但结果异常&#xff0c;返回非零退出码&#xf…

    Milvus docker-compose 部署

    文章目录 前言Milvus docker-compose 部署1. 下载2. 修改配置3. 启动4. 测试 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的…

    EveryThing搜索具体路径下文件中的内容

    1.打开EveryThing 2.点击搜索&#xff0c;选择高级搜索 3.选择需要搜索的文件的路径以及文件中需要包含的内容 4.之后就可以搜索到对应的目标文件

    【算法】宽度优先遍历BFS

    二叉树的宽搜 429、N叉树的层序遍历 题解 BFS核心思想 二叉树的宽搜一般都是借助队列来实现的&#xff0c;实现的原理为首先将根节点进行放入队列中&#xff0c;然后将根节点进行弹出的时候&#xff0c;将这个节点的孩子节点进行放入队列中&#xff0c;然后继续弹出队头的元…

    【STM32】通用定时器基本原理

    STM32 通用定时器基本原理&#xff08;基于 STM32F1&#xff09;参考资料&#xff1a;STM32F1xx官方资料&#xff1a;《STM32中文参考手册V10》-第14章通用定时器STM32 定时器分类 STM32F103 系列共有三类定时器&#xff1a;&#x1f50e; 通用定时器&#xff08;TIM2~TIM5&…

    【Go语言-Day 14】深入解析 map:创建、增删改查与“键是否存在”的奥秘

    Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

    Vue脚手架搭建项目+基础知识

    1. 使用脚手架创建项目1.1 准备工作winR&#xff0c;在弹出的数据框中输入cmd&#xff0c;数据命令查看node以及npm版本 下载vue cli1.2 创建项目1.2.1 创建一个英文目录文件夹&#xff0c;cmd打开命令命令提示符1.2.2 vue ui命令打开控制台1.2.3 创建项目创建成功1.3 项目结构…

    微信小程序下单页—地址列表页—新增地址页 页面交互

    新增地址流程&#xff1a; 下单页 → 地址列表页 (1次跳转)地址列表页 → 新增地址页 (1次跳转)保存地址 → 返回地址列表页 (1次返回&#xff0c;自动刷新列表) 选择地址流程&#xff1a; 地址列表页 → 选中地址 → 返回下单页 (1次返回) 更换地址&#xff1a; 下单页 → 地址…

    JVM与JMM

    为了更清晰地对比JVM和JMM&#xff0c;我们可以采用表格形式&#xff0c;从定义、功能、结构、与多线程关系等方面进行详细比较&#xff1a; 对比项JVM&#xff08;Java Virtual Machine&#xff09;JMM&#xff08;Java Memory Model&#xff09;定义一种虚构的计算机&#x…

    【Docker基础】Docker数据卷管理:docker volume rm及其参数详解

    目录 1 引言&#xff1a;Docker Volume 的生命周期管理 2 docker volume rm命令基础 2.1 命令作用 2.2 命令语法 3 参数深度解析 3.1 基础参数表 3.2 高级参数详解 3.2.1 --force&#xff08;-f&#xff09; 4 Volume删除前置条件 4.1 可删除状态判断 4.2 常见报错处…

    嵌入式系统内核镜像相关(十)

    文章目录 前言一、点亮多个led灯的基础实验以及其中的问题1.1 基础流程1.1.1 alinx教程的问题1.1.1.1 驱动程序中的亮/灭逻辑修改&#xff01;1.1.1.1.1 逻辑错误的修改1.1.1.1.2 多灯亮/灭 1.1.1.2 驱动程序中引脚的问题以及与裸机开发的区别&#xff08;重要&#xff09;1.1.…

    Word和Excel批量转PDF新方法,操作简单

    PDF是一种跨平台的文档格式&#xff0c;无论在任何设备上查看&#xff0c;其排版、字体和图像都不会发生变化。这确保了文档的一致性&#xff0c;避免了由于不同软件版本或操作系统引起的显示问题。这款小巧的工具大小不到2MB&#xff0c;使用起来异常简单。只需要把需要转换的…

    AI搜索 MCP最佳实践

    背景 那些 LLM 不知道的事 尝试直接询问LLM“今天天气如何”时&#xff0c;会发现LLM无法回答——它既不知道“今天”是哪天&#xff0c;也无法获取地理位置信息。这揭示了LLM的局限&#xff1a;缺乏与外部工具和实时数据的交互能力。 为解决这一问题&#xff0c;MCP&#x…

    JVM 简介与作用

    &#x1f680; JVM 简介与作用 &#x1f4da; 深入理解 Java 虚拟机的核心概念与重要作用 &#x1f4d6; 目录 &#x1f914; 什么是 Java 虚拟机&#xff08;JVM&#xff09;&#x1f310; JVM 在 Java 生态中的核心地位&#x1f500; JVM 跨平台原理剖析&#x1f4dd; 总结 …