2014-10-29 65 views
1

創建一個混淆矩陣我有稱爲conf_mat具有兩列包括每個對象的預測值和參考值這個數據幀。我在這個數據框中有20個對象。從數據幀

dput(Conf_mat) 
structure(list(Predicted = c(100, 200, 200, 100, 100, 200, 200, 
200, 100, 200, 500, 100, 100, 100, 100, 100, 100, 100, 500, 200 
), Reference = c(600, 200, 200, 200, 200, 200, 200, 200, 500, 
500, 500, 200, 200, 200, 200, 200, 200, 200, 200, 200)), .Names = c("Predicted", 
"Reference"), row.names = c(NA, 20L), class = "data.frame") 

我想創建一個混淆矩陣出此表與這種結構將由Conf_mat數據框填寫。這將允許我計算我的分類的accuracu評估。謝謝你的幫助。

100 200 300 400 500 600 
100 NA NA NA NA NA NA 
200 NA NA NA NA NA NA 
300 NA NA NA NA NA NA 
400 NA NA NA NA NA NA 
500 NA NA NA NA NA NA 
600 NA NA NA NA NA NA 

回答

0

1)嘗試以下操作:

table(Conf_mat) 

2)如果要強制水平100,200,...,600出現:

conf_mat_tab <- table(lapply(Conf_mat, factor, levels = seq(100, 600, 100))) 

3)你也可以試試這個:

library(caret) 
confusionMatrix(conf_mat_tab) # conf_mat_tab from (2) 

這給:

Confusion Matrix and Statistics 

     Reference 
Predicted 100 200 300 400 500 600 
     100 0 9 0 0 1 1 
     200 0 6 0 0 1 0 
     300 0 0 0 0 0 0 
     400 0 0 0 0 0 0 
     500 0 1 0 0 1 0 
     600 0 0 0 0 0 0 

Overall Statistics 

       Accuracy : 0.35    
       95% CI : (0.1539, 0.5922) 
    No Information Rate : 0.8    
    P-Value [Acc > NIR] : 1    

        Kappa : 0.078   
Mcnemar's Test P-Value : NA    

Statistics by Class: 

        Class: 100 Class: 200 Class: 300 Class: 400 Class: 500 Class: 600 
Sensitivity     NA  0.3750   NA   NA  0.3333  0.00 
Specificity    0.45  0.7500   1   1  0.9412  1.00 
Pos Pred Value    NA  0.8571   NA   NA  0.5000  NaN 
Neg Pred Value    NA  0.2308   NA   NA  0.8889  0.95 
Prevalence     0.00  0.8000   0   0  0.1500  0.05 
Detection Rate    0.00  0.3000   0   0  0.0500  0.00 
Detection Prevalence  0.55  0.3500   0   0  0.1000  0.00 
Balanced Accuracy   NA  0.5625   NA   NA  0.6373  0.50