数据挖掘建模技术
数据的理解与准备

预处理数据,构造分析数据集

来源:数海时代  发布时间:2012-11-9 16:04:57  点击数:3454

   数据仓库系统中有可能存在着大量的噪声数据,引起的主要原因有:滥用缩写词、惯用语、数据输入错误、重复记录、丢失值、拼写变化等。即便是一个设计和规划良好的数据库系统,如果其中存在着大量的噪声数据,那么这个系统也是没有任何意义的,因为“垃圾进,垃圾出”(garbage in, garbage out),系统根本就不可能为决策分析系统提供任何支持。为了清除噪声数据,必须在数据库系统中进行数据清洗。
   一般情况下,数据仓库分为ODS、DW两部分,通常的做法是从业务系统到ODS做清洗,将脏数据和不完整数据过滤掉,再从ODS到DW的过程中转换,进行一些业务规则的计算和聚合。ETL即数据抽取(Extract)、转换(Transform)、装载(Load)的过程,将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。
一、选择数据

   确定并选择用于分析的数据。选择的标准包括与数据挖掘目标的相关性,数据质量以及技术性限制,例如对数据大小或数据类型的要求等。注意数据选择既包括数据表各种数据记录(行)的选择,同时也包括数据变量(列)的选择。当然,还要列出被选择/剔除的数据及其原因。
二、清理数据
   数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。不符合要求的数据主要是有不完整的数据、错误的数据和重复的数据三大类。
   不完整的数据:其特征是是一些应该有的信息缺失,如供应商的名称,分公司的名称,客户的区域信息缺失、业务系统中主表与明细表不能匹配等。需要将这一类数据过滤出来,按缺失的内容分别根据业务知识和逻辑进行补全,再写入数据仓库。
   错误的数据:产生原因是业务系统不够健全,在接收输入后没有进行判断直接写入后台数据库造成的,比如数值数据输成全角数字字符、字符串数据后面有一个回车、日期格式不正确、日期越界等。这一类数据也要分类,对于类似于全角字符、数据前后有不面见字符的问题只能写SQL的方式找出来,然后在业务系统修正之后抽取。日期格式不正确的或者是日期越界的这一类错误会导致ETL运行失败,这一类错误需要去业务系统数据库用SQL的方式挑出来,根据业务知识修正之后再抽取。
   重复的数据,特别是维表中比较常见,将重复的数据的记录所有字段导出来,最好由业务人员确认并整理。

   根据研究项目所初步选定的分析技术的要求,将数据质量提高到所需的水平。这一工作可能涉及选择干净的数据子集,插入适当的默认值或者使用更加大胆的处理技术,例如通过建模估测缺失值。同时为了清理数据,对数据所进行的转换。
   确定如何处理特定值(缺失值)及其含义。特定值可能会导致许多奇怪的结果产生,对此,研究者应仔细检查。例如,在一个调查中,当某些问题没有被问到,或者被访者未回答时,其结果中就会出现特定值,因为对于“无回答”数据,往往用“99”代替,而对于某些变量,“99”即为特定值,如婚姻状况,收入等。有时候数据被删节,也会如出现特定值。例如,对于年龄为“100”岁的人或者时速为“100,000”公里的汽车,其数值却被“00”代替,即为特定值。数据清洗是一个反复的过程,不可能在几天内完成,只有不断的发现问题,解决问题。
   数据清洗需要注意的是不要将有用的数据过滤掉了,对于每个过滤规则认真进行验证,另外对于是否过滤、是否修正一般要求业务人员确认。

   形成清理报告,针对数据理解阶段中检测数据质量任务所报告的数据质量问题,描述本阶段任务中所采取的决策和行动。报告对数据所进行的转换对分析结果的可能的影响。
三、构造数据
   构造数据和数据转换的任务,主要是进行不一致的数据转换、数据粒度的转换和一些商务规则的计算。这是一个建设性的数据准备工作,例如衍生变量的产生,全新的记录的产生或者现有变量值的转换。
   不一致数据转换:这个过程是一个整合的过程,将不同业务系统的相同类型的数据统一,比如同一个供应商在结算系统的编码是XX0001,而在CRM中编码是YY0001,这样在抽取过来之后统一转换成一个编码。B数据粒度的转换,业务系统一般存储非常明细的数据,而数据仓库中的数据是用来分析的,不需要非常明细的数据,一般情况下,会将业务系统数据按照数据仓库粒度进行聚合。

   商务规则的计算,不同的企业有不同的业务规则,不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在ETL中将这些数据指标计算好了之后存储在数据仓库中,供分析使用。

   生成衍生变量,这是最重要的新生的变量,来自于同一条记录中的一个或多个变量进行的变换或换算,例如,两个变量相除而衍生的比率、面积=长×宽、根据商业逻辑构建某种条件下的变量及其特定的取值。
四、整合数据
   形成合并的数据,这是一些如何从多个数据表格或数据记录中汇总,进而产生新记录或新值的方法。
   例如合并表格,是把那些有关同一对象,但载有不同信息的两个或以上的表格互相合并。例如,一个零售连锁店有一个关于每个零售店一般信息的数据表格(例如,建筑面积,商场类型),另外一个是有关汇总的销售信息的数据表格(例如,利润,较去年同期的销售变动百分比),还有一个是关于店铺周围人口信息的数据表格。这几个表格都包含有每一个零售店的一条相关记录。因此,这些表格可以合并为一个新的表格,一条记录就是一个零售店,并将几个表格中的变量栏汇总。
   例如汇总数据,是指将多个记录或多个数据表中的信息汇总起来,计算得出的新的数值。如将一个有关顾客购买的数据表格转化为一个新的数据表格。在原来的表格中,每条记录记载顾客的每一次购买行为。而在新的表格中,通过把顾客的购买信息加以汇总计算,使的新表格中每条记录记载每一个顾客的消费行为,含有购买数量,平均购买量,信用卡支付的比例,促销产品的购买比例等等变量。
由于数据资源之间的不一致性,因此经多个数据资源整合后所得到的数据可能存在着单个数据资源不存在的问题。
五、格式化数据
   由于有些分析方法对数据变量的顺序有所要求,因此需要事先在不改变数据原意的基础上,根据建模工具的需要将数据进行句法的改变。例如,每一条记录的第一列应为其唯一的标识或者最后一列应为模型预测的结果列。
   有时候改变数据集中记录的顺序也是非常重要的,建模工具可能需要数据记录根据某一输出变量的值进行排序。通常,一个比较常见的情形是数据集中的记录本来是按照一定顺序进行排列的,而某一建模的算法则却要求记录随机排列。例如,在使用神经网络时,数据记录最好是以随机方式排列,当然有些工具并不需要分析者的人为的外在处理,可以自动进行这一处理。
   此外,为了满足一些特殊的建模工具的要求,还要对数据进行纯粹的句法改变。例如,将那些以逗号区隔的数据文件中的文本栏中的逗号剔除,把所有的值压缩为最大32个字符。

 
分享到: