Weighted versions of non-probabilistic and probabilistic classification metrics:
accuracy()
: Accuracy (higher is better).
classification_error()
: Classification error = 1 - Accuracy (lower is better).
precision()
: Precision (higher is better).
recall()
: Recall (higher is better).
f1_score()
: F1 Score. Harmonic mean of precision and recall (higher is better).
AUC()
: Area under the ROC (higher is better).
gini_coefficient()
: Gini coefficient, equivalent to \(2 \cdot \textrm{AUC} - 1\).
Up to ties in predicted
, equivalent to Somer's D (higher is better).
deviance_bernoulli()
: Average Bernoulli deviance. Equals twice the
log loss/binary cross entropy (smaller is better).
logLoss()
: Log loss/binary cross entropy. Equals half the average Bernoulli
deviance (smaller is better).
accuracy(actual, predicted, w = NULL, ...)
classification_error(actual, predicted, w = NULL, ...)
precision(actual, predicted, w = NULL, ...)
recall(actual, predicted, w = NULL, ...)
f1_score(actual, predicted, w = NULL, ...)
AUC(actual, predicted, w = NULL, ...)
gini_coefficient(actual, predicted, w = NULL, ...)
deviance_bernoulli(actual, predicted, w = NULL, ...)
logLoss(actual, predicted, w = NULL, ...)
Observed values.
Predicted values.
Optional case weights.
Further arguments passed to weighted_mean()
(no effect for AUC()
and gini_coefficient()
).
A numeric vector of length one.
Note that the function AUC()
was originally modified from the 'glmnet' package
to ensure deterministic results. The unweighted version can be different from the
weighted one with unit weights due to ties in predicted
.
For precision()
, recall()
, and f1_score()
: The actual
and predicted
values
need to be in \(\{0, 1\}\).
For accuracy()
and classification_error()
: Any discrete input.
For AUC()
and gini_coefficient()
: Only actual
must be in \(\{0, 1\}\).
For deviance_bernoulli()
and logLoss()
: The values of actual
must be in
\(\{0, 1\}\), while predicted
must be in the closed interval \([0, 1]\).
y <- c(0, 0, 1, 1)
pred <- c(0, 0, 1, 0)
w <- y * 2
accuracy(y, pred)
#> [1] 0.75
classification_error(y, pred, w = w)
#> [1] 0.5
precision(y, pred, w = w)
#> [1] 1
recall(y, pred, w = w)
#> [1] 0.5
f1_score(y, pred, w = w)
#> [1] 0.6666667
y2 <- c(0, 1, 0, 1)
pred2 <- c(0.1, 0.1, 0.9, 0.8)
w2 <- 1:4
AUC(y2, pred2)
#> [1] 0.375
AUC(y2, pred2, w = rep(1, 4)) # Different due to ties in predicted
#> [1] 0.5
gini_coefficient(y2, pred2, w = w2)
#> [1] -0.5
logLoss(y2, pred2, w = w2)
#> [1] 1.251086
deviance_bernoulli(y2, pred2, w = w2)
#> [1] 2.502172