Computes the errore rate of a given classification relative to the known classes, and the location of misclassified data points.

classError(classification, class)

## Arguments

classification

A numeric, character vector or factor specifying the predicted class labels. Must have the same length as class.

class

A numeric, character vector or factor of known true class labels. Must have the same length as classification.

## Value

A list with the following two components:

misclassified

The indexes of the misclassified data points in a minimum error mapping between the predicted classification and the known true classes.

errorRate

The error rate corresponding to a minimum error mapping between the predicted classification and the known true classes.

## Details

If more than one mapping between predicted classification and the known truth corresponds to the minimum number of classification errors, only one possible set of misclassified observations is returned.

## See also

map mapClass, table

## Examples

(a <- rep(1:3, 3))
#> [1] 1 2 3 1 2 3 1 2 3
(b <- rep(c("A", "B", "C"), 3))
#> [1] "A" "B" "C" "A" "B" "C" "A" "B" "C"
classError(a, b)
#> $misclassified #> integer(0) #> #>$errorRate
#> [1] 0
#>

(a <- sample(1:3, 9, replace = TRUE))
#> [1] 1 2 1 1 3 2 2 2 3
(b <- sample(c("A", "B", "C"), 9, replace = TRUE))
#> [1] "C" "B" "B" "A" "C" "C" "A" "B" "A"
classError(a, b)
#> $misclassified #> [1] 3 5 6 7 9 #> #>$errorRate
#> [1] 0.5555556
#>

class <- factor(c(5,5,5,2,5,3,1,2,1,1), levels = 1:5)
probs <- matrix(c(0.15, 0.01, 0.08, 0.23, 0.01, 0.23, 0.59, 0.02, 0.38, 0.45,
0.36, 0.05, 0.30, 0.46, 0.15, 0.13, 0.06, 0.19, 0.27, 0.17,
0.40, 0.34, 0.18, 0.04, 0.47, 0.34, 0.32, 0.01, 0.03, 0.11,
0.04, 0.04, 0.09, 0.05, 0.28, 0.27, 0.02, 0.03, 0.12, 0.25,
0.05, 0.56, 0.35, 0.22, 0.09, 0.03, 0.01, 0.75, 0.20, 0.02),
nrow = 10, ncol = 5)
cbind(class, probs, map = map(probs))
#>       class                          map
#>  [1,]     5 0.15 0.36 0.40 0.04 0.05   3
#>  [2,]     5 0.01 0.05 0.34 0.04 0.56   5
#>  [3,]     5 0.08 0.30 0.18 0.09 0.35   5
#>  [4,]     2 0.23 0.46 0.04 0.05 0.22   2
#>  [5,]     5 0.01 0.15 0.47 0.28 0.09   3
#>  [6,]     3 0.23 0.13 0.34 0.27 0.03   3
#>  [7,]     1 0.59 0.06 0.32 0.02 0.01   1
#>  [8,]     2 0.02 0.19 0.01 0.03 0.75   5
#>  [9,]     1 0.38 0.27 0.03 0.12 0.20   1
#> [10,]     1 0.45 0.17 0.11 0.25 0.02   1
classError(map(probs), class)
#> $misclassified #> [1] 2 3 8 #> #>$errorRate
#> [1] 0.3
#>