[特征工程]特征缩放 && 特征编码

187 阅读2分钟

1/什么是特征缩放

主要是归一化,标准化,正则化,
用于消除量纲关系的影响。
基于参数的模型和基于距离的模型,都需要进行数据归一化。
基于树的模型,不需要进行数据归一化。

2/什么是特征编码

主要是序号编码、one-hot编码(独热编码)等,
主要是处理分类特征,包括有序类别特征和无序类别特征。

<1>什么是序号编码(label encode)

定义:序号编码一般用于处理特征内的特征值之间具有大小关系的数据。
     比如成绩,可以分为高、中、低三个档次,并且存在“高>中>低”的大小关系,
     比如收入,可以分为高,中,低三个档次,并且高>中>低的大小关系。
     那么序号编码可以对这三个档次进行编码:高表示为3,中表示为2,低表示为 1,
     这样转换后依然保留了大小关系。
     可以理解为:把类别从字符串-->数字吗???
   

<2>什么是独热编码(one-hot encode)

 定义:独热编码通常用于处理特征内的特征值之间不具有大小关系的特征。
      独热编码是采用N位状态位来对N个可能的取值进行编码。
      比如血型,一共有4种取值(AB、AB 以及 O 型),
      比如性别,男和女,没有大小关系。一个人只能是其中的一种。
      那么独热编码会将血型转换为一个4维稀疏向量,分别表示上述四种血型为:
            A型:(1,0,0,0)
            B型:(0,1,0,0)
            AB型:(0,0,1,0)
            O型:(0,0,0,1)
       也就是每个人只能命中其中的一种情况,为1,其他的为0

<3>独热编码的优点

 <1>能够处理非数值类型的特征
     比如血型、性别等
     就是把字符串类型,转换成了0和1

 <2>一定程度上扩充了特征的维度
     编码后的向量是稀疏向量,只有一位是1,其他都是0,
     可以利用向量的稀疏来节省存储空间。

 <3>能够处理缺失值
     当所有位都是0,就表示是缺失
     此时可以采用处理缺失值提到的高维映射方法,用第N+1位来表示缺失值。

<4>独热编码的缺点

KNN算法中,高维空间下两点之间的距离很难得到有效的衡量;
lr算法中,参数的数量会随着特征维度的增高而增加,导致模型复杂,出现过拟合问题;
通常只有部分维度是对分类、预测有帮助,需要借助特征选择来降低维度。