| Title: | Multiclass Performance Evaluation Toolkit |
| Version: | 0.1.0 |
| Description: | Implementation of custom 'tidymodels' metrics for multi-class prediction models with a single negative class. Currently are implemented macro-average sensitivity and specificity as in Mortaz, Ebrahim (2020) "Imbalance accuracy metric for model selection in multi-class imbalance classification problems” <doi:10.1016/j.knosys.2020.106490> and a generalized weighted Youden index as in Li, D.L., Shen F., Yin Y., Peng J.X and Chen P.Y. (2013) “Weighted Youden index and its two-independent-sample comparison based on weighted sensitivity and specificity” <doi:10.3760/cma.j.issn.0366-6999.20123102>. |
| License: | MIT + file LICENSE |
| Suggests: | testthat (≥ 3.0.0) |
| Config/testthat/edition: | 3 |
| Encoding: | UTF-8 |
| RoxygenNote: | 7.3.3 |
| URL: | https://github.com/astamm/mupet, https://astamm.github.io/mupet/ |
| BugReports: | https://github.com/astamm/mupet/issues |
| Imports: | rlang, yardstick |
| NeedsCompilation: | no |
| Packaged: | 2026-01-16 14:36:25 UTC; stamm-a |
| Author: | Lise Bellanger [aut],
Manon Simonot [aut],
Aymeric Stamm |
| Maintainer: | Aymeric Stamm <aymeric.stamm@cnrs.fr> |
| Repository: | CRAN |
| Date/Publication: | 2026-01-21 20:10:09 UTC |
Macro Average Sensitivity
Description
This function computes the macro-average sensitivity for a multi-class prediction model. It assumes that the negative class is the first one.
Usage
macro_average_sensitivity_vec(
truth,
estimate,
estimator = NULL,
na_rm = TRUE,
case_weights = NULL,
event_level = "first",
...
)
macro_average_sensitivity(data, ...)
## S3 method for class 'data.frame'
macro_average_sensitivity(
data,
truth,
estimate,
estimator = NULL,
na_rm = TRUE,
case_weights = NULL,
event_level = "first",
...
)
Arguments
truth |
The column identifier for the true class results (that is a factor). |
estimate |
The column identifier for the predicted class results (that is also factor). |
estimator |
One of: "binary", "macro", "macro_weighted", or "micro" to specify the type of averaging to be done. |
na_rm |
A logical value indicating whether NA values should be stripped before the computation proceeds. |
case_weights |
The optional column identifier for case weights. |
event_level |
A single string. Either "first" or "second" to specify which level of truth to consider as the "event". This argument is only applicable when estimator = "binary". |
... |
Currently unused. |
data |
Either a data.frame containing the columns specified by the truth and estimate arguments, or a table/matrix where the true class results should be in the columns of the table. |
Value
A scalar storing the value of the macro-average sensitivity score.
Examples
fold1 <- subset(yardstick::hpc_cv, Resample == "Fold01")
macro_average_sensitivity_vec(fold1$obs, fold1$pred)
macro_average_sensitivity(fold1, obs, pred)
Macro Average Specificity
Description
This function computes the macro-average specificity for a multi-class prediction model. It assumes that the negative class is the first one.
Usage
macro_average_specificity_vec(
truth,
estimate,
estimator = NULL,
na_rm = TRUE,
case_weights = NULL,
event_level = "first",
...
)
macro_average_specificity(data, ...)
## S3 method for class 'data.frame'
macro_average_specificity(
data,
truth,
estimate,
estimator = NULL,
na_rm = TRUE,
case_weights = NULL,
event_level = "first",
...
)
Arguments
truth |
The column identifier for the true class results (that is a factor). |
estimate |
The column identifier for the predicted class results (that is also factor). |
estimator |
One of: "binary", "macro", "macro_weighted", or "micro" to specify the type of averaging to be done. |
na_rm |
A logical value indicating whether NA values should be stripped before the computation proceeds. |
case_weights |
The optional column identifier for case weights. |
event_level |
A single string. Either "first" or "second" to specify which level of truth to consider as the "event". This argument is only applicable when estimator = "binary". |
... |
Currently unused. |
data |
Either a data.frame containing the columns specified by the truth and estimate arguments, or a table/matrix where the true class results should be in the columns of the table. |
Value
A scalar storing the value of the macro-average specificity score.
Examples
fold1 <- subset(yardstick::hpc_cv, Resample == "Fold01")
macro_average_specificity_vec(fold1$obs, fold1$pred)
macro_average_specificity(fold1, obs, pred)
Weighted Youden Index
Description
This function computes the weighted Youden index for a multi-class prediction model. It assumes that the negative class is the first one.
Usage
weighted_youden_index_vec(
truth,
estimate,
sensitivity_weight = 0.5,
estimator = NULL,
na_rm = TRUE,
case_weights = NULL,
event_level = "first",
...
)
weighted_youden_index(data, ...)
## S3 method for class 'data.frame'
weighted_youden_index(
data,
truth,
estimate,
sensitivity_weight = 0.5,
estimator = NULL,
na_rm = TRUE,
case_weights = NULL,
event_level = "first",
...
)
Arguments
truth |
The column identifier for the true class results (that is a factor). |
estimate |
The column identifier for the predicted class results (that is also factor). |
sensitivity_weight |
A scalar value specifying the weight to put on sensitivity.
Defaults to |
estimator |
One of: "binary", "macro", "macro_weighted", or "micro" to specify the type of averaging to be done. |
na_rm |
A logical value indicating whether NA values should be stripped before the computation proceeds. |
case_weights |
The optional column identifier for case weights. |
event_level |
A single string. Either "first" or "second" to specify which level of truth to consider as the "event". This argument is only applicable when estimator = "binary". |
... |
Currently unused. |
data |
Either a data.frame containing the columns specified by the truth and estimate arguments, or a table/matrix where the true class results should be in the columns of the table. |
Value
A scalar storing the value of the weighted Youden index.
Examples
fold1 <- subset(yardstick::hpc_cv, Resample == "Fold01")
weighted_youden_index_vec(fold1$obs, fold1$pred)
weighted_youden_index(fold1, obs, pred)