Hogyan lehet beállítani a súlyokat a kiegyensúlyozatlan osztályok számára Kerasban

Tudom, hogy a Keras-ban van lehetőség a class_weights paraméter-szótárral a beállításkor, de nem találtam példát. Lenne valaki kedves, hogy biztosítson egyet?

lehet

Egyébként ebben az esetben a helyes gyakorlat egyszerűen a kisebbségi osztály súlyozása az alulreprezentációjának arányában.

Ha normál esetről beszél, ahol a hálózata csak egy kimenetet produkál, akkor feltételezése helyes. Az algoritmus kényszerítésére a 1. osztály mint a 0. osztály, neked kell:

Adjon meg egy szótárt a címkéivel és a hozzájuk tartozó súlyokkal

Írja be a szótárt paraméterként:

EDIT: "kezelje a 1. osztály mint a 0. osztály "azt jelenti, hogy a veszteségfüggvényében magasabb értéket rendel ezekhez az esetekhez. Ezért a veszteség súlyozott átlaggá válik, ahol az egyes minták tömegét a súly_osztály és a hozzá tartozó osztály.

Keras dokumentumokból: osztály_súly: index opcionális szótár-leképezés (egész számok) a súlyértékhez (úszó), a fogyás funkcióhoz (csak edzés közben).

Egyszerűen megvalósíthatja a sklearn osztály_súlyát:

Először importáljuk a modult

Az osztály súlyának kiszámításához tegye a következőket: