R数据挖掘基础操作及算法应用案例之决策树模型
程序代码
#决策树模型
#案例:iris鸢尾花分类
library(rpart) #加载包
data(iris)
iris<-iris
dim(iris)
n1=floor(0.8*dim(iris)[1]);n1
train_Num=sample(1:dim(iris)[1],n1)
train=iris[train_Num,] #训练集
test=iris[train_Num,] #测试集
#使用训练集建模
dtmodel=rpart(Species~.,method="class",train)
dtmodel
train_Pre=predict(dtmodel,train,type="class")
t=table(train$Species,train_Pre);t
train_accuracy=round((t[1,1]+t[2,2]+t[3,3])/sum(t),digits=2);train_accuracy
#训练接预测正确率
#测试集
test_Pre=predict(dtmodel,test,type="class")
tt=table(test$Species,test_Pre);tt
test_accuracy=round((tt[1,1]+tt[2,2]+tt[3,3])/sum(tt),digits=2);test_accuracy
#测试集预测正确率
运行结果
> t=table(train$Species,train_Pre);t
train_Pre
setosa versicolor virginica
setosa 41 0 0
versicolor 0 38 1
virginica 0 4 36
> train_accuracy=round((t[1,1]+t[2,2]+t[3,3])/sum(t),digits=2);train_accuracy
[1] 0.96
> #训练接预测正确率
>
> #测试集
> test_Pre=predict(dtmodel,test,type="class")
> tt=table(test$Species,test_Pre);tt
test_Pre
setosa versicolor virginica
setosa 41 0 0
versicolor 0 38 1
virginica 0 4 36
> test_accuracy=round((tt[1,1]+tt[2,2]+tt[3,3])/sum(tt),digits=2);test_accuracy
[1] 0.96
> #测试集预测正确率