转换类别属性量的一般方法
数据分析中经常会遇到类别属性,比如日期,性别,街区编号,IP地址等. 绝大部分数据分析算法是无法直接处理这类变量,需要先把他们处理成数值型量.
取消字符
参考 sklearn.preprocessing.LabelEncoder. 加入一个属性有 N N 个不同的值,通过这个函数将把它转换到 上的整数. 转换后的属性具有了次序和可比较性,这个两个属性源属性值未必具备,是利是弊视具体应用而定.编码
离散型数值对某些算法是可以进行训练的,比如决策树, 但是对于SVM/神经网络而言依然不合适,我们需要对其进行编码.- one-hot-encoding
参考 sklearn.preprocessing.OneHotEncoder
离散型属性有 N N 个不同的值,则可以用长度为 二进制序列 (b0,b1,b2,...,bN−1) ( b 0 , b 1 , b 2 , . . . , b N − 1 ) 表示, bi b i 有且只有一个为 1 1 ,其他为 . 假设离散属性只有三个不同的值
{ A,B,C} { A , B , C }
属性值 二进制序列 A 001 B 010 C 100 one-hot-encoding后会增加 N N 列
- 均值编码
如上所述, one-hot-encoding后会增加
- one-hot-encoding