Calculates the confusion matrix for a binary classification problem once and then calculates all confusion measures of this package.

## Usage

confusion_matrix(truth, response, positive, na_value = NaN, relative = FALSE)

## Arguments

truth

(factor())
True (observed) labels. Must have the exactly same two levels and the same length as response.

response

(factor())
Predicted response labels. Must have the exactly same two levels and the same length as truth.

positive

(character(1))
Name of the positive class.

na_value

(numeric(1))
Value that should be returned if the measure is not defined for the input (as described in the note). Default is NaN.

relative

(logical(1))
If TRUE, the returned confusion matrix contains relative frequencies instead of absolute frequencies.

## Value

List with two elements:

• matrix stores the calculated confusion matrix.

• measures stores the metrics as named numeric vector.

## Examples

set.seed(123)
lvls = c("a", "b")
truth = factor(sample(lvls, 20, replace = TRUE), levels = lvls)
response = factor(sample(lvls, 20, replace = TRUE), levels = lvls)

confusion_matrix(truth, response, positive = "a")
#>         truth
#> response a b
#>        a 7 5
#>        b 4 4
#> acc :  0.5500; ce  :  0.4500; dor :  1.4000; f1  :  0.6087
#> fdr :  0.4167; fnr :  0.3636; fomr:  0.5000; fpr :  0.5556
#> mcc :  0.0821; npv :  0.5000; ppv :  0.5833; tnr :  0.4444
#> tpr :  0.6364
confusion_matrix(truth, response, positive = "a", relative = TRUE)
#>         truth
#> response    a    b
#>        a 0.35 0.25
#>        b 0.20 0.20
#> acc :  0.5500; ce  :  0.4500; dor :  1.4000; f1  :  0.6087
#> fdr :  0.4167; fnr :  0.3636; fomr:  0.5000; fpr :  0.5556
#> mcc :  0.0821; npv :  0.5000; ppv :  0.5833; tnr :  0.4444
#> tpr :  0.6364
confusion_matrix(truth, response, positive = "b")
#>         truth
#> response b a
#>        b 4 4
#>        a 5 7
#> acc :  0.5500; ce  :  0.4500; dor :  1.4000; f1  :  0.4706
#> fdr :  0.5000; fnr :  0.5556; fomr:  0.4167; fpr :  0.3636
#> mcc :  0.0821; npv :  0.5833; ppv :  0.5000; tnr :  0.6364
#> tpr :  0.4444