我试图预测比赛的结果。因此我在测试和训练集上使用rpart算法。
当我训练我的算法时,我这样做:
tree <- rpart(won ~ EXPG1 + EXPG2, data=training, method="class")
有了这个,我预测一场比赛是否会有0,1或2作为结果。
predict <- predict(tree, testing)
导致以下结果:
head(predict)
0 1 2
2 0.7368421 0.1578947 0.1052632
7 0.2777778 0.5000000 0.2222222
一切正常。但现在我想在confusionmatrix中比较我的结果。
但这显然不起作用
confusionMatrix(testing$won, predict)
因为我的测试$ won列只包含0,1或2.有关如何在confusionmatrix中查看结果的任何建议吗?
答案 0 :(得分:4)
将类型传递给predict函数以返回类标签:
predict <- predict(tree, testing, type = "class")
library(rpart)
library(caret)
data(iris)
mod <- rpart(Species~., iris)
p <- predict(mod, type="class")
> confusionMatrix(p, iris$Species)
Confusion Matrix and Statistics
Reference
Prediction setosa versicolor virginica
setosa 50 0 0
versicolor 0 49 5
virginica 0 1 45
Overall Statistics
Accuracy : 0.96
95% CI : (0.915, 0.9852)
No Information Rate : 0.3333
P-Value [Acc > NIR] : < 2.2e-16
Kappa : 0.94
Mcnemar's Test P-Value : NA
Statistics by Class:
Class: setosa Class: versicolor Class: virginica
Sensitivity 1.0000 0.9800 0.9000
Specificity 1.0000 0.9500 0.9900
Pos Pred Value 1.0000 0.9074 0.9783
Neg Pred Value 1.0000 0.9896 0.9519
Prevalence 0.3333 0.3333 0.3333
Detection Rate 0.3333 0.3267 0.3000
Detection Prevalence 0.3333 0.3600 0.3067
Balanced Accuracy 1.0000 0.9650 0.9450