Passer au contenu

La définition de Keras est utilisée par défaut. Cela équivaut à la méthode 'micro' dans SciKit Learn. Voir docs.

Utilisation

luz_metric_multiclass_auroc(
  num_thresholds = 200,
  thresholds = NULL,
  from_logits = FALSE,
  average = c("micro", "macro", "weighted", "none")
)

Arguments

num_thresholds

Nombre de seuils utilisés pour calculer les matrices de confusion. Lorsqu'utilisés, les seuils sont créés en prenant num_thresholds valeurs linéairement espacées sur l'intervale [0, 1].

thresholds

(facultatif) Si des seuils sont fournis, alors ceux-ci sont utilisés pour calculer les matrices de confusion et le paramètre num_thresholds est ignoré.

from_logits

Si TRUE alors nous appliquons torch::nnf_softmax() sur les predictions avant le calcul de la métrique.

average

La méthode pour moyenner :

  • 'micro' : Empile toutes les classes et calcule l'AUC comme si c'était un problème de classification binaire.

  • 'macro' : Trouve l'AUC pour chaque classe et calcule leur moyenne.

  • 'weighted' : Trouve l'AUC pour chaque classe et calcule leur moyenne pondéré en fonction du nombre d'instances pour chaque classe.

  • 'none' : Retourne l'AUC pour chaque classe dans une liste.

Détails

Notez que le déséquilibre des classes peut affecter cette métrique, contrairement à l'AUC pour une classification binaire.

Exemples

if (torch::torch_is_installed()) {
library(torch)
actual <- c(1, 1, 1, 0, 0, 0) + 1L
predicted <- c(0.9, 0.8, 0.4, 0.5, 0.3, 0.2)
predicted <- cbind(1-predicted, predicted)

y_true <- torch_tensor(as.integer(actual))
y_pred <- torch_tensor(predicted)

m <- luz_metric_multiclass_auroc(thresholds = as.numeric(predicted),
                                 average = "micro")
m <- m$new()

m$update(y_pred[1:2,], y_true[1:2])
m$update(y_pred[3:4,], y_true[3:4])
m$update(y_pred[5:6,], y_true[5:6])
m$compute()
}
#> Error in luz_metric_multiclass_auroc(thresholds = as.numeric(predicted),     average = "micro"): impossible de trouver la fonction "luz_metric_multiclass_auroc"