哑变量(Dummy Variable)、独热编码(one-hot Encoding)、label-encoding归纳

1 概念

1.1 定类型变量
定类类型就是纯分类,不排序,没有逻辑关系.
当某特征具有k个属性值,那么:
a 哑变量(虚拟变量)—— 具有k-1个二进制特征,基准类别将被忽略,若基准类别选择不合理,仍存在共线性,建议众数的类别为基准类别。
b 独热编码——具有k个特征二进制特征。
1.2 定序型变量
标签编码——用自定义的数字对原始特征进行打标签,只有1个特征,适用于有序的分类变量。

姓名年纪年级
小明六年级
康康二年级
迈克三年级

哑变量/虚拟变量

姓名
小明10
康康01
迈克00

独热编码

姓名
小明100
康康010
迈克001

标签编码

姓名年级
小明3
康康1
迈克2
2 优缺点

2.1 定类变量
异常数据具有很强的鲁棒性;离散化之后可以进行特征交叉,引入非线性,提高模型表达能力。
一个特征被分割多份,损失部分统计信息,学习效果差。
a 哑变量:从k-1个变量推论第k个类别,不太直观,但不冗余;
b 独热编码:从k个变量看出所有变量类别,比较直观,但特征冗余;独热特征高度相关,易导致共线;

2.2 定序变量
标签编码:可以自定义量化数字,但数值本身没有含义,仅用作排序;可解释性比较差,比如[‘大学’,‘高中’,‘初中’,‘小学’] —>[1,2,3,4],’大学‘和’小学相隔的距离更远。‘

3 用法

3.1 定类变量
对数值大小较敏感的模型,如LR SVM
a 哑变量的截距是基准类别的值,哑变量的回归系数表示的是某类别和基准类别之间的平均差异;
b 若线性模型有截距项,用哑变量,因为多余的自由度可以被统摄到截距项intercept里去;
c 若线性模型有截距项,且使用正则化,用独热编码,因为正则化会约束系数,使各变量地位相等,从而处理多余特征;
d 无截距项,使用独热编码
e 树模型不建议使用二进制类型的编码,因为会加深树的深度,或者减小节点分裂增益

3.2 定序型变量
既分类又排序,自定义的数字顺序可以不破坏原有逻辑,并与这个逻辑相对应。对数值大小不敏感的模型(如树模型)不建议使用one-hotencoding

选择建议:最好是选择正则化 + one-hot编码;哑变量编码也可以使用,不过最好选择前者。对于树模型,不推荐使用定类编码,因为样本切分不均衡时,增益效果甚微(如较小的那个拆分样本集,它占总样本的比例太小。无论增益多大,乘以该比例之后几乎可以忽略);

4 编码的意义

不用对变量归一化,加速参数的更新速度;使得一个很大权值管理一个特征,拆分成了许多小的权值管理这个特征多个表示,降低了特征值扰动对模型的影响,模型具有更好的鲁棒性

reference:
链接: 特征编码
链接: 虚拟变量陷阱
链接: 各种类型编码方式
链接: 特征编码

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值