机器学习——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是专门用于高效处理类别特征的梯度提升模型即可。

相关推荐
NeoFii3 小时前
Day 22: 复习
机器学习
巫婆理发2225 小时前
强化学习(第三课第三周)
python·机器学习·深度神经网络
Blossom.1186 小时前
基于深度学习的图像分类:使用Capsule Networks实现高效分类
人工智能·python·深度学习·神经网络·机器学习·分类·数据挖掘
Coovally AI模型快速验证8 小时前
数据集分享 | 智慧农业实战数据集精选
人工智能·算法·目标检测·机器学习·计算机视觉·目标跟踪·无人机
GG向前冲9 小时前
机器学习对中特估股票关键特征选取的应用与研究
人工智能·机器学习·投资组合
计算机sci论文精选11 小时前
CVPR 2024 3D传感框架实现无监督场景理解新纪元
人工智能·机器学习·计算机视觉·3d·cvpr·传感技术
zzywxc78714 小时前
详细介绍AI在金融、医疗、教育、制造四大领域的落地案例,每个案例均包含实际应用场景、技术实现方案、可视化图表和核心代码示例
人工智能·深度学习·机器学习
Monkey PilotX15 小时前
VLA:自动驾驶的“新大脑”?
人工智能·机器学习·计算机视觉·自动驾驶
超龄超能程序猿16 小时前
图片查重从设计到实现(4)图片向量化存储-Milvus 单机版部署
人工智能·yolo·机器学习
大连好光景17 小时前
GCN模型的设计与训练(入门案例)
人工智能·深度学习·机器学习