大数据分析很多时候一般都有预处理过程或步骤,请问有什么方法论或者思路吗?

0
已邀请:
1

浩彬老撕 - 数据分析/数据挖掘专家,目前任职于IBM认知计算部门,曾担任SPSS技术工程师,现在负责IBM预测性客户智能方案。 2016-05-22 回答

建议结合数据理解和数据处理一起研究这个问题,完整文章可以参考:数据科学的商业实践征程

(1)数据理解
数据提供了数据挖掘的“原材料”。该阶段需要理解您的数据资源是什么,以及这些资源有何特征。

首先我们需要与业务部门以及数据管理员确定:

(1)在他们的认知当中,哪些数据可以用来预测客户流失?

(2)哪些数据是已经在咱们的系统当中?

(3)是否有一些重要的影响因素还没记录或者需要一定代价才能获取?

另外如果咱们的数据量特别的大,这个时候也可以借助抽样的方式进行一些简单的探索。

在确定好分析的数据源后,我们还需要确定这些数据当中每个指标的业务含义是什么,了解业务含义和统计口径对于我们后续分析非常的重要,这决定了我们对数据的处理方式,另外在很多的项目当中,不同数据源获取的同一指标数据,统计口径经常会存在一定的差异。

例如在电信行业里面会有“高峰时期电话数”这个指标,设置这个指标的业务根据是什么?例如:高峰时期的定义是从什么时候到什么时候?这个指标是按天统计,按周统计还是按月统计?这个指标是计算呼入还是呼出,还是一并统计?

最后,我们还需要对数据进行一定的探索性分析。

1、一般我们会先对数据质量进行分析,例如:

(1)缺失值:对于分类字段,缺失值处理我们可以选择众数,连续字段可以选择平均值/中位数,或者通过回归进行插补。

(2)极值,离群值:查看连续字段是否拥有极值和离群值,我们一般用n倍标准差定义。对于这些离群值,我们可选择:删除记录,把离群值进行代替;

另外,如果离群值数量比较多,也可以考虑单独把离群值数据单独抽取出来单独分析。


(3)我们也需要查看分类型指标里面的种类数量有多少:例如一个分类指标如果超过上百个分类的话,明显就会存在问题,这时候我们可以考虑:过滤该字段,对字段采取合并等方式。这个问题在我们研究商品分类中特别常见。

以上是数据质量的简单介绍。

2、进一步地,我们也可以借助分布图,箱线图地查看数据的分布情况,查看数据分布是否符合一般认知。

3、还有的是,我们可以结合数据的偏度和峰度进行辅助分析,同时也会计算算式平均值,中位数,1/4分位数以及3/4分位数等常用的统计指标。

4、当然,进行数据探索,我们在这个阶段也可以进行一些简单的数据分析,例如计算相关系数矩阵(统计指标之间的关系),也可以简单做一些t检验以及卡方检验帮助我们进行一些变量筛选,在一个工业项目中,我们就试过用t检验选择连续变量,卡方检验选择分类变量。

另外值得注意的是,当数据分布与业务认知存在一定冲突的时候,也不一定是数据质量存在问题,相反应该细心求证出现偏差的原因,这些不一致的情况或者说异常往往代表了一个好的切入点。

这个切入点通常就是项目当中比较好玩的地方了。例如我们在一个客户的项目当中也曾遇到过下面某地市门店他们存在大量深夜交易。(深夜11点,一个买衣服的品牌)

最后我们就发现,这是因为店长习惯晚上下班后一次性对交易进行录入,她告诉我们这样很方便。也遇到过会员系统当中存在会员积分比起平均积分要高几十倍的会员。

你以为我们找到了超级会员吗~最后发现是店员把非会员的购买都算到自己偷开的会员卡中(这个事情在业务上不一定是错的)。另外我们也遇到了一些购买数量特别高的人群,最后我们单独把这类人群单独拿出来分析。

(2)数据准备
在对数据进行充分理解的基础上,我们就要生成能够满足数据挖掘需要的数据宽表。在此阶段,我们需要集中精力在数据准备上,往往一个项目超过60%的时间都放在数据理解和数据清洗上面。

我经常和其他人开玩笑说,一个项目里面60%时间都是用于数据准备上面,你觉得剩下的40%是什么?

