分类数据和顺序数据是什么
在数据建模过程中,很多算法无法直接处理非数值型的变量。另外,即使算法本身支持,很多算法实现包也无法直接基于字符串做矩阵运算。
这些类型的数据变量可以分为两类:分类数据和顺序数据
- 分类数据:分类数据指某些数据属性只能归于某一类别的非数值型数据,例如性别中的男、女就是分类数据。分类数据中的值没有明显的高、低、大、小等包含等级、顺序、排序、好坏等逻辑的划分,只是用来区分两个或多个具有相同或相当价值的属性。例如:性别中的男和女,颜色中的红、黄和蓝,它们都是相同衡量维度上的不同属性分类而已。
- 顺序数据:顺序数据只能归于某一有序类别的非数值型数据,例如用户的价值度分为高、中、低,学历分为博士、硕士、学士,这些都属于顺序数据。在顺序数据中,有明显的排序规律和逻辑层次的划分。例如:高价值的用户就比低价值的用户价值高(业务定义该分类时已经赋予了这样的价值含义)。
运用标志方法处理分类和顺序变量
分类数据和顺序数据要参与模型计算,通常都会转化为数值型数据。当然,某些算法是允许这些数据直接参与计算的,例如分类算法中的决策树、关联规则等。将非数值型数据转换为数值型数据的最佳方法是:将所有分类或顺序变量的值域从一列多值的形态转换为多列只包含真值的形态,其中的真值可用True、False或0、1的方式来表示。
为什么一定要做标志转换,不能直接用数字来表示
这是因为在用数字直接表示分类和顺序变量的过程中,无法准确还原不同类别信息之间的信息差异和相互关联性。
- 针对分类数据:性别变量的属性值是男和女,无论用什么值来表示都无法表达出两个值的价值相等且带有区分的含义。如果用1和2区分,那么1和2本身已经带有距离为1的差异,但实际上二者是不具有这种差异性的,其他任意数字都是如此;如果用相同的数字来表示,则无法达到区分的目的。
- 针对顺序数据:学历变量的属性值是博士、硕士和学士,可以用3-2-1来表示顺序和排列关系,那么如何表示3个值之间的差异是3-2-1而不是30-20-10或者1000-100-2呢?因此,任何一个有序数字的排序也都无法准确表达出顺序数据的差异性。