04 · Ocena · 5 min czytania · aktualizacja
Accuracy czy balanced accuracy — kiedy używać zbalansowanej trafności?
W skrócie
Trafność liczy odsetek wszystkich poprawnych odpowiedzi, a zbalansowana trafność uśrednia recall każdej klasy. Przy rzadkiej klasie tylko ta druga widzi kłopot.
Co to jest
Zbalansowanej trafności (balanced accuracy) używaj, gdy klasy są niezbalansowane, a pomyłki w klasie rzadkiej są co najmniej tak ważne jak w licznej; zwykłej trafności (accuracy) — gdy klasy są w miarę równe albo gdy naprawdę liczy się odsetek trafnych decyzji w populacji o danych proporcjach. Trafność to (TP + TN) / wszystkie przypadki, zbalansowana trafność to średnia recall z każdej klasy: (TPR + TNR) / 2 w przypadku binarnym.
Różnicę najlepiej widać na modelu, który zawsze odpowiada „klasa liczniejsza”. Przy 95% negatywów ma trafność 95% i zbalansowaną trafność dokładnie 50%, czyli tyle, ile rzut monetą. Zbalansowana trafność ma stały punkt odniesienia: model bez wiedzy dostaje 1/K przy K klasach, niezależnie od proporcji.
Trafność nie jest metryką „złą” — odpowiada na inne pytanie. Mówi, jaki odsetek decyzji będzie trafny przy obecnych proporcjach klas. Zbalansowana trafność mówi, jak dobrze model rozpoznaje każdą klasę, tak jakby wszystkie były równie liczne.
Mechanizm — dlaczego tak działa
Ukryte wagi. Trafność to średnia recall z klas ważona ich liczebnością: accuracy = π·TPR + (1 − π)·TNR, gdzie π to częstość klasy pozytywnej. Przy π = 5% recall klasy rzadkiej wnosi do wyniku tylko 5%. Model może całkowicie ignorować tę klasę i tracić zaledwie 5 punktów. Zbalansowana trafność ustawia π = 0,5, czyli daje każdej klasie równy głos.
Interpretacja kosztowa. Wybór metryki to założenie o kosztach. Optymalizacja trafności zakłada, że każdy błąd kosztuje tyle samo. Optymalizacja zbalansowanej trafności odpowiada sytuacji, w której błąd w klasie rzadkiej jest tyle razy droższy, ile razy ta klasa jest rzadsza. Przy 5% pozytywów — 19 razy. Jeśli tak nie jest, zbalansowana trafność też wprowadza w błąd.
Związek z progiem. Obie metryki liczy się po zamianie prawdopodobieństw na etykiety. Model o świetnym rankingu może mieć złą zbalansowaną trafność tylko dlatego, że próg 0,5 jest za wysoki dla rzadkiej klasy. Ważenie klas (class_weight="balanced") albo obniżenie progu przesuwa model w stronę wyższej zbalansowanej trafności kosztem zwykłej.
Wieloklasowo. Zbalansowana trafność to średnia recall po klasach (makro-recall). Trafność jest wtedy zdominowana przez największą klasę, a jej poziom odniesienia to częstość tej klasy, nie 1/K.
Na przykładzie
Titanic (klasa pozytywna = przeżył) w trzech wersjach: oryginalnej (38,4% ocalałych) i z losowo usuniętą częścią ocalałych, tak by stanowili 10% albo 5% danych (random_state=0). Powtarzana walidacja krzyżowa 5 × 5. Model trywialny zawsze mówi „nie przeżył”; regresja logistyczna i las losowy (300 drzew) są w wersji zwykłej i z ważeniem klas.
| Model | 38,4%: trafność | 38,4%: zbal. | 10%: trafność | 10%: zbal. | 5%: trafność | 5%: zbal. | 5%: recall |
|---|---|---|---|---|---|---|---|
| Zawsze „nie” | 0,616 | 0,500 | 0,900 | 0,500 | 0,950 | 0,500 | 0,000 |
| Regresja logistyczna | 0,796 | 0,779 | 0,931 | 0,680 | 0,958 | 0,622 | 0,248 |
| Regr. logistyczna, wagi klas | 0,787 | 0,781 | 0,790 | 0,762 | 0,766 | 0,724 | 0,676 |
| Las losowy | 0,829 | 0,806 | 0,926 | 0,687 | 0,955 | 0,571 | 0,145 |
| Las losowy, wagi klas | 0,819 | 0,806 | 0,916 | 0,761 | 0,940 | 0,661 | 0,351 |
Przy oryginalnych proporcjach obie metryki zgadzają się co do zwycięzcy. Przy 5% ocalałych zwykła trafność wskazuje regresję logistyczną (0,958), która jest lepsza od modelu trywialnego o niecały punkt i wykrywa jednego ocalałego na czterech. Zbalansowana trafność wskazuje wersję z wagami klas: jej trafność spada do 0,766, ale wykrywa dwie trzecie ocalałych. Który model jest lepszy, zależy od kosztów — ale tylko zbalansowana trafność w ogóle pokazuje, że jest o czym rozmawiać.
To samo w wielu klasach: na pingwinach (146 Adelie, 68 maskowych, 119 białobrewych) model zawsze wskazujący pingwina Adeli ma trafność 0,438 i zbalansowaną trafność 0,333. kNN bez skalowania cech: 0,781 i 0,714 — różnica zdradza, że rzadkie pingwiny maskowe są rozpoznawane najgorzej.
Dane: Titanic Palmer Penguins (pingwiny z Antarktydy)
W praktyce
Reguła wyboru:
- Klasy w miarę równe (np. 40–60%) i równe koszty błędów → trafność:
accuracy_score(y, y_pred). - Klasa rzadka jest ważna, kosztów nie znasz → zbalansowana trafność:
balanced_accuracy_score(y, y_pred); w walidacji krzyżowejscoring="balanced_accuracy". - Znasz koszty błędów → nie wybieraj między tymi dwiema; policz oczekiwany koszt z macierzy pomyłek (
confusion_matrix) i dobierz próg. - Chcesz ocenić ranking niezależnie od progu → ROC AUC lub PR AUC zamiast obu.
- Zawsze raportuj wynik modelu trywialnego:
DummyClassifier(strategy="most_frequent"); trafność 95% bez tego punktu odniesienia nic nie znaczy. balanced_accuracy_score(..., adjusted=True)przeskalowuje wynik tak, że model losowy ma 0, a idealny 1.
Najczęstsze pytania
- Czy zbalansowana trafność to to samo co makro-recall?
- Tak, w scikit-learn `balanced_accuracy_score` jest równa `recall_score(average="macro")`. W przypadku binarnym to średnia czułości i swoistości.
- Czy zamiast zbalansowanej trafności nie lepiej użyć F1?
- F1 skupia się na klasie pozytywnej i ignoruje prawdziwe negatywy, więc zmienia się z częstością klasy i zależy od tego, którą klasę nazwiemy pozytywną. Zbalansowana trafność traktuje obie klasy symetrycznie. Gdy interesują Cię głównie alarmy dla rzadkiej klasy, F1 albo precyzja i recall osobno są czytelniejsze.
- Dlaczego Kaggle i artykuły naukowe wciąż podają trafność?
- Bo wiele zbiorów konkursowych i benchmarków jest zbalansowanych, a wtedy obie metryki prawie się pokrywają. Przy danych niezbalansowanych sama trafność jest najczęstszym źródłem przesadnie optymistycznych wniosków.
Źródła
- Brodersen K. H., Ong C. S., Stephan K. E., Buhmann J. M. „The Balanced Accuracy and Its Posterior Distribution”, ICPR 2010, s. 3121–3124.
- Japkowicz N., Shah M. „Evaluating Learning Algorithms: A Classification Perspective”, Cambridge University Press 2011, rozdz. 3.
- Chicco D., Jurman G. „The advantages of the Matthews correlation coefficient (MCC) over F1 score and accuracy in binary classification evaluation”, BMC Genomics 21, 2020, art. 6.
- Dokumentacja scikit-learn, „Balanced accuracy score”: https://scikit-learn.org/stable/modules/model_evaluation.html#balanced-accuracy-score