我想在R中使用决策树分类来构建预测模型。我使用了这段代码:
library(rpart)
library(caret)
DataYesNo <- read.csv('DataYesNo.csv', header=T)
summary(DataYesNo)
worktrain <- sample(1:50, 40)
worktest <- setdiff(1:50, worktrain)
DataYesNo[worktrain,]
DataYesNo[worktest,]
M <- ncol(DataYesNo)
input <- names(DataYesNo)[1:(M-1)]
target <- “YesNo”
tree <- rpart(YesNo~Var1+Var2+Var3+Var4+Var5,
data=DataYesNo[worktrain, c(input,target)],
method="class",
parms=list(split="information"),
control=rpart.control(usesurrogate=0, maxsurrogate=0))
summary(tree)
plot(tree)
text(tree)
我只有一个根(Var3
)和两个叶子(yes
,no
)。我不确定这个结果。如何获得混淆矩阵,准确性,灵敏度和特异性?
我可以使用caret
包裹获取它们吗?
答案 0 :(得分:0)
如果您使用模型对测试集进行预测,则可以使用confusionMatrix()
来获取您正在寻找的衡量标准。
像这样......
predictions <- predict(tree, worktest)
cmatrix <- confusionMatrix(predictions, worktest$YesNo)
print(cmatrix)
答案 1 :(得分:0)
一旦你创建了混淆矩阵,也可以获得其他措施 - 我暂时不记得它们。
根据您的示例,可以获得如下混淆矩阵。
fitted <- predict(tree, DataYesNo[worktest, c(input,target)])
actual <- DataYesNo[worktest, c(target)]
confusion <- table(data.frame(fitted = fitted, actual = actual))