《数据挖掘与数据化运营实战》(第8章)

《数据挖掘与数据化运营实战》(第8章)

8 常见的数据处理技巧

8.1 数据的抽取要正确反映业务需求

如何尽量保证数据的抽取正确反映业务需求?

  • 真正熟悉业务背景
  • 确保抽取的数据所对应的当时业务背景与现在的业务需求即将应用的业务背景没有明显的重大改变

8.2 数据抽样

“抽样”对于数据分析和挖掘来说是一种常见的前期数据处理技术和手段

  • 主要原因是如果数据全集的规模太大,针对数据全集进行分析计算不但会消耗更多的运算资源,还会显著增加运算分析的时间,甚至太大的数据量在数据分析挖掘软件运行时崩溃,采用采样措施可以有效显著的降低这些负面影响;
  • 另一个常见使用场景就是,在有很多小概率事件、稀有事件的预测建模过程中,如果按照原始的数据全集,原始的稀有占比进行分析挖掘,0.2%的稀有事件很难通过数据挖掘得到有意义的预测和结论 ,因此需要通过采样措施,认为增加样本中的“稀有事件”的浓度和在样本中的占比。

在抽样的操作中,需注意:

  • 样本中输入变量的值域要与数据全集中输入变量的值域一致
  • 样本中输入变量的分布与数据全集中输入变量的分布保持一致,或高度相似
  • 样本中因变量的值域或者种类分布也要与数据全集中的目标变量值域或者种类的分布保持一致
  • 缺失值的分布,样本中缺失值的分布要与数据全集中缺失集的分布保持一致或者高度相似
  • 针对稀有事件建模师要采用抽样措施,由于抽样所造成的目标事件在样本中的浓度被认为放大了,样本中的事件与非事件的比例与数据全集中两者的比例不一致,因此,需要记得使用加权的方法恢复新样本对全体数据集的代表性,当然现在主流的数据挖掘软件,对这种加权恢复已经做了自动处理

8.3 分析数据的规模有哪些具体的要求

分析数据的规模,主要指用于数据分析挖掘建模时最起码的数据规模大小。重点是考量目标变量所对应的目标事件的数量。

一般情况下,数据挖掘建模过程中会将样本划分为三个子样本集:训练集、验证集、测试集,或者划分成两个子样本集:训练集和验证集,训练记得数量大概占总样本数量级的40%-70%,在理想的情况下,训练记得目标事件的数量应该有1000个,因为太少的目标事件样本基础上开发的模型缺乏稳定性,如果少于1000个,根据业务分析判断可行的话,也可以进行数据挖掘,只是需要更加关注模型的稳定性。

预测模型的自变量应该控制在8-20个之间,因为太少的自变量会对模型的稳定性造成威胁,任何一个自变量的缺失都会引起模型结果的显著变动,太多的自变量会因为模型变得复杂而不稳定。

训练集目标事件最好要在1000个以上,在此基础上,训练集的样本的规模应该在自变量数量的10倍以上,并且被预测的目标事件至少是自变量数目的6-8倍。

8.4 如何处理缺失值和异常值

数据缺失主要是因为数据存储错误,或者原始数据的缺少。在大多数情况下,需要对缺失数据进行处理,在个别情况下,比如应用决策树算法,该算法本身允许数据缺失值直接进入分析挖掘,因为在这种情况下缺失值本身已经被看做是一个特定的属性类别。

8.4.1 缺失值的常见处理方法

  1. 首先需要分析找到数据缺失的原因,然后进行判断是否需要对缺失值进行处理
  2. 如果要进行处理,可以选择直接删除带有缺失值的数据元组。这样做的好处在于留下来的数据都是有完整记录的,数据很干净,删除的步骤很简单,但是,如果缺失的比例很大的话,留下来的数据量就很小,不足以进行有效的数据挖掘,这种方法仅适用于缺失值比例很小,并且后期打分应用中数据的缺失值比例也很少的情况
  3. 直接删除有大量缺失值的变量。针对于那些确实只占比超过相当比例变量,比如缺失值超过20%或者更多
  4. 对缺失值进行替换。可以利用全集中的代表性属性,诸如众数或者均值等,或者人为定义一个数据去代替缺失值的情况,对于类别型变量,用众数或者一个崭新的类别进行代替,对于次序型变量和区间型变量,用中间值、众数、最大值、最小值、用户定义的任意其他值、平均值或仅针对区间型变量来代替缺失值
  5. 对缺失值进行赋值。通过诸如回归模型、决策树模型、贝叶斯定理等去预测最近替代值,就是把缺失数据所对应的变量作为目标变量,把其他的输入变量作为自变量,为每个需要进行缺失值复制的字段分别建立预测模型,从理论上看,这种方法最严谨,但是成本较高,包括时间成本和分析资源的投入成本

