关注点:如何为知识发现收集充分的数据?
数据精练所要解决的关键问题就是,将储存在不同业务系统中的原始数据汇聚在一起,并解决其中存在的数据质量问题。数据精练是数据工程中最核心的部分,主要通过数据统一、数据分类以及数据遗补等步骤完成。
为了更好地理解数据精练的各步骤的意义,先让我们来归纳一下在数据收集、数据系统中所产生的数据质量问题。
实施目标:重视数据质量,提高数据精度
√ 充分认识信用卡业务中现有的数据质量问题
√ 通过数据精练过程提高数据在未来的可用性
数据质量问题
表5.1是一个典型的原始数据库,我们以此为例来说明经常发生的数据质量问题。
数据缺失
数据缺失是最常见的一种数据质量问题,数据缺失的严重程度往往与该数据是否为必填信息有关。在表5.1中数据缺失的情况有:
字段取值为空:这种情况的数据缺失是最常见的,也是最容易被识别出来的。例如,表中孙明的性别信息字段没有取值,便可以明确认定孙明的性别信息为缺失。
有规定的默认值:有明确的文件记录或说明,在相应字段的录入或存储过程中,遇到缺失值按照规定的默认值存放,这种数据缺失的情况一般也比较容易识别。例如,规定“如果没有填写是否已持有信用卡信息,则填写为‘—’”,可见客户刘岩缺失“是否已持有信用卡”的记录。
数据取值超出可接受范围:对于字段的缺失值没有明确的默认值规定,但其取值超出正常范围,这种情况往往需要通过其他信息来判定是否为缺失值。例如,张强、赵清的年龄取值均为“00”而均持有信用卡,显然这种情况是不可能存在的,因此判断张强、赵清的年龄信息应为缺失。
另外一种数据缺失的情况是,随着时间的变化需要增加新的字段,在新增字段中只有政策变化以后进来的新客户的记录,而没有老客户的相关记录。对这种情况造成的数据缺失,需要对相关的政策变动及时了解和掌握。
数据错误
数据错误同样是很常见的一类数据质量问题,并且识别这种数据质量问题的难度相对较大,更多的需要从前端的数据填写、数据录入进行严格控制,以减少其产生。常见的几类数据错误有:
录入错误:录入人员不能保证百分之百正确,总是会产生一些错误,???如,拼写错误、位置填写错误、录入规则的错误执行等。
不符合相关常识/规则:有一些数据错误是可以根据一些常识和规则判断出来的。例如,在中国内地,固定电话号码的位数一般为7位或8位,因此如果在固定电话信息中出现其他位数的数据串,则说明该固定电话号码是错误的。再如,手机号码应该为11位,出现其他位数也说明数据存在质量问题。比如,表5.1中张强的手机号为13位,显然是一个错误的信息。
由相关信息判断的错误:不同字段之间往往存在着相关性,单独判断其中一个字段可能不会发现错误,但如果将相关字段的信息联系起来考虑可能就会发现其中的错误。例如,表5.1中客户赵清所填写的公司名称为“7-11超市”,但客户的行业分类为“高级科研机构”,显然这两种信息之间存在矛盾。由于公司名称是由客户自己提供的,而行业分类是人工判断的,因此前者错误的概率相对较低,可以判断行业分类存在数据错误。
数据不一致
数据不一致可以分为两大类:一类是两个数据文件之间的数据不一致,另一类是同一个数据文件中不同记录之间的数据不一致。
参考表5.1和表5.2,可以了解到不同数据文件之间的数据不一致,主要有如下几种情况:
文件生成时间不同导致数据不一致:一些数据将随着时间的变化而产生变动。例如,年龄,从表5.1和表5.2的比较中可以看出,两个表格生成时间不同,因此导致客户的年龄不同。
记录错误导致数据不一致:在表5.1和表5.2中,客户赵清的性别信息不一致,一般来说,这种信息很难随时间发生变化,因此有可能是数据错误导致两个文件的记录不一致。
缺乏相关记录导致数据不一致:比较两个表格发现,在表5.1中有关于孙明的记录,而表5.2中不存在孙明的记录。造成这种不一致的原因,有可能是孙明是2005年的新客户,也有可能是表5.2中丢失了关于客户孙明的记录,因此不仅要发现数据不一致,还需要进一步分析产生这种情况的原因。
参照表5.1,了解相同文件中可能存在的数据不一致的情况有:
不同客户信息比较确定数据不一致:在表5.1中,客户张岚、张强同来自于英特尔公司,但是所填写的公司性质信息不同。因此,通过比较可以发现其中存在数据不一致问题。
相同客户记录比较确定数据不一致:在表5.1中,关于客户张强有两条记录,但是两条记录中关于客户年龄的数据取值不同。因此,发现相同客户的数据存在不一致现象。
数据不完整
数据不完整的情况主要有如下几类:
数据文件的记录不完整:形成这种情况的原因可能有很多,有可能是因为仅按照需要的条件提取了部分记录而其余记录丢失,也有可能因为系统原因导致部分记录丢失等。
数据观测不完整:这种情况一般是由于连续事件发生的整个过程没有全部落入我们所观察的时间段内,或者是数据超出了一般的统计范围,因而导致数据不完整。
数据格式不标准/多元信息字段
数据格式不标准主要指,数据不规范或者未按照指定的数据格式/内容填写。标准的数据格式将为未来的数据分析和数据挖掘工作提供很大的便利,特别是文书数据,不标准的文本数据则很难进行分析,而且对文本数据进行标准化处理难度也相对大很多。下面举例说明常见的几种数据格式不标准/多元信息的情况:
相同内容书写形式不同:常见的情况包括公司名称、商户名称等的写法,例如同样来自ABC公司的客户,他们所提供的公司名称可能有很多种:ABC公司、ABC有限公司、ABC【中国】有限公司、ABC有限公司【中国】等。有的公司还存在不同的简称,由于公司名称的形式不标准,导致很难对同一家公司的客户进行统计和分析。
填写多余的信息:主要的表现形式就是填写的内容包含了规定内容以外的信息。同样以公司名称字段为例,有些客户可能除了公司名称之外,还加入了所在部门名称、任职职位等。
未按照规定的内容填写:这种情况主要发生在已规定了数据的可能取值内容和形式,但所记录的内容未在规定范围之内。例如,规定客户性别的取值为“F”【代表男】和“M”【代表女】,但有些数据记录为“Female”或“Male”,显然不符合规定的要求,为不标准的数据格式。
缺乏对数据格式的明确要求:缺乏对数据格式的明确要求,将导致数据的填写和录入非常随意。例如,如果没有明确固定电话号码中区号与电话号码的连接方式,那么将出现×××-87654321、×××*87654321、×××【87654321】等多种形式,很难进行统计和分析。
字段设计时所包含的信息过多:这种情况主要是由于缺乏合理的计划所导致的。例如,地址信息字段中包含省、市、区、街道等多种信息元素,很难进行区分。
缺少用于匹配的关键字
在实际的数据处理过程中,经常会遇到需要将两个相关的数据文件进行连接或合并的情况,这种操作必须要有能够进行匹配的关键字才能实现,但有时会出现缺少可以进行精确匹配的关键字。参见表5.1和表5.3:
显然表5.3中没有客户身份证号码的记录,因此很难实现表5.1与表5.3之间的唯一匹配,我们无法判断表5.1中的张强应该对应表5.3中的哪一条记录,同样孙明的记录也无法实现准确匹配。
另外,表面上看起来,表5.3中的刘岩的信息很容易与表5.1中刘岩的信息进行匹配,但是我们是否能够确认两个表格中的刘岩是指同一个人?
数据重复
由于数据不断的累积或人工的重复输入经常会导致数据重复问题,这种问题的存在会影响运营效率、提高运营成本,需要特别注意。例如,在直邮过程中,如果客户信息重复,将导致邮件的重复寄出,既浪费了成本,又降低了客户满意度。
数据精练
数据精练的流程包括五个步骤,每个步骤主要解决的数据质量问题如下【见表5.4】:
数据统一
企业数据库中数据不统一的情况有两种:格式不统一和定义不统一。
前者是指相同的信息被书写或录入成不同的形式。如表5.5所示,相同的公司名称在原始数据中被书写成了三种形式。如果不进行统一化,系统就会默认为三个不同的信息。实际操作中,一般可以用具有自我学习功能的地址软件,将其中一种常用的、信息较为完整的书写形式设定为标准形式,其他书写形式与其建立对应关系,并统一成标准形式。由于从各个地方获取的原始数据库经常会出现不同的格式和代码,在数据统一化阶段,不同数据库将会被统一化成形式统一的数据库,以方便后续的数据处理工作。
定义不统一一般是由于企业各个数据库系统不统一而造成的。这就需要企业对数据库中的每个变量都要有清晰的定义,可以通过建立两个数据库变量间的换算关系而使数据定义统一化。
数据统一化使数据库间能够相互比较,数据的辨认度提高,可为后续工作带来很大的便利。将地址统一化后,我们可以在相同地址后面附上同一地址编号,以此判断居住人的社会阶层,辅以电话号码的格式化,建立客户家庭关系网络。同样,通过公司名称标准化和商户名称标准化,建立客户同事关系网络,相同商户的总店与分店的关系网络等。
数据分类
原始数据中还存在另外一类问题阻碍着未来的分析工作,即关于变量分类的问题,主要存在变量分类不准确、不细致,变量分类不符合分析需要等问题,需要对这些原始数据重新设置分类标准,并借助相关的外部数据,进行变量类别的重新划分,这一过程称为数据分类。我们可以对客户职业进行分类,例如,依据《国民经济行业分类标准》建立新的行业分类准则,将行业细分为三级,共15大类,98小类。我们还可以对商户进行分类,比如,按照分析需要重新建立商户的两级分类标准,分为“衣、食、住、行、用”等10大类、69小类。
数据分类将原始数据进行了有意义的细分之后,大大减轻了后续数据挖掘的工作难度。例如,行业分类在后续分析中可以有效地帮助分析人员准确地了解客户的职业特征和经济水平等信息,商户分类则有助于后续分析中合作商户的确立、管理以及客户消费偏好的识别。
数据遗补
数据遗补是通过衍生出新的变量,对数据的缺失值进行补充。原始数据中缺失值的补充主要采用两种方法:一种是相关数据之间的相互补充,例如,通过家庭成员关系的确立来补充家庭电话和地址,依据身份证号码及其编码规则补充性别或年龄信息的缺失值等;另一种则是通过数据统计的方法来推测缺失的信息,例如,通过行业、职位、学历、公司地点等信息建立模型补充收入数据。下面以“婚姻状况”为例,说明如何通过两种遗补方法找到缺省的信息。
据统计,婚姻状态数据缺失和变更情况比较严重,并且婚姻状态及其变更情况与客户的用卡行为之间总会存在一定的联系,因此需要及时对该变量进行补充和更新,主要采用如下两种方法:
相关变量信息进行修正和补充:在客户所提供的申请资料中,除了有直接记录客户婚姻状态的字段外,还包括一些间接反映客户婚姻情况的数据。例如,客户与其联系人之间的关系,如果客户婚姻状态填写为“未婚”或者未填写,而客户与其联系人之间的关系填写为“妻子”或“丈夫”,那么就可以将其婚姻状态更新为“已婚”。
通过建立模型进行预测:一些与婚姻状态相关的变量,如上述的“与联系人关系”变量,能够明确判断客户的婚姻状态情况;而另外一些变量能够在一定程度上反映客户的婚姻状态,却不能给予确定的答案,则需要通过模型进行预测,预测的结果一般仅用来对婚姻状态的缺失值进行补充。如果客户已经填写了婚姻状态,则以客户填写内容为准。例如,通过年龄变量对客户婚姻状态进行预测,可以得到各年龄段中已婚/未婚比例分布情况。如图5.2所示,依据分布情况确定补充规则:客户年龄25岁以下,将婚姻状态缺失值补充为“未婚”;客户年龄36岁以上,将婚姻状态缺失值补充为“已婚”。
数据精练举例
整个数据精练过程是数据统一化、数据分类和数据遗补的综合,需要针对数据库中所存在的数据质量问题,有侧重点地采取其中的全部或部分步骤,将原始数据精练为数据信息。下面分别通过人生阶段、社会阶层、联系信息的数据精练来说明实际操作过程。
人生阶段分析
该变量需要的数据主要包括客户的年龄、性别、婚姻状态等。这几种原始数据中经常会存在一些数据缺失、错误及过时等问题,因此需要对这些数据进行补充、纠正和更新。
·年龄
关于年龄的信息,通常系统中没有直接进行记录,而是记录客户的生日,需要通过时间换算来得到客户的年龄信息。因此,客户年龄信息的准确程度直接取决于客户所填写的生日信息。由于这类信息一般为必填项,缺失的情况很少,因此比较常见的数据质量问题即生日有误,可能是客户填写错误,也可能为人工录入错误。
针对这一问题,我们可以通过客户所填写的身份证号码,并依据身份证号码的编码规则进行修正。依据身份证号码【由于身份证号码的保密性,号码前六位的数字信息以“×”代替】提取客户生日,举例如下:
旧身份证号码:××××××810112001,则可以判断客户生日为1981年1月12日。
新身份证号码:××××××196011200024,则可以判断客户生日为1960年11月20日。
将从身份证号码中提取的生日信息与原始生日信息比较,如果不同则以身份证所提取的生日为准,通过根据实际分析的日期需要,计算当时的客户年龄,生成新的字段,以备分析使用。
·性别
性别信息缺失和错误的概率比较低,有时可能出现录入格式或内容不规范。对于性别信息偶尔出现的数据质量问题,也可以借助身份证号码及其编码规则,提取准确的性别信息加以补充和修正,举例如下:
旧身份证号码:××××××810112001,后三位为顺序码,奇数分配给男性,偶数分配给女性,从后三位为奇数判断该客户为“男性”。