当前位置: 首页 > news >正文

机器学习——CatBoost、目标变量统计、排序提升算法

CatBoost(Categorical+Boosting)是专门用于处理类别特征的Boosting框架

一、目标变量排序

类别特征在结构化数据集中非常常见,如性别(男、女)、学历(本科、硕士、博士)等,对于这类数据,直接采样对类别特征进行编码,有多少类别取值就映射多少数值,这种直接的编码方式称为硬编码。除了这种编码方式外,one-hot编码也非常高效,但是对于特征类别数目特别多的情况下,该编码容易出现大量冗余特征(一个特征有50个类别值,那么就会产生50个稀疏特征),对于这种情况的优化方式,可以选择对类别数目重新归类将其降低到较少数目时,再进行one-hot编码。除了编码和one-hot编码外,另外一种方式则是目标变量统计(Target Statistics,TS),其核心思想是通过目标变量的统计信息来编码类别特征,从而提升机器学习模型的性能。具体例子如用户ID这一类别特征,可以使用历史点击率(目标变量)的均值代替原始ID值,这种方法的适用场景为存在明显类别分布差异的数据,是的其通过目标变量的计算均值能尽可能的将其类别特征区分开来。具体理解:比如对于学历这一特征中的本科生、研究生、博士生进行数目统计求其均值(或者可以使用多个特征进行计算对其进行标识,比如:总人数这一特征,购买人数这一特征,编码值=购买人数/总人数),来实现对其特征类别的区分的标识。所以可以看出这种方法可以对多个特征进行统一编码。但是容易出现一个问题,就是在对数据进行划分的过程中,即训练集和测试集(希望数据划分中尽可能不改变数据分布),其训练集和测试集的数据分布不同,造成条件偏移,故为了避免这个问题,故使用一个先验项用于减少噪声和低频类型数据受数据分布的影响(如果不加先验项的话容易很好的拟合训练集数据,对测试数据的拟合效果就不好,这样就容易出现过拟合,故一般都需要加上先验项),其具体加上先验项的公式如下:

不加先验项的公式如下:

二、排序提升算法

由于训练样本的分布与测试样本的分布存在偏移,故CatBoost来实现排序提升解决预测偏移的问题

CatBoost算法已经在封装好了,可以直接在pycharm中通过pip insatll catboost进行安装使用。你只需要知道CatBoost是专门用于高效处理类别特征的梯度提升模型即可。

相关文章:

  • 《TCP/IP网络编程》学习笔记 | Chapter 22:重叠 I/O 模型
  • 重复出现的数字
  • ‌GraphRAG 知识图谱,设置适配阿里云百炼平台实战教程【上】
  • 【大模型基础_毛玉仁】4.3 参数选择方法
  • python笔记之判断月份有多少天
  • 【商城实战(72)】解锁用户评价与晒单功能开发秘籍
  • 【第2月_day10】Pandas数据查看与选择
  • MySQL查询语句的使用
  • TypeScript实现二分查找算法:原理剖析与最佳实践
  • 网页的性能优化
  • 一. 相机模组摆放原理
  • OpenAI深夜直播「偷袭」谷歌!GPT-4o原生图像生成:奥特曼带梗图,AGI战场再燃战火
  • 阶段二:面向对象编程
  • 生活电子常识——cmd不能使用anaconda的python环境,导致输入python打开应用商店
  • 文件上传绕过的小点总结(6)
  • Linux之 权限提升(Linux Privilege Escalation)
  • 进程间通信 命名管道 ─── Linux第24课
  • 同旺科技USB to SPI 适配器 ---- 指令之间延时功能
  • SpringBoot分布式项目实战:观察者模式的高阶应用与避坑指南
  • JWT应用样例
  • 首次带人形机器人走科技节红毯,傅利叶顾捷:没太多包袱,很多事都能从零开始
  • 工人日报:应对“职场肥胖”,健康与减重同受关注
  • 阳光保险拟设立私募证券投资基金,总规模200亿元
  • 国家防汛抗旱总指挥部对15个重点省份开展汛前实地督导检查
  • 六省会共建交通枢纽集群,中部六省离经济“第五极”有多远?
  • 奥运“四朝元老”华天回国参赛,伤势未愈谨慎出战全国锦标赛