Sobes.tech
Junior — Middle

Czym jest nierównowaga klas i jak z nią walczyć?

sobes.tech AI

Odpowiedź od AI

Nierównowaga klas to sytuacja w problemie klasyfikacji, gdy liczba obiektów jednej klasy znacznie przewyższa liczbę obiektów innej (lub innych) klas. Prowadzi to do tego, że model może mieć trudności z rozpoznaniem mniej reprezentowanych klas, ponieważ jest skłonny optymalizować się pod kątem większości.

Sposoby radzenia sobie z nierównowagą klas:

  • Przebudowa próbek: zwiększenie liczby obiektów mniejszej klasy (oversampling) lub zmniejszenie liczby obiektów większej klasy (undersampling).
  • Użycie specjalnych metryk: np. F1-score, ROC-AUC zamiast prostej dokładności.
  • Stosowanie algorytmów odpornych na nierównowagę: np. zespoły, metody z ważeniem klas.
  • Generowanie danych syntetycznych: metody takie jak SMOTE tworzą nowe obiekty dla mniejszej klasy.

Przykład użycia SMOTE:

from imblearn.over_sampling import SMOTE
X_resampled, y_resampled = SMOTE().fit_resample(X, y)

To pomaga poprawić jakość modelu na rzadkich klasach.