Junior — Middle
Co je to nerovnováha tříd a jak s ní bojovat?
sobes.tech AI
Odpověď od AI
Nevyváženost tříd je situace v klasifikačním problému, kdy počet objektů jedné třídy výrazně převyšuje počet objektů jiné (nebo jiných) tříd. To může vést k tomu, že model špatně rozpoznává méně zastoupené třídy, protože má tendenci optimalizovat se podle většiny.
Způsoby boje s nevyvážeností tříd:
- Přeškálování: zvýšení počtu objektů menší třídy (oversampling) nebo snížení počtu objektů větší třídy (undersampling).
- Použití speciálních metrik: například F1-skóre, ROC-AUC místo jednoduché přesnosti.
- Použití algoritmů odolných vůči nevyváženosti: například ansámblové metody, metody s vážením tříd.
- Generování syntetických dat: metody jako SMOTE vytvářejí nové objekty pro menší třídu.
Příklad použití SMOTE:
from imblearn.over_sampling import SMOTE
X_resampled, y_resampled = SMOTE().fit_resample(X, y)
Toto pomáhá zlepšit kvalitu modelu na vzácných třídách.