8.4.2 异常值的判断和处理

数据成本中的异常值(outlier)指的是一个类别型变量里某个类别值出现的次数太少、太稀有,或者一个区间型变量里某些取值太大。

异常值的判断:

  • 对于类别型的变量,某个类别值出现的频率太小,太稀有,可能是异常值
  • 对于区间型变量,最简单有效的方法就是把所有的观察对象按照变量的取值从小到大进行排列,然后从最大的数值进行倒推0.1%甚至更多,这些最大的数值可能就是异常值,另外一个常用的判断方法就是标准差,根据不同的业务背景和变量的业务含义,把超过均值n个标准差以上的取值定义为异常值

对于异常值,在多数情况下,异常值的删除可以有效的降低数据的波动,使模型更加稳定,但是在某些业务场景下,异常值的应用缺失另一个专门的业务方向。

8.5 数据转换

由于原始数据,主要是指区间型变量的分布不平滑(有噪声)、不对称分布,使得数据转换成为一种非常重要的技术手段,根据转化逻辑和转换目的,主要分为四类:

A.生成衍生变量
通过对原始数据进行简单、适当的数学公式推导,产生更加具有商业意义的新变量。如:用户月均、年均消费金额,特定商品类目消费金额占其全部消费金额的比例,家庭人均年收入等。

B.改善变量分布的转换
通过各种数学转换,使得自变量的分布呈现(或近似)正态分布,并形成倒钟型曲线,常见的改善分布的转换措施有:取对数、开平方根、取倒数、开平方、取指数。

C.区间型变量的分箱转换
分箱转换就是区间型变量就是把区间型变量转换成次序型变量,主要目的是降低变量的复杂性、简化数据,提升自变量的预测能力,如果分箱恰当,是可以有效提升自变量和因变量的相关性的,可以显著提升模型的预测效率和效果,尤其是当自变量和因变量之间有比较明显的非线性关系,分享操作跟是不错的手段,另外,当自变量的偏度很大时,也是一个值得积极尝试的方法。

D.针对区间型变量进行标准化操作
数据标准化转化的主要目的是将数据按照比例进行缩放,使之落入一个小的区间范围之内,使得不同的变量经过标准化后可以有平等的分析和比较的基础。

最简单的数据标准化转换是Min-Max标准化,也叫离差标准化,是对原始数据进行线性转换,使得结果在【0,1】区间
x*=(x-min)/(max-min)

8.6 筛选有效的输入变量

8.6.1 为什么要筛选有效的输入变量?

筛选有效的输入变量既可以提高模型稳定性,也是提高模型预测能力的需要,过多的输入变量会产生共线性问题。

在筛选变量之前,可以直接删除明显的无明显的变量,比如:常数变量或者只有一个值的变量、缺失值比例很高的变量(例如缺失值高达95%),取值太泛的类别型变量。

8.6.2 筛选的思路

A:结合业务经验进行先行筛选

B: 用线性相关性指标进行初步筛选
最简单、最常用的方法就是通过自变量之间的线性相关性指标进行初步筛选。其中,皮尔逊相关系数(Pearson Correlation)最为常用,其主要用于比例型变量与比例型变量、区间型变量与区间型变量,以及二元变量与区间型变量之间的线性关系描述。其公式如下:
《数据挖掘与数据化运营实战》(第8章)

  • |r|<0.3 表示低度线性相关
  • 0.3<=|r|<0.5 表示中低度线性相关
  • 0.5<=|r|<0.8 表示中度线性相关
  • 0.8<=|r|<1.0 表示高度线性相关

如果自变量属于中度以上线性相关(>0.6以上),多个变量只需要保留一个就可以了。

来自样本的统计结果,需要通过显著性检验才能知道其是否适用于针对总体数据的相关性。

显著性检验:针对我们队总体所做的假设做检验,其原理就是“小概率事件实际不可能性原理”来接受或者否定。

