当前位置:   article > 正文

在对数据进行预处理时,怎样处理类别型特征?_当数据集中含有类别特征时,需要进行特征

当数据集中含有类别特征时,需要进行特征

什么样的特征是类别型特征?

类别型特征主要是指性别(男/女),体型(胖/瘦/适中)等只有在选项内取值的特征,类别型特征的原始输入通常是字符串形式,除了决策树等少数模型能够直接处理字符串形式的输入,对于逻辑回归、支持向量机等模型来说,类别型特征必须经过处理转换成数值型特征才能正确工作。

序号编码

序号编码通常用于处理类别间具有大小关系的数据,例如考试的成绩可以由好到坏分为(A、B、C、D)四档,序号编码会把他们按照大小关系表示为(1、2、3、4),这样变换完了之后依然保持着大小的关系。

然而当一组数据之间不再具有大小关系的时候,如血型(A、B、AB、O)四个属性值之间是没有大小关系的(此时可以认为是几个平行关系的属性,甚至是几个完全抽象的无法理解的数据),这样的数据是不可以使用序号编码的,此时就产生了下面的方法——独热编码。

独热编码

还是以上面的血型(A、B、AB、O)为例,可以表示为:

A:[1,0,0,0]

B:[0,1,0,0]

AB:[0,0,1,0]

O:[0,0,0,1]

独热编码的两个问题:

  • 独热编码使用稀疏矩阵来节省空间,独热编码下特征向量只有某一维取值为1,其他的位置均取0,因此可以利用稀疏矩阵有效地节省空间,并且目前大部分算法都接受稀疏向量形式的输入。
  • 在KNN算法中,高维空间中的两点之间的距离很难衡量;在逻辑回归中参数的数量会随着维度的增高而增加,容易引起过拟合的问题;维度过大的时候我们可以通过特征选择来降低维度。

二进制编码

二进制编码先给每个类别赋予一个类别ID,然后再将ID对应的二进制编码作为结果。依然用血型的例子可以得到如下的结果:

血型类别ID二进制表示
A1001
B2010
AB3011
O4100

相对于独热编码,二进制编码更加紧凑,节省存储空间。(效果未必更好)

统计编码

统计各类别在训练集中出现的频率,并将频率作为新的特征。
在某些情况下,具有统计意义的统计编码也是一种值得尝试的技巧。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/643087
推荐阅读
相关标签
  

闽ICP备14008679号