申请信用评分卡模型(A卡),对于从事金融信贷风控领域的小伙伴来讲是非常熟悉的,在贷前风控流程中通过一定的评分逻辑规则,对申请用户的信用能力或风险情况进行评估,并结合风控决策阈值实现申请进件的最终审批状态(通过或拒绝)。因此,A卡模型在实际业务应用中的价值不言而喻。
由于以上业务场景从模型角度分析,属于二分类模型,在数据建模过程中我们可采用的机器学习算法有很多选择,常见的有逻辑回归、随机森林、XGBoost、LightGBM等,尤其是对于传统学习算法逻辑回归,在实际建模应用中非常广泛。但是,从模型的综合效果考虑,模型训练前的特征工程非常重要,例如特征分箱、特征降维、特征编码、特征标准化、特征相关性等,这些步骤可以有效支持或提升模型训练的效果。其中,特征分箱在整个数据处理过程中发挥着重要作用,在建立逻辑回归模型过程中经常得到使用。本文将从特征分箱角度出发,来介绍下手动特征分箱在实际场景中的应用,帮助大家熟悉掌握手动特征分箱的思路与方法,以提升模型训练的效果。
1、特征分箱作用与方法
特征分箱可以实现连续变量的离散化,使模型在训练环节变得更加稳定,降低了模型过拟合等风险,有效提升了模型训练的实际效果。特征分箱在实践应用中有很多好处,主要包括以下几个方面:
(1)特征分布稳定
变量原始值映射至不同区间,且在一定范围内波动,在模型训练过程中,简化了模型作用,降低模型过拟合的风险,使模型效果更加稳定。
(2)特征标准统一
特征分箱后变为一定数量的类别值,所有变量都变换到相似的尺度上,无需进一步采取标准化处理。
(3)缺失值的处理
缺失值可以单独划为一箱进行处理,可以有效保留缺失值的信息,或者根据相似程度和其他取值进行合并处理。
(4)异常值的处理
对异常数据有很强的鲁棒性,异常值可以和其他取值合并为一箱进行处理,有效降低异常值对模型拟合的影响。
(5)模型效率提升
特征离散后数据稀疏向量内积乘法运算的速度较快,可促进模型扩展,易于模型的快速迭代。
(6)模型表达增强
特征离散为多个类别后,每个变量取值具有单独权重,类似引入非线性的信息,能够提升模型的表达能力。
在实际场景应用中,特征分箱有较多方法,可以分为有监督和无监督两个类别。其中,有监督分箱方法常见的有卡方分箱、决策树分箱、KS分箱等,特点是在分箱过程中有效利用目标变量的相关信息,反映了特征变量与目标变量的关系,可以保证特征分箱的分布效果。无监督分箱方法常见的有等距分箱、等频分箱、聚类分箱等,特点是在分箱过程中有效考虑到特征变量在样本上的分布情况。
2、手动特征分箱的应用
在特征分箱过程中,无论采取何种方法,通过代码自动化实现特征离散的过程中,更多考虑到的是特征样本数据的分布情况,或者变量X与Y之间的关系,但很多情况下难以保证特征分箱后数据分布的合理性,以及在实际业务中的解释性。这种情况对于银行等金融机构建立风控模型时是非常重要的,原因是最终模型的应用不仅效果表现较好,而且每个模型变量的分布趋势是需要符合业务理解的。如果采用逻辑回归建立模型时,没有充分考虑到特征分箱的解释度,会直接影响到模型应用的业务含义。因此,针对这种情况,我们在建模过程的特征分箱环节,首先通过代码自动化实现特征的细分箱,然后采用手动自定义方式进一步粗分箱,这样可以综合考虑到特征数据分布及其业务解释含义,有效保证了特征分箱的合理性,从而提升了模型的应用效果。
为了便于说明手动特征分箱的思路与方法,我们通过具体的实操案例来进行详细介绍。现有一份测试样本数据,样本数量15000条,特征数量6个,其中X变量共有4个,字段均为int连续型,分数取值越高代表用户资质越好,数据样例如图1所示。
图1 测试数据样例根据以上样本数据,为了便于模型的训练拟合,我们采用等距分箱方法进行特征离散。由于在实际场景建立逻辑回归模型时,特征分箱数量一般分为5~10箱较为合适,因此本案例假设将每个特征变量分为8箱。现以特征“score_travel”为例,自动化分箱的实现代码具体如图2所示,最终分箱结果如图3所示。
图2 自动分箱代码
图 3 特征自动化分箱(n=8)
由图3分箱结果可知,特征“score_travel”通过自动化方式分为8箱后的IV值为0.023,信息值表现尚可。但是,我们从特征数据分布的合理性考虑,特征分箱结果主要存在以下问题:
(1)woe可以反映区间的好坏程度,结合图2代码woe公式可知,woe取值越大,说明区间样本偏好的程度越强,由于此变量分布的业务含义是取值分数越大,用户的资质能力越好,但随着bin分数的增加,对于区间[611,+inf)的woe值相比区间[588,611)的woe值降低,从经验理解分析,不符合实际业务逻辑。我们可以将特征的woe分布规律呈现至可视化结果中,具体如图4所示,尾端分箱部分的数据分布趋势显然不太合理。
图4 特征woe分布趋势(2)区间[0,475)与[611,+inf)的样本占比较小,分别仅有2.7%和4.0%,在群体特征分布中代表性不强,一般情况下分箱占比达到5%以上较为合适;
(3)由于分箱结果不太合理,可能会导致变量的最终IV值有较大损失,如果可以进一步优化,最终IV值可能会高于0.023,而这对于模型变量的筛选标准,以及模型的训练拟合有重要的作用。
针对以上情况,我们来尝试下通过手动自定义的方式来优化特征分箱的效果。首先我们将对特征“score_travel”进行细分箱,这里结合图2的自动化分箱代码将其分为20箱,结果如图5所示。
图5 特征细分箱结果
然后我们根据以上数据分布来进行特征粗分箱,这里我们列出在进行手动粗分箱过程中,重点关注的要点分别如下:
(1)对于连续型变量,相邻的分箱进行合并(对于分类型变量可以间隔合并);
(2)woe值接近的分箱进行合并,理由是woe接近说明好坏程度分布相似;
(3)woe负值与woe正值的分箱尽量不要合并,正负体现的好坏程度差异较大;
(4)分箱占比小于5%尽量不要单独分箱,一般每个分箱的占比达到5%以上;
(5)缺失值单独为一箱且占比小于5%时,可以与woe比较接近的分箱间隔合并;
(6)缺失值占比大于5%时,最好是单独成箱,不要与其他分箱合并;
(7)分箱过程要考虑数据分布的单调性,单调递增、单调递减、U型均可;
(8)分箱后数据分布的单调性趋势,一定要满足实际业务的合理解释。
(9)特征分箱最终数量一般为5~10较好,有利于模型的训练与稳定;
(10)分箱过程同步观察特征IV值的损失程度,分箱合理情况下保证IV值效果。
以上是我们采用手动分箱过程需要注意的维度,将数据分布与业务理解综合得以应用,这样可以有效保证特征分箱的最终效果。在手动特征粗分箱过程中,我们主要参考的是特征分箱区间与woe的分布趋势图进行调整的,这有利于我们从整体分布上把握分箱的合理性。现根据以上要点,我们对图5特征分箱结果进一步优化,将图5细分箱的区间woe趋势输出如图6所示。
图6 特征细分箱woe趋势由图6细分箱的woe分布趋势可知,特征“score_travel”整体的分布趋势是符合单调性的,是有必要进行粗分箱的。根据前边介绍的粗分箱原则,此特征进一步手动调整的分箱数量为5较为合适,具体分箱合并规则为:13、45、610、1117、18~20,最终得到的粗分箱结果如图7所示,同时我们将区间woe分布趋势进行展示如图8所示。
图7 特征粗分箱结果
图8 特征粗分箱woe趋势根据以上粗分箱结果可知,变量分箱经过调整后,特征的woe分布的单调性趋势非常符合实际业务理解,即随着分数升高,用户的表现越好。此外,可以看到每个分箱的占比均大于5%以上,在样本特征体现上各区间也都具有代表性,整体说明特征分箱结果是合理的。
为了进一步对比手动自定义分箱方式的效果,我们来对比下手动分箱与自动分箱的IV值大小。由于前边图3自动化分箱数量为8,而根据特征实际分布情况手动调整后的分箱数量为5,那么我们现在将特征通过自动化方式也分为5箱输出最终的IV值,其结果分布如图9所示。
图9 特征自动化分箱(n=5)对比图7与图9的结果来看,对于特征“score_travel”,分箱数量同为5,但z自动分箱的最终IV值为0.02,而手动分箱后的IV值为0.03,特征区分性能表现更优,有利于模型变量的筛选。此外,虽然自动分箱后的woe分布也满足单调性趋势,但从图6细分箱到图8粗分箱的过程可知,手动分箱得到分布单调性更符合实际业务情况。
综合以上案例分析,我们可以明确了解到,特征的手动分箱方式相比自动分箱方式更为合理些,不仅较大程度保留了特征变量的信息价值,而且分箱后的数据分布更满足实际业务的真实情况,这对于特征选择、模型训练、变量解释、模型应用等方面都具有非常重要的作用。虽然手动分箱方式在时间效率上需要付出一定输入,但是最终输出效果对于模型的贡献是非常大的,从这一点考虑,特征手动自定义分箱的方法是很有价值的。
为了便于大家进一步理解与掌握手动特征分箱的处理思路与分析效果,我们围绕以上内容介绍,准备了具体案例的样本数据集与Python代码,供各位小伙伴实操练习,详情请大家移步至知识星球查看相关内容。