Ταξινόμηση

Eval

Ταξινόμηση

まとめ
  • Συγκεντρώνουμε τα βασικά metrics για ταξινόμηση και τις διαφορές μεταξύ δυαδικής, πολυκλασικής και πολυετικετικής ταξινόμησης.
  • Βλέπουμε συνολικά δείκτες από πίνακα σύγχυσης, κατώφλια, πιθανότητες και κατάταξη.
  • Δίνουμε οδηγίες για επιλογή συνόλου δεικτών και για σωστή αναφορά αποτελεσμάτων.

Κεφάλαιο 3 #

Επισκόπηση δεικτών ταξινόμησης #

Η αξιολόγηση ταξινόμησης εξαρτάται από την ισορροπία κλάσεων, το κατώφλι, την αξιοπιστία των πιθανοτήτων και την ποιότητα των κορυφαίων προτάσεων. Εδώ συγκεντρώνουμε τις κύριες οικογένειες δεικτών και οδηγίες επιλογής ανά χρήση.


Κατηγορίες δεικτών #

1. Βασισμένοι στον πίνακα σύγχυσης #

  • Accuracy (Accuracy): συνολική ακρίβεια, αλλά υπερεκτιμάται σε ανισορροπία κλάσεων.
  • Precision / Recall / F1 (Precision/Recall, F1): επιλέγουμε ανάλογα με το κόστος των σφαλμάτων.
  • Specificity / Sensitivity (Specificity/Sensitivity): κρίσιμα σε ιατρικές εφαρμογές.
  • Macro / Micro / Weighted averaging (Στρατηγικές averaging): τρόποι σύνοψης σε πολυκλασικά προβλήματα.

2. Κατώφλι και κατάταξη #

  • Precision-Recall curve / PR-AUC (PR): χρήσιμο όταν η θετική κλάση είναι σπάνια.
  • ROC curve / ROC-AUC (ROC-AUC): συνολική διαχωριστική ικανότητα.
  • Top-k Accuracy / Hit Rate (Top-k Accuracy, Hit Rate): σημαντικό σε συστάσεις/αναζήτηση.

3. Πιθανοτικές/βαθμονόμηση #

  • Log Loss (Log Loss): ανταμείβει καλά βαθμονομημένες πιθανότητες.
  • Brier Score (Brier Score): μαζί με καμπύλες βαθμονόμησης για αξιοπιστία πιθανοτήτων.
  • Calibration curves: σύγκριση προβλεπόμενων πιθανοτήτων με πραγματικές συχνότητες.

4. Δείκτες για ανισορροπία κλάσεων #

  • Balanced Accuracy (Balanced Accuracy): μέσος όρος ανά κλάση.
  • Cohen’s Kappa / MCC (Cohen’s κ, MCC): πιο σταθεροί σε ανισορροπία.

Πώς αλλάζουν οι δείκτες με το κατώφλι #

import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import precision_score, recall_score, f1_score
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

X, y = make_classification(
    n_samples=2000,
    n_features=12,
    n_informative=4,
    weights=[0.85, 0.15],
    random_state=42,
)

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, stratify=y, random_state=42
)

scaler = StandardScaler()
model = LogisticRegression(max_iter=2000)
model.fit(scaler.fit_transform(X_train), y_train)

prob = model.predict_proba(scaler.transform(X_test))[:, 1]
thresholds = np.linspace(0.05, 0.95, 19)

precision, recall, f1 = [], [], []
for t in thresholds:
    y_pred = (prob >= t).astype(int)
    precision.append(precision_score(y_test, y_pred, zero_division=0))
    recall.append(recall_score(y_test, y_pred, zero_division=0))
    f1.append(f1_score(y_test, y_pred, zero_division=0))

fig, ax = plt.subplots(figsize=(6.8, 4))
ax.plot(thresholds, precision, label="Precision", color="#2563eb")
ax.plot(thresholds, recall, label="Recall", color="#dc2626")
ax.plot(thresholds, f1, label="F1", color="#0d9488")
ax.set_xlabel("Threshold")
ax.set_ylabel("Score")
ax.set_title("Effect of threshold on classification metrics")
ax.set_ylim(0, 1.05)
ax.grid(alpha=0.3)
ax.legend()
plt.tight_layout()
Μεταβολή Precision / Recall / F1 ανά κατώφλι

Όσο μειώνεται το κατώφλι, το recall ανεβαίνει αλλά το precision πέφτει. Μπορούμε να επιλέξουμε κατώφλι όπου το F1 κορυφώνεται.


Σημεία για αναφορά και λειτουργία #

  1. Συνόδευσε πάντα με πίνακα σύγχυσης
    Φαίνεται καθαρά ο τύπος των λαθών ανά κλάση.
  2. Τεκμηρίωσε την επιλογή κατωφλίου
    Χρησιμοποίησε PR curve ή γράφημα threshold-score.
  3. Έλεγξε τη βαθμονόμηση πιθανοτήτων
    Αν οι πιθανότητες χρησιμοποιούνται σε αποφάσεις, αξιολόγησε με Brier Score.
  4. Λάβε υπόψη την ανισορροπία κλάσεων
    Χρησιμοποίησε Balanced Accuracy ή MCC, όχι μόνο Accuracy.
  5. Παρακολούθηση drift
    Παρακολούθησε Precision/Recall, PR-AUC, ROC-AUC στον χρόνο.

Γρήγορη αναφορά #

ΟπτικήΚύριοι δείκτεςΣχετική σελίδαΣημείωση
Συνολική ακρίβειαAccuracy / Balanced AccuracyAccuracy / Balanced AccuracyΧρήσιμη η Balanced Accuracy σε ανισορροπία
FP vs FNPrecision / Recall / FβPrecision-Recall / F1Συνδυάζεται με επιλογή κατωφλίου
Ποιότητα κατάταξηςPR-AUC / ROC-AUC / Top-kPR curve / ROC-AUC / Top-k AccuracyΚατάλληλο για ανισορροπία ή recommendation
ΒαθμονόμησηLog Loss / Brier ScoreLog Loss / Brier ScoreΌταν οι πιθανότητες οδηγούν αποφάσεις
ΑνθεκτικότηταMCC / Cohen’s κMCC / Cohen’s κΣταθερό σε ανισορροπία

Checklist #

  • Συνδυάστηκαν δείκτες για ανισορροπία κλάσεων
  • Τεκμηριώθηκε το κατώφλι (PR/ROC, κόστος)
  • Ελέγχθηκε η βαθμονόμηση πιθανοτήτων
  • Συγκρίθηκαν κατανομές αξιολόγησης και παραγωγής
  • Ορίστηκαν σταθερά baseline metrics για updates