Sobes.tech
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.