8.6 筛选有效的输入变量

虽然“筛选有效的输入变量”属于模型搭建的技术问题,可以放在后面有关模型搭建的章节里做专门的介绍,但是这个问题在很大程度上也会涉及数据的清洗、整理、探索等数据处理的技巧,所以这里将“筛选有效的输入变量”作为数据处理技巧来进行深入讲解。

不同类型的模型对于输入变量的要求各不相同,在本书涉及的各种模型和各种项目中,鉴于预测(响应)和分类模型所涉及的变量的筛选最为复杂,最为常见,所以本节将聚焦预测(响应)和分类模型中的输入变量筛选进行深入讲解,至于聚类中的变量筛选将在9.3.3节做深入讲解,其他类型的模型和应用中的输入变量筛选相对来说非常直观和简单,将在相应章节中进行讲解。

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

为什么要筛选有效的输入变量?有以下3个方面的理由:

❑筛选有效的输入变量是提高模型稳定性的需要。过多的输入变量很可能会带来干扰和过拟合等问题,这会导致模型的稳定性下降,模型的效果变差。所以,优质的模型一定是遵循输入变量少而精原则的。

❑筛选有效的输入变量是提高模型预测能力的需要。过多地输入变量会产生共线性问题,所谓共线性是指自变量之间存在较强的,甚至是完全的线性相关性。当自变量之间高度相关时,数据的小小变化,比如误差的发生都会引起模型参数严重震荡,明显降低模型的预测能力,关于共线性问题,将在8.6.3节做详细介绍。并且,共线性的发生也增加了对模型结果的解释困难,因为要更深入地分析和判断每个自变量对目标变量的影响程度。

❑当然,筛选有效的输入变量也是提高运算速度和运算效率的需要。

在采取各种评价指标筛选有价值的输入变量之前,可以先直接删除明显的无价值的变量,这些明显的无价值变量包括的内容如下:

❑常数变量或者只有一个值的变量。

❑缺失值比例很高的变量,比如缺失值高达95%,或者视具体业务背景而定。

❑取值太泛的类别型变量,最常见的例子就是邮政编码,除非采取进一步措施将各个地区的编码整合,减少类别的数量,否则原始的邮政编码数据无法作为输入变量来提供起码的预测功能。

8.6.2 结合业务经验进行先行筛选

这是所有筛选自变量的方法中最核心、最关键、最重要的方法。在本书之前讲解的内容中也反复强调了业务经验和业务判断对数据挖掘的重要影响。正如数据挖掘商业实战的其他各个环节一样,筛选自变量的环节也应该引进业务专家的意见和建议,很多时候业务专家一针见血的商业敏感性可以有效缩小自变量的考察范围,准确圈定部分最有价值的预测变量,从而提高判断和筛选的效率。

另一方面,业务经验和业务专家的建议难免碎片化,也可能难以面面俱到,更关键的是业务经验和业务专家的建议也需要数据进行科学的验证。所以,在本章的后面的内容中,将详细介绍在数据挖掘实战领域里比较成熟、有效的方法和指标,用于筛选目标变量。在这里要强调的是,下面的具体介绍主要是从原理和算法上进行剖析的,读者只需要从思想上知道并了解这些方法背后的原理就可以了。在实战操作中,不需要大家运用这些最基础的公式进行繁琐的计算。目前有很多成熟的数据挖掘分析软件能够把这些繁琐的计算工作完成得很出色。作为数据分析人员只需要知道其中的原理、思路、分析方法就可以了。当然只有真正从思想上理解并掌握了这些具体的原理和思路,才可以在数据挖掘商业实战中游刃有余,得心应手;如果仅仅知其然,不知其所以然,在具体的数据挖掘商业实战中将会举步维艰,束手无策。

8.6.3 用线性相关性指标进行初步筛选

最简单、最常用的方法就是通过自变量之间的线性相关性指标进行初步筛选。其中,尤以皮尔逊相关系数(Pearson Correlation)最为常用。Pearson相关系数主要用于比例型变量与比例型变量、区间型变量与区间型变量,以及二元变量与区间型变量之间的线性关系描述。其计算公式如下:

00073.jpeg

线性相关性的相关系数r的取值范围为[-1,+1],根据经验来看,不同大小的r,表示不同程度的线性相关关系。

❑|r|<0.3,表示低度线性相关。

❑0.3≤|r|<0.5,表示中低度线性相关。

❑0.5≤|r|<0.8,表示中度线性相关。

❑0.8≤|r|<1.0,表示高度线性相关。

在建模前的变量筛选过程中,如果自变量属于中度以上线性相关的(>0.6以上)多个变量,只需要保留一个就可以了。

上述相关系数的计算公式只是从状态上计算了变量之间的相关关系,但是相关系数是通过样本数据得到的计算结果,来自样本的统计结果需要通过显著性检验才能知道其是否适用于针对总体数据的相关性。关于类似的统计显著性问题,作为统计分析中的基本知识,不在本书的讨论范围之内,并且在目前所有的分析软件里都可以自动计算,有心的读者可以自己在实践中进行体会和学习。

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

