R_Studio(cart算法决策树)对book3.csv数据用测试集进行测试并评估模型

使用RPart包构建决策树
本文详细介绍了如何使用R语言中的rpart包构建决策树模型。从数据集的加载和预处理开始,到创建训练集和测试集,然后利用rpart包训练分类决策树模型,并使用测试集进行模型评估,最后计算预测准确率。

 

 

book3.csv数据集,实现如下功能:

  (1)创建训练集、测试集

  (2)rpart包创建关于类别的cart算法的决策树

  (3)用测试集进行测试,并评估模型

 

  book3.csv数据集

 

setwd('D:\\data')                       
list.files()                                
dat=read.csv(file="book3.csv",header=TRUE)   

#变量重命名,并通过x1~x11对class属性进行预测
colnames(dat)<-c("x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","class")

n=nrow(dat)
split<-sample(n,n*(3/4))
traindata=dat[split,]
testdata=dat[-split,]

set.seed(1) 

library(rpart)

#用测试集进行测试
Gary1<-rpart(class~.,data=testdata,method="class", control=rpart.control(minsplit=1),parms=list(split="gini"))  
printcp(Gary1)

#交叉矩阵评估模型
pre1<-predict(Gary1,newdata=testdata,type='class')
tab<-table(pre1,testdata$class)
tab

#评估模型(预测)的正确率
sum(diag(tab))/sum(tab)
Gary.Script

 

 

实现过程

 

  数据预处理并创建训练(测试)集

setwd('D:\\data')                       
list.files()                                
dat=read.csv(file="book3.csv",header=TRUE)   

#变量重命名,并通过x1~x11对class属性进行预测
colnames(dat)<-c("x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","class")

n=nrow(dat)
split<-sample(n,n*(3/4))
traindata=dat[split,]
testdata=dat[-split,]

 

  设定生成随机数的种子,种子是为了让结果具有重复性

set.seed(1) 

 

  加载rpart包创建关于类别的cart算法的决策树

library(rpart)

 

  用测试集进行测试

> Gary1<-rpart(class~.,data=testdata,method="class", control=rpart.control(minsplit=1),parms=list(split="gini"))  
> printcp(Gary1)

Classification tree:                      #分类树:
rpart(formula = class ~ ., data = testdata, method = "class", 
    parms = list(split = "gini"), control = rpart.control(minsplit = 1))

Variables actually used in tree construction:      #树构建中实际使用的变量:
[1] x1  x10 x2  x4  x5  x8                  #〔1〕X1 x10 x2 x4 x5 x8

Root node error: 57/175 = 0.32571               #根节点错误:57/175=0.32571

n= 175 

        CP nsplit rel error  xerror     xstd
1 0.754386      0  1.000000 1.00000 0.108764
2 0.052632      1  0.245614 0.31579 0.070501
3 0.035088      3  0.140351 0.31579 0.070501
4 0.017544      6  0.035088 0.35088 0.073839
5 0.010000      7  0.017544 0.31579 0.070501

 

  交叉矩阵评估模型

 pre1<-predict(Gary1,newdata=testdata,type='class')
> tab<-table(pre1,testdata$class)
> tab
      
pre1   恶性 良性
  恶性   57    1
  良性    0  117

 

  评估模型(预测)的正确率

  对角线上的数据实际值和预测值相同,非对角线上的值为预测错误的值

> sum(diag(tab))/sum(tab)
[1] 0.9942857

 

转载于:https://www.cnblogs.com/1138720556Gary/p/9821519.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值