Millised on viis töötada kategorialt tunnustega?
sobes.tech AI
Vastus AI-lt
Masinõppes töötatakse kategoriale tunnustega peamiselt järgmiste põhimeetoditega:
-
Label Encoding (siltkoodimine) — iga kategooriale omistatakse unikaalne number. Sobib järjestatud kategooriatele, kuid võib mudelit eksitada, kui järjekord puudub.
-
One-Hot Encoding — iga kategooria jaoks luuakse binaarne tunnus. Näiteks tunnus "Värv" kategooriatega {punane, sinine, roheline} muudetakse kolme binaarseks tunnuseks.
-
Target Encoding (sihtkoodimine) — kategooriaid asendatakse sihtmuutuja statistikaga (näiteks iga kategooria jaoks sihtmuutuja keskmine väärtus). Tuleb olla ettevaatlik, et vältida andmete lekkimist.
-
Frequency Encoding (sageduslik koodimine) — kategooriaid asendatakse nende esinemissagedusega andmetes.
-
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