机器学习-分类变量
有哪些分类变量
- Nominal variables:没有顺序的分类变量
- Ordinal variables:有顺序的分类变量。比如高、中、低
- Binary variables:二分类
- Cyclic variables:循环分类。例如周一到周日
如何处理分类变量
由于对计算机来说,它只能理解总共有多少类别,类别之间不同名称并没有什么区别,因此我们往往需要将类别转换成数字再后续操作。这种编码操作的常见操作有如下。
label encoding
创建一个字典将已有类别分别转换成0、1、2、3…这样的数字。在实际操作中还可以直接调用scikit-learn中的函数直接进行编码操作,不过调用函数之前需要先对数据中的NAN值进行处理,。
dense to sparse
由于许多模型并不支持十进制数的输入,所以将类别编码成数字之后还需要转换成二进制。这些数字编码往往是由矩阵的形式存储的,取值为0或1,为了节省空间,可以采用键值对的形式记录1的位置和值。
one hot encoding
将类别用一个向量表示,向量的长度等于类别总数N,向量中N-1个位置都为0,剩下一个为1,而1所在位置与向量表示的类别相对应。在实际操作中也可以条用scikit-learn中的函数直接进行独热编码。