Tidy summarizes information about the components of a model. A model component might be a single term in a regression, a single hypothesis, a cluster, or a class. Exactly what tidy considers to be a model component varies cross models but is usually self-evident. If a model has several distinct types of components, you will need to specify which components to return.

# S3 method for confusionMatrix
tidy(x, by_class = TRUE, ...)

Arguments

x

An object of class confusionMatrix created by a call to caret::confusionMatrix().

by_class

Logical indicating whether or not to show performance measures broken down by class. Defaults to TRUE. When by_class = FALSE only returns a tibble with accuracy and kappa statistics.

...

Additional arguments. Not used. Needed to match generic signature only. Cautionary note: Misspelled arguments will be absorbed in ..., where they will be ignored. If the misspelled argument has a default value, the default value will be used. For example, if you pass conf.lvel = 0.9, all computation will proceed using conf.level = 0.95. Additionally, if you pass newdata = my_tibble to an augment() method that does not accept a newdata argument, it will use the default value for the data argument.

See also

Value

A tibble::tibble() with columns:

class

The class under consideration.

conf.high

The upper end of a confidence interval for the term under consideration. Included only if `conf.int = TRUE`.

conf.low

The lower end of a confidence interval for the term under consideration. Included only if `conf.int = TRUE`.

estimate

The estimated value of the regression term.

term

The name of the regression term.

p.value

P-value for accuracy and kappa statistics.

Examples

library(caret)
#> Loading required package: lattice
#> #> Attaching package: ‘caret’
#> The following object is masked from ‘package:survival’: #> #> cluster
set.seed(27) two_class_sample1 <- as.factor(sample(letters[1:2], 100, TRUE)) two_class_sample2 <- as.factor(sample(letters[1:2], 100, TRUE)) two_class_cm <- caret::confusionMatrix( two_class_sample1, two_class_sample2 ) tidy(two_class_cm)
#> # A tibble: 13 x 6 #> term class estimate conf.low conf.high p.value #> <chr> <chr> <dbl> <dbl> <dbl> <dbl> #> 1 accuracy <NA> 0.570 0.467 0.669 0.309 #> 2 kappa <NA> 0.147 NA NA 0.222 #> 3 sensitivity a 0.630 NA NA NA #> 4 specificity a 0.519 NA NA NA #> 5 pos_pred_value a 0.527 NA NA NA #> 6 neg_pred_value a 0.622 NA NA NA #> 7 precision a 0.527 NA NA NA #> 8 recall a 0.630 NA NA NA #> 9 f1 a 0.574 NA NA NA #> 10 prevalence a 0.46 NA NA NA #> 11 detection_rate a 0.290 NA NA NA #> 12 detection_prevalence a 0.55 NA NA NA #> 13 balanced_accuracy a 0.574 NA NA NA
tidy(two_class_cm, by_class = FALSE)
#> # A tibble: 2 x 5 #> term estimate conf.low conf.high p.value #> <chr> <dbl> <dbl> <dbl> <dbl> #> 1 accuracy 0.570 0.467 0.669 0.309 #> 2 kappa 0.147 NA NA 0.222
# multiclass example six_class_sample1 <- as.factor(sample(letters[1:6], 100, TRUE)) six_class_sample2 <- as.factor(sample(letters[1:6], 100, TRUE)) six_class_cm <- caret::confusionMatrix( six_class_sample1, six_class_sample2 ) tidy(six_class_cm)
#> # A tibble: 68 x 6 #> term class estimate conf.low conf.high p.value #> <chr> <chr> <dbl> <dbl> <dbl> <dbl> #> 1 accuracy <NA> 0.16 0.0943 0.247 0.946 #> 2 kappa <NA> -0.00756 NA NA 0.757 #> 3 sensitivity a 0.176 NA NA NA #> 4 sensitivity b 0.118 NA NA NA #> 5 sensitivity c 0.0909 NA NA NA #> 6 sensitivity d 0.222 NA NA NA #> 7 sensitivity e 0.0909 NA NA NA #> 8 sensitivity f 0.267 NA NA NA #> 9 specificity a 0.867 NA NA NA #> 10 specificity b 0.892 NA NA NA #> # ... with 58 more rows
tidy(six_class_cm, by_class = FALSE)
#> # A tibble: 2 x 5 #> term estimate conf.low conf.high p.value #> <chr> <dbl> <dbl> <dbl> <dbl> #> 1 accuracy 0.16 0.0943 0.247 0.946 #> 2 kappa -0.00756 NA NA 0.757