在机器学习中,我们拿到的数据通常比较脏乱,可能会带有各种非数字特殊符号,比如中文。而机器学习模型需要的数据是数字型的,因为只有数字类型才能进行计算。这时便需要对变量进行编码,那变量是如何进行编码的呢?
一.特征编码类型
对于离散型数据的编码,我们通常会使用两种方式来实现,分别是:one-hot encoding 和 label encoding。
1.定义
-
one-hot encoding也就是我们常常听到的独热编码(哑变量 , 它是将原始特征变量转换成以原始特征值分类的多维度的变量,并用是否(0,1)这种方式的新特征值替代和量化。在pandas中有现成的独热编码方法get_dummies。例如pd.get_dummies()
- 举例:
数据矩阵是4*3,即4个数据,3个特征维度。
0 0 3
1 1 0
0 2 1
1 0 2
观察上面的数据矩阵,第一列为第一个特征维度,有两种取值0\1. 所以对应编码方式为10 、01,
同理,第二列为第二个特征维度,有三种取值0\1\2,所以对应编码方式为100、010、001,
同理,第三列为第三个特征维度,有四中取值0\1\2\3,所以对应编码方式为1000、0100、0010、0001,
再看要进行编码的参数[0 , 1, 3], 0作为第一个特征编码为10, 1作为第二个特征编码为010, 3作为第三个特征编码为0001. 故此编码结果为 1 0 0 1 0 0 0 0 1
- 举例:
-
label encoding就是用标签进行编码的意思,即将原