深度解析数据挖掘中的数据理解和预处理( 二 )


对于定序自变量,最常用的转换方法就是按照类别程度将其直接转换成数值自变量,例如将空气污染程度 “差、良、优”转换为“1,2,3” 。
对于名义自变量,最常用的转换方法就是构造0-1型哑变量 。例如,对于“性别”,可以定义“1=男,0=女” 。当某个名义变量有K个类别取值时,则需要构造K-1个哑变量 。例如教育程度“小学,初中,高中,大学及以上”,可以构造三个哑变量分别为:x1:1=小学,0=其它;x2:1=初中,0=其它;x3:1=高中,0=其它 。当x1,x2,x3三个哑变量取值都为0时,则对应着“大学及以上” 。
需要注意的是,有时候名义变量的取值太多,会生成太多的哑变量,这很容易造成模型的过度拟合 。这时可以考虑只把观测比较多的几个类别单独拿出来,而把剩下所有的类别都归为“其它” 。例如,中国一共包含56个民族,如果每个民族都生成一个哑变量就会有55个,这时我们可以只考虑设置“是否为汉族”这一个0-1哑变量 。欢迎加入大数据学习交流分享群:一起吹水交流学习(?点击即可加入群聊)
【数值变量】
我们再来看看数值变量 。数值变量就是用数值描述,并且可以直接进行代数运算的变量,如“销售收入”、“固定资本”、“评论总数”、“访问量”、“学生成绩”等等都是数值变量 。
需要注意的是,用数值表示的变量不一定就是数值型变量,只有在代数运算下有意义的变量才是数值型变量 。例如财务报表的年份,上市时间等,虽然也是用数值表示的,但我们通常不将它们按照数值型变量来处理 。
上面我们讲到,分类变量通常要转换成数值型变量,其实有些时候,数值型变量也需要转换成分类变量,这就用到了“数据分箱”的方法 。为什么要进行数据分箱呢?通常有以下几个原因:
1. 数据的测量可能存在一定误差,没有那么准确,因此按照取值范围转换成不同类别是一个有效的平滑方法;
2.有些算法,如决策树模型,虽然可以处理数值型变量,但是当该变量有大量不重复的取值时,使用大于、小于、等于这些运算符时会考虑很多的情况,因此效率会很低,数据分箱的方法能很好的提高算法效率;
3.有些模型算法只能处理分类型自变量(如关联规则),因此也需要将数值变量进行分箱处理 。
数据分箱后,可以使用每个分箱内的均值、中位数、临界值等作为这个类别的代表值,也可以直接将不同取值范围定义成不同的类别,如:将污染程度划分后定义为“低、中、高”等 。
那如何进行数据分箱呢?常用的数据分箱的方法有:等宽分箱(将变量的取值范围划分成等宽的几个区间)、等频分箱(按照变量取值的分位数进行划分)、基于k均值聚类的分箱(将所有数据进行k均值聚类,所得的不同类别即为不同的分箱),还有一些有监督分箱方法,如:使分箱后的结果达到最小熵或最小描述长度等 。这里不详细介绍了,有兴趣的童鞋可以自行百度 。
三、质量检查
对数据中的各个变量有了初步了解后,我们还需要对数据进行严格的质量检查,如果数据质量不过关,还需要进行数据的清洗或修补工作 。一般来说,质量检查包括检查每个变量的缺失程度以及取值范围的合理性 。
【缺失检查】
原始数据中经常会存在各种各样的缺失现象 。有些指标的缺失是合理的,例如顾客只有使用过某个产品才能对这个产品的满意度进行评价,一笔贷款的抵押物中只有存在房地产,才会记录相应的房地产的价值情况等 。像这种允许缺失的变量是最难搞的,因为我们很难判断它的缺失是合理的,还是由于漏报造成的 。