Classification Metrics

Standard classification metrics for evaluating models that output class probabilities. All functions are registered in classification_metric_registry at import time via @register_classification_metric, which also enforces that probs is 2-D and that batch sizes match before delegating to the metric function.

Included metrics: accuracy, F1 (macro), precision (macro), recall (macro), and AUC-ROC (binary one-class probability; multiclass one-vs-rest).

Classification metrics.

All metrics are automatically registered in classification_metric_registry at import time via the @register_classification_metric decorator.

alf_core.utils.metrics.classification.accuracy(probs, targets)[source]

Compute classification accuracy.

Parameters:
  • probs (Float[ndarray, 'n_samples num_classes']) – Array of shape (n_samples, num_classes). Predicted class probabilities.

  • targets (Int[ndarray, 'n_samples']) – Array of shape (n_samples,). Integer class labels.

Returns:

accuracy float}

Return type:

dict[str, float]

alf_core.utils.metrics.classification.auc_roc(probs, targets)[source]

Compute Area Under the ROC Curve (AUC-ROC).

For binary classification, uses the positive-class probabilities. For multiclass, uses one-vs-rest averaging.

Parameters:
  • probs (Float[ndarray, 'n_samples num_classes']) – Array of shape (n_samples, num_classes). Predicted class probabilities.

  • targets (Int[ndarray, 'n_samples']) – Array of shape (n_samples,). Integer class labels.

Returns:

AUC-ROC float}

Return type:

dict[str, float]

alf_core.utils.metrics.classification.f1(probs, targets)[source]

Compute macro-averaged F1 score.

Parameters:
  • probs (Float[ndarray, 'n_samples num_classes']) – Array of shape (n_samples, num_classes). Predicted class probabilities.

  • targets (Int[ndarray, 'n_samples']) – Array of shape (n_samples,). Integer class labels.

Returns:

macro F1 float}

Return type:

dict[str, float]

alf_core.utils.metrics.classification.precision(probs, targets)[source]

Compute macro-averaged precision.

Parameters:
  • probs (Float[ndarray, 'n_samples num_classes']) – Array of shape (n_samples, num_classes). Predicted class probabilities.

  • targets (Int[ndarray, 'n_samples']) – Array of shape (n_samples,). Integer class labels.

Returns:

macro precision float}

Return type:

dict[str, float]

alf_core.utils.metrics.classification.recall(probs, targets)[source]

Compute macro-averaged recall.

Parameters:
  • probs (Float[ndarray, 'n_samples num_classes']) – Array of shape (n_samples, num_classes). Predicted class probabilities.

  • targets (Int[ndarray, 'n_samples']) – Array of shape (n_samples,). Integer class labels.

Returns:

macro recall float}

Return type:

dict[str, float]

alf_core.utils.metrics.classification.register_classification_metric(metric_fn)[source]

Decorator to register a classification metric.

Automatically registers the metric in the classification registry and applies basic input validation. The decorated function receives (probs, targets) where probs has shape (n_samples, num_classes) and targets has shape (n_samples,).

Parameters:

metric_fn (Callable) – The metric function to decorate.

Return type:

Callable

Returns:

Wrapped metric function with validation and registration.