r - 使用confusioMatrix时如何解决 "The data cannot have more levels than the reference"错误?

标签 r tree decision-tree r-caret

我正在使用 R 编程。
我将数据划分为训练和测试以预测准确性。

这是我的代码:

library("tree")
credit<-read.csv("C:/Users/Administrator/Desktop/german_credit (2).csv")

library("caret")
set.seed(1000)

intrain<-createDataPartition(y=credit$Creditability,p=0.7,list=FALSE)
train<-credit[intrain, ]
test<-credit[-intrain, ]

treemod<-tree(Creditability~. , data=train)
plot(treemod)
text(treemod)

cv.trees<-cv.tree(treemod,FUN=prune.tree)
plot(cv.trees)

prune.trees<-prune.tree(treemod,best=3)
plot(prune.trees)
text(prune.trees,pretty=0)

install.packages("e1071")
library("e1071")
treepred<-predict(prune.trees, newdata=test)

confusionMatrix(treepred, test$Creditability)

以下错误信息发生在 confusionMatrix :

Error in confusionMatrix.default(rpartpred, test$Creditability) : the data cannot have more levels than the reference



信用数据可在本网站下载。
http://freakonometrics.free.fr/german_credit.csv

最佳答案

如果您仔细查看您的绘图,您会发现您正在训练回归树而不是分类树。

如果您运行 credit$Creditability <- as.factor(credit$Creditability)读入数据后使用 type = "class"在 predict 函数中,您的代码应该可以工作。

代码:

credit <- read.csv("http://freakonometrics.free.fr/german_credit.csv" )

credit$Creditability <- as.factor(credit$Creditability)

library(caret)
library(tree)
library(e1071)

set.seed(1000)
intrain <- createDataPartition(y = credit$Creditability, p = 0.7, list = FALSE)
train <- credit[intrain, ]
test <- credit[-intrain, ]

treemod <- tree(Creditability ~ ., data = train, )

cv.trees <- cv.tree(treemod, FUN = prune.tree)
plot(cv.trees)

prune.trees <- prune.tree(treemod, best = 3)
plot(prune.trees)
text(prune.trees, pretty = 0)

treepred <- predict(prune.trees, newdata = test, type = "class")
confusionMatrix(treepred, test$Creditability)

关于r - 使用confusioMatrix时如何解决 "The data cannot have more levels than the reference"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38741997/

相关文章:

r - 包 igraph0 已弃用,因此无法访问 gspan 包

r - 无法计算稳健标准误差 (vcovHC) : multicollinearity and NaN error

java - 排序 "plain-list-tree-structure"的算法

apache-spark - 如何在 Apache Spark (PySpark 1.4.1) 中可视化/绘制决策树?

R C5.0 获取每片叶子的规则和概率

r - 如何在 R 中使用 "for"循环编写矩阵?

r - 在 ggplot2 中对 y 轴求和

c++ - 将字符串与二叉搜索树中的对象进行比较

c++ - 平衡 KD 树

r - 树中使用的变量