Tutaq ki, biz Azərbaycanın şimal bölgəsi üzrə diş xəstəliklərinin olub-olmamasına dair 10000 nəfərdən ibarət məlumat dəsti topladıq.Topladığımız nümunə dəstindən qanda yodun az olmasına görə 1000 nəfər diş xəstəliklərinə tutulmuş,yerdə qalan 9000 nəfər isə sağlamdır.Buradan aydın şəkildə görünür ki,topladığımız məlumat dəstində diş xəstəliyi olan insanlarla olmayan insanlar arasında balanssız paylanma vardır.Biz bu məlumat dəstini iki sinifə ayırsaq, bir sinifin digər sinifdən daha çox üstünlük təşkil etdiyi belə məlumat dəstlərinə Balanssız məlumat dəstləri deyilir.
Biz bu topladığımız məlumat dəsti üzərində ML(Machine Studying) modeli qursaq yalnış təxmin etmək (predict) şansımız çox yüksəkdir.Qurduğumuz ML mannequin bizə qeyri dəqiq nəticələr verəcəkdir.ML modelimizin düzgün təxmini üçün əvvəlcə biz datasetimizi düzgün bir şəkildə balanslı bir hala gətirməliyik.Balanssız məlumat dəstlərimizi idarə etmək və balanslaşdırmaq üçün ən məşhur üsullardan biri Yenidən Nümunə Götürməkdir(ReSampling).Yenidən nümunə götürmənin növləri aşağıdakılardır :
- Below-sampling strategies
- Over-sampling strategies
- Mixture of over and under-sampling strategies
- Ensemble strategies
ReSampling növləri 4 kateqoriyaya bölünür.Hər biri ayrı-ayrılıqda geniş mövzuları əhatə edir.Çalışacam bu məqalədə Below-sampling methodology -lar barədə məlumat verim.
Imbalanced-learn python package deal
Below Sampling methodlarına keçməmişdən əvvəl sizlərə pythonun imblearn kitabxanası haqqında qısa məlumat vermək istəyirəm.Imbalanced-learn MİT lisenziyalıdır,açıq mənbəlidir(open supply).Machine Studying kitabxanası olan scikit-learn -ə əsaslanır və balanssız datasetimiz üzərində uyğun metodu seçərək nümunələr üzərində balanslaşdırma apara bilərik.
Biz datamıza Below sampling metodlarını tətbiq etdikdə bizim datamızda olan çoxluq sinifini(majority class) müxtəlif üsullarla azaltmaqla azlıq sinifinə(minority class) bərabərləşdirmək üçün istifadə edilir.Bu proses minority və majority class -lar balanslaşdırılana qədər davam etdirilir.Biz datamıza Below Samplingi tətbiq etmək üçün aşağıdakı metodlardan istifadə edə bilərik:
- Cluster Centroids
- Condensed Nearest Neighbour(CNN)
- Edited Nearest Neighbours(ENN)
- Repeared Edited Nearest Neighbours (RENN)
- AIIKNN
- Occasion Hardness Threshold
- NearMiss
- Neighbourhood Cleansing Rule
- One Sided Choice
- Random Below Sampler
- TomekLinks
Mənfi cəhətləri :
Biz datamıza Below Sampling metodlarını tətbiq edərək information üzərində balanslaşdırılma aparsaq əldə etdiyimiz nümunələrin böyük bir qismini itiririk.Qeyd etsək ki,bu məlumatları toplayan zaman müxtəlif yollardan cə çox vəsaitdən istifadə edilibsə heş kəs bu nümunələrin itkisinə yol vermək istəməz.ML modelimizin düzgün qərar verməməsinə,performansının yüksək olmamasına səbəb ola bilər.Datamızda milyonlarla məlumatımız olduğu halda bu metodlardan istifadə etməyimiz məqsədə uyğun olar.
ClusterCentroids (CCMUT)
ClusterCentroids klasterləşdirmə üsulları ilə mərkəzlərə əsaslanan yeni dəst yaradaraq under-sampling methodunu həyata keçirir.Alqoritm olaraq KMeans-dən istifadə edir.Yəni majority class-da olan nümunələrin klasterlərini KMeans alqoritmasının klaster mərkəzi ilə əvəz etməklə information üzərində balanslaşdırma aparırıq.Yeni yaradılan dəst orijinal nümunələr əvəzinə KMeans methodunun mərkəzləri ilə sintez edilir.Nəticədə bu methodology ilə majority class dəyişdirilir minority class ilə olduğu kimi saxlanılır.Klasterləşdirmə nəzarətsiz öyrənmə( unsupervised studying) yanaşmasıdır.Lakin CCMUT yalnız klaster mərkəzini tapmaq konsepsiyasından istifadə edir.Klasterlər majority class -a support məlumat nöqtələrini əhatə edərək yaradılır.Majority class-ın klaster mərkəzini tapdıqdan sonra klaster mərkəzinə ən uzaq olan klasterə support nümunə ən əhəmiyyətsiz instansiya hesab olunur.Bunun əksi isə ən yaxın klasterə support nümunə isə ən vacib nümunə hesab edilir.Biz aşağıdakı kimi ClusterCentroids-dən istifadə edə bilərik.
CondensedNearestNeighbour(CNN)
CNN metodu vasitəsiylə datasetimizi balanslaşdırarkən qatılaşdırılmış yaxın qonşu qaydasından istifadə edir.CNN ML modelimizin performasında heç bir itki ilə nəticələnməyən nümunələr tolusunun alt çoxluğunu axtarır,həmçinin buna minimal ardıcıl dəstdə deyilir.CNN 1-NN alqoritmindən istifadə edir.Əlimizdəki yığılmış balanssız datasetimizi düzgün təsnif edə bilən nümunələr alt dəsti yaradır.CNN -nin mənfi cəhətlərindən biri odurki nümunələr ilkin olaraq təsadüfi seçilir.Bu da öz növbəsində lazımsız nümunələrin saxlanması ilə nəticələnir.Bu problemi həll etmək üçün CNN Tomek Linksə uyğunlaşdırılaraq nümunələr götürülməlidir.
EditedNearestNeighbours(ENN)
EditedNearestNeighbours below sampling methodunun CNN methodundan fərqi CNN methodunda 1 ən yaxın qonşu(1-KNN) yanaşmasından istifadə edirdisə,ENN -də 3 ən yaxın qonşu(KNN,Ok=3) yanaşmasından istifadə edilir.Bu yanaşma ilk dəfə Dennis Wilson tərəfindən 1972-ci ildə “Redaktə edilmiş məlumatlardan istifadə edərək ən yaxın qonşu qaydalarının asimptopik xasələri” adlı məqaləsində təklif edilmişdir.Biz datamıza ENN -i tətbiq edərək datamızdaki majority class -da olan səhv təsnif edilən nümunələrin silinməsinə və düzgün təsnif edilənlərin qalmasına imkan yaradar.Qısaca ENN aşağıdakı ardıcıllıqla işləyir :
- Balanssız datasetimiz üçün 3 KNN alqoritmindən istifadə edirik
- Hər remark üçün 3 ən yaxın qonşusunu tapırıq
- Seçilən qonşuların razılığı əsasında observation-ları saxlayırıq və ya aradan qaldırırıq
RepeatEditedNearestNeighbours(RENN)
RepeatEditedNearestNeighbours methodu ENN kimi 3 ən yaxın qonşu yanaşmasından istifadə edir(KNN Ok=3).Lakin bu proses RENN-in “max_iter” parametri vasitəsiylə təkrarlanır.Biz bu parametrə müəyyən say daxil edərək prosesi həmin say qədər təkrarlayırıq.RENN aşağıdakı ardıcıllıqla işləyir :
- KNN alqoritmasından istifadə edir
- Hər obsevation üçün 3 ən yaxın qonşunu tapırıq
- Seçilən qonşuların razılığı əsasında observation-ları saxlayırıq və ya aradan qaldırırıq
- Prosesi təkrarlayırıq (Repeat)
RENN methodu ENN methodundan fərqli olaraq daha çox nümunə çıxarır.RENN methodu həmişə eyni sayda qonşu ilə KNN qurur.
AIIKNN
AIIKNN methodunun əsas prinsipi çoxluq təşkil edən majority class -dan qonşu sərhəddinə ən yaxın olan nümunələri çıxarmaqdır.AIIKNN methodunun iş prinsibi aşağıdakı kimidir :
- ENN methodunu təkrarlayaraq prosesə başlamaq
- Başlanğıcda ən yaxın 1 qonşunu taparaq prosesə başlayır
- Seçilən qonşuların razılığı əsasında observation-ları saxlayırıq və ya aradan qaldırırıq
- Hər iterasiyada KNN-ə 1 qonşu əlavə edir
- Qonşuların sayını kontrol edirik
- Ən sonda majority class minority class -la balanslaşdırılır
Bizim bu methoddan istifadə edərək datasetimizdə balanslaşdırma edərkən təyin etdiyimiz maksimum iterasiya yerinə yetdikdən sonra qonşuların sayını saxlayırıq və yaxudda ki, majority class minority class-la balanslaşdırıldıqda proses sonlandırılır.
InstancedHardnessThreshold
Sağdakı şəkildə göründüyü kimi 1-ci şəklimizdə majority və minority classlarımız üst -üstə (overlap) düşmür.Lakin 2-ci şəklimizdə class-lar üstə üstə düşür.Classların üst-üstə düşdüyü yerlər başqa sinifdən nümunələri təkrarladıqda baş verir.Datasetimizdə həm sinif balanssızlığı həmdəki siniflərin üst-üstə düşməsi baş verdikdə təsnifat problemi daha da çətinləşir.Biz bu problemi aradan qaldırmaq üçün InstancedHardnessThreshold metodundan istifadə edəcəyik.İHT sərt nümunələri çıxarmaqla datamızın balanssızlığını azaltmaq üçün ReSampling üsuludur.İHT metodunun aşağıdaki parametrləri mövcuddur :
- Estimator — Datamızda sərt nümunələrimizi(İH) qiymətləndirmək üçün öyrənmə alqoritmasıdır.Standart alqoritm olaraq RandomForest-dən istifadə edirik
- Sampling_strategy — Datamızdan nümunə götürmək üçün seçmə üsuludur
- Cv — Nümunələrimizin sərtliyini qiymətləndirərkən istifadə edəcəyimiz cross validation qatlarının sayıdır
Qısa olaraq deyə bilərik ki, İHT minority class nümunələri ilə üst-üstə düşən əksər sinif nümunələrinin çıxarılması yanaşması ilə kifayət qədər xüsusi nümunə götürmə üsuludur.
NearMiss
NearMiss methodu majority class nümunələrinin minority class nümunələrinə olan məsafəsinə əsaslanaraq nümunələrimizi seçən under-sampling methodudur.Bu methodun 3 versiyası mövcuddur : NearMiss-1, NearMiss-2, NearMiss-3. NearMiss methodunun işləmə prinsipi majority və minority class-ların paylanmasına baxaraq majority class-larımızdan nümunələrimizi təsadüfi silməklə həyata keçirir. Müxtəlif siniflərə support nümunələr bir-birinə çox yaxın olduqda bu methodology daha böyük sinifin məlumat nümunələrini aradan qaldıraraq datatesimizdə olan balanssızlığı tarazlaşdırmağa çalışır.Bu methodology əvvəlcə minority classda olan nümunələrlə majority class-da olan nümunələr arasındakı ən yaxın məsafəni hesablayır.Sonra minority classa ən qısa məsafəyə malik olan majority class-da olan nümunələri silərək balansladırılmanı təmin edir.NearMiss methodunun versiyaları haqqında qısa məlumatı aşağıdakı kimi göstərmək olar :
- NearMiss 1 — Bu versiyada nümunələrimiz böyük paylanma və 3 ən yaxın kiçik paylanma arasında orta minimal məsafəninhesablanması ilə nümunələri balanslaşdırır.
- NearMiss 2 — Nümunələrimiz daha böyük paylanma və ən uzaq 3 kiçik paylanma arasında orta minimal məsafənin hesablanması ilə nümunələri balanslaşdırır.
- NearMiss 3 — Bu versiyada əsasən minority class nümunələri nəzərə alınaraq saxlanılır.Saxlanılan və daha böyük paylanma arasındakı məsafə götürülərək ən böyük məsafə aradan qaldırılır
NeighbourhoodCleaningRule(NCL)
NeighbourhoodCleaningRule qısaca NCL metodu lazımsız məlumatları silmək üçün CNN qaydasını və səs-küylü və qeyri-müəyyən nümunələri silmək üçün ENN qaydasından istifadə edən resampling üsuludur.NCL datasetimizdəki majority və minority class -larda olan nümunələri ilə ayrıca məşğul olur.NCL nümunələri silmək üçün ENN -dən istifadə edir.Təlim dəstimizdə hər bir nümunə üçün 3 ən yaxın qonşunu tapır.Nümunələr majority class -a aiddirsə və onun 3 ən yaxın qonşusu tərəfindən verilən təsnifat seçilmiş nümunənin sinifinin əksidirsə, seçilmiş nümunə silinir.Əgər seçilmiş nümunə minority class-a aiddirsə və onun 3 ən yaxın qonşusu tərəfindən səhv təsnif edilirsə, majority class-a support olan ən yaxın qonşular silinir.NCL metodu One-Sided Choice metoduna çox bənzəyir.İki üsul arasındakı fərq NCL nümunələrin azaldılmasına daha az diqqət edir, bunun əvəzinə nümunələrin təmizlənməsinə fokuslanır. Bu metod ən yaxın 3 qonşu startegiyasından istifadə edərək mənfi lazımsız nümunələri aradan qaldırır.Bundan sonra təyin olunan qonşular vasitəsiylə majority classda olan hər bir müsbət nümunə tapılaraq aradan qaldırılır.
OneSidedSelection
Below Sampling metodu olan OneSidedSelection(OSS) TomekLinks və CNN metodlarını birləşdirən resampling metodlarından biridir.Datasetimizə OSS metodunu tətbiq etdikdə Tomek Hyperlinks nümunə götürmə metodu kimi istifadə edilərək səs-küylü və sərhəddə olan majority class nümunələrini aradan qaldırır.CNN vasitəsiylə qərarlaşdırılmış sərhədddən uzaq olan majority classdan nümunələri çıxarmaq üçün istifadə edilir.OneSidedSelection metodunun işləmə prinsipini qısa olaraq aşağıdakı kimi qeyd etmək olar :
- Datasetimizdəki minority class -da toplanan bütün nümunələrdən yeni bir qrup yaradırıq.
- Sonrakı addım datasetimizdəki majority class-dan təsadüfi seçim(random) əsasında 1 obsevation əlavə edirik.
- Yeni yaratdığımız qrupu 1-KNN ilə practice edirik.
- Qalan majority class -da olan obsevationlar üzrə proqnozlar veririk.
- Verilən proqnozlar sinifə uyğun gəlmirsə nümunələrimizi yenidən yaratdığımız qrupa göndəririk.
- Yaratdığımız yeni qrupda Tomek Linkləri tapırıq və silirik.
RandomUnderSampler
RandomUnderSampling metodu təsadüfi( random) olaraq Datasetimizdəki majority class -da olan nümunələri silərək nümunələri azaldaraq minority qrupa uyğun balanslaşdırır.RandomUnderSampling metodundan istifadə edərkən böyük miqdarda məlumat itkisi baş verir.Bu metodu datasetimizə tətbiq etdikdə minority və majority class-da olan nümunələr arasında qərar sərhəddini öyrənməyi çətinləşdirə bilər və bu ML modeli qurarkən təsnifat problemində itki ilə nəticələnə bilər.Bu metoddan istifadə datasetimizdə ciddi balanssızlıq olmasına baxmayaraq,minority class-ın kifayət qədər nümunələrə malik olduğu halda istifadəsi məqsədə uyğun olar.Qeyd etsək ki,bu məlumatları toplayan zaman müxtəlif yollardan və çox vəsaitdən istifadə edilibsə heç kəs bu nümunələrin itkisinə yol vermək istəməz.Datamızda milyonlarla nümunə məlumatımız olduğu halda bu methoddan istifadə etməyimiz daha məqsədə uyğun olar.
TomekLinks
TomekLinks nədir?
Əgər 2 nümunə ən yaxın qonşudursa və fərqli siniflərdədirlərsə onlar TomekLinksdir.Biz balanssız datasetimizə TomekLinks metodunu tətbiq edərək balanslaşdırma aparmaq istəsək aşağıdakı aradıcıllığı yerinə yetirməliyik :
Datasetimizdə majority və minority classlarda olan nümunələr arasında ən yaxın qonşu olanları tapırıq.
Məsəlçün :
Majority classımızda olan 1 nümunəmizi “a” ilə işarələyək, minority classımızda olan 1 nümunəni isə “b” ilə işarələyək.Datasetimizə bu metodu tətbiq etmək üçün “a”-nın ən yaxın qonşusu “b” olmalıdır və yaxuddakı bunun əksi baş verməlidir. Bu 2 remark ayrı -ayrı siniflərə support olmalıdırlar.(minority və majority) Bu üsulla minority class nümunələri ilə majority class nümunələri arasında ən yaxın qonşu olan majority class observationları seçilib silinərək balanslaşdırma prosesini yerinə yetiririk.
Beləliklə Imbalanced Dataset problemlərinin həlli üçün 11 Below Sampling metodu barədə ətraflı məlumat verməyə çalışdım.Ümid edirəm oxuyanlar və bu sahədə çalışanlar üçün yararlı olar.Növbəti məqalələrdə görüşənədək.