Calculate map image classification efficacy (MICE) and other metrics using columns/vectors of reference and predicted classes
Source:R/micer.R
      mice.RdFor multiclass classification, returns a list object with the following items: $Mappings = class names; $confusionMatrix = confusion matrix where columns represent the reference data and rows represent the classification result; $referenceCounts = count of samples in each reference class; $predictionCounts = count of predictions in each class; $overallAccuracy = overall accuracy; $MICE = map image classification efficacy; $usersAccuracies = class-level user's accuracies (1 - commission error); $CTBICEs = classification-total-based image classification efficacies (adjusted user's accuracies); $producersAccuracies = class-level producer's accuracies (1 - omission error); $RTBICEs = reference-total-based image classification efficacies (adjusted producer's accuracies); $F1Scores = class-level harmonic mean of user's and producer's accuracies; $F1Efficacies = F1-score efficacies; $macroPA = class-aggregated, macro-averaged producer's accuracy; $macroRTBICE = class-aggregated, macro-averaged reference-total-based image classification efficacy; $macroUA = class-aggregated, macro-averaged user's accuracy; $macroCTBICE = class-aggregated, macro-averaged classification-total-based image classification efficacy; $macroF1 = class-aggregated, macro-averaged F1-score; $macroF1Efficacy = class-aggregated, macro-averaged F1 efficacy;
Arguments
- reference
- column/vector of reference labels as factor data type. 
- prediction
- column/vector of predicted labels as factor data type. 
- mappings
- names of classes (if not provided, factor levels are used). 
- multiclass
- TRUE or FALSE. If TRUE, treats classification as multiclass. If FALSE, treats classification as binary. Default is TRUE. 
- positiveIndex
- index for positive case for binary classification. Ignored for multiclass classification. Default is 1 or first factor level. 
Value
multiclass or binary assessment metrics in a list object. See details for description of generated metrics.
Details
For binary classification, returns a list object with the following items: $Mappings = class names; $confusionMatrix = confusion matrix where columns represent the reference data and rows represent the classification result; $referenceCounts = count of samples in each reference class; $predictionCounts = count of predictions in each class; $postiveCase = name or mapping for the positive case; $overallAccuracy = overall accuracy; $MICE = map image classification efficacy; $Precision = precision (1 - commission error relative to positive case); $precisionEfficacy = precision efficacy; $NPV = negative predictive value (1 - commission error relative to negative case); $npvEfficacy = negative predictive value efficacy; $Recall = recall (1 - omission error relative to positive case); $recallEfficacy = recall efficacy; $specificity = specificity (1 - omission error relative to negative case); $specificityEfficacy = specificity efficacy; $f1Score = harmonic mean of precision and recall; $f1Efficacy = F1-score efficacy;
Examples
#Multiclass example
data(mcData)
mice(mcData$ref,
mcData$pred,
mappings=c("Barren", "Forest", "Impervious", "Low
Vegetation", "Mixed Dev", "Water"),
multiclass=TRUE)
#> $Mappings
#> [1] "Barren"          "Forest"          "Impervious"      "Low\nVegetation"
#> [5] "Mixed Dev"       "Water"          
#> 
#> $confusionMatrix
#>                  Reference
#> Predicted         Barren Forest Impervious Low\nVegetation Mixed Dev Water
#>   Barren              75     13         10              63         1     1
#>   Forest               7  20585          8             138        64     5
#>   Impervious          59     62        196              34        75     0
#>   Low\nVegetation     46    617         33            2413        72     1
#>   Mixed Dev            1    142         22              84       270     1
#>   Water                6     21         12               1         2   158
#> 
#> $referenceCounts
#>          Barren          Forest      Impervious Low\nVegetation       Mixed Dev 
#>             194           21440             281            2733             484 
#>           Water 
#>             166 
#> 
#> $predictionCounts
#>          Barren          Forest      Impervious Low\nVegetation       Mixed Dev 
#>             163           20807             426            3182             520 
#>           Water 
#>             200 
#> 
#> $overallAccuracy
#> [1] 0.9367144
#> 
#> $MICE
#> [1] 0.7651436
#> 
#> $usersAccuracies
#>          Barren          Forest      Impervious Low\nVegetation       Mixed Dev 
#>       0.4601227       0.9893305       0.4600939       0.7583281       0.5192308 
#>           Water 
#>       0.7900000 
#> 
#> $CTBICEs
#>          Barren          Forest      Impervious Low\nVegetation       Mixed Dev 
#>       0.4559451       0.9300326       0.4540239       0.7290545       0.5098483 
#>           Water 
#>       0.7886108 
#> 
#> $producersAccuracies
#>          Barren          Forest      Impervious Low\nVegetation       Mixed Dev 
#>       0.3865979       0.9601213       0.6975089       0.8829125       0.5578512 
#>           Water 
#>       0.9518072 
#> 
#> $RTBICEs
#>          Barren          Forest      Impervious Low\nVegetation       Mixed Dev 
#>       0.3818514       0.7384867       0.6941081       0.8687298       0.5492225 
#>           Water 
#>       0.9514884 
#> 
#> $f1Scores
#>          Barren          Forest      Impervious Low\nVegetation       Mixed Dev 
#>       0.4201680       0.9745071       0.5544554       0.8158918       0.5378486 
#>           Water 
#>       0.8633879 
#> 
#> $f1Efficacies
#>          Barren          Forest      Impervious Low\nVegetation       Mixed Dev 
#>       0.4156219       0.8232649       0.5489642       0.7927871       0.5288035 
#>           Water 
#>       0.8624267 
#> 
#> $macroPA
#> [1] 0.7394665
#> 
#> $macroRTBUCE
#> [1] 0.6973145
#> 
#> $macroUA
#> [1] 0.662851
#> 
#> $macroCTBICE
#> [1] 0.6445859
#> 
#> $macroF1
#> [1] 0.6990658
#> 
#> $macroF1Efficacy
#> [1] 0.6699142
#> 
#Binary example
data(biData)
mice(biData$ref,
biData$pred,
mappings = c("Mined", "Not Mined"),
multiclass=FALSE,
positiveIndex=1)
#> $Mappings
#> [1] "Mined"     "Not Mined"
#> 
#> $confusionMatrix
#>            Reference
#> Predicted   Mined Not Mined
#>   Mined       158        20
#>   Not Mined     2      4820
#> 
#> $referenceCounts
#>     Mined Not Mined 
#>       160      4840 
#> 
#> $predictionCounts
#>     Mined Not Mined 
#>       178      4822 
#> 
#> $positiveCase
#> [1] "Mined"
#> 
#> $overallAccuracy
#> [1] 0.9956
#> 
#> $mice
#> [1] 0.9289543
#> 
#> $Precision
#> [1] 0.8876404
#> 
#> $precisionEfficacy
#> [1] 0.8839248
#> 
#> $NPV
#> [1] 0.8876404
#> 
#> $npvEfficacy
#> [1] 0.8839248
#> 
#> $Recall
#> [1] 0.9874999
#> 
#> $recallEfficacy
#> [1] 0.9870866
#> 
#> $Specificity
#> [1] 0.9874999
#> 
#> $specificityEfficicacy
#> [1] 0.9870866
#> 
#> $f1Score
#> [1] 0.9349112
#> 
#> $f1ScoreEfficacy
#> [1] 0.9326617
#>