Wprowadzenie
Nierównowaga klas, znana również jako Class Imbalance, to powszechne zjawisko w zbiorach danych używanych w uczeniu maszynowym, gdzie jedna klasa, zwana klasą większościową, ma znacznie więcej próbek niż inna klasa, nazywana klasą mniejszościową. Jest to szczególnie problematyczne w zadaniach klasyfikacji, gdzie model ma za zadanie przypisać obiekty do jednej z predefiniowanych kategorii. Problem nierównowagi klas może prowadzić do tego, że modele uczenia maszynowego będą stronnicze. Zamiast uczyć się cech charakterystycznych dla wszystkich klas, model może skoncentrować się na klasie większościowej, osiągając wysoką ogólną dokładność, ale bardzo słabo radząc sobie z przewidywaniem przypadków należących do klasy mniejszościowej.
Jak działają Nierównowaga Klas?
Nierównowaga klas często wynika z natury problemu, np. w diagnostyce rzadkich chorób, gdzie liczba zdrowych pacjentów jest znacznie większa niż chorych, lub w wykrywaniu oszustw finansowych, gdzie legalne transakcje znacznie przewyższają liczbę oszukańczych. Standardowe algorytmy uczenia maszynowego, takie jak regresja logistyczna czy maszyny wektorów nośnych (SVM), zazwyczaj dążą do minimalizacji ogólnego błędu klasyfikacji. W przypadku nierównowagi klas, minimalizacja ogólnego błędu oznacza często, że algorytm uczy się przewidywać klasę większościową w większości przypadków. Dla przykładu, w zbiorze danych, gdzie 99% transakcji jest legalnych, a tylko 1% oszukańczych, model może osiągnąć 99% dokładności, przewidując wszystkie transakcje jako legalne. Chociaż ogólna dokładność jest wysoka, model ten jest całkowicie bezużyteczny do wykrywania oszustw, ponieważ nie zidentyfikował ani jednego przypadku oszustwa. Model skutecznie ignoruje klasę mniejszościową, traktując ją jako szum, co jest nieakceptowalne w wielu rzeczywistych zastosowaniach, gdzie poprawna identyfikacja klasy mniejszościowej jest kluczowa.
Główne zalety i charakterystyka
Nierównowaga klas nie posiada bezpośrednich zalet, gdyż jest to problem, który wymaga rozwiązania w celu poprawy jakości modeli uczenia maszynowego. Jednak świadomość i umiejętność zarządzania nierównowagą klas jest ogromną zaletą dla każdego specjalisty AI. Pozwala na budowanie bardziej robustnych, sprawiedliwych i użytecznych modeli, które skutecznie radzą sobie z rzadkimi, lecz często krytycznymi przypadkami. Zastosowanie odpowiednich technik minimalizujących wpływ nierównowagi klas prowadzi do lepszej generalizacji modelu i wiarygodniejszych wyników w realnym świecie.
Zastosowania w praktyce
- Wykrywanie oszustw finansowych (karty kredytowe, ubezpieczenia, transakcje bankowe)
- Diagnostyka medyczna (wykrywanie rzadkich chorób, nowotworów we wczesnych stadiach)
- Systemy rekomendacji (rekomendowanie niszowych produktów, które są rzadko kupowane)
- Wykrywanie anomalii i intruzji (np. w sieciach komputerowych, monitorowanie maszyn produkcyjnych)
- Monitorowanie jakości produkcji (identyfikacja wadliwych produktów, które stanowią mały odsetek ogólnej produkcji)
Porównanie z innymi strukturami danych
W zbalansowanym zbiorze danych każda klasa jest reprezentowana przez podobną liczbę próbek, co umożliwia modelowi uczenie się odrębnych cech dla każdej klasy z równą uwagą. Model trenowany na zbalansowanych danych zazwyczaj lepiej generalizuje i jest bardziej sprawiedliwy w swoich przewidywaniach, ponieważ nie jest zmuszony faworyzować żadnej klasy. W przeciwieństwie do tego, w zbiorze z nierównowagą klas, dominacja jednej klasy może sprawić, że model będzie ignorował klasę mniejszościową, nawet jeśli jej poprawna klasyfikacja jest kluczowa. Na przykład, model przeszkolony na niezbalansowanym zbiorze może osiągnąć wysoką ogólną dokładność, ale bardzo niską czułość (recall) dla klasy mniejszościowej, co oznacza, że duża część pozytywnych przypadków zostanie błędnie zidentyfikowana jako negatywne. Różnica polega zatem na zdolności modelu do efektywnego rozpoznawania i przewidywania wszystkich klas, a nie tylko tej dominującej.
Najlepsze praktyki (2026)
- Oversampling (nadpróbkowanie) klasy mniejszościowej: tworzenie syntetycznych próbek (np. SMOTE, ADASYN) lub duplikowanie istniejących w celu zwiększenia jej liczebności.
- Undersampling (niedopróbkowanie) klasy większościowej: redukcja liczby próbek klasy większościowej (np. Random Undersampling, Tomek Links) w celu wyrównania proporcji.
- Ważenie klas (class weighting): przypisywanie większych wag błędom popełnianym na klasie mniejszościowej podczas treningu modelu, co zmusza algorytm do większej uwagi na te przypadki.
- Użycie algorytmów odpornych na nierównowagę: niektóre algorytmy, takie jak drzewa decyzyjne, lasy losowe czy algorytmy boostingowe (XGBoost, LightGBM), mogą być dostosowane do obsługi nierównowagi za pomocą specjalnych parametrów (np. scale_pos_weight).
- Zmiana metryk oceny: zamiast polegać wyłącznie na dokładności (accuracy), stosowanie metryk takich jak precyzja, czułość (recall), wynik F1-score, krzywa ROC-AUC, czy matryca pomyłek, które lepiej odzwierciedlają wydajność na klasie mniejszościowej.
Typowe błędy i pułapki
- Ignorowanie problemu nierównowagi klas, szczególnie w scenariuszach, gdzie klasa mniejszościowa jest kluczowa (np. wykrywanie chorób, oszustw).
- Używanie wyłącznie ogólnej dokładności (accuracy) jako metryki oceny modelu, co może prowadzić do mylnego wrażenia wysokiej wydajności, podczas gdy model całkowicie ignoruje klasę mniejszościową.
- Stosowanie technik oversampling i undersampling po podziale zbioru na treningowy i testowy, co prowadzi do wycieku danych i nierealistycznie optymistycznych wyników.
- Nadmierne nadpróbkowanie (oversampling) klasy mniejszościowej, co może prowadzić do przetrenowania (overfitting) i słabej generalizacji modelu na nowych, niewidzianych danych.
- Nadmierne niedopróbkowanie (undersampling) klasy większościowej, co może skutkować utratą cennych informacji zawartych w tych danych i niedouczeniem się modelu.