ROC-AUC Curve

Wprowadzenie

ROC-AUC Curve (Receiver Operating Characteristic – Area Under the Curve) to jedna z najpopularniejszych i najbardziej wszechstronnych metryk oceny modeli klasyfikacji binarnej. Pokazuje, jak dobrze model potrafi rozróżniać klasy pozytywne i negatywne przy różnych progach decyzyjnych.

Co to jest krzywa ROC?

Krzywa ROC przedstawia zależność między True Positive Rate (TPR) (czułość) a False Positive Rate (FPR) (1 – specyficzność) dla różnych wartości progu klasyfikacji.

  • TPR (Recall / Sensitivity) = TP / (TP + FN)
  • FPR = FP / (FP + TN)

AUC – Area Under the Curve

AUC to pole powierzchni pod krzywą ROC. Wartość ta mieści się w zakresie 0.0 – 1.0:

  • AUC = 1.0 → model idealny (idealna separacja klas)
  • AUC = 0.5 → model losowy (brak zdolności predykcyjnej)
  • AUC < 0.5 → model gorszy niż losowy (rzadko spotykane po odwróceniu predykcji)

Zalety metryki ROC-AUC

  • Niezależna od progu decyzyjnego
  • Odporna na niezbalansowane klasy (imbalanced data)
  • Ma intuicyjną interpretację: prawdopodobieństwo, że losowo wybrany przykład pozytywny będzie miał wyższy score niż przykład negatywny
  • Pozwala porównywać różne modele w sposób obiektywny

Kiedy używać ROC-AUC?

  • Detekcja fraudów (fraud detection)
  • Diagnostyka medyczna
  • Klasyfikacja spamu
  • Systemy rekomendacyjne (click prediction)
  • Wszędzie tam, gdzie ważna jest zdolność rankingu, a nie konkretny próg

ROC-AUC vs Precision-Recall AUC

Przy mocno niezbalansowanych danych (np. 1% klasy pozytywnej) lepiej sprawdza się PR-AUC (Precision-Recall Curve), ponieważ ROC-AUC może dawać optymistyczne wyniki.

Jak interpretować wykres?

  • Krzywa bliżej lewego górnego rogu = lepszy model
  • Diagonalna linia (AUC=0.5) = losowe zgadywanie
  • Możliwość wizualnego porównania wielu modeli na jednym wykresie

Aktualny status (2026)

ROC-AUC nadal pozostaje standardem de facto w ocenie modeli klasyfikacji binarnej, szczególnie w przemyśle i badaniach naukowych. Mimo rozwoju bardziej zaawansowanych metryk (np. Balanced Accuracy, Matthews Correlation Coefficient, Log Loss), ROC-AUC jest uniwersalny i łatwy do interpretacji. Nowoczesne frameworki (scikit-learn, XGBoost, LightGBM, PyTorch) oferują wbudowane, zoptymalizowane funkcje do obliczania ROC-AUC nawet na bardzo dużych zbiorach danych.