尽管有时候上述公式计算出来的相关系数r等于0,但是也只能说明线性关系不存在,不能排除变量之间存在其他形式的相关关系,比如曲线关系。

某个自变量和因变量的线性相关性很小,但是可以通过跟其他自变量结合在一起让其成为预测力很强的自变量。

8.6.3 R平方

R平方(R-Square)该方法将借鉴多元线性回归的分析算法来判断和选择对目标变量有重要预测意义及价值的自变量。通俗的说,就是R平方表示模型输入的各自变量在多大程度上可以解释目标变量的可变性,取值范围在【0,1】之间,R2越大,说明模型的拟合越好。
《数据挖掘与数据化运营实战》(第8章)

  • SSE称为残差平方和,由其他因素引起的
  • SSR称为回归平方和,由自变量引起的
  • SST称为总平方和,反映的是因变量Y的波动程度

在回归方程中,回归平方和越大,回归效果越好,
统计量《数据挖掘与数据化运营实战》(第8章)

8.6.4 卡方检验

卡方检验在统计学里属于非参数检验,主要用来度量类别性变量,包括次序型变量等定性变量之间的关联性以及比较两个或者两个以上的样本率,基本思想就是比较理论频数和实际频数的吻合程度或拟合度,主要用于二元变量。

8.6.5 IV和WOE

当目标变量是二元变量,自变量是区间型变量时,可以通过IV和WOE进行自变量的判断和取舍,在应用IV和WOE的时候,需要把区间型变量转换成类别性(次序型)自变量,同时要强调目标变量必须是二元变量,这两点是使用IV和WOE的前提条件。

一个变量的总的预测能力是通过IV来表现的,它是该变量的各个属性的WOE的加权总和,IV代表了该变量区分目标变量中的事件与非事件的能力。

与IV有相似左右的一个变量是Gini分数,其计算步骤如下:

  1. 根据该字段的每个属性包含的预测事件和非事件的比率,按照各属性的比率的降序进行排列
  2. 针对排序后的每个组,分别计算该组内的事件数量和非事件数量
  3. 计算Gini分数

应用IV、WOE、Gini Score 指标时,可以在数据挖掘实践中实现以下目标:

  • 通过WOE的变化来调整出最佳的分箱阈值
  • 通过IV或者Gini分数,筛选出有较高预测价值的自变量,投入模型的训练中

8.6.6 部分建模算法自身的筛选功能

可供“借力”的算法或者模型:包括决策树模型、回归模型等。

8.6.7 降维的方法

主成分分析和变量聚类

8.7 共线性问题

共线性问题是困扰模型预测能力的一个常见问题,所谓共线性,又叫多重共线性,是指当自变量之间存在较强的,甚至完全的线性相关关系,当自变量之间高度相关是,模型参数会变得不稳定,模型的预测能力会降低,理论上来讲,输入变量之间除了共线性关系,也有可能存在非线性关系,这些非线性关系很有可能如共线性关系一样影响模型的预测能力。

8.7.1 如何发现共线性?

A.相关系数的方法,最常见的就是皮尔逊系数
B. 通过模型结论的观察,比如回归模型中,如果回归系数的标准差过大,就有可能意味着变量之间存在着共线性问题
C. 主成分分析,在主成分分析方法中,主成分里的系数,也就是主成分在和大小能从一定程度上反映出各个变量的相关性,比如,第一成分中,某几个原始变量的主成分载荷系数较大,且数值相近,就有可能存在共线性关系
D.根据业务经验判断,原本应该没有预测作用的变量突然之间变得有很强的统计性,有可能隐藏着共线性问题
E. 对变量进行聚类,通过对区域型变量进行聚类,同一类中的变量之间具有较强的相似性,可能隐藏共线性关系

8.7.2 如何处理共线性?

模型拟合度高,样本量大的时候,轻微的共线性可以适当的采用视而不见的方法,但是,当样本量较少,很轻微的共线性问题都可能导致参数的不稳定。

如果发生严重的共线性问题,可以采取如下措施:
A.对相关变量进行取舍,高度共线性的变量,选择爆率对业务方最有价值最有意义的变量
B.对相关变量进行组合,生成一个新的综合型变量
C.当我们利用相关变量通过线性的方式衍生出新的变量时,记得两者之间的共线性问题,并且及时删除相关的原始变量
D.尝试对相关变量进行一些形式的转换,恰当的转换,可以在一定的程度上减少甚至去除共线性关系