**Primary metric: Macro F1‑Score** Submissions are evaluated using **Macro F1‑Score**. This metric is the harmonic mean of Precision and Recall, computed independently for each class and then averaged with equal weight, regardless of how many samples each class has. For a given class \(k\): - Precision\(_k\) is: $$ \text{Precision}_k = \frac{TP_k}{TP_k + FP_k} $$ - Recall\(_k\) is: $$ \text{Recall}_k = \frac{TP_k}{TP_k + FN_k} $$ The F1‑Score for class \(k\) is defined as: $$ F1_k = \frac{2 \cdot \text{Precision}_k \cdot \text{Recall}_k}{\text{Precision}_k + \text{Recall}_k} $$ If there are \(K\) classes (here \(K = 6\)), the **Macro F1‑Score** is: $$ F1_{\text{macro}} = \frac{1}{K} \sum_{k=1}^{K} F1_k $$ In Python / scikit‑learn, this is computed as: ```python from sklearn.metrics import f1_score import numpy as np def score(y_true: np.ndarray, y_pred: np.ndarray) -> float: """ Calculate the Macro F1-Score. Parameters: y_true (array-like): True class labels. y_pred (array-like): Predicted class labels. Returns: float: The calculated macro F1 score. """ return f1_score(y_true, y_pred, average="macro") ``` **Why Macro F1‑Score?** Macro F1‑Score balances Precision and Recall across all classes, treating each class as equally important. Since the target labels in this competition are imbalanced, accuracy alone could be misleading. Macro F1‑Score encourages models that perform well on both majority and minority quality categories.