银行客户满意度分析论文
浙江大学宁波理工学院
评委评语:评委签名:
银行服务客户满意度分析
综合评定成绩:
银行服务客户满意度分析
摘要:
随着全球银行业市场竞争的日趋激烈,提升客户的满意度,培养忠诚客户已成为各大商业银行开拓市场,增加盈利的重要手段之一。通过数据挖掘技术对客户满意度进行分析已成为研究热点。
桑坦德银行(Santander Bank)是欧洲第二大银行,他们提供了一个数据集要求通过数据挖掘技术在早期就能识别对其服务不满意的客户,以便及时采取合适的改进措施以提升客户的体验。
关键词: 数据挖掘技术 顾客满意度 PCA主成分分析法 决策树 预测
The thesis title
Abstract: A brief description of the abstract
Key words: The keyword extraction
目 录
1. 2.
研究目标 ................................................................................................ 4 分析方法与过程 .................................................................................... 5
2.1. 总体流程 ..................................................................................................................... 5 2.2. 具体步骤 ..................................................................................................................... 5 2.3. 结果分析 ................................................................................................................... 14
3. 4.
结论 ..................................................................................................... 14 参考文献 .............................................................................................. 14
1. 挖掘目标
(1)背景:
随着全球银行业市场竞争的日趋激烈,提升客户的满意度,培养忠诚客户已成为各大商业银行开拓市场,增加盈利的重要手段之一。通过数据挖掘技术对客户满意度进行分析已成为研究热点。
桑坦德银行(Santander Bank)是欧洲第二大银行,他们提供了一个数据集要求通过数据挖掘技术在早期就能识别对其服务不满意的客户,以便及时采取合适的改进措施以提升客户的体验。在本次竞赛中,参赛者需要通过分析匿名用户的上百个特征来预测用户对其银行服务的满意程度(满意或不满意)。在数据集中ID表示客户的匿名ID,TARGET是需要预测的变量,1表示不满意,0表示满意,剩余的列是已提取的跟客户满意度相关的观测指标(属性); 需求:
1、 分析哪些特征或特征组合能较好的对银行服务满意程度进行分析; 2、 建立合适的银行服务客户满意度模型;
3、 预测在测试集中每个客户的满意程度(属于不满意客户的概率); 4、 建立合适的评价指标,验证你的预测结果。 说明:
附件共分三个文件:Train.csv中是训练数据,其中包含预测量TARGET,Test.csv是测试数据,只包含属性数据。Sample_submission.csv是需要与源代码一起上传的最后结果样式,要求输出对Test.csv的测试结果。
(2)目标:
本次数据挖掘建模要达到的目标是利用银行关于客户信息建立下来的数据,采用数据挖掘技术,进行已知数据以及结果的相关分析测试找到规律建立模型,之后利用测试数据带入模型进行预测得到你结果。
题目给出的大数据的属性以及维度都比较大,所以会有一些冗余和无效数据,首先要先将高维大数据进行预处理,利用weka的元学习器,通过与NativeBayes方法一起使用,测试软件自带的属性选择方法,选择得到一些最具
影响力的属性进行作为训练子集,并且运用进算法里面。这个方法可以将数据进行降维,保留相应比较主要的影响因素属性。随后将数据和人属性一起放入决策树分类算法,建立合理的模型,可以找到不同属性对目标决定影响程度,建立完成比较合理的分类系统。随后将题目给出的测试数据放入模型,利用已知的模型进行预测,可以推算出客户满意情况,银行可以对于这个预测结果对相应用户可以提早对其采取相应措施。
2. 分析方法与过程
2.1. 总体流程
2.1.1 问题1
2.1.2 问题2、3、4
2.2. 具体步骤
2.2.1 解问题1
将excel数据进行转化得weka可以识别的csv格式,利用weka的另存功能
得到arff格式,这个过程得到的数据还是不能直接进入决策树运用的。需要打开arff格式的数据,将数据类别的一栏修改为银行需要的0、1满意度类别,将数据加载计入决策树可以得到一个枝节繁茂的树,由此可以从这棵树的模型之中得到影响因素中最大的特征或特征组合为根节点以及靠近根节点的几个特征。
使用wake通过决策树J48算法 ,验证训练集,结果如图:
图1
图2
2.2.2 解问题2、3、4
本用例主要包括如下步骤: 步骤1:数据筛选&数据预处理
从原始数据分析得到,题目给出的原始数据属性太多,并且都是未知属性,此外表格的大部门数据值为0,面对这个训练集,里面特征很多是和类标签有关的,但里面存在噪声或者冗余。在这种情况下,需要一种特征降维的方法来减少特征数,减少噪音和冗余,减少过度拟合的可能性。
所以我们利用weka深入研究自动属性选择,它允许指定属性选择方法和学习算法,作为分类器的一部分。该分类器确保选择属性子集仅基于训练数据。
该算法的好处: 提高数据准确估计
在选择属性过程中避免了因为有监督的过滤器的使用而而导致减少后的一部分数据用于模型测试的过程中,在选择属性中回导致已经看到了测试数
据中要使用的属性,从而影响模型构建有偏倚的准确性估计。 提高属性选择效率
该方法是利用算法,让学习器对数据进行自己学习选择,提取重要影响因素,这种软件自己学习选择得到的数据结果比手工选择相关属性具有更加高的准确率。
我们想要利用上面的方法筛选得到需要的训练子集,这个训练子集对总体的影响程度相关性比较大。利用这些对模型训练起较大作用的数据,从而建立一个更科学的决策树模型,使得这个模型可以应用于测试数据,从而进行相关的结果预测。最后我们得到的训练子集为如下10个:
图
3
图4
步骤2:建模&预测 1、建模
将上面预处理得到的训练子集,打开分类面板,利用 weka 的分类算法
——决策树(J48)。采取预剪枝的的优化方法,设定枝节的阈值为10,置信区间为0.55的决策树预设,进行分类处理。
该算法的原理是通过对属性的信息熵的计算,以信息增益量为度量进行划分分裂结点,选取信息增益量最小的作为根节点,下面就重复上面的步骤依次将节点分裂完全,最终知道该节点只有一个分裂方向或者该节点的分裂枝节小于阈值,则停止分裂。
建模过程中,我们一决策目标TARGET为样本的类别,属性值具体如下:
@attribute TARGET {0 , 1}
为了知道不同特征属性的银行客户最终满意程度,我们需要做的是建立一个合理的决策树模型,筛选出需要的属性特征作为决策节点。其中决策树的核心算法是J48,他不是一个算法,而是一组算法,其中包括剪枝与非剪枝J48。可是,一个元组本身有很多属性,我们怎么知道首先要对哪个属性进行判断,接下来要对哪个属性进行判断?这个时候算法原理是利用了属性选择度量来解决这个问题的。
属性选择度量又称分裂规则,因为它们决定给定节点上的元组如何分裂。属性选择度量提供了每个属性描述给定训练元组的秩评定,具有最好度量得分的属性被选作给定元组的分裂属性。目前比较流行的属性选择度量有--信息增益、增益率和Gini指标。
因为J48与C4.5相同,这里我们利用C4.5进行数据挖掘分析,该算法主要包括有如下一个公式:
(1)信息熵:pi表示该节点上类别i的训练记录所占的比例;
(2)划分信息熵:现在假定按照属性A划分D中的元组,且属性A将D划分成v个不同的类。在该划分之后,为了得到准确的分类还需要的信息由下面的式子度量:
(3)信息增益:信息增益定义为原来的信息需求(即仅基于类比例)
与新需求(即对A划分之后得到的)之间的差;
(4)分裂信息: C4.5引入属性的分裂信息来调节信息增益 一般说来,对于一个具有多个属性的元组,用一个属性就将它们完全分开几乎不可能,否则的话,决策树的深度就只能是2了。从这里可以看出,一旦选择一个属性A,假设将元组分成了两个部分A1和A2,由于A1和A2还可以用其它属性接着再分,所以又引出一个新的问题:接下来我们要选择哪个属性来分类?对D中元组分类所需的期望信息是Info(D) ,那么同理,当我们通过A将D划分成v个子集Dj(j=1,2,„,v)之后,我们要对Dj的元组进行分类,需要的期望信息就是Info(Dj),而一共有v个类,所以对v个集合再分类,需要的信息就是公式(2)了。
但是,使用信息增益的话其实是有一个缺点,那就是它偏向于具有大量值的属性。
正是基于此,信息增益率这样一个概念。信息增益率使用“分裂信息”值将信息增益规范化,分类信息类似于
Info(D)
(5)信息增益率:
这里选择具有最大增益率的属性作为分裂属性
2、 预测
将题目给出的测试集带入训练得到的决策树模型,可以根据属性进行进行分类决策,最终在输出的结果中看到在待预测的总的待分析实例中有49个为不满意客户。 步骤3:结果&评估 1、
结果
有训练子集得到的较大影响因素的训练子集,利用主要可替代全部变量属性的10个替代属性和一个决策属性,在J48分类器下得到有27树节点,14叶子节点的决策树模型,其准确率为 96.026 %,建立该模型的
大部分数据预测还是比较准确的。具体参数如下:
=== Run information ===
Scheme: weka.classifiers.trees.J48 -C 0.5 -M 10 Relation:
train-weka.filters.unsupervised.attribute.Remove-R1-weka.filters.unsupervised.attribute.Remove-R1,3-88,90-138,140-147,149-164,166-182,184-190,192-280,282-328,330-331,333-369
Instances: 76020 Attributes: 11 var15 num_var4 num_var30 num_var35 saldo_var5 saldo_var30 saldo_var42 num_meses_var5_ult3 saldo_medio_var5_hace2 saldo_medio_var5_ult3 TARGET
Test mode: 10-fold cross-validation
=== Classifier model (full training set) ===
J48 pruned tree ------------------
saldo_var30
| var15 27
| | saldo_var30 36
| | | | saldo_var5 -220.92: 0 (10.0/4.0) | | saldo_var30 > -184.44: 0 (10118.0/1601.0) saldo_var30 > 2.94
| saldo_medio_var5_ult3
| | | num_var4 1
| | | | var15 36
| | | | | num_meses_var5_ult3
| | | | | | num_var4 2
| | | | | | | saldo_var30 18.99: 0 (10.0/1.0) | | | | | num_meses_var5_ult3 > 0 | | | | | | num_var4 2: 0 (153.0/31.0) | | saldo_var30 > 189.03: 0 (4350.0/79.0) | saldo_medio_var5_ult3 > 1.95: 0 (49736.0/957.0)
Number of Leaves : 14
Size of the tree : 27
Time taken to build model: 1.54 seconds
=== Stratified cross-validation === === Summary ===
Correctly Classified Instances 72999 96.026 % Incorrectly Classified Instances 3021 3.974 % Kappa statistic 0.0039 Mean absolute error 0.073 Root mean squared error 0.1911 Relative absolute error 96.0326 % Root relative squared error 98.0271 % Coverage of cases (0.95 level) 98.1518 % Mean rel. region size (0.95 level) 59.3081 % Total Number of Instances 76020
=== Detailed Accuracy By Class ===
TP Rate FP Rate Precision Recall F-Measure MCC ROC Area PRC Area Class
1.000 0.998 0.961 1.000 0.980 0.980 0
0.002 0.000 0.259 0.002 0.005 0.107 1
Weighted Avg. 0.960 0.958 0.933 0.960 0.941 0.945
=== Confusion Matrix ===
0.021 0.718 0.021 0.718 0.021 0.718
a b
此时得到得决策树模型图为:
图5
将测试数据带入到训练得到的模型中,可以得到对银行客户预测结果中有50个为不满意的情况:
图6
图7
银行主要对于这些客户需要进行相关注意措施,详细算法结果、决策树图见附录文档,文件夹还包含训练集(MainTrain)、测试集(MainTrain)、训练模型。 2、
评估
2.3. 结果分析
对数据挖掘建模过程中产生的图表结果进行解释分析。
3. 结论
结合研究目标和实现效果,对本次研究下一个结论性的评语。
4. 参考文献
列举在本次研究中所参考的文献. 例如:
[1]刘涛,张良均. 大规模智能用电系统海量数据处理与数据挖掘技术研究及应用[Z]. 博士后重大专项