Skip to contents

For 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;

Usage

mice(
  reference,
  prediction,
  mappings = levels(as.factor(reference)),
  multiclass = TRUE,
  positiveIndex = 1
)

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
#>