Kateqorik dəyişənlərin modeldə istifadəsi
Sizinlə ilk müstəqil "Kaggle notebook"-mu bölüşərkən sadəcə ədədi dəyişənlərdən istifadə etmişdim. Çünki onlarla işləmək sadədir. Üzərində heç bir dəyişiklik aparmadan modelə daxil etmək mümkündür.
Lakin ədədi dəyişənlərlə yanaşı kateqorik dəyişənlər də mövcuddur ki, onlar data haqqında bizə kəmiyyətlə ölçülə bilməyən məlumatları göstərir: məsələn, təhsil səviyyəsi, əmək statusu, müştəri məmnuniyyəti, dini və siyasi fikirləri və s.
Bu cür dəyişənlər də ən az ədədi dəyişənlər qədər əhəmiyyətlidir. Lakin modellər yalnızca ədədləri başa düşdükləri üçün kateqorik dəyişənləri "encode" etmək, yəni onları ədədə çevirmək lazım gəlir. Bunun üçün müxtəlif üsullar var: məsələn dəyərlərə 0 və 1 qiyməti vermək, onları ardıcıl tam ədədlərlə ifadə etmək, dəyərlərin təkrarlanma sayına görə qiymət müəyyənləşdirmək kimi. Hansı üsulu istifadə edəcəyimiz isə kateqorik dəyişənin xüsusiyyətlərindən asılıdır.
Kateqorik dəyişənlərin əsas xüsusiyyətlərindəmn biri onların kardinallığıdır. Kardinallıq kateqorik dəyişənin təkrarlanmayan dəyərləri sayıdır. Məsələn, göz rəngini ifadə edən sütunun tərkibində "qara", "qonur", "qəhvəyi", "yaşıl", "mavi", "boz", "qarışıq" rəngləri varsa, deməli, kardinallıq bu dəyərlərin sayına, yəni 7-yə bərabərdir. Kardinallıq anlayışı çoxluqlardan gəlir və bir çoxluğun tərkibindəki elementlərin sayını ifadə edir və təkrarlanan elementləri nəzərə almır. Yəni A = {1, 2, 3} , B = {1, 2, 2, 3, 3, 3} çoxluqları bərabər çoxluqlardır və kardinallıqları da bərabərdir.
Kateqorik dəyişənlər "ikili" ("binary") və "çoxsinifli" ("multiclass") ola bilər. İkili dəyişənlərin kardinallığı 2 olur. Onlara nümunə olaraq cavabı "hə/yox" olan sualları göstərmək olar. Çoxsinifli dəyişənlərin kardinallığı isə 3, və ya daha çox olur.
Əlavə olaraq, kateqorik dəyişənlər ordinal və kardinal ola bilər (buradakı kardinal sözü sizi yanıltmasın). Ordinal dəyişənlərdə dəyərlər arasında ardıcllıq mövcuddur. Məsələn, müştəri məmnuniyyətini göstərən dəyişən "çox pis", "pis", "neytral", "yaxşı", "əla" kimi variantlardan ibarətdir və onlar arasında aşağıdakı ardıcıllıq var:
"çox pis" < "pis" < "neytral" < "yaxşı" < "əla"
Bu cür dəyişənləri ardıcıl ədədlərlə ifadə etmək olar:
"çox pis" = 0
"pis" = 1
"neytral" = 2
"yaxşı" = 3
"əla" = 4
Bu gün isə biz ikili dəyişənləri "encode" etməyi öyrənəcəyik. Özü də sadəcə "pandas" və "numpy" kitabxanalarından isitifadə etməklə.
Qeyd edək ki, ikili dəyişənləri modeldə istifadə etmək üçün "0" və "1"-ə çevirmək lazım gəlir. Bu zaman "0" - "base value" yəni əsas dəyəri ifadə edir. Əgər sütun inkar və təsdiq variantlarından ibarətdirsə, məsələn "hə-yox", "var-yoxdur", "istəyir-istəmir", o zaman inkar variant "0", təsdiq variant "1" kimi götürülür.
Aşağıdakı keçid vasitəsilə model və data emalı prosesini izahlı şəkildə oxuya və tətbiq edə bilərsiniz:
Comments