尽管线性相关性检验是模型的变量筛选中最常用也最直观的有效方法之一,但是在很多时候,某个自变量和因变量的线性相关性却很小,这时可以通过跟其他自变量结合在一起而让其成为预测力很强的自变量。正因为如此,在挑选输入变量的时候,应该多尝试不同的评价指标和不同的挑选方法,减少因采用单一方法而导致的误删除,避免在一棵树上吊死的情况发生。

8.6.4 R平方

R平方(R-Square),也叫做R2或Coefficient of Multiple Determination,该方法将借鉴多元线性回归的分析算法来判断和选择对目标变量有重要预测意义及价值的自变量。

最通俗的解释,R2表示模型输入的各自变量在多大程度上可以解释目标变量的可变性,R2的取值范围在[0,1]之间,R2越大,说明模型的拟合越好。R2的计算公式如下:

00074.jpeg

在上述R2公式中,R2表示回归方程拟合的好坏,R2∈(0,1),R2越大表示回归方程同样本观测值的拟合程度越好。R又被称为因变量Y与自变量X1,X2,…,Xp的样本复相关系数,它表示整体的X1,X2,…,Xp和Y的线性关系。

在R2计算公式中:

yi表示目标变量的真实值;

fi表示模型的预测值;

figure_0137_0076表示目标变量真实值的均值;

SSE称为残差平方和,自由度为P,P代表自变量的个数;

SST称为总平方和,自由度为N-1,N代表样本数量;

SSR称为回归平方和,自由度为N-P-1。

总平方和SST反映了因变量(目标变量)Y的波动程度,SST是由回归平方和SSR和残差平方和SSE两部分组成的。其中,回归平方和SSR是由解释变量,即自变量,输入变量X所引起的,残差平方和SSE是由其他随机因素所引起的。

在回归方程中,回归平方和越大,回归效果越好,因此可构造如下的统计量:

00076.jpeg

在零假设H0:β1=β2=…βp=0成立时(β为各自变量在回归方程中的回归系数),figure_0138_0078统计量服从自由度为(p,N-p-1)的f分布。如果给定显著水平α,则否定域为F>F1-α(p,N-p-1)。

当F值没有落在否定域之中时,零假设H0:β1=β2=…=βp=0成立,表明解释变量(自变量)X1,X2,…,Xp对因变量(目标变量)Y的多元线性回归不成立,X1,X2,…,Xp与Y之间没有显著的线性关系。

对于每个自变量Xi做偏回归显著性检验,其公式为:figure_0138_0079,其中,SSR-i为剔除变量Xi之后的回归平方和,SSR-SSR-i反映了在引入Xi之后,Xi对于回归平方和的贡献。

分别检查各自变量的Fi是否都大于相应的F0.05。

如果全部Fi都大于F0.05,则结束。

如果经检查发现有几个自变量的Fi小于F0.05,则每次只能删除其中的一个Xi,这个Xi是所有自变量中其Fi最无显著性的,然后再重新用剩下的自变量进行回归的构建,如此反复,直到所有的有显著性意义的自变量都进入回归方程,而没有显著性意义的变量都被剔除为止。

8.6.5 卡方检验

卡方检验(Chi-Square Statistics)在统计学里属于非参数检验,主要用来度量类别型变量,包括次序型变量等定性变量之间的关联性以及比较两个或两个以上的样本率。其基本思想就是比较理论频数和实际频数的吻合程度或拟合度。作为数据挖掘中筛选自变量的重要方法,卡方检验主要是通过类别型目标变量,最常见的就是二元目标变量,0,1与类别型自变量之间的关联程度来进行检验的,关联性大的类别型自变量就有可能是重要的自变量,可以通过初步的筛选进入下一轮的考察。卡方检验的公式如下:

00079.jpeg

其中,figure_0139_0081表示各交叉分类频数的观测值,figure_0139_0082表示各交叉分类频数的期望值,各交叉分类频数观测值与期望值的偏差为figure_0139_0083

当样本量较大时,X2统计量近似服从自由度为(R-1)(C-1)的X2(卡方)分布。从上述公式可以看出,X2的值与期望值、观测值和期望值之差有关,X2值越大表明观测值与期望值的差异越大,相对应的P-Value就越小,而P-Value代表的是上述差异发生的偶然性。所以,通常讲,如果P-Value值的小于0.01,同时X2,即是卡方(Chi-Square)比较大,则说明可以拒绝该自变量与因变量之间相互独立的原假设,也就是说该类别型自变量与目标变量之间有比较强的关联性,因此可以认为该自变量可能值得输入模型。

8.6.6 IV和WOE

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

举例来说,在一个“预测用户是否在信用卡使用上有信用欺诈嫌疑”的项目里,目标变量是“是否存在信用欺诈行为”,是个二元变量(0,1),0代表没有欺诈,1代表有欺诈;同时,自变量里有一个字段“用户的年收入”,在数据仓库的原始记录里,该字段“用户的年收入”是属于区间型变量(Interval)的,如果采用WOE和IV的指标方法判断其是否具有预测价值,即是否适合作为自变量放进模型里去预测,就需要先把这个区间型的变量“用户的年收入”进行转换,使其变成类别型变量(次序型变量),比如“分箱”成为具有4个区间的类别型变量,且这些变量分别为小于20 000元、[20 000,60 000)、[60 000,100 000),以及100 000元以上,共4类。

上述举例中的4类区间,又称为变量“用户的年收入”的4个属性(Attribute),针对每个属性(Attribute),可以计算样本数据里的WOE,公式如下:

00083.jpeg

其中

00084.jpeg

00085.jpeg

在上述公式中,figure_0140_0087figure_0140_0088分别代表在该属性值里,样本数据所包含的预测事件和非事件的数量;nevent和Nnonevent分别代表在全体样本数据里所包含的预测事件和非事件的总量。

而一个变量的总的预测能力是通过IV(Information Value)来表现的,它是该变量的各个属性的WOE的加权总和,IV代表了该变量区分目标变量中的事件与非事件的能力,具体计算公式如下。

00088.jpeg

与IV有相似作用的一个变量是Gini分数(Gini Score),Gini分数的计算步骤如下:

1)根据该字段里每个属性所包含的预测事件(Event)与非事件(Nonevent)的比率,按照各属性的比率的降序进行排列。比如,该字段共有m个属性,排序后共有m个组,每个组对应一个具体的属性,第一组就是包含预测事件比率最高的那个组。

2)针对排序后的每个组,分别计算该组内的事件数量figure_0140_0090和非事件数量figure_0140_0091

3)计算Gini指数,其公式如下:

00091.jpeg

上述公式中,Nevent和Nnonevent分别代表样本数据里总的事件数量和非事件数量。

总体来说,应用IV、WOE、Gini Score3个指标时,可以在数据挖掘实践中实现以下目标:

❑通过WOE的变化来调整出最佳的分箱阀值。通常的做法是先把一个区间型变量分成10~20个临时的区间,分别计算各自的WOE的值,然后根据WOE在各区间的变化趋势,做相应的合并,最终实现比较合理的区间划分。

❑通过IV值或者Gini分数,筛选出有较高预测价值的自变量,投入模型的训练中。

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

除了上述这些具体的、直接的指标计算和参考的方法之外,在数据挖掘商业实战中,还有一种“借力”的巧妙方法,那就是借助于一些成熟的算法进行初步的运算,利用模型的初步结果筛选出有价值的自变量,再把这些经过初期过滤的自变量放进模型和算法中进行真正意义上的建模和验证工作。

可供“借力”的算法或者模型包括决策树模型、回归(含线性回归和逻辑回归)模型等,在建模前期的变量筛选阶段,借力可以帮助初选出有价值的自变量。需要强调的是,在这些场景中,这些算法工具和模型可能无法实现最终的预测(分类)功能,而仅仅是用作自变量的初步筛选。

比如线性回归和逻辑回归,算法本身通过不断地增加或者剔除变量,来检验各输入变量对于预测的价值,这就是所谓的Stepwise算法,但是,即便如此,最好在使用之前先进行人为的初步筛选,从而把精简后的变量交给算法去选择。在大数据量建模的时候尤其要如此。

8.6.8 降维的方法

在数据挖掘的实战中,面对数量庞大的原始变量,除了上述种种指标及思路外,还有一种方法也会经常被应用,那就是数据降维,具体来说,包括主成分分析和变量聚类等。其中,对于主成分分析,已在2.3.8节中进行了详细介绍;对于变量聚类,将在8.7节的共线性问题中做专门介绍。

通过采取降维的措施和方法,可以有效精简输入变量的数目,在一定程度上实现有效筛选模型输入变量的目标。

8.6.9 最后的准则

本节到目前为止,谈到了数据挖掘实战中常见的筛选输入变量的各种方法和原理,这些分析技术层面的技巧和工具的熟练应用可以有效提高我们筛选输入变量的效率和质量。但是,业务环境千差万别,应用场景纷繁复杂,很多时候我们既要考虑技术层面的指标及判断方法,同时又要受实战环境中诸多因素的影响和制约,包括时间、资源、成本和目标等。

有些时候,尽管通过上述的分析技术可发现某个变量很重要,但是具体实战中也可能会选择放弃,个中的原因可能会涉及环境因素,比如说该变量的收集要花费太长的时间,或者花费过多的成本,那么权衡下来,就有可能放弃该变量。毕竟,只要最终的模型能满足初期的业务需求就可以了,模型的优化和提升是需要兼顾和权衡其他因素的制约的。

既要贯彻落实上述种种有效的筛选输入变量的方法和原理,又要在数据挖掘商业实战中综合考虑诸多环境因素和制约条件,并加以权衡和折中,这就是筛选输入变量的方法和原理中最后的准则。这个准则体现了筛选变量的过程是个辩证的、丰富多彩的、充满活力的过程,体现了数据分析挖掘强大的生命力和勃勃生机。