客群画像|解决分群与特征分类问题,试一下这个处理方法

在信贷产品业务中,客户分群是一项重要内容,无论是针对风控的定制化管理,还是面向营销的价值度分层,客群分类的画像分析始终发挥着重要作用。从数据分析与挖掘的角度来讲,若实现存量客户的群体划分,往往采用机器学习中的聚类算法来高效完成,最常见的莫过于Kmeans无监督算法,不仅原理逻辑较为简单,而且实现过程也极为方便。
但是,对于Kmeans聚类模型的建立,首先需要确定合适的K值,这样才能有效满足业务的需求。针对Kmeans的K值确定,虽然经常采用“肘部图”的方法来直观判断,但在实际场景的很多情形下,由于样本数据的分布情况,得到的肘部图趋势并不明显,从图中仍然难以确定合适的K值,这样直接影响到建模过程的实施。针对这种常见情况,为了保证客户分群聚类模型的实现,我们可以采用一种新的聚类模型算法——层次聚类,同样可以实现客群的分类,而且最显著的优点是聚类数量的确定,相比Kmeans算法更为方便且直观。本文将为大家介绍这种经典聚类算法,并围绕具体的样本数据,全面解析层次聚类的原理逻辑与实现过程。

1、层次聚类的原理
层次聚类(Hierarchical clustering),也是一种无监督学习算法,是通过算出不同样本数据点之间的相似度,来创建一棵有层次的嵌套聚类树。在聚类树的分布结构中,树的最低层是不同类别的原始样本数据点,而树的顶层是一个聚类的根节点,中部从上至下是逐渐增多的分支节点。层次聚类不需要我们提前指定簇类数量,而是先完整的形成整个层次聚类树后,通过决定合适的样本距离,便可以自动得到对应的簇类数量与聚类效果,这个过程显然比Kmeans更为方便。
层次聚类是首先把每个样本对象作为一个簇,然后分别算出每个簇与簇之间的距离,接着合并距离最小的两个簇,这个合并过程一直重复进行,每次更新结果的簇类数量减一,直到最后只有一个簇类为止。假设现有5个样本数据点,层次聚类构建完整树的过程与结果,具体如图1所示。
在这里插入图片描述

                                                                图1 层次聚类树状图

在以上层次树状分布图中,横坐标表示样本数据点,纵坐标表示簇类距离,通过图表信息可以很直观的了解到从下到上的层次聚类过程。其中,垂直线长度越大,说明簇类之间的距离越大,例如我们设置距离阈值为12,则聚类的数量为阈值水平线与垂直距离线相交点的数量(2),这样得到2个簇类具体包含的样本分别为(1、2、4)和(3、5)。层次聚类根据树状结构图来分析合适聚类数量的过程,相比Kmeans聚类的肘部图原理,显然更为直观方便,而且更具有客观数据分布的合理性。

2、实例样本分析与处理
为了更好的介绍层次聚类的实现过程,我们围绕具体的实例样本数据来构建层次聚类模型。本文选取的样本数据包含1000条样本与个6个特征,部分数据样例如图2所示,其中id为样本主键,字段air_travel、credit_use、stable_index、online_level、model_score均为特征变量,具体特征字典如图3所示。此外,由于层次聚类为无监督算法模型,因此样本数据无需包含目标变量。
在这里插入图片描述
图2 样本数据样例

在这里插入图片描述

                                                            图3 样本特征字典

根据以上建模样本,我们在python环境采用describe()函数简单对数据进行探索分析,输出的eda分布结果如图4所示,可以从count结果获知样本各特征均无缺失值情况。同时,从极值、分位值等统计指标了解到,各特征均无明显的异常值分布。
在这里插入图片描述
图4 样本特征eda分布

由于层次聚类模型的原理思想,同样需要根据样本距离来确定簇类合并,因此在模型训练前需要将特征样本数据进行标准化处理,以避免特征的不同量纲导致的样本距离结果影响。特征数据的标准化处理,已是层次聚类、Kmeans聚类等模型算法的必然前置的数据处理步骤。本文数据的特征标准化处理过程如图5所示,输出结果样例如图6所示。
在这里插入图片描述
图5 特征标准化实现

在这里插入图片描述
图6 特征标准化结果

3、层次聚类模型实现
通过以上对样本数据的探索分析与必要处理,接下来便可以建立层次聚类模型,在模型正式拟合训练之前,我们需要结合上文关于层次聚类原理,来根据树状结构图来分析确定合适的聚类数量,具体实现过程如图7所示,输出的树状层次聚类分布如图8所示。
在这里插入图片描述
图7 层次聚类数量分析过程

在这里插入图片描述

                                                          图8 层次聚类数量可视化

从上图可知,由于蓝色垂直线的长度最大,因此可以将聚类距离阈值定义为1.00,则通过阈值横线与聚类纵线交叉的结果,获取本样本数据比较合适的聚类数量为2。当确定了合适的簇类数后,接着便可以采用层次聚类拟合函数来进行模型训练,实现过程如图9所示。同时,为了形象展示样本客群聚类后的效果,我们选择air_travel、credit_use这2个特征,来绘制二维分布散点图,以反映不同客群的分布特点,输出的可视化结果如图10所示。
在这里插入图片描述
图9 模型训练与效果展示

在这里插入图片描述
图10 簇类分布可视化

由以上聚类结果的簇类分布可知,两个样本客群在air_travel(最近1个月航旅出行次数)、credit_use(最近6个月信用卡交易次数)的交叉维度上,簇内的聚集程度、簇类的离散程度都是较为明显的,直接反映了聚类模型的效果较佳,也就是客群特征的区分度是比较好的。
当聚类模型完成后,为了更满足实际业务场景的需求,我们还需要对聚类各簇的样本分布进行特征分析,从业务角度来讲,是对各簇样本群体完成客户画像描述,这是非常重要也是场景需要的。这里我们对2个簇类群体进行频数汇总,同时选取特征air_travel、credit_use来具体描述客群的微观分布特点,具体实现过程如图11所示,输出数据的汇总结果如图12所示。
在这里插入图片描述
图11 簇类画像分析实现

在这里插入图片描述
图12 簇类画像汇总

根据以上簇类画像的汇总结果,可知这2个簇类的样本频数分布是比较均衡的,这也进一步反映了聚类结果的合理性。此外,我们围绕以上特征来简单描述下这2个客群的画像分布:最近1个月航旅出行的平均次数(air_travel)是相同的(均为1),但客群1的分布差异稍大;最近6个月信用卡交易次数(credit_use),客群1(25)明显大于客群2(4),说明前者的消费水平高于后者,营销价值较高,这对于产品的额度调整、再次营销等,具有很好的参考作用。这里仅选取特征air_travel和credit_use来分析的,在实际场景中可以对参与模型训练的所有特征来全面分析,这样得到的客群画像更为具体,从而为实际业务提供更多的信息价值。

综合以上内容,我们对层次聚类的原理逻辑与实现过程进行了解读,同时围绕具体样本数据,完成了客户分群的聚类模型,并描述各簇结果的画像特点。为了便于大家对层次聚类的进一步熟悉与理解,本文额外附带了与以上内容同步的python代码与样本数据,供大家参考学习,详情请移至知识星球参考相关内容。
在这里插入图片描述

更多详细内容,有兴趣的童鞋可关注:、
在这里插入图片描述

~原创文章

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值