1. 分类数据和顺序数据
在建模中,很多时候无法直接处理非数值型变量。
例如KMeans算法中基于距离相似度的计算,字符串无法计算距离;再比如Numpy以及Numpy的sklearn中,虽然这些库允许直接使用和存储字符串型变量,但无法发挥矩阵计算优势。
这些类型的数据可以分为两类:
1. 分类数据:例如性别中的男、女;颜色中的红、黄、蓝,它们是相同衡量维度上的不同属性而已。
2. 顺序数据:例如用户价值度分为高、中、低,学历分为博士、硕士、学士。在顺序数据中,有明显的排序规律和逻辑层次的划分。
2. 运用标志方法处理分类和顺序数据
分类数据和顺序数据参与模型的计算,通常都会转化为数值型数据。当然,某些算法允许这些数值参与计算,例如分类算法中的决策树、关联规则等。
将非数值型数据转换为数值型数据的最佳方法:将所有分类或顺序变量的值域从一列多值的形态转换为多列只包含真值的形态。其中真值可通过True、False或0、1的方式来表示。这种标志转换的方法也称真值转换。如表所示:
为什么不能直接使用数字来表示不同的分类和顺序数据,而一定要做标志转换?
因为数字直接表示分类和顺序变量不能体现不同类别信息之间的差异和相关性。