Kuidas muuta sõnad numbriteks, ilma et mudel valesti aru saaks

Masinõppemudel ei oska lugeda sõnu „Tallinn“ või „kõrgharidus“. Enne treenimist tuleb kategoorilised tunnused kodeerida. Viis, kuidas seda teed, mõjutab seda, mida mudel andmetes näeb.

Proovi ise

Andmestikus on 8 klienti: linn, haridustase ja kas klient ostis toote (ostis, 1 = jah). Vali veerg ja kodeerija ning vaata, mis andmetest saab.

Veerg
Kodeerija
Järjestus
Valikud
Silumine m = 0 Mida suurem m, seda rohkem tõmmatakse väikeste gruppide väärtus üldkeskmise (0,50) poole.

Enne

Pärast


    

Millal mida kasutada

KodeerijaSobibOhud
OrdinalEncoderTunnustele, millel on päris järjestus (haridus, rõivasuurus, hinnang 1–5). Puupõhised mudelid taluvad seda ka nominaalsete tunnuste puhul.Vaikimisi järjestus on tähestikuline, mitte loogiline. Lineaarne mudel tõlgendab numbreid kaugustena.
OneHotEncoderNominaalsetele tunnustele, kus kategooriaid on vähe (kuni mõnikümmend). Lineaarsete mudelite ja närvivõrkude vaikevalik.Palju kategooriaid tähendab palju veerge. Lineaarse regressiooni puhul kasuta drop="first".
TargetEncoderVäga paljude kategooriatega tunnustele (postiindeks, tootekood), eriti koos puumudelitega.Sihttunnuse info lekib tunnusesse. Väikesed grupid annavad äärmuslikke väärtusi. Kodeeri ainult treeningandmete põhjal.
LabelEncoderAinult sihttunnusele y klassifitseerimisel.Ei ole mõeldud sisendtunnustele X; selleks on OrdinalEncoder.

Kontrolli end

Vali igale olukorrale sobivaim kodeerija.