四、数据准备
在对数据进行充分理解的基础上,我们就要生成能够满足数据挖掘需要的数据宽表。在此阶段,我们需要集中精力在数据准备上,往往一个项目超过60%的时间都放在数据理解和数据准备上面。你以为剩下的40%是建模分析?其实10%才是建模分析,剩下的30%都是用来吐槽数据质量问题的。因为在上面已经简单讨论了缺失值和离群值问题。一般除了这些,我们还需要:
(1)处理无效值:如未知,如年龄显示100,一般采取与缺失值类似的方式;
(2)修改不合规字段:如某些记录后面出现空格:如套餐198 ;
(3)编码方式/统计口径不一致的问题:如统计方式,统计范围,统计单位等。
(4)数据的转换(数据的重构和整合)
值得注意的是这是一个需要不断调整优化的过程,举个例子有可能原始的变量个数有50个;通过我们对变量的转换和衍生,生成了100个变量;最后通过对业务的理解,模型的测试,从100个变量当中选择新的50个变量进行分析。
常用数据转换方式:
(1)单变量之间的转换
a)连续变量转为连续变量 b)连续变量转为离散变量
c)离散变量转换为连续变量 d)离散变量转化为离散变量
(2)变量之间的转换
a)汇总型指标 b)强度相对指标 c)比例相对指标
d)时间对比指标 e)趋势型指标 f)波动型指标
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)波动指标:一般我们可以用标准差或变异系数来反映。
五、建立模型
建立统计学习模型,简单是指利用一个(或多个)输入变量(一般称为为自变量,预测变量)通过拟合适当的关系式来预测输出变量(也称因变量,响应变量)的方法。
一般在商业实践当中,我们可以把统计/挖掘任务简单划分为预测和控制。预测还是控制,这个很重要。
在预测任务中,我们希望模型尽可能地精确,相反预测模型f的形式可能是一个黑箱模型(即模型的本身我们不能很好的解释或者并不清楚,我们更加关心模型中的输入和输出,并不试图考察其内部结构),只要能够提高我们的预测精度我们就认可达到目的了。
在这里,预测结果固然重要,但是我们也十分关心模型的形式具体是怎么样,或者借助统计挖掘模型帮助我们生成了怎样的判别规则。
例如:在银行业,我们希望通过客户的个人信用信息来评价个人的借贷风险,这就要求我们不但能够回答这个客户的风险是高是低,还要求我们回答哪些因素对客户风险高低有直接作用,每个因素的影响程度有多大。