基于决策树算法的银行营销预测

摘 要:
本文通过搜集银行营销的相关数据,使用C5.0算法进行数据挖掘,根据相关指标预测客户是否会订购定期存款。首先用箱线图来确定连续型属性的离群点并删除,删除意义不明的因子型属性的记录,使用分层抽样的方式选取测试集和训练集,然后代入C5.0算法建立模型,初次建模训练集的正确率为95.3%,在测试据的正确率为92.05%,生成的决策树大小为15。对pdays和duration属性进行同统一划归后,再次建模,训练集的正确率降为93.5%,而在在测试集的正确率提高到92.45%,而且生成了一棵只有5条规则的决策树,简单明了,改进模型后过度拟合得到了有效的解决。最能影响客户是否会订购定期存款的属性是poutcome、age和duration,银行人员可以根据这些属性对客户进行更有针对性、更有效的营销。
关键词:银行营销 C5.0算法 箱线图 过度拟合

The thesis title
Abstract:
This paper collects relevant data from bank marketing, uses C5.0 algorithm to perform data mining, and predicts whether customers will order fixed deposits based on related indicators. First, use the box plot to determine the outliers of the continuous attribute and delete it, delete the record of the factor attribute whose meaning is not clear, use the stratified sampling method to select the test set and the training set, and then substitute the C5.0 algorithm to establish the model. The accuracy rate of the modeling training set is 95.3%, the correct rate for the test data is 92.05%, and the generated decision tree size is 15. After the pdays and duration attributes were unified and reclassified, the accuracy of the training set was reduced to 93.5%, while the accuracy rate in the test set was increased to 92.45%, and a decision with only 3 rules was generated. The tree is simple and clear, and the overfitting of the improved model has been effectively solved. The attributes that most affect the customer’s ability to order fixed deposits are poutcome, age, and duration. Bankers can use these attributes to make more targeted and effective marketing for their customers.
Key words: Bank Marketing C5.0 Algorithm Boxplot Overfitting
目 录
1 数据挖掘目标 1
2 数据理解 2
3 数据预处理 3
4 模型的建立 4
5 模型评估及改进 5
6 结论 6
7 系统收获 7
8 参考文献 8
附录 9

1 数据挖掘目标
本次建模目标是利用葡萄牙银行机构直接营销的海量真实数据,采用数据挖掘技术,分析各类属性预测客户是(yes)否(no)会购买定期存款(y),决策属性有客户自身的信息,由于银行的直接营销活动的是以电话为基础的,所以银行机构的客服人员 至少需要联系一次客户来得知客户是否将认购银行的定期存款,所有决策属性中还有客服人员与客户联系的信息以及其他属性。通过这些属性完成分类的预测任务,来帮助银行更有效、更精准的直接营销。
2 数据理解
2.1读入数据
从UCI Machine Learning Repository: Data Sets(网址:http://archive.ics.uci.edu/ml/datasets.html)下载了bankmarketing共4521条数据,17个属性。
这是一个只有一列但包含17个属性的CSV格式的数据,使用read.csv()函数读入数据,以分号分隔。
2.2属性说明
表2-1属性说明
序号 属性 说明
1 Age 年龄(数字)
2 Job 工作(工作类型)
3 marital 婚姻状况(绝对:“已婚”,“离婚”,“单身”;注:“离婚”是指离婚或丧偶)
4 education 教育水平(分类:“未知”,“中学”,“小学”,“大专”)
5 default 默认是否有信用(二进制:“是”,“否”)
6 balance 平均每年余额(欧元)(数字)
7 housing 是否有住房贷款(二进制:“是”,“否”)
8 loan 是否有个人贷款(二进制:“是”,“否”)
9 contact 联系人通信类型(分类:“未知”,“电话”,“手机”)
10 day 每个月的最后一个联系日(数字)
11 month 每年的最后一个联系月份
12 duration 上次联系持续时间,以秒为单位(数字)
13 campaign 在此广告系列和此客户中执行的联系数量(数字,包含最后一次联系)
14 pdays 客户最近一次与之前活动联系后经过的天数(数字,-1表示之前未联系过客户)
15 previous 此广告系列和此客户端之前执行的联系数量(数字)
16 poutcome 以前的营销活动的结果(分类:“未知”,“其他”,“失败”,“成功”)
17 y 客户是否订购了定期存款(二进制:“是”,“否”)

3 数据预处理
3.1处理缺失值
一共17个属性,4521条数据。使用is.na(数据名) 查看数据中的缺失值,由于数据量庞大不方便,所以使用sum(is.na(数据名))统计缺失值的个数,结果为0.说明此数据中没有缺失值
3.2筛选数据
选取前16个属性作为分类属性,第17个属性为预测属性。对每一个分类属性的规范性以及合理性进行检查,并筛选出符合条件的记录。
3.2.1筛选连续型变量
对于连续性变量绘制箱线图,找出离群点并做删除。
在16个属性中,连续性变量有age,balance,day,duration,campaign,pdays,previous,对每个属性绘制箱线图查看离群点的分布。使用summary(数据名$列名)函数可以获取描述性统计量,可以提供数值型变量的最小值、最大值、四分位数、中位数和的值。
结合公式:
Min=下四分位数-1.5IQR (1)
Max=上四分位数+1.5
IQR (2)
其中:IQR表示四分位距,即上四分位数与下四分位数的差值。
检查以下属性是否存在离群点:
1) Age 年龄,删除年纪大于73的记录,如图3-1:

图3-1
2) Balance平均每年余额(欧元),删除月大于3509.75和小于-200.25的记录

图3-2
3) day每个月的最后一个联系日,没有离群点不做删除。

图3-3
4) duration上次联系持续时间,以秒为单位,删除上次联系时间大于552秒的记录。

图3-4
5) campaign在此广告系列和此客户中执行的联系数量(数字,包含最后一次联系),删除联系数量大于5的记录。
6) pdays客户最近一次与之前活动联系后经过的天数,pdays属性中有2500条左右值为-1,剩余越500条是不为-1,处于1~871之间的一些值。这列数据的中位数,上四分位数,下四分位数均为-1,如果删除离群点,这个属性全为相同的值,就没有意义了。

图3-5
7) previous此广告系列和此客户端之前执行的联系数量,previou属性中有2500条左右值为0,剩余约500条是不为0,处于1~24之间的值,此列属性的上四分位数,下四分位数和中位数都是0,所以也不做删除。

图3-6
3.2.2筛选因子型变量
对于因子型的变量,存在一些值为unknown的因子,使用summary(数据名$列名)可以对因子型变量进行频数统计,对于数量较少的做删除,数量庞大删除可能会影响分类结果的保留。
因子型的变量中存在值为“unknown”的有以下属性:
1)job工作类型,unknown值较少,进行删除。
2 ) education教育水平,unknown值较少,进行删除。
3) contact联系人通信类型,unknown值有1000多条,为了避免影响结果,所以不做删除。
4) poutcome以前的营销活动的结果,unknown值有2500多条,为了避免影响结果,所以不做删除。
不存在“unknown”值得因子变量有以下属性:
1)marital婚姻状况,三个取值,无异常值。
2)default ,二元变量,无异常值
3)housing是否有住房贷款,二元变量,无异常值
4)loan是否有个人贷款,二元变量,无异常值
5)month每年的最后一个联系月份,十二个月份,无异常值。
4 模型的建立
使用决策树算法中的C5.0算法,把前十六个属性作为输入变量,来预测客户是否订购定期存款。
在Rstdio中建立模型的过程:
第一:安装并加载C50和caret包

  • 7
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值