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.
Andmestikus on 8 klienti: linn, haridustase ja kas klient ostis toote (ostis, 1 = jah). Vali veerg ja kodeerija ning vaata, mis andmetest saab.
| Kodeerija | Sobib | Ohud |
|---|---|---|
| OrdinalEncoder | Tunnustele, 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. |
| OneHotEncoder | Nominaalsetele 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". |
| TargetEncoder | Vä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. |
| LabelEncoder | Ainult sihttunnusele y klassifitseerimisel. | Ei ole mõeldud sisendtunnustele X; selleks on OrdinalEncoder. |
Vali igale olukorrale sobivaim kodeerija.