你以为剩下的40%是建模分析?其实10%才是建模分析,剩下的30%都是用来吐槽数据质量问题的。




因为在上面已经简单讨论了缺失值和离群值问题。一般除了这些,我们还需要:


(1)处理无效值:如未知,如年龄显示100,一般采取与缺失值类似的方式;


(2)修改不合规字段:如某些记录后面出现空格:如套餐198  ;

(3)编码方式/统计口径不一致的问题:如统计方式,统计范围,统计单位等。

进一步地,通常我们在做好数据清洗后,我们要对数据进行一系列的加工,生成一张用于数据挖掘用的宽表。

值得注意的是这是一个需要不断调整优化的过程,举个例子有可能原始的变量个数有50个;通过我们对变量的转换和衍生,生成了100个变量;最后通过对业务的理解,模型的测试,从100个变量当中选择新的50个变量进行分析。

这里介绍一些咱们常用数据转换方式:

1、单变量自身转换:




(1)连续变量转为为连续变量:如出于计量和比较进行转换,如转换单位:通话小时数->通话分钟数的;出于对数据分布修订的转换,如:对数据对数转换;为了使不同量纲或者不同数量级的数据能够很好地进行对比,对数据标准化(原始值-平均值)/标准差,一般在聚类的时候,对数据先进行标准化也是一种必要手段;

(2)连续变量转换为离散变量:一般这种转换会损失一定的信息,但是出于业务更好理解的考虑或者算法的需要,采取的措施一般是利用分箱处理,一般可以选择等距离分箱或者等数量分箱,也有利用分布进行分箱的;

(3)离散变量转换为连续变量:这种方式我比较少用,一般只是一些有序的分类变量转换为1,2,3,4;

(4)离散变量转换为离散变量:一般用于一个变量当中包含有多个类别,我们对变量采取合并,例如运营商信息的省份字段,我们可以把省份归纳为东部,西部,南部等,也可以按照经济水平进行区分。

除了单变量的衍生,我们更多的还有变量之间的衍生。

2、变量之间的衍生


(1)汇总型指标:这个大家比较常见,例如我们统计一个客户在过去一年当中的消费/通话行为,例如计算一年内通话时长的总和,平均值,最大值,最小值,1/4分位数,3/4分位数,标准差,通过这些指标,我们希望整体判断通话状况;值得注意的是,这里面的指标我们一般只会选择少量假如模型,因为这些指标间本身也有比较强的相关关系,很可能导致多重共线性的问题,虽然我对这个问题一般比较看得开。

(2)强度相对指标:简单的如平均通话时长,就是用总的通话时间/通话次数所得,我们希望用这个指标侧面了解每个客户的通话习惯。

(3)比例相对指标:就是直接反映总体总各部分的比例关系,这在客户行为研究用得特别的多,例如我们分析一个客户在闲时的通话时长占总体的比例,在周末通话时长占总体的比例等等,一般这种指标用于区分客户群体比较有用。

(4)时间对比指标:一般如果我们的原始数据包含几年的数据记录,我们就可以同比(16年5月通话时长/15年5月通话时长)或者环比(16年5月对于16年4月),这种指标在专门的时序分析中用得比较多,相对而言在其他方面比较少,一般我们更喜欢用趋势型指标代替时间对比指标。

(5)趋势型指标:在客户研究当中,尤其是研究客户价值/客户生命周期这两个主题当中,趋势类指标特别重要,例如我们希望了解每个客户的通话时长/交易金额从历史到现在,是一个向上的趋势,还是一个向下的趋势。这种指标非常有助于我们判断客户的生命周期价值实在提升还是存在潜在的流失可能,因为会借助回归分析方法(月份为自变量,每月通话时长/话费为因变量),最后得回归系数作为该指标。当然,这样的回归分析很有可能违反回归的前提条件,但是我们发觉这种指标在实际应用层面有很大的帮助。

(6)波动指标:另外除了研究变化趋势,我们也可以研究数据的波动情况,一般我们可以用标准差或变异系数来反映;
0

天善小编 - 微信直播问题收集 2016-05-15 回答

数据挖掘经理汪尚:挖掘的流程可以参考这个http://wiki.smartbi.com.cn/pag ... 58367

要回复问题请先登录注册