Pomenuli smo da se u zadacima mašinskog učenja srećemo sa raznim
tipovima podataka. Većina modela koje smo do sada koristili uspešno je
manipulisala podacima numeričkog tipa, dok kada je bilo reči o podacima
koji po svojoj prirodi nisu neke brojevne vrednosti, morali smo da razmislimo
na koji način ih možemo kodirati tako da model može uspešno da ih koristi.
Takav tip podataka zovemo kategoričkim tipom i sada ćemo mu posvetiti
malo pažnje.
Podatke kategoričkog tipa (ili kraće: kategoričke podatke) možemo podeliti
na nominalne i ordinalne. Ordinalni kategorički podaci se na neki način
mogu sortirati, dok sa nominalnim to nije slučaj. Npr. ordinalni tip podataka
bi bio stepen stručne spreme, a nominalni, recimo, boja očiju. U
zavisnosti od toga da li kategoričke podatke vidimo kao nominalne ili ordinalne,
razlikovaće se i sam način na koji ih obradjujemo.
Dakle, glavni izazov u radu s kategoričkim podacima jeste njihovo kodiranje.
Jasno je da kada se bavimo klasifikacijom, naša ciljna promenljiva
je kategoričkog tipa i nju nije potrebno na neki specijalan način kodirati, pa
ćemo se posvetiti samo kategoričkim prediktorima. Neki modeli
poput random forest-a ne zahtevaju posebno zapisivanje kategoričkih
prediktora, što je njihova velika prednost. S druge strane, linearni i logistički
regresioni modeli su podrazumevali prediktore predstavljene brojevima, što
znači da mogu koristiti kategoričke prediktore samo ako se oni predstave na
takav način.
Drugi problem koji se javlja u radu s kategoričkim prediktorima je izbor
adekvatne metrike za rad sa njima. Npr, modeli KNN i k-means
najčešće koriste euklidsku metriku kako bi izmerili sličnost medju podacima,
što znači da ako želimo da koristimo i kategoričke prediktore, neophodno je
da ih kodiramo kao numeričke ili da koristimo neku drugu metriku.
Kodiranje kategoričkih vrednosti brojevima u ovom slučaju mora biti takvo
da zaista izrazi sličnosti i razlike tačaka kako bi ovi modeli funkcionisali na
smislen način.
Navedimo sada nekoliko načina na koje možemo kodirati kategoričke prediktore.
Neka prediktor koji posmatramo uzima $k$ mogućih kategorija.
1. label encoding
Ovaj način kodiranja koristimo najčešće kod ordinalnih podataka, kako
bismo očuvali uredjenost medju njima. Ideja je da kategorije kodiramo
rastućim nizom brojeva, obično vrednostima od $0$ do $k-1$ u odgovarajućem smeru:
2. one hot encoding
Ovo kodiranje podrazumeva kreiranje $k$ novih indikatorskih prediktora
za svaku kategoriju, od kojih tačno jedan uzima vrednost 1, a ostali 0.
Češće se koristi kod nominalnih prediktora.
3. dummy encoding
Dummy encoding je tehnika kodiranja slična prethodnoj, s tim što ona
konstruiše jedan prediktor manje. Dakle, jedna kategorija se bira kao
referentna i svakoj od preostalih $k-1$ kategorija se dodeljuje novi
indikatorski prediktor. Prednost dummy encodinga u odnosu na one hot encoding je što dobijamo prediktore koji su linearno nezavisni. Zaista, kod one hot encodinga je zbir svih $k$ kolona jednak koloni koja ima sve jedinice, tj. jednak je slobodnom članu, što predstavlja problem kod npr. linearne i logističke regresije, jer odgovarajuća matrica neće biti invertibilna.
Mana one hot i dummy kodiranja je ta što kada imamo puno kategorija, konstruiše se puno novih prediktora. Postojanje velikog broja prediktora može
negativno da se odrazi na kvalitet modela iz više razloga, što je posledica
tzv. kletve dimenzionalnosti.
Opišimo na primeru linearne regresije kako tada tumačimo parametre
modela. Pretpostavimo da linearnim regresionim modelom pokušavamo da
modelujemo visinu prihoda u zavisnosti od više prediktora, medju kojima
se nalazi i kategorički prediktor koji predstavlja pol zaposlenog. Kako pol
ima dve kategorije, kreiraćemo jedan novi prediktor za, recimo, muški pol.
Parametar $\beta_m$ koji stoji uz taj prediktor nam govori za koliko se visina prihoda
promeni kada je zaposleni muškarac, a vrednosti ostalih prediktora ostanu nepromenjene.
Ostaje nam još da pomenemo da je kao i kod klasifikacije
važno da raspodela kategorija bude ravnomerna, jer model teško prepoznaje
značaj kategorija koje su slabo zastupljene u bazi. U tim situacijama se često
kategorije čija je zastupljenost manja od 5% posmatraju kao jedna.
Definisanje novih kategorija na osnovu postojećih se može koristiti i kada
je broj kategorija jako veliki. Prisustvo velikog broja kategorija od kojih se
svaka pojavljuje svega 2-3 puta u bazi nije dobro za interpretaciju modela,
jer ne postoji dovoljno informacija o svakoj od njih da bi se izveo konkretan
zaključak. Na primer, ako u bazi imamo kolonu u kojoj se nalazi 100 različitih
marki automobila, korisnije je da od njih napravimo novu kolonu koja
predstavlja recimo zemlju ili kontinent porekla autombila.