2021-03-30
阅读量:
857
在对数据进行预处理时,应该怎样处理类别型特征?
在对数据进行预处理时,应该怎样处理类别型特征?
1, 序号编码
序号编码通常用于处理类别间具有大小关系的数据 。 例如成绩 ,可
以分为低、中、高三挡 ,并且存在“高 > 中 > 低”的排序关系 。 序号
编码会按照大小关系对类别型特征赋予一个数值 ID ,例如高表示为 3 、
中表示为 2 、低表示为 1 ,转换后依然保留了大小关系 。
2,独热编码
独热编码通常用于处理类别间不具有大小关系的特征 。 例如血型,
一共有 4 个取值( A 型血、 B 型血、 AB 型血 、 o型血) ,独热编码会
(1)使用稀疏向量来节省空间 。 在独热编码下, 特征向量只有某
一维取值为 1 ,其他位置取值均为 0 。 因此可以利用向量的稀疏表示有
效地节省空间,并且目前大部分的算法均接受稀疏向量形式的输入 。
( 2 )配合特征选择来降低维度 。 高维度特征会带来几方面的问题 。
一是在 K 近邻算法中,高维空间下两点之间的距离很难得到高效的衡量;
二是在逻辑回归模型中,参数的数量会随着维度的增高而增加,容易引
起过拟合问题;三是通常只有部分维度是对分类、预测有帮助,因此可
以考虑配合特征选择来降低维度 。
3, 二进制编码
二进制编码主要分为两步 , 先用序号编码给每个类别赋予一个类别
ID ,然后将类别 ID 对应的二进制编码作为结果 。 以 A 、 B 、 AB 、 o
血型为例。 A 型血的 ID 为 1 ,二进制表
示为 001; B 型血的 ID 为 2 ,二进制表示为 010,以此类推可以得到
AB 型血 和 o型血的二进制表示 。 可以看出,二进制编码本质上是利用
二进制对 ID 进行哈希映射,最终得到 0/1 特征向量 ,且维数少于独热
编码,节省了存储空间。
1, 序号编码
序号编码通常用于处理类别间具有大小关系的数据 。 例如成绩 ,可
以分为低、中、高三挡 ,并且存在“高 > 中 > 低”的排序关系 。 序号
编码会按照大小关系对类别型特征赋予一个数值 ID ,例如高表示为 3 、
中表示为 2 、低表示为 1 ,转换后依然保留了大小关系 。
2,独热编码
独热编码通常用于处理类别间不具有大小关系的特征 。 例如血型,
一共有 4 个取值( A 型血、 B 型血、 AB 型血 、 o型血) ,独热编码会
把血型变成一个 4 维稀疏向 量, A 型血表示为( 1, 0, 0, 0 ) , B 型血
表示为( 0, 1 , 0, 0 ) , AB 型表示为( 0, 0,1, 0 ) , o 型血表示为( 0, 0,
0, 1 ) 。 对于类别取值较多的情况下使用独热编码需要注意以下问题。(1)使用稀疏向量来节省空间 。 在独热编码下, 特征向量只有某
一维取值为 1 ,其他位置取值均为 0 。 因此可以利用向量的稀疏表示有
效地节省空间,并且目前大部分的算法均接受稀疏向量形式的输入 。
( 2 )配合特征选择来降低维度 。 高维度特征会带来几方面的问题 。
一是在 K 近邻算法中,高维空间下两点之间的距离很难得到高效的衡量;
二是在逻辑回归模型中,参数的数量会随着维度的增高而增加,容易引
起过拟合问题;三是通常只有部分维度是对分类、预测有帮助,因此可
以考虑配合特征选择来降低维度 。
3, 二进制编码
二进制编码主要分为两步 , 先用序号编码给每个类别赋予一个类别
ID ,然后将类别 ID 对应的二进制编码作为结果 。 以 A 、 B 、 AB 、 o
血型为例。 A 型血的 ID 为 1 ,二进制表
示为 001; B 型血的 ID 为 2 ,二进制表示为 010,以此类推可以得到
AB 型血 和 o型血的二进制表示 。 可以看出,二进制编码本质上是利用
二进制对 ID 进行哈希映射,最终得到 0/1 特征向量 ,且维数少于独热
编码,节省了存储空间。






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论