百面机器学习-怎样处理类别型特征

​ 知识点:序号编码(Ordinal Encoding)、独热编码(One-hot Encoding)、二进制编码(Binary Encoding)

​ 类别型特征主要是指性别、血型等只在有限选项内取值的特征。

​ 类别型特征原始输入通常是字符串形式,除了决策树等少数模型能够直接处理字符串形式的输入,对于逻辑回归、支持向量机等模型来说,类别型特征必须经过处理转换成数值型特征才能正确工作。

  • 如果被处理的类别型特征数据之间存在着大小关系

    我们可以使用序号编码的方法,根据类别型特征之间的大小关系分别赋予一个数值 ID ,数值 ID 之间的大小关系与特征之间的大小关系相同。

    如 高、中、低三档可以分别赋予数值 ID:3、2、1。

  • 如果被处理的类别特征数据之间不存在大小关系

    我们可以使用独热编码的形式,把每个数据都转换为 $N$ 维的稀疏向量来表示,$N$ 表示总的类别数目。
    如 A、B、AB、O 四种血型,可以分别使用四维稀疏向量 $[1,0,0,0]、[0,1,0,0]、[0,0,1,0]、[0,0,0,1]$ 来表示。

  • 无论被处理的类别特征数据之间有无关系

    我们可以使用二进制编码对特征数据进行转换。

    进行转换时,首先我们需要新增一个递增的类别 ID 字段,如:1、2、3、4、…、n。然后利用二进制对 ID 字段进行哈希映射,最终得到 0/1 特征向量。

    值得注意的是,二进制编码产生的向量维度是少于独热编码的,节省了存储空间。

    如 A、B、AB、O 四种血型可以分别赋予类别 ID: 1、2、3、4,然后对类别ID进行二进制映射表示:$[0 0 1]、[0 1 0]、[0 1 1]、[1 0 0]$ 。

本文结束 感谢您的阅读
坚持原创技术分享,您的支持将鼓励我继续创作!