Sobes.tech
Middle

Millised on viis töötada kategorialt tunnustega?

sobes.tech AI

Vastus AI-lt

Masinõppes töötatakse kategoriale tunnustega peamiselt järgmiste põhimeetoditega:

  1. Label Encoding (siltkoodimine) — iga kategooriale omistatakse unikaalne number. Sobib järjestatud kategooriatele, kuid võib mudelit eksitada, kui järjekord puudub.

  2. One-Hot Encoding — iga kategooria jaoks luuakse binaarne tunnus. Näiteks tunnus "Värv" kategooriatega {punane, sinine, roheline} muudetakse kolme binaarseks tunnuseks.

  3. Target Encoding (sihtkoodimine) — kategooriaid asendatakse sihtmuutuja statistikaga (näiteks iga kategooria jaoks sihtmuutuja keskmine väärtus). Tuleb olla ettevaatlik, et vältida andmete lekkimist.

  4. Frequency Encoding (sageduslik koodimine) — kategooriaid asendatakse nende esinemissagedusega andmetes.

  5. Embeddings (vektorid) — suurte unikaalsete väärtuste arvuga kategooriate jaoks (näiteks NLP-s) kasutatakse vektoriale esindusi, mida treenitakse koos mudeliga.

Valik sõltub ülesandest, mudelist ja andmekogusest. Näiteks otsustuspuudel piisab sageli Label või One-Hot Encoding-st, närvivõrkudel — embeddings.

Python näide One-Hot Encoding-st pandasiga:

import pandas as pd

df = pd.DataFrame({'Värv': ['punane', 'sinine', 'roheline', 'sinine']})
df_encoded = pd.get_dummies(df, columns=['Värv'])
print(df_encoded)

Tulemus:

   Värv_punane  Värv_roheline  Värv_sinine
0             1             0             0
1             0             0             1
2             0             1             0
3             0             0             1