Aké spôsoby práce s kategorizálnymi znakmi existujú?
sobes.tech AI
Odpoveď od AI
Hlavné spôsoby práce s kategorizovanými znakmi v strojovom učení sú:
-
Label Encoding (kódovanie štítkov) — každej kategórii je priradené jedinečné číslo. Vhodné pre zoradené kategórie, ale môže zmiasť model, ak poradie chýba.
-
One-Hot Encoding — pre každú kategóriu sa vytvorí binárna vlastnosť. Napríklad vlastnosť "Farba" s kategóriami {červená, modrá, zelená} sa premení na tri binárne vlastnosti.
-
Target Encoding (cieľové kódovanie) — kategórie sa nahradia štatistikami cieľovej premennej (napríklad priemernou hodnotou cieľovej premennej pre každú kategóriu). Vyžaduje opatrnosť, aby sa predišlo úniku dát.
-
Frequency Encoding (frekvenčné kódovanie) — kategórie sa nahradia ich frekvenciou výskytu v dátach.
-
Embeddings — pre kategórie s veľkým počtom unikátnych hodnôt (napríklad v NLP) sa používajú vektorové reprezentácie, ktoré sa trénujú spoločne s modelom.
Výber metódy závisí od úlohy, modelu a objemu dát. Napríklad pre rozhodovacie stromy je často postačujúce Label alebo One-Hot Encoding, zatiaľ čo pre neurónové siete — embeddings.
Príklad One-Hot Encoding v Pythone s pandas:
import pandas as pd
df = pd.DataFrame({'Farba': ['červená', 'modrá', 'zelená', 'modrá']})
df_encoded = pd.get_dummies(df, columns=['Farba'])
print(df_encoded)
Výsledok:
Farba_červená Farba_zelená Farba_modrá
0 1 0 0
1 0 0 1
2 0 1 0
3 0 0 1