于春悦, 曹 宇, 程 旭
(辽宁石油化工大学 人工智能与软件学院,辽宁 抚顺 113001)
随着互联网和经济的发展,银行也随需要采取一定措施留住客户。但是,银行的系统数据越来越丰富和复杂,在大型数据库中真正有利的信息并不多,银行虽然获得大量的业务数据和结构化数据等,但有效信息却很匮乏,再者受新兴投资理财模式的冲击,银行若不采取一定措施留住客户、对新兴产业积极应对,则会导致整个银行系统发展缓慢甚至在激烈竞争的浪潮中没落。因此,对银行而言,预测未来长期存款客户的重要性进一步凸显,只有准确预测长期存款客户才能达到对客户精准营销的目的。
为了科学预测银行客户是否打算长期存款,研究者们提出了诸多的分类预测模型。例如,经典的ID3 算法,该算法是有局限性的决策树算法,不能处理特征值为连续的属性值;优化后的C4.5 算法,其运算耗时,效率较低。为了提高模型预测精度, L.BREIMAN 等[1]于1984 年提出了CART 分类回归树,该方法采用二元切分法,取得了较好的预测效果。银行业务竞争激烈,为把握长期积累下来的大量客户资源,邹少军[2]利用决策树算法与数据挖掘技术分析了客户关系管理在银行的应用模式,采用概念描述的方法获得客户信息并进行了评价;使用关联规则和聚类分析发现客户信息数据之间的关系并进行划分,选取1 000 个样本客户并对其进行了分析;利用信息增益创建决策树,选取银行的忠诚客户,对长期存款客户预测研究提供了较大的理论支持。为进一步研究该课题,李雅宇[3]采用CART 算法构建决策树,描述性统计了变量与标签之间的关系;剔除不一致值及四个变量,对不平衡数据进行了SMOTE 了算法采样处理;随机抽取数据集的3/4 作为训练集,数据集的1/4 作为测试集,模型最佳预测结果准确度(ACC)为89%。但是,该方法对噪声数据处理能力不够强,预测结果有一定的提升空间。虽然数据挖掘人员一直致力于开发更好的分类算法,但在这个领域中,对于领域知识指导的特征构造对分类性能影响的研究相对较少。在许多应用领域中,可以利用领域知识来构建更高级别的特征,从而提高性能。H.M.ZHAO 等[4]比较了两组用于银行倒闭预测的分类器的性能,一组使用原始会计变量构建,另一组使用财务比率构建。使用逻辑回归、决策树、神经网络和k-近邻算法等学习分类器。研究表明,在领域知识的指导下,特征构造能够显著提高分类器的性能,而且不同方法之间的改进程度存在显著差异。因此,未来研究数据挖掘时不仅要研究特征的构造,而且要研究特征的提取,解决更广泛的数据挖掘融合问题和领域知识。随着数据挖掘技术的发展,机器学习被越来越多地应用于银行存款客户预测领域。为帮助银行更好地分配人力资源,提高业务量,张钰莎[5]比较SVM、CRT 树、C5.0 树、QUEST 树、逻辑回归和贝叶斯网络模型的预测效果,分别进行10 次训练预测,分析属性意义,对银行提出了营销上的建议。仿真结果表明,基于逻辑回归模型的预测结果准确率能够达到90%以上,但数据处理不完整,需进一步优化。段龙刚等[6]为精准构建用户画像,提出了一种有效的银行客户数据挖掘方法。该方法能够提高分类模型精度,降低数据特征冗余,降低成本;使用相关系数方法、随机森林及量化认知进行综合特征选择,选择最佳特征后测试集精准度高达99%。但是,模型参数需人工调节,系数的选取对模型预测效果有较大影响且该方法未必适合其他数据集。为通过电话营销实现客户价值最大化战略,A.ILHAM 等[7]对比了七种模型的预测效果。结果表明,在决策树、朴素贝叶斯、随机森林、K-NN、SVM、神经网络和逻辑回归模型中,SVM 展示了良好的分类效果,准确度(ACC)和模型评估效果(AUC)分别达到了91.07%和0.925。但是并未对数据做任何预处理,否则测试结果可能有所不同。为对意愿客户精准营销,韩弘炀[8]结合数据挖掘技术与实际业务对银行营销活动进行指导,利用贝叶斯平滑方法构建新特征空间,从而降低干扰,提高模型预测的精准度。使用决策树、随机森林、XGBoost、Light GBM 模型进行了最优参数选择。结果表明,使用Label Encoding 编码的XGBoost 模型有较好的预测效果,AUC 达到0.942 9,ACC 为88.75%。但是,文献[8]的首要目标是提升AUC,忽略了正确率对银行的意义。为评估银行客户信用,夏春梅[9]使用两种贝叶斯信用评估模型进行了测试。结果表明,使用贝叶斯网络分类器进行客户信用分类的准确度更高(77.62%) ,但对信用极差客户的预测效果不好,需加以优化。为解决当前竞争加剧导致客户流失严重的问题,M.T.ZHENG[10]采用决策树分析方法识别重要属性,对SVM 和逻辑回归分类算法进行了比较。结果表明,SVM 算法的性能较好,ACC 达到86.00%,但对数据类别处理不平衡,将影响实验结果。张利利等[11]构造了一种新模型,将BP 神经网络模型与Logistic 逻辑回归模型结合,与单个模型和决策树模型进行了对比。结果表明,新的混合模型表现出强稳定性且预测效果更好,ACC 达到了93.10%,AUC 达到了0.987。但预测效果仍有提升空间。
为了提高银行存款客户预测的ACC 与AUC,本文建立了神经网络模型,使用UCI 数据集的一家葡萄岛银行客户数据进行预测,并与CRAT 决策树模型、随机森林模型、基于Boosting 思想的集成算法Adaboost 和XGBoost 模型实验结果进行了对比,结果表明神经网络模型的ACC 更高。因此,本文提出的模型对科学挖掘潜在客户、增加银行盈利具有重要意义。
基于葡萄岛银行针对存款业务推广的市场营销活动进行数据研究,数据来源于UCI 机器学习库(http://archive.ics.uci.edu/ml/datasets.php)提供的葡萄岛银行从2008 年5 月到2013 年11 月共41 188次的电话销售记录,共有21 个变量用来预测分类变量y(银行客户是否同意长期存款),并给出20 个可能影响是否长期存款的属性变量。本数据集是非平衡数据,销售成功的数据仅有4 640 个。抽取样本的70%作为训练集,30%作为测试集。
神经网络是机器学习的一种模型,其中反向神经网络(BPN)是目前人工神经网络技术中应用广泛的模型,适用于分类预测,可以处理线性与非线性分类。单隐含层神经网络结构如图1 所示。BPN分为三层,即输入层、隐含层和输出层,是一种按误差逆传播算法训练的多层前馈网络,通过反向传播误差和梯度下降算法使目标函数最小化。该模型对数据属性要求不高,离散型与连续型均可[12-13]。这种网络依赖于系统的复杂性,通过调整大量内部节点间的关联性来处理信息,现有的统计方法对数据分析效果一般,采用此模型将产生更好的预测效果。
图1 单隐含层神经网络结构图
模型训练结束后,使用测试集验证模型的预测效果。根据银行客户数据预测结果,采用混淆矩阵来评估模型效果。混淆矩阵统计图如图2 所示。
图2 混淆矩阵统计图
由图2 得到两个主要评价指标:ACC 和AUC。
指标1:ACC,预测正确样本占总样本比率。
式中:VACC代表ACC 值,VTP代表真正类值,VFP代表假正类值,VFN代表假负类值,VTN代表真负类值。
ROC 曲线:以TP 为横坐标、FP 为纵坐标,绘制ROC 曲线即受试者工作特征曲线。ROC 曲线用于衡量分类预测精度。
指标2:AUC,即ROC 曲线与X轴所围成的面积,其值越接近于1,代表模型的分类预测效果越好。
本实验分别使用决策树模型、Adaboost 模型、XGBoost 模型、随机森林模型和神经网络模型,对葡萄岛零售银行的电话销售数据进行分析及预测,根据客户的详细信息判断客户是否可能在该银行长期存款,据此银行可对客户进行针对性营销。实验模型运行的计算机编码工具为Anaconda 4.11.0,pyhton3.8 版本,运行环境为python3.8 下的Anaconda 的base 环境。
根据实验结果,分析各模型对银行客户数据的预测情况。将五种模型的预测结果进行对比,评价各模型的预测效果。最终,确定预测效果最好的模型,使AUC 与ACC 在测试集上达到最高。
为防止对数据进行分类预测时出现过拟合情况,对连续型与离散型数据进行分箱处理,具体处理方式根据数据与同意存款率决定。由于本数据集是非平衡数据,销售成功的数据仅有4 640 个,少数类才是实际研究的目标,因此进行随机过采样处理,使数据达到平衡。另外,删除含义不一致的数据。
3.2.1 Adaboost 模型预测
将银行客户数据代入Adaboost 模型中。测试集共有19 782 条数据,模型分类预测正确率达到0.830 0;不同意存款的客户在测试数据中的样本总量为10 044 条,同意存款的客户在测试数据中的样本总量为9 783 条。模型预测结果如图3 所示。
图3 Adaboost 模型预测结果
从图3 可以看出,模型的AUC 达到了0.836 2,分类预测效果一般,因此认为该模型预测效果不佳,需要提升模型的精度[14]。
3.2.2 决策树模型预测
建立CRAT 树进行预测,由于ID3 算法与C4.5算法预测效果较差,在此不做展示。对原始数据进行随机采样,选取70%作为训练集,30%作为测试集,利用决策树模型进行训练对y做预测。由于构建决策树时树会无限制生成,不考虑整体情况,而叶节点过多会导致过拟合现象出现,影响预测结果,剪枝操作在一定程度上也影响模型的预测精度[15-16],因此采用预剪枝法,设置树的深度评估指标为entropy,最大深度限制为18,预测结果如图4 所示。
图4 决策树模型预测结果
从图4 可以看出,训练模型的ACC 达到0.950 0,AUC 为0.946 9,与Adaboost 模型相比,有了明显提高。因此,决策树模型对银行长期存款客户预测有一定科学性与准确性,对银行营销在一定程度上起到积极作用。
3.2.3 XGBoost 模型预测
将银行客户数据代入XGBoost 模型中,对模型建立的树未进行任何调优剪枝操作,得到模型各项指标数据。测试集共有19 782 条数据,模型分类预测正确率达到0.940 0。不同意存款的客户在测试数据中的样本总量为10 044,同意存款的客户在测试数据中的样本总量为9 783。模型预测结果如图5 所示。
图5 XGBoost 模型预测结果
与决策树模型相比,XGBoost 模型评估AUC有所提升,该模型对银行营销有一定影响力[17],银行可作为参考进行精准营销。
3.2.4 随机森林模型预测
在实际应用中,AUC 达到0.800 0 就可以接受,预测效果较好是因为训练集与测试集数据分布相似。在随机森林模型预测时,进行了调优处理,交叉验证10 次,决策树数量控制在181 次,衡量标准使用基尼系数,对树的深度不做限制。得到测试集中客户长期存款数据样本数为10 800,不同意存款样本数为8 982,模型的ACC 为0.960 0,整体评估效果较好[17]。模型预测结果如图6 所示。
图6 随机森林模型预测结果
随机森林模型评估AUC 达到0.960 3,因此此模型对银行营销方面有较大参考价值。
3.2.5 神经网络模型预测
将数据分三层,第一层为输入的训练集数据,第二层为自动推断输入层,第三层输出分类结果。实验共迭代100 次,进行了随机过采样处理,输入层有454个神经元,输出层有1 个神经元[19]。实验的调优采用计算效率高且收敛稳定的AdamOptimizer优化器。
构建神经网络的隐含层1-5 层,并对其进行评价,结果见表1。以ACC 为最高评价指标,则所构建的神经网络共5 层,隐含层的神经元分别为64、128、256 个。
表1 隐含层数的评价结果
5 层神经网络预测结果如图7、图8 所示。
图7 神经网络模型预测结果AUC
图8 神经网络模型预测结果ACC
神经网络模型在测试集上预测效果更好,ACC达到0.990 6,AUC 达到0.977 7。
3.2.6 模型效果对比
Adaboost 模型、决策树模型、XGBoost 模型、随机森林模型、神经网络模型均可以用来处理分类问题,其各自优缺点如下:
Adaboost 模型集成机制灵活,对弱分类器无任何要求,模型训练效率、分类、预测精度都较高;缺点是弱分类器的数量及权重不易确定,此外样本数据的不平衡会导致分类精度波动较大。
决策树模型比较容易理解,能够处理不相关的特征,在测试数据集时处理能力较强,运行速度快,且在较短的时间内可对大型数据得出可行、效果较好的结果。但是,决策树模型在分类预测时容易发生拟合,也容易忽略数据集中属性之间的相关性。
XGBoost 模型预测精度高,具有一定灵活性,且支持列抽样,可以降低过拟合,但预排序过程的空间复杂度过高,比较消耗内存。
随机森林模型可以自行判断特征的重要程度以及特征之间的相互影响,也不易过拟合,但在数据噪音较大的情况下效果一般。
神经网络模型通过分层形式,自学习和自适应能力较强,容错能力较强,在神经元受到损坏后对全局训练效果不会造成较大影响。但是,该模型容易产生局部最小化,且收敛速度较慢。
表2 给出了五种模型在测试集上的运行时间、ACC 与AUC。由表2 可知,神经网络模型在本数据集上的预测效果较好,且模型复杂度相对较低。通过综合比较发现,神经网络模型预测银行长期存款客户的效果最优,且可解释性较强,可对银行营销策略提供有利依据。
表2 五种模型的比较结果
本文提出的神经网络模型共分三层,即输入层、隐含层和输出层,是人工神经网络模型中比较经典的前馈神经网络。前馈神经网络的本质是一种数学函数,能够将输入数据映射成输出数据。在本次实验中,输入20 个特征数据,输出2 个分类数据。Keras 是深度学习领域的技术框架,也是python中的高级深度神经网络API,实验通过Keras 搭建神经网络。输入层及隐含层采用Relu 激活函数,由于实验为二分类问题,输出层采用sigmoid 激活函数,在训练模型过程中,作为分类器的BP 神经网络采用有监督的学习方式,训练有标签的数据集。结果表明,神经网络模型在分类预测领域表现较好,与其他模型相比,ACC 和AUC 均有很大提高。
以葡萄岛银行针对存款业务推广的市场营销活动得到的数据为基础,分别建立Adaboost 模型、决策树模型、XGBoost 模型、随机森林模型以及神经网络模型,对银行长期存款客户进行了预测。
从评估指标AUC 来看,Adaboost 模型虽然复杂度较低,但对本文数据预测效果较差,决策树模型与之相比有较大提升,XGBoost 模型与决策树模型预测效果相差不大,都展示了不错的预测效果,且模型复杂程度相近。随机森林模型比XGBoost 模型和决策树模型预测精度更高,但复杂度相对较高。神经网络模型预测效果最好;与随机森林模型相比准确度提升幅度为3.06%,AUC 提升了0.017 4。因此,神经网络模型能更好地预测银行长期存款客户,对银行精准营销策略制定具有重要意义。
对数据定量分析后,给银行营销提出几点建议:多考虑较为年轻和58 岁以上的客户;重点考虑学生以及退休客户,其次考虑行政、管理类以及失业客户;多联系单身和高等学历客户;把握初次的营销机会;联系时长5 min 以上最佳,因此银行需尽早抛出客户感兴趣信息;把握就业形势较差的时机营销。只针对葡萄岛银行营销数据进行预测,可以根据不同区域的数据分类需求采用神经网络模型实现银行精准营销。