《R语言数据分析与挖掘(谢佳标微课版) 习题及答案chapter10.docx》由会员分享,可在线阅读,更多相关《R语言数据分析与挖掘(谢佳标微课版) 习题及答案chapter10.docx(3页珍藏版)》请在第一文库网上搜索。
1、一、判断题1 .分类和回归都可用于预测,分类的输出是离散的类别值,而回归的输出是连续数值。(对)A.对B.错2 .分类模型的误差大致分为两种:训练误差(trainingerror)和泛化误差(genera1iZationeITor)。(对)A.对B.错3 .在决策树中,随着树中结点数变得太大,即使模型的训练误差还在继续减低,但是检验误差开始增大,这是出现了模型拟合不足的问题。(错)A.对B.错二、多选题1.决策树包含以下哪些节点(ABD)A.根结点(rootnode)B.内部结点(interna1node)C.外部结点(externaInode)D.叶结点(1eafnode)2.以下关于决策树
2、的说法是正确的有(ABD)A.冗余属性不会对决策树的准确率造成不利的影响B.冗余属性不会对决策树的准确率造成不利的影响C.决策树算法对于噪声的干扰非常敏感D.寻找最佳决策树是NP完全问题三、上机题数据集(cs-training.csv)是从kagg1e(https:/www.kagg1e.eom/c/GiveMeSomeCredit/data)上下载的“givemesomecredit”信用比赛的原始数据。此数据集包含了15万行的数据,一共有11个指标,其中SeriousD1qin2yrs为借款人是否逾期的指标,而剩卜的10个指标为本项目用来判断借款人是否逾期的因变量。请利用此数据集构建个人信
3、用评估相关机器学习模型,要求如下:1 .变量MOnth1y1nCOme、NUmberOfDePendentS存在缺失值,请利用中位数对缺失值进行替换。2 .剔除变量age为0的样本,且剔变量NUmberofnme30-59DaySPaStDUeNotWOrse、NumberOfimes90Days1ate和NumberOfime60-89DaysPastDueNotWorse最大的两个值。3 .按照变最SeriOUSDIqin2yrs进行等比例分区,50%作为训练集、50%作为测试集。4 .分别使用C5.0算法、CART算法、条件推理决策树算法构建决策树模型,并对比各自在测试集上的预测效果。参
4、考答案:# 数据的获取和整合# 导入数据traindata-read.csv(datacs-training.csv)# 剔除id列traindata-traindata,-1# 对变量重命名co1names(traindata)-c(,yzpaste(xz11)# 缺失值处理1ibrary(mice)Iibrary(VIM)md.pattern(traindata)aggr(traindata,prop=Fznumvers=T)# 中位数的缺失值替换法Iibrary(Caret)imputation_m-preProcess(traindata,method=median1mpute)tra
5、indata-predict(imputation-mznewdata=traindata)md.pattern(traindata)# 异常值分析及处理unique(traindata$x2)# 删除x2(年龄)为0的样本traindata-traindata!traindata$x2=0J# 查看x3、x7、x9三个变量的箱线图par(mfrow=c(1z3)for(iinc(4z8,10)boxp1ot(traindata,i,co1=i,main=co1names(traindata)i)par(mfrow=c(1z1)# 剔除最大的两个值for(iinc(4z8z10)X-sort(
6、traindataJ,decreasing=T)X-data.frame(tab1e(x)X-xsort(x$x,decreasing=T),-x1r2,1traindata-traindata!traindata,i%in%J# 数据分区prop.tab1e(tab1e(traindata$y)Iibrary(Caret)sp1itindex-CreateDataPartition(traindata$yztimes=1zp=0.5,1ist=FA1SE)train-traindatasp1it1ndexztest-traindata-sp1it1ndexzprop.tab1e(tab1e(
7、train$y)prop.tab1e(tab1e(test$y)# #决策树# C5.0算法if(!require(C50)insta11.packages(,C50)train$y-as.factor(train$y)C5.0.mode1-C5.0(y.,data=train)summary(C5.0.mode1)# 对训练集数据进行预测,并查看效果train.predict-predict(C5.0.mode1znewdata=train)(a-tab1e(actua1=train$y,predict=train.predict)sum(diag(a)sum(a)# 对测试集数据进行预测,
8、并查看效果test$y-as.factor(test$y)test.predict-predict(C5.0.mode1znewdata=test)(b-tab1e(actua1=test$y,predict=test.predict)sum(diag(b)sum(b)# 得到预测概率值train.prob-predict(C5.0.mode1znewdata=train,type=prob)# CART算法1ibrary(rpart)(rpart.mode1-rpart(y.zdata=train)p1ot(rpart.mode1)tet(rpart.mode1)1ibrary(rpart.
9、p1ot)rpart.p1ot(rpart.mode1)train.predict-predict(rpart.mode1,newdata=train,type=c1ass)(a-tab1e(actua1=train$y,predict=train.predict)sum(diag(a)sum(a)test.predict-predict(rpart.mode1znewdata=testztype=c1ass)(b-tab1e(actua1=test$y,prdict=test.predict)sum(diag(b)sum(b)# 条件推理决策树算法1ibrary(party)ctree.mode1-ctree(y.zdata=train)train.predict-predict(ctree.mode1znewdata=train,type=response)(a-tab1e(actua1=train$y,predict=train.predict)sum(diag(a)sum(a)test.predict-predict(ctree.mode1znewdata=testztype=response)(b-tab1e(actua1=test$y,prdict=test.predict)sum(diag(b)sum(b)