朴素贝叶斯小样本金融客户分类方法与分类偏好研究
2021-03-22李卫民
杨 超,李卫民
1(上海立信会计金融学院 金融科技学院,上海 201209) 2(上海大学 计算机科学与技术学院,上海 200444)
1 引 言
客户对于每个企业来讲都是极其重要的资源.金融行业是客户密集型服务业,无论银行、证券公司还是保险公司都有着数量庞大的客户群体.金融企业若想提供专业而又个性化的服务,就必须深入了解客户,并对客户进行恰当分类管理.金融行业一方面业务范围广阔,产品种类丰富,另一方面金融客户遍布所有的社会阶层,构成复杂,需求多样化.对金融客户的分类往往需要根据具体产品进行针对性地设计和实现[1].
随着互联网金融和金融科技的快速发展,金融行业不断积累客户数据,同时大数据与人工智能技术为金融客户分类提供了更多技术选择.依据客户与产品数据信息进行恰当的分类与对接,对金融服务的提质增效有重要意义.金融客户分类归根结底属于分类问题,数据挖掘和机器学习算法为我们提供了丰富的理论依据与技术参考.本文将朴素贝叶斯等算法与具体金融客户分类任务相结合,讨论了样本标注、数据离散化、模型训练、分类偏好等问题,对几种分类算法进行了实验比较,发现基于数据离散化的朴素贝叶斯分类效果最优,通过对连续特征值的适当离散化可以调节分类偏好.方法对于提升金融产品销售,降低营销成本有参考价值.
2 相关研究
贝叶斯算法具有突出的不确定性表达能力,能够综合利用先验知识和数据样本信息,是分类问题常用的技术方法.贝叶斯分类算法有很多分支,包括朴素贝叶斯分类算法、树拓展朴素贝叶斯分类算法、贝叶斯网络分类算法以及贝叶斯神经网络分类算法等[2,3].尽管新型贝叶斯分类算法不断出现,朴素贝叶斯分类算法因其操作简单、分类准确性相对较高,在实际工作中仍被大量采用[4,5],尤其是在特征属性较少的情况下.
朴素贝叶斯分类技术被广泛应用于金融各领域.Hagenau等[6]利用朴素贝叶斯、支持向量机等技术对市场消息进行文本挖掘,分析文本情绪,研究文本情绪对股票市场的影响,研究结果证实影响确实存在.Joshi Kalyani等[7]分别利用随机森林、支持向量机、朴素贝叶斯构建了3类分类器,研究财经新闻与股票价格走势的关系,证实分类器有效.Kirange等[8]使用朴素贝叶斯、K最近邻算法、支持向量机等将股市新闻进行恰当分类,将预测结果与人工标注进行比较,实验显示预测准确率方面支持向量机最高,朴素贝叶斯次之.骆桦等[9]以上市公司财务指标为特征集,构建朴素贝叶斯分类器,作为选股工具,累计投资回报率优于基准回报率.
客户分类研究起步于上世纪50年代,近年来随着电子商务的发展,特别是大数据时代的到来而达到顶峰.广泛应用于电子商务系统、社交系统、自媒体系统中的个性化推荐技术大多都是从用户分类技术发展而来的[10,11].
金融业属于客户密集型服务行业,由于业务复杂性和监管复杂性的同时存在,金融客户分类变的重要、敏感[12].随着金融科技的发展,包括贝叶斯技术在内的数据挖掘与机器学习技术被广泛应用于金融用户分类相关领域.刘亚等人[13]针对金融担保圈风险提出一种特征选择算法,从金融客户及交易特征集中挑选出能覆盖大多数原始数据信息、无冗余的特征子集,分别用逻辑回归、RF、决策树、贝叶斯网络等技术建立担保圈风险识别模型,发现逻辑回归具有最好的风险识别准确率.张成虎等[14]对金融客户及其交易信息进行层次分析,将数据挖掘与金融知识相结合,总结出可疑金融交易特征,最后利用贝叶斯分类技术识别和发现非法金融交易,为反洗钱监测提供快速准确的参考.
3 朴素贝叶斯客户分类方法
3.1 朴素贝叶斯分类
贝叶斯分类以完善的贝叶斯定理为基础,有较强的模型表示、学习和推理能力,同时表现出高效率和高准确性,尤其适用于小规模数据集的学习.
样本空间S中每个样本X都可以表示为一个n维特征向量X={x1,x2,x3,…,xn},每个分量对应样本的n个特征变量A1,A2,A3,…,An.假定样本空间S对应m个可能类型C1,C2,C3,…,Cm,贝叶斯分类就是寻找条件X下概率最大的Ci,以此作为该样本的分类类别.
根据贝叶斯定理,
(1)
P(X)与类别无关是常数,样本的分类取决于p(X|Ci)p(Ci),P(Ci)被称为类别的先验概论,可以用P(Ci)=si/s计算,其中si为类比为Ci的训练样本数量,s为训练样本总数.朴素贝叶斯分类是一种基于特征条件独立假设的分类方法,由此假设可得:
(2)
以此简化计算.对于离散型特征,式(2)可以通过统计计算,对于连续型特征,则需要对数据进行离散化或者构造其概率分布函数.
图1 朴素贝叶斯分类实施流程Fig.1 Classification process of naive bayesian
朴素贝叶斯分类器的实施过程可以表示为图1.分为特征选择、样本收集与标注、数据预处理、模型训练、预测与评价几个阶段.
3.2 样本数据收集与预处理
本文来源于某银行金融产品销售的现实需求,首先对银行现有金融客户进行初步筛选,并将产品信息进行定向推销测试,收集客户对产品的态度反馈,结合银行已有客户数据,构建原始数据样本集,以期从中发现规律,分类未来客户,最终实现精准营销的目的.
以客户对于金融产品的态度反馈为依据,将客户分为两种类别:积极和消极,分别用1(CLASS=1)和0(CLASS=0)表示,CLASS即为目标变量.因此,这里的金融客户分类是一个二分类问题.显然,分类过程应更多关注“积极”客户(CLASS=1),他们是将来重点营销的对象,是这里的分类偏好.
银行首先依据客户的收入状况对其进行初步筛选,以中高收入者为目标对象,借助网站、APP客户端定向推销该金融产品.依据客户的对待产品的态度,例如产品浏览频次q、浏览时长t、以及是否有购买b、收藏s、推荐r等行为B,分类标注客户u.
算法1.客户积极性算法AUA,用于完成客户标注
输入:客户集U,积极性标准K
输出:客户分类向量c
Begin
1.c←[] // 初始化客户分类向量
2.foruinU:
3. if(u.q>=Kq) or (u.t>=Kt) or∀(b,s,r)∈u.B:
//高频关注商品或长时间研究商品或有购买、收藏、推荐行为之一
4.c←c+[1] // 标注为“积极”,即CLASS=1
5. else:
6.c←c+[0] // 标注为“消极”,即CLASS=0
7. returnc
End
在AUA算法中,可以根据销售策略及销售预算适度调整“积极”的设定标准K.标准设定的高,有利于提升精准营销的成功率,但潜在客户流失的可能性也会随之增大.
特征选择是从可用特征集合中选择那些重要的,与任务相关的特征子集的过程.这里选择了客户年龄(AGE)、性别(GENDER)、收入水平(INCOME)、理财经历(EXPER)4个特征,一方面是因为银行可获得客户数据的局限性,另一方面更多地考虑客户特征与金融产品的相关性.利用数据可视化技术可以观察特征与类别的相关性.
年龄由客户生日或身份证信息转发而来,虽本质上是离散型数据,但由于数据样本小,存在缺失年龄.年龄缺失状态下,式(2)因p(AGE|ci)=0为0,最终导致无法分类客户.将年龄离散化,即将一定值域内的年龄映射为一个特征值,可以解决部分年龄缺失问题.
3.3 数据离散化
贝叶斯分类算法要求特征值离散或可近似为概论分布函数.如前所述,小数据样本情况下,客户年龄需视为连续型特征.如图3、图4所示,通过可视化分析,年龄数据分布规律性不显著,但有阶段性特征,可以通过数据划分,实现数据离散化.对客户收入水平可视化分析发现,该属性数据同时具有一定统计分布规律和阶段化分布特征,故分别采用数据离散化和概率分布函数假设两种方式处理.
年龄与收入水平数据的离散化过程描述如下,以年龄为例,收入水平离散化过程类似.算法描述基于python语言,np代表科学计算包Numpy.
算法2.年龄、收入水平数据分段ADS,用于实现全部样本数据离散化
输入:带标注的客户数据U,异常数据滤除率κ
输出:年龄分段向量r
Begin
1.r←[] // 初始化年龄分段向量
2.UCLASS=1←U[U[′CLASS′]==1]//获取全部“积极”客户
3.A←UCLASS=1[′AGE′] // 获取全部“积极”客户的年龄
4.na=np.array(A.values) // 获取年龄矩阵
5.r←[np.percentile(na,κ),np.percentile(na,100-κ)]
//利用分位数函数将年龄值域分成3段
6.returnr
End
图2为年龄离散化示意图,“*”表示“积极”客户的年龄,“+”表示“消极”客户的年龄.ADS算法本质上是根据“积极”客户的年龄分布,将所有客户年龄分成3段,从而实现连续型数据的离散化,积极客户的年龄集中分布于中高年龄段.参数κ用于滤除分布异常的年龄数据.年龄、收入水平离散化后,对各个分段利用离散标识(如0,1,2或a,b,c)进行区别标注.参数κ影响数据离散化,并最终影响客户分类效果.
图2 年龄离散化示意图Fig.2 Discretization of age data
在对客户年龄离散化时,选择以“积极”客户为依据,而不是以“消极”客户依据或综合考虑所有客户,是基于“积极”客户为客户分类偏好这一事实的.
3.4 建立模型
客户的年龄数据、收入水平数据离散化后,使用朴素贝叶斯算法构建分类模型,标记为NBBDD(NBBDD,Naive Bayesian Based on Data Discretization).
假定客户收入数据满足高斯分布,即有式(3)成立.
(3)
x为客户收入水平.μ估计为客户收入均值,σ2为样本值与μ的方差,以此确定式(3)的参数.基于非离散化数据利用高斯贝叶斯算法构建分类模型,标记为GNB(GNB, Gaussian Naive Bayesian).
逻辑回归是一种常见易用的二分类算法,基于非离散化数据利用逻辑回归构建分类模型,标记为LG(LG,Logistic Regression),与前面两种方法进行横向性能比较.
4 实 验
4.1 数据可视化分析
对数据进行可视化分析,可以直观分析特征变量的分布特点及与目标变量的相关性.图3(a)为客户年龄直方图,无明显分布函数特征,图4(a)为客户年龄分布点图,“积极”客户(CLASS=1)主要集中在年龄中段,客户类别在年龄上有一定分段特征.
图3 年龄收入分布Fig.3 Age and income distribution
图3(b)为客户收入直方图,显现较好的类高斯分布特征.图4(b)为客户收入分布点图,“积极”客户(CLASS=1)主要集中在中间收入阶段,客户类别在收入水平维度有阶段分布特点.因此我们分别对客户年龄、收入水平进行离散化,而只对收入水平做出高斯分布假设.
4.2 模型训练与检验
经过前面对数据的分析和预处理,最终形成结构化数据190条.其中95条数据中的年龄、收入水平均离散化,称为data1.95条数据中的年龄离散化,收入水平未离散化,称为data2.数据样本集data1与data2除收入水平特征标识法不同外,其他特征值相同.
图4 年龄收入与分类Fig.4 Data and classification
实验环境为,操作系统WIN10,python3语言,Jupyter notebook环境.算法2中,参数κAGE=κINCOME=6.
由于样本规模小,本文采用5折交叉检验,即每次随机抽取20%的数据样本用作测试集,剩余80%样本数据用作训练集.利用样本集data1训练朴素贝叶斯分类模型NBBDD,利用样本集data2训练高斯贝叶斯分类模型GNB和逻辑回归模型LG.
正确率(accuracy)是分类算法的核心评价指标.本文显然更关注“积极”(CLASS=1)客户的分类准确率,即该类客户的召回率.
(4)
(5)
其中,T为预测正确的样本数,total为总的样本数,TPCLASS=1为争取预测的“积极”客户数,FNCLASS=1为预测错误的“积极”客户数.TPCLASS=1与FNCLASS=1可以从混淆矩阵中获得.混淆矩阵是机器学习中总结分类算法预测结果的情形分析表,行代表实际类别,列代表预测类别.
图5 预测准确率Fig.5 Prediction accuracy
每种算法分别进行10次模型训练、预测,准确率如图5所示,逻辑回归算法LG准确率波动最大,基于数据离散化的朴素贝叶斯分类算法NBBDD准确率最高且最稳定.“积极”客户召回率方面,如图6所示,逻辑回归LG的召回率极其不稳定,基于数据离散化的朴素贝叶斯分类算法NBBDD具有最高的召回率,且性能表现稳定.
3种算法中逻辑回归LG变现最差可能与样本数据规模较小有关.高斯朴素贝叶斯算法GNB基于客户收入水平数据符合高斯分布的假设,而本文中,客户收入水平存在左半部缺失等问题,影响了算法性能.基于数据离散化的朴素贝叶斯分类算法NBBDD从数据样本的分布出发,将收入水平分段,离散化数据,较好地反映出数据样本的真实状态,故性能最优.
图6 “积极”客户召回率Fig.6 Recall of CLASS=1
4.3 数据离散化对分类偏好的影响
因训练样本数据量小,单次实验客户分类准确度稳定性较差,如图5、图6所示.为增强实验结果的可比较性,针对NBBDD分类算法采用交叉检验方法多次执行训练与预测,计算平均正确率和平均召回率如图7所示,200次实验后,平均分类准确度数据基本稳定.同时,“积极”客户召回率一直高于客户分类正确率,说明在κAGE=κINCOME=6条件下,较好地实现了分类算法对“积极”客户的偏好.
图7 实验次数与客户分类稳定性Fig.7 Average accuracy and recall
ADS算法中异常数据滤除率κ影响数据离散化,并最终影响客户分类效果.为观察κ对客户分类正确率和召回率的影响,取κAGE=6,κINCOME分别取0,2,4,6,8,10,每种情况下计算200次实验的平均正确率和平均召回率.
图8 数据离散化对客户分类的影响Fig.8 Influence data discretization
如图8所示,ADS算法中异常数据滤除率κ对NBBDD客户分类算法产生了显著的影响.数据离散化过程中,对异常数据的过滤有助于提升分类正确度和召回率.同时通过恰当设置κ的取值,可以调节偏好样本的召回率.另外,正确率、召回率在随κ取值的变化过程中表现出异步特征.
5 结束语
针对特定金融产品的销售需求,通过推销测试收集客户样本数据.通过构造概率分布函数、离散化连续型数据两种方式搭建贝叶斯网络分类器.发现朴素贝叶斯分类算法NBBDD性能最优.通过恰当设置异常数据滤除率κ的取值,可以调控分类算法的分类偏好.下一步研究将重点关注金融客户特征选取及其他分类算法.同时,各种分类器的分类偏好也是一个有意义的研究方向.