pub fn f1_per_class(y_pred: &[usize], y_true: &[usize]) -> Vec<f32>Expand description
Compute per-class F1 scores.
Returns a vector of F1 scores, one per class (ordered by class index). For binary classification, index 1 is the positive-class F1.
F1_i = 2 * precision_i * recall_i / (precision_i + recall_i)
§Arguments
y_pred- Predicted class labelsy_true- True class labels
§Returns
Vector of per-class F1 scores (each in 0.0..=1.0)
§Panics
Panics if vectors have different lengths or are empty.
§Examples
use aprender::metrics::classification::f1_per_class;
let y_true = vec![1, 0, 1, 0];
let y_pred = vec![1, 1, 0, 0];
let per_class = f1_per_class(&y_pred, &y_true);
assert_eq!(per_class.len(), 2);
// Both classes: precision=0.5, recall=0.5 → F1=0.5
assert!((per_class[0] - 0.5).abs() < 1e-5);
assert!((per_class[1] - 0.5).abs() < 1e-5);