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.