R语言(把银行已认购定期存款的客户原始数据建立决策树模型,从而预测新一批客户是否会认购定期存款)

原始数据:bank

输入变量:
#银行客户资料:
1-年龄(数字)
2-工作:工作类型(分类:“管理”,“未知”,“失业”,“管理”,“女佣”,“企业家”,“学生”,“蓝领”、“个体户”、“退休人员”、“技术人员”、“服务人员”)
3-婚姻:婚姻状况(分类:“已婚”、“离婚”、“单身”;注:“离婚”指离婚或丧偶)
4-教育(分类:“未知”、“中等”、“初级”、“高等”)
5-违约:信用违约吗?(二进制:“是”,“否”)
6-余额:年平均余额,单位:欧元(数字)
7-住房:有住房贷款吗?(二进制:“是”,“否”)
8-贷款:有个人贷款吗?(二进制:“是”,“否”)
#与当前活动的最后一个联系人相关:
9-联系人:联系人通信类型(分类:“未知”、“电话”、“手机”)
10天:每月的最后一个联系日(数字)
11个月:一年中最后一个联系月(分类为:“一月”、“二月”、“三月”、“十一月”、“十二月”)
12-持续时间:上次联系持续时间,以秒为单位(数字)
#其他属性:
13-活动:在此活动期间为此客户执行的联系人数(数字,包括最后一个联系人)
14-pdays:上次从上一个活动联系客户后经过的天数(数字,-1表示以前没有联系过客户)
15-上一页:在此活动之前为此客户执行的联系人数(数字)
16-poutcome:上一次营销活动的结果(分类:“未知”、“其他”、“失败”、“成功”)

输出变量(所需目标):
17-y-客户是否已认购定期存款?(二进制:“是”,“否”)
#设置工作空间,导入数据
setwd('D:/bankfull')
bankfull <- read.csv2("bank-full.csv",stringsAsFactors = F) # 数据读取
#查看变量
names(bankfull)
#数据探索
summary(bankfull)
#处理噪声数据
library(outliers)
outlier(as.numeric(bankfull$balance))# opposite = FALSE, logical = FALSE
#检测NA值,并输出其位
which(is.na(bankfull))
#删除含有缺失值的行
bankfull=na.omit(bankfull)
#删掉所有列上都重复的
bankfull<-bankfull[!duplicated(bankfull),]
#将处理后的数据保存
write.csv(bankfull,'bankfull.csv')


#提取数据的第一列(年龄),第五列(是否信用违约);将数据按照年龄升序排序
newbankdata <- bankfull[,c(1,5)]
newbankdata=newbankdata[order(newbankdata$age),]#默认升序
write.csv(newbankdata,'newbankdata.csv')
#统计违约人数
weiyuenum<-data.frame(table(newbankdata[,2]))
write.csv(weiyuenum,'weiyuenum.csv')
#将其中违约的提取出来
weiyue <- subset(newbankdata,newbankdata$default == "yes")
write.csv(weiyue,'weiyue.csv')
#age<=12的为小孩;12<age<=30的为青年;30<age<=60的为中年;age>60的为老年
a<-cut(weiyue$age,breaks=c(-
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值