CatBoost详解--原理

CatBoost是一种有效的机器学习算法,尤其在处理类别特征时表现出色。与One-Hot编码不同,CatBoost使用样本的label value计算统计量,减少过拟合。通过随机排序和加权平均,它能在保持训练效率的同时减少噪声。此外,CatBoost还修正梯度偏差,提升模型稳定性,并支持GPU加速,提供快速评分功能。算法参数多样,包括学习率、树深和正则化等,适用于各种机器学习任务。
摘要由CSDN通过智能技术生成

CatBoost详解
CatBoost简介
CatBoost中处理类别特征的方法
算法实现
修正梯度偏差
快速评分
基于GPU快速学习
CatBoost的参数
CatBoost简介
  CatBoost: 基本原理类似于常规的Gradient Boosting算法,只是在处理类别特征时,效果较好。一方面,可以自动处理分类特征,并且在训练过程中处理这些类别特征有优势;另一方面,使用了一种新的方式计算leaf-values(可降低过拟合)。它有两个版本,学习算法基于GPU实现,打分算法基于CPU实现。
  categorical features: 类别特征,CatBoost中专指不必相互比较的特征,如城市名称、用户ID等等。常规的操作是在训练模型之前,将这些类别特征转换为数值型特征,如One-Hot编码。而在CatBoost中,基于统计量,将类别特征转换为数值型特征。

CatBoost中处理类别特征的方法
  与One-Hot处理类别特征的方法不同,另一种处理类别特征的方法是使用样本的label value来计算一些统计量。
  假设数据集D={(Xi,Yi}i=1,…,n D={(X_i,Y_i}i=1,…,nD={(X
i

,Y
i

}
i

=1,…,n,whereXi=(xi,1,…,xi,m),Yi∈R where X_i=(x
{i,1},…,x_{i,m}),Y_i∈RwhereX
i

=(x
i,1

,…,x
i,m

),Y
i

∈R是label value。m个特征,有些是数值型特征,有些是类别特征。
  1、处理类别特征值的最简单方法是在整个数据集上,用平均的label value来代替。则:
xi,k=∑nj=1[xj,k=xi,k]∗Yj∑nj=1[xj,k=xi,k] x_{i,k}=\frac{\sum_{j=1}{n}[x_{j,k}=x_{i,k}]*Y_j}{\sum_{j=1}{n}[x_{j,k}=x_{i,k}]}
x
i,k


j=1
n

[x
j,k

=x
i,k

]

j=1
n

[x
j,k

=x
i,k

]∗Y
j

where[.] where [.]where[.]表示指示函数。很显然,这会导致过拟合。例如,只有一个样本的情况下,xi,k x_{i, k}x
i,k

在所有数据集上等于label value的值。最直接减少过拟合的方式是将整体数据集分为两部分,一部分仅仅用来计算

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值