原始数据: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(-