Skip to content

一文看懂分类特征(附5种编码方式+优缺点)

  • Home
  • AI 知识库
  • 特征工程

文章目录

分类特征是重要的一类特征。分类特征是离散的,非连续的。 本文将针对小型分类和大型分类介绍5种主流的编码方式。以及各自的优缺点。  

分类特征是用来表示分类的,他不像数值类特征是连续的,分类特征是离散的。 比如:

  • 性别
  • 城市
  • 颜色
  • IP地址
  • 用户的账号ID

有些分类特征也是数值,比如账号ID,IP地址。但是这些数值并不是连续的。 连续的数字是数值类特征,离散的数字是分类特征。 关于连续和离散的解释可以看看这篇文章:《关于连续和离散的理解》

自然数编码/序列编码-Ordinal Encoding

Section titled “自然数编码/序列编码-Ordinal Encoding”

某些分类本来就有一定的排序,这种情况下就可以使用简单的自然数编码。 例如学位: 学士-0 硕士-1 博士-2

对于城市、颜色、品牌、材质…这些特征就不适合用自然数编码,因为这些特征是没有排序关系的。 使用独热编码可以让不同的分类处在「平等的地位」,不会因为数值的大小而对分类造成影响。 例如颜色分类(假设只有3种颜色): 红色-100 黄色-010 蓝色-001 跟独热编码类似还有「虚拟编码-Dummy Encoding」和「效果编码-Effect Encoding」。 实现方式比较相似,不过有一些略微的差别,并且适用在不同的场景。 感兴趣的可以看看这篇文章: 《虚拟变量和独热编码的区别》 《赋值方法:效应编码》

目标编码是表示分类列的一种非常有效的方法,并且仅占用一个特征空间,也称为均值编码。该列中的每个值都被该类别的平均目标值替代。这可以更直接地表示分类变量和目标变量之间的关系。 目标编码的扩展阅读:《目标编码简介》

散列函数也是大家常听到的哈希函数。散列函数是一个确定性函数,它映射一个潜在的无界整数到有限整数范围[1,m]。 假如有一个分类有1万个值,如果使用独热编码,编码会非常长。而使用了散列编码,不管分类有多少不同的值,都会转换成长度固定的编码。

分箱计数的思维有点复杂:他不是用分类变量的值作为特征,而是使用目标变量取这个值的条件概率。 换句话说,我们不对分类变量的值进行编码,而是要计算分类变量值与要预测的目标变量之间的相关统计量。

优点:

  • 容易实现
  • 分类很精确
  • 可用于在线学习 缺点:
  • 计算效率不高
  • 不能适应可增长的类别
  • 只适用于线性模型
  • 对于大数据集,需要大规模的分布式优化

优点:

  • 容易实现
  • 模型训练成本更低
  • 容易适应新类别
  • 容易处理稀有类
  • 可用于在线学习 缺点:
  • 只适合线性模型或核方法
  • 散列后的特征无法解释
  • 精确度难以保证

优点:

  • 训练阶段的计算负担最小
  • 可用于基于树的模型
  • 容易适应新的类别
  • 可使用back-off方法或最小计数图处理稀有类
  • 可解释 缺点:
  • 需要历史数据
  • 需要延迟更新,不完全适合在线学习
  • 很可能导致数据泄露 上面内容摘自:《精通特征工程》

分类特征是离散的特征,数值类特征是连续的。 对于小型分类,常用的编码方式有:

  • 自然数编码/序列编码-Ordinal Encoding
  • 独热编码-One-Hot Encoding
  • 虚拟编码-Dummy Encoding
  • 效果编码-Effect Encoding 对于大型分类,常用的编码方式有:
  • 目标编码-Target Encoding
  • 散列编码-Hash encoding
  • 分箱计数-Bin-Counting 相关文章推荐: 《机器学习之类别特征处理》 《特征工程(四: 类别特征》 2021年3月30日 by 打不死的小强 Updated: 2022年8月16日

分箱计数, 分类特征, 序列编码, 散列编码, 独热编码, 目标编码 Thanks for your rating! You have already rated this article An error occured, please try again later

1


本文介绍了相关AI概念的基本原理和应用场景。

该技术在计算机视觉、自然语言处理、推荐系统等领域有广泛应用。