Как да зададете тегла на класове за небалансирани класове в Keras

Знам, че има възможност в Keras с речника на параметрите class_weights при настройване, но не успях да намеря примери. Някой би ли бил достатъчно любезен да го предостави?

класове

Между другото, в този случай правилната практика е просто да се претегли малцинствената класа пропорционално на недостатъчното й представителство.

Ако говорите за нормалния случай, когато вашата мрежа произвежда само един изход, тогава предположението ви е правилно. За да принудите вашия алгоритъм да обработва всеки екземпляр на клас 1 като 50 случая на клас 0, Ти трябва да:

Определете речник с етикетите си и свързаните с тях тегла

Въведете речника като параметър:

EDIT: "обработва всеки екземпляр на клас 1 като 50 случая на клас 0 "означава, че във вашата функция за загуба присвоявате по-висока стойност на тези случаи. Следователно загубата се превръща в средно претеглена стойност, където теглото на всяка проба се определя от тегло_клас и съответния клас.

От документи на Keras: клас_тегло: индекс незадължително картографиране на речника (цели числа) към стойността на теглото (float), използвано за функция за отслабване (само по време на обучение).

Можете просто да приложите class_weight на sklearn:

Нека първо импортираме модула

За да изчислите теглото на класа, направете следното: