分享

实践中提升风控模型效能,降低共线性的实例操作

 追梦文库 2022-10-21 发布于天津

模型的多重共线性问题,是衡量线性回归、逻辑回归等线性模型综合性能的一个重要维度,也是我们建模过程中经常遇到且重点关注的话题。在实际业务场景中,针对线性模型的搭建过程,如何有效识别并降低模型的多重共线性程度,是建模过程必要的数据处理环节。这里需要注意的是,对于模型多重共线性的理解,本质上是特征变量的相关性分析,当建模的特征变量池在一定程度上降低了字段之间的相关程度,最终得到的模型自然也很难出现明显的多重共线性现象。

在详细介绍如何来解决模型共线性问题之前,我们首先需要明确两个知识要点,一方面是并非所有模型都存在共线性的问题,常见的仅有线性回归、逻辑回归等线性模型,而像GBDT、XGBboost、LightGBM等树模型,或者Kmeans、KNN等距离模型,都不存在模型共线性的说辞;另一方面是模型共线性从严谨的角度来讲,只能“减弱”或“降低”而并不能消除,我们日常习惯说到的“防止”、“避免”等术语,本质问题理解上是有误的,虽然无关紧要可以对其描述但我们需要明确模型共线性的真正含义。

1、模型多重共线性含义

对于多元线性模型Y=k0+k1X1+k2X2+...+knXn,如果特征变量X1、X2、Xn之间存在高度线性相关关系,则称为模型具有多重共线性。模型从特征共线性程度的大小进行区分,可以分为完全共线性和近似共线性。

例如,对于多个特征变量,多重共线性的公式可以表示为a1X1+a2X2+...+anXn=0,如果系数an不全为0,也就是某个特征变量可以用其他特征变量的线性组合表示,则称特征变量之间存在完全共线性,假设特征系数an均为1,则X1=-(X2+X3+...+Xn)。近似共线性可以通过公式a1X1+a2X2+...+anXn+b=0说明,若系数an不全为0,b为误差随机项,则称特征变量之间存在近似共线性,假设特征系数an均为1,随机项b为-1,则X1=1-(X2+X3+...+Xn)。

因此,在实际业务场景中,模型多重共线性会对模型的应用实践产生较多影响,使线性模型方程式的精准度下降,模型标准误差增大,从而降低了某些重要特征变量的贡献性,甚至会使模型输出不符合实际应用的结论。

简单熟悉了模型共线性的概念与原理之后,本文重点将给大家介绍下有效降低模型共线性的几种方法,这在具体实践中可以获取不错的效果。模型共线性本质上是特征相关性的表现,因此我们并非仅习惯通过特征的方差膨胀系数VIF来解决问题,虽然特征VIF为常用分析指标,而且是必选的处理途径,但如果需要更全面的降低模型共线性程度,可以尝试采用多种方法的综合应用,这是数据分析需要的思维与方法。

围绕以上业务背景需求,我们接下来将通过4种方法来解决模型共线性的问题,分别为特征分布、相关系数、方差膨胀系数、热力图。为了便于大家的深入理解,我们根据具体的实例样本数据来展开详细分析。

2、样本数据介绍与分析

本文选取的实例样本数据包含6000条样本与8个字段,部分数据样例如图1所示。其中,字段ID为样本主键;Var1~ Var6为特征变量,取值类型均为连续数值型;Target为目标变量,取值二分类(0/1)。针对样本数据的描述性统计分析,其eda分布结果如图2所示。

编辑

图1 样本数据样例

编辑

添加图片注释,不超过 140 字(可选)

图2 样本描述分析

围绕以上样本数据,我们接下来依次采用特征分布、相关系数、方差膨胀系数、热力图等方法,来详细分析特征变量之间的相关性能,从而实现对特征字段进行筛选,以降低后续所建模型的多重共线性程度。

3、特征散点分布

采用特征散点分布的方式来分析变量之间的相关性程度,是通过绘制散点图的形式,来直观分析特征之间的相互联系,实现过程可以通过seaborn库的pairplot函数来完成,具体如图3所示。

编辑

添加图片注释,不超过 140 字(可选)

图3 特征散点分布实现

根据以上实现方式,得到特征Var1~Var6整体分布的可视化结果如图4所示,从二维结构图可以很形象的了解到各个变量之间的分布关系。当散点图呈现出较完美的线性直线时,说明对应两个变量之间的相关性程度较强,此时需要考虑将其中一个特征进行删除,具体可以考虑选择信息值IV较高的对应变量,或者与其他所有特征平均相关程度较低的变量。从此方法的分析思想可以看出,通过特征散点图的分布关系来探究变量之间的相关性程度属于一种定性分析。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

图4 特征散点分布结果

通过下图结果可知,特征Var2与Var6之间的线性关系较为明显,也就是二者具有较强的相关性,为降低后续模型的多重共线性,仅需保留特征Var2或Var6其中一个即可。对于其他特征变量组合,则分布关系体现的线性关系并不明显,可以认为特征变量之间无较强的多重共线性。

4、特征相关系数

采用特征之间的相关系数来研究变量之间的性能属于定量分析,具体是通过特征的pearson、spearman等系数来量化评估。在Python语言环境中,可以直接采用corr()函数来完成,仅需定义method='pearson'或method='spearman'等对应方式来输出相关系数。为了通过可视化方式直观展现特征变量间的相关系数分布,我们采用seaborn库的heatmap函数,对corr()系数结果进行相关系数热力图展现,具体实现详见知识星球代码详情,输出的可视化结果如图6所示。

编辑

添加图片注释,不超过 140 字(可选)

图6 特征相关系数结果

由上图的可视化分布结果可知,特征Var1~Var6之间的相关系数展示较为直观,从特征组合的单元格颜色及其数值,可以很清晰的了解到特征变量之间的相关性程度。一般情况下,当相关系数的绝对值大于0.5~0.7以上时(具体阈值由实际场景决定),则认为特征之间存在较强的相关性,需要对其中一个字段进行筛选。假设以0.7为判断阈值,则特征Var1与Var6、Var3与Var5之间存在较强的相关性,对应相关系数分别为1与0.75,对此组合的特征字段需要删除其一。

5、特征方差膨胀系数

方差膨胀系数(Variance Inflation Factor),简称VIF,是衡量多元线性回归模型多重共线性的度量指标,其计算公式为VIFi=1/(1-Ri2),其中VIFi衡量的是自变量Xi是否与其他自变量具有多重共线性的方差膨胀系数,Ri2是将自变量Xi作为因变量,其他自变量作为特征变量时回归的可决系数,即R-squared值,用来衡量模型的拟合程度。由VIF的原理公式可知,当Ri2的取值越大,VIFi值就越大,表示自变量Xi与其他自变量之间的多重共线性较为严重。

在实际业务场景中,一般认为VIF<10时,该自变量与其余自变量之间的多重共线性不明显;当10<=VIF<100时,变量之间存在较强的多重共线性;当VIF>=100时,变量之间存在严重的多重共线性。

在Python语言环境中,可以通过statsmodels模块的variance_inflation_factor()函数,来获取特征变量之间的方差膨胀系数,具体实现过程详见知识星球代码详情

编辑

添加图片注释,不超过 140 字(可选)

图8 特征方差膨胀系数结果

由上图的特征方差膨胀系数结果可知,特征Var2、Var6与其他特征的VIF值均表现很大,分别为1906.84、1932.97,远大于日常习惯采用的判断阈值10,说明特征Var2与Var6之间存在较强的相关性,仅需将保留其中一个字段进行建模。

6、特征主成分分析

特征的主成分分析PCA(Principal components analysis),是一种无监督的特征降维方法,在数据冗余压缩、数据噪音消除等样本处理的情况中应用广泛。本文将其作为降低模型多重共线性的方法之一,逻辑思想是对存在较强相关性的原特征变量进行主成分分析,加工得到新的且相关性较弱的特征字段。

在Python语言环境中,可以通过sklearn.decomposition库来调用PCA函数,由于实例样本的特征数量为6,则此处采用PCA生成的新字段数量也定义为6,即参数n_components=6,具体实现详见知识星球代码详情,生成的部分特征结果如图10所示。

编辑

添加图片注释,不超过 140 字(可选)

图10 特征PCA数据结果

由上图特征PCA的部分数据可以看出,新特征的数据分布与原特征相比已发生了很大变化,这也是PCA生成的新字段很难解释的重要特点。在不考虑特征解释性的情况下,我们通过图9的实现过程也同步输出了新特征字段的相关系数,具体结果如图11所示。

编辑

添加图片注释,不超过 140 字(可选)

图11 PCA新特征相关系数

通过上图PCA新特征的相关系数分布结果可知,新字段之间的pearson相关系数远小于0.1,说明PCA可以明显解决原始特征存在较强相关性的问题,但是新特征的分布已不同于原始特征,其业务理解也难以定义。因此,特征PCA需要考虑具体的应用场景,而本文仅为降低特征较强相关性问题,则特征PCA是可以有效实现的。

综合以上分析,我们依次通过特征散点分布、特征相关系数、特征方差膨胀系数、特征主成分分析的方法,介绍了降低模型共线性的原理逻辑与实现过程。同时,通过具体的实例样本数据,详细解读了数据分析结果与场景应用思路,也综合验证了以上方法对解决模型多重共线性问题的有效性。为了便于大家对以上知识要点的进一步理解与熟悉,本文额外附带了与以上内容同步的python代码与样本数据,供大家参考学习,详情请移至知识星球参考相关内容。

编辑

添加图片注释,不超过 140 字(可选)

编辑

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

更多详细内容,有兴趣的童鞋可关注:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

...

~原创文章

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多