客户的价值度预测,在金融、电商等领域中是一个典型商业场景,而客户价值度的分析,往往是通过数据建模的方式来进行特征挖掘和评级区分。虽然凭借业务经验在一定程度上也可以对价值客户进行分群,但是真正在实际业务场景中的实现过程,模型是很常见而且特别有效的手段。究其原因,模型可以从多个维度较全面地分析并解释客户的潜在价值。

对客户价值度的预测,从模型类型的角度来看,可以是分类、回归、聚类等问题,各类场景情况举例如下:
(1)分类场景:是否价值客户(目标二分类),客户价值度等级(目标多分类);
(2)回归场景:客户价值度系数(目标连续型);
(3)聚类场景:特征标签客户画像(无目标变量)。

本文将围绕客户价值度预测的业务场景,采用回归模型算法来实现场景需求,具体内容通过案例实操进行介绍。对于回归模型,我们将会重点从不同类型的回归算法来训练模型,从而对比分析各种方法的模型性能效果。

1、业务场景介绍

在银行信贷业务中,信用卡客户的价值预测是客户管理体系中的重要内容,具体是指预估客户在未来一段时间内能给公司带来多少利润,而利润可能来自信用卡的年费、取现手续费、分期手续费、境外交易手续费等。当分析出客户群体的潜在价值后,在进行产品营销、催收策略、服务咨询等各项业务时,可以针对不同价值等级的客户,采用不同类型的服务模式。例如,为高价值客户提供区别于普通客户的服务,有助于银行进一步挖掘这些高价值客户的价值,从而提高客户的忠诚度。显然,这是银行针对存量客户管理,重点关注并且付诸实施的内容。

首先,我们来看下案例样本数据,共包含10000条样本与7个特征字段,具体样例如图1所示。其中,ID为样本主键,Profit_Value为目标变量(数据类型为连续型),Education、Income_Level、Credit_Index等字段为自变量,特征字典如图2所示。


Python构建客户价值回归预测模型 回归顾客价值_Python构建客户价值回归预测模型


图1 样本数据

Python构建客户价值回归预测模型 回归顾客价值_Python构建客户价值回归预测模型_02


图2 特征字典根据样本数据,我们采用describe()函数来分析下各特征变量的分布情况,输出的简单统计分析描述结果如图3所示。


Python构建客户价值回归预测模型 回归顾客价值_聚类_03


图3 特征分布由上图可知,样本数据满足回归模型的基本条件,即包含目标Y标签Profit_Value(有监督),且Y变量为连续型(回归)。由于回归模型在训练过程中,特征类型需要以数值型作为输入,因此如果希望特征Education参与到模型拟合,需要将字段类型进行转换,即由字符型转为数值型。结合特征Education(学历程度)属于有序分类变量,可以通过标签编码方式来实现类型转换,具体代码如图4所示。


Python构建客户价值回归预测模型 回归顾客价值_聚类_04


图4 标签编码下面我们通过isnull()函数来了解下特征的缺失情况,打印日志结果如图5所示,可知变量Income_Level、Credit_Index、Consum_Index、Shopping_Index都存在缺失值,可以采用常见统计值指标来进行填充。根据各特征的分布类型,我们对连续型变量的缺失值采用平均值填充,离散型变量的缺失值采用众数填充,具体实现代码如图6所示。


Python构建客户价值回归预测模型 回归顾客价值_Python构建客户价值回归预测模型_05


图5 特征缺失情况

Python构建客户价值回归预测模型 回归顾客价值_决策树_06


图6缺失值处理为了避免特征量纲不统一对模型训练效果的影响,我们对样本数据进行标准化处理,现采用z-score标准化方法来实现,具体代码如图7所示。


Python构建客户价值回归预测模型 回归顾客价值_决策树_07


图7 特征标准化经过以上特征编码、缺失值填充、特征标准化的数据预处理步骤,我们得到了一份可以作为模型训练输入的数据集,图1样例对应的处理结果如图8所示。


Python构建客户价值回归预测模型 回归顾客价值_决策树_08


图8 特征处理后数据

当然,可以进一步根据特征相关性(pearson)、特征共线性(VIF)等特征工程分析来对变量池进行筛选,以提高模型训练拟合的效果。当完成特征变量的相关分析后,就是回归模型算法的选择。对于机器学习回归算法,除了我们最常见的最小二乘法线性回归,其实回归算法包括很多种,而且其中一部分回归算法也经常被采用,同时在具体场景实践中也有比较好的性能表现。本文接下来便为大家介绍下比较常用的几种回归算法,并且围绕以上样本数据案例,通过多种回归模型算法来实现客户价值度预测的业务场景需求。

2、常见回归算法
在机器学习领域中,常见的回归模型包括线性回归、贝叶斯回归、决策树回归、随机森林回归、Adaboost回归、Bagging回归、XGBoost回归、LightGBM回归、K近邻回归、SVR回归等,下面我们分别对各算法的原理进行简要描述。
(1)线性回归
线性回归模型,通常采用最小二乘法来进行拟合,除了最常见的普通最小二乘法线性回归,还有加入了L1或L2范数正则化的岭回归、Lasso回归、弹性网络回归等。对于常见线性回归,在python语言中,可通过调用sklearn库中的算法来实现:
from sklearn.linear_model import LinearRegression
(2)贝叶斯回归
贝叶斯回归模型,是通过贝叶斯推断方法求解的线性回归,即将线性模型的参数作为随机变量,并通过模型参数(权重系数)的先验算出后验。在python语言中,可通过调用sklearn库中的算法来实现:
from sklearn.linear_model import BayesianRidge
(3)决策树回归
决策树回归模型,是通过树模型来解决回归问题,将样本特征空间划分成若干单元,每一个划分单元有一个特定的输出结果,一般取所含训练元素输出的均值。在python语言中,可通过调用sklearn库中的算法来实现:
from sklearn.tree import DecisionTreeRegressor
(4)随机森林回归
随机森林回归模型,属于集成学习的Bagging算法,是由多棵回归决策树构成,而且森林中各决策树之间没有关联。模型根据样本的随机性与特征的随机性进行模型训练,最终输出的模型结果由所有决策树共同决定,即取所有回归决策树预测结果的均值。在python语言中,可通过调用sklearn库中的算法来实现:
from sklearn.ensemble import RandomForestRegressor
(5)Adaboost回归
Adaboost回归模型,属于集成学习的Boosting算法,损失函数使用平方误差损失,根据前向分布算法的思想,采用回归决策树拟合残差。在python语言中,可通过调用sklearn库中的算法来实现:
from sklearn.ensemble import AdaBoostRegressor
(6)K近邻回归
K近邻(KNN)回归模型,是根据每个查询点最邻近的K个样本点的均值作为预测值,其中K值为指定的整数。在python语言中,可通过调用sklearn库中的算法来实现:
from sklearn.neighbors import KNeighborsRegressor
(7)支持向量回归
支持向量(SVR)回归模型,是支持向量机(SVM)的重要应用分支,原理是在训练过程中找到一个回归平面,让一个集合的所有数据到此平面的距离最近。在python语言中,可通过调用sklearn库中的算法来实现:
from sklearn.svm import SVR

3、回归模型实现

通过以上对常见回归模型算法的了解,接下来我们围绕前边经过数据处理后的样本数据(图8),分别采用线性回归、贝叶斯回归、决策树回归、随机森林回归、Adaboost回归、KNN回归、SVR回归共7种算法,来实现客户价值度预测的回归模型。同时,我们通过回归模型的常用指标R_Square(决定系数r2)来评估模型的综合性能,并对比不同回归算法在本案例样本数据上训练拟合的模型表现。对于各回归算法从sklearn库的调用情况如图9所示,并以普通最小二乘法线性回归为例,模型训练与模型评估代码如图10所示。


Python构建客户价值回归预测模型 回归顾客价值_决策树_09


图9 算法库调用

Python构建客户价值回归预测模型 回归顾客价值_聚类_10


图10 模型训练与评估根据图10模型训练与模型评估的代码结构,更换不同回归算法,可得到各模型的评价指标如图11所示。


Python构建客户价值回归预测模型 回归顾客价值_决策树_11


图11 模型训练与评估由上图的模型结果分析可知,针对本文的样本数据情况,决策树回归算法模型的评价指标R_Square(决定系数)最高(0.9719),说明模型拟合的效果很好。为了提高模型的解释度,我们根据决策树回归模型输出各特征变量的重要性系数,具体实现代码如图12所示,结果如图13所示。


Python构建客户价值回归预测模型 回归顾客价值_Python构建客户价值回归预测模型_12


图12 特征重要性评估

Python构建客户价值回归预测模型 回归顾客价值_数据挖掘_13


图13 特征重要性分布从各特征变量的重要性系数结果可知,在本文案例场景下的客户价值度预测模型中,特征Shopping_Index(网购指数)的最为重要(0.287568),而特征Income_Level(收入等级)的重要度最低(0.0163186)。

综合以上内容,我们围绕客户价值度预测的实际业务场景,采用常见的7种回归算法建立模型,整个建模流程包括缺失值处理、特征编码、特征标准化、模型训练、模型评估等步骤,并通过相关指标评价模型的训练效果,便于大家在熟悉实际业务的同时,学会通过多种回归算法来实现模型。


Python构建客户价值回归预测模型 回归顾客价值_回归_14