资源描述:
《r数据挖掘实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Crime&Shock数据集分析展示探索性数据分析CommunitiesandCrimeUnnormalizedDataSet(Datasource)2一、数据预处理#导入crime数据,修改变量名称,并查看数据属性crim=read.table("crim.txt",sep=",",na.string="?")name=read.table("attr_vol.txt")name=name[,2]colnames(crim)<-namesummary(crim)dim(crim)3观测值:2215变量数:147部分数据严重缺
2、失四、犯罪率分布情况4在3月份的行业销售旺季,东北地区及北部地区销售额占到公司全月总额的70%,西部地区仅为10%,西部死去市场潜力还需深度挖掘。可看出violentPerPopnonViolPerPop都出现了不同程度的拖尾特征,考虑对数据进行对数变换由图可知四、对数化变换5做变换后两变量数据较为对称由图可知四、犯罪率地区差异6三个地区犯罪率的中位数由西向东递减,分布相对集中,但东部地区出现了较为明显的离群值7缺失值处理nrow(crim[!complete.cases(crim),])##缺失值项的总行数#基本每行都有缺失值n
3、a.sta=c()for(iin1:2215){na.sta=c(na.sta,length(which(is.na(crim[i,]))))}max(na.sta)#缺失值基本在20左右,没有#缺失过于严重的样本,无需删除8缺失值处理:临近值插补从数据集中选取若干条其他属性和它相似的样本(即和它在空间欧式距离最短的n条样本),求其中位数进行插补crim$gangUnit=as.factor(gangUnit)crim1=crim[,c(6:126,128:147)]library(cluster)##调用R语言中的cluster
4、包#计算空间距离dist.mtx<-as.matrix(daisy(crim1,stand=T))##计算这2215个样品的空间距离9缺失值处理:临近值插补#先处理非因子型变量的缺失值,需要将以下步骤进行两次for(rinwhich(!complete.cases(crim1)))crim1[r,which(is.na(crim1[r,]))]<-apply(data.frame(crim1[c(as.integer(names(sort(dist.mtx[r,])[2:20]))),which(is.na(crim1[r,]))
5、]),2,median,na.rm=T)#再处理因子型变量的for(rin1:2215){if(is.na(gangUnit[r])){index=sort(dist.mtx[r,],index.return=T)$ixif(all(is.na(gangUnit[index[2:20]])))gangUnit[r]=gangUnit[intersect(index,which(is.na(gangUnit)==F))][1]else{gangUnit[r]=levels(gangUnit[index[2:11]])[which.m
6、ax(table(gangUnit[index[2:11]]))]}}}crim2=data.frame(cbind(crim[,1:5],crim1[,1:126],gangUnit,crim1[,-(1:126)]))10Crossvalidation#设置五折交叉验证n=2215;zz1=1:n#zz1为所有观测值(行)的下标zz2=rep(1:5,ceiling(n/5))[1:n]set.seed(200);zz2=sample(zz2,n)#zz2为1:5的随机排列zz2[1:100]#dd保存每一折下标,令tests
7、et选其中之一,则共可做五次交叉验证dd=list()for(iin1:5)dd[[i]]=zz1[zz2==i]ddModelbuilding——traditionalmethods11LinearRegressioncrim.test=crim1[dd[[1]],]crim.train=crim1[-dd[[1]],]lm.vio=lm(violentPerPop~.,data=crim.train[,c(6:129,146)])summary(lm.vio)#对因变量做对数变换lm.logvio=lm(log(violen
8、tPerPop)~.,data=crim.train[,c(6:129,146)])summary(lm.logvio)shapiro.test(lm.vio$residuals)shapiro.test(lm.logvio$residuals)1