在混淆矩阵中显示决策树的结果

时间:2016-01-06 14:41:00

标签: r decision-tree

我试图预测比赛的结果。因此我在测试和训练集上使用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中查看结果的任何建议吗?

1 个答案:

答案 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