Label Encoding ilə One-Hot Encoding(və ya Creating Dummies) arasındakı fərq? Hansını nə vaxt tətbiq etməli?

Senan Mehdiyev
2 min readJun 20, 2022

--

Gəlin, izaha belə başlayaq. Bilirik ki, modelling(modelləşdirmə) prosesindən əvvəl mütləq şəkildə pre-processing(ön-proses, ön-işləm) olmalıdır ki, datanı mümkün ən yaxşı performans ala biləcəyimiz hala gətirək. Pre-processing mərhələsində üzləşə biləcəyimiz bir hal var. O Categorical(tekst, mətn) data-nı Numeric(ədədi, riyazi, ədədlərlə ifadə olunmuş) formaya salmaqdır. Önəmi ondadır ki, riyazi model(sade desək kompyuter beyni) yalnız ədədləri başa düşə bilir.

Aha! İndi gələk Label Encoding ilə One-Hot Encoding(və ya Creating Dummies) arasındakı fərqə və onların təqbiqinə! Statistikadan da xatırladığımız kimi Categorical data-nı iki qrupa bölə bilərik, Nominal(sırasız) və Ordinal(Sıralı). Misal kimi Nominal-a “Gender”, “Hair color”, “Country”, Ordinal-a isə “Position(Junior, Middle, Senior)”, “Education(BS, MS, Phd)”, “Satisfaction level —(Məmnuniyyət dərəcəsi)(Bad, Average, Good, Excellent)” və b. vermək olar. Nümunələrdən də göründüyü kimi Ordinal-da value(dəyər)-ların sıralaması, dərəcəsi var, amma Nominal-da yoxdur və normal şərtdə etmək mümkün deyil!

Əgər datamız Ordinal-dırsa və Unique values(fərqli dəyər sayı) çoxdursa Label Encoding —( bu sayədə həm də çoxlu sayda feature yaranmasının qarşını ala, yaddaşa qənaət edə ve model complexity(modelin mürəkkəbliyi)-ni artırmamağa kömək edecek), əksinə data Nominal və Unique values azdırsa One-Hot Encoding(və ya Creating Dummies) tətbiq edilməlidir!

Bele bir dataset yaradaq
Dataset
Label Encoding-in tətbiqi
Label Encoding
One-Hot Encoding-in tətbiqi
One-Hot Encoding

Dummy feature-ları həm də “ pd.get_dummies() ” istifadə edərək yarada bilərik, üstəlik tətbiqi daha rahat olub mühüm parametrlərdən istifadəni təmin edir. Məsələn; “drop_first” parametri, onun vasitəsilə ilk dummy feature-ı silərək toplam dummy feature sayını bir vahid azalda bilirik. Bir vahid azaldılma səbəbi isə birbaşa “Degrees of Freedom”-la bağlıdır, nəticədə isə “Multicollinearity”-nin qarşısını alır. Bu barədə ətraflı başqa məqalədə danışacağam, izləmədə qalın! :)

get_dummies()-in tətbiqi
Creating Dummies

Məqaləni bəyəndinizsə və ya hər hansı fikriniz varsa postu bəyənməyiniz və rəy bildirməyinizdən məmnun olarıq. Təşəkkürlər!

--

--

Senan Mehdiyev

Self-motivated, ambitious to work, research, and develop in Data Science/ML/DL, have communicative skills, highly inspired to run with a competitive team