CatBoost 模型中标称型特征转换成数字型特征

接上一篇文章 CatBoost 模型中标称特征的处理 ,这篇说一下CatBoot中实现的标称特征处理方法。
可以查看官网原文 Transforming categorical features to numerical features

CatBoost 支持两种类型的特征。一种是数值型,例如高度(182, 173)和任何人的二值特征(0, 1)。另外一种是标称型特征。只能取有限个可能的值,通常这些值是固定的,例如歌曲风格(“rock”, “indie”, “pop”)。

标称型特征处理流程

  1. 随机排列输入样例。
  2. 将标签转换成整型。根据机器学习问题,做不同的处理。
    1. 回归问题:离散化目标值。CatBoost 中有一个 Binarization 过程。开始是有一个参数 K, 目标值会离散到K+1 个桶中,每个值只在其中一个桶。这样,重新得到一个标签,取值从0K
    2. 分类问题:可能的目标值只有01
    3. 多分类问题:标签的值应该是整型的,并且从0开始。
  3. 使用下面的方法将类别特征转换成数值型特征。CatBoost中根据开始设置的参数选择使用何种方法。回顾一下上一篇说的,有一个观察数据集 D = ( X i , Y i ) i = 1 … n \mathcal{D} = {(X_i ,Y_i )}_{i=1 \dots n} D=(Xi,Yi)i=1n,随机排雷后得到序列 σ = ( σ 1 , … , σ n ) \sigma=(\sigma_1, \dots, \sigma_n) σ=(σ1,,σn)。依次从 σ 1 \sigma_1 σ1 σ n \sigma_n σn遍历该随机序列。
    1. Borders。使用这个公式将标称值的转换成数值,按标签所属的桶分别计算 i ∈ [ 0 , k − 1 ] i\in[0,k-1] i[0,k1] c t r i = c o u n t I n C l a s s + p r i o r t o t a l C o u n t + 1 ctr_i=\frac{countInClass + prior }{totalCount + 1} ctri=totalCount+1countInClass+prior假设当前遍历到 σ k \sigma_k σk ( k &lt; n ) (k&lt;n) (k<n),对应的标称特征的值是
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值