Az adatelemzés és a gépi tanulás világában az adathalmazok minősége és kiegyensúlyozottsága alapvető fontosságú a megbízható és pontos modellalkotáshoz. Gyakran előfordul azonban, hogy a valós adatok nem egyenletesen oszlanak el a különböző osztályok között. Ezt az állapotot nevezzük kiegyensúlyozatlan adathalmaznak, és komoly kihívásokat jelent a prediktív modellek építése során. Egy ilyen helyzetben, például egy ritka betegség diagnosztizálásakor, ahol a pozitív esetek száma elenyésző a negatívakhoz képest, a hagyományos gépi tanulási algoritmusok hajlamosak a többségi osztályra „optimalizálni”, figyelmen kívül hagyva a kisebbségi osztályt. Ez a jelenség torzított modellekhez vezethet, amelyek kiválóan teljesítenek a többségi osztály előrejelzésében, de kritikusan gyengén a kisebbségi osztály azonosításában, holott éppen ez utóbbi lehet a legfontosabb a probléma szempontjából.
A kiegyensúlyozatlan adathalmazok kezelésére számos technika létezik, amelyek közül a túl- és alulmintavételezés (oversampling és undersampling) a legelterjedtebb és leghatékonyabb módszerek közé tartozik. Ezek a technikák az adathalmaz osztályeloszlásának módosítását célozzák, hogy kiegyensúlyozottabbá tegyék azt, és ezáltal javítsák a gépi tanulási modellek teljesítményét, különösen a kisebbségi osztály predikciós képességét. A cél nem csupán az osztályok arányának kiegyenlítése, hanem az is, hogy a modellek képesek legyenek hatékonyan felismerni a ritka, de kritikus mintázatokat, elkerülve a téves negatív vagy téves pozitív előrejelzéseket, amelyek súlyos következményekkel járhatnak a valós alkalmazásokban.
A kiegyensúlyozatlan adathalmazok problémája nem korlátozódik csupán az orvosi diagnosztikára. Számos más területen is felmerül, mint például a csalásfelderítés (ahol a csalások száma elenyésző az összes tranzakcióhoz képest), a hibaazonosítás a gyártásban (ahol a hibás termékek aránya alacsony), vagy éppen az ügyfél lemorzsolódás (churn) előrejelzése, ahol a lemorzsolódó ügyfelek száma általában jóval kevesebb, mint a hűségeseké. Ezekben az esetekben a kisebbségi osztály helyes azonosítása kulcsfontosságú üzleti vagy társadalmi értékkel bír, így a kiegyensúlyozatlan adatok kezelése nem csupán technikai, hanem stratégiai kérdés is. A megfelelő mintavételezési technika kiválasztása és alkalmazása jelentősen hozzájárulhat a prediktív modellek üzleti értékének maximalizálásához és a valós problémák hatékonyabb megoldásához.
Miért jelentenek problémát a kiegyensúlyozatlan adathalmazok?
A kiegyensúlyozatlan adathalmazok alapvető problémája abban rejlik, hogy a legtöbb gépi tanulási algoritmus feltételezi, hogy az osztályok eloszlása viszonylag egyenletes, vagy legalábbis azonos súllyal kell kezelni őket. Amikor ez a feltételezés sérül, az algoritmusok hajlamosak a nagyobb számú mintával rendelkező osztály, azaz a többségi osztály felé torzítani. Ennek oka, hogy a modell optimalizációs célja általában a teljes pontosság maximalizálása, ami egy kiegyensúlyozatlan adathalmaz esetén könnyen elérhető a többségi osztály szinte kizárólagos előrejelzésével. Ha például egy adathalmaz 95%-ban negatív és 5%-ban pozitív esetekből áll, egy naiv modell egyszerűen minden esetet negatívnak minősíthet, és így is 95%-os pontosságot érhet el. Ez a pontosság azonban teljesen félrevezető, mivel a modell a kisebbségi, kritikus osztályt egyáltalán nem képes felismerni.
A torzítás következtében a modell alulteljesít a kisebbségi osztály felismerésében, ami gyakran a téves negatívok (false negatives) vagy téves pozitívok (false positives) magas számához vezet. Például egy csalásfelderítő rendszer esetében a téves negatívok azt jelentenék, hogy a modell nem ismeri fel a valós csalásokat, ami súlyos pénzügyi veszteségeket okozhat. Egy orvosi diagnosztikai rendszerben a téves negatívok azt jelentenék, hogy egy betegségben szenvedő személyt egészségesnek minősítenek, ami késleltetheti a kezelést és súlyosbíthatja az állapotot. Ezzel szemben a téves pozitívok felesleges beavatkozásokhoz vagy költségekhez vezethetnek, bár gyakran kevésbé kritikusak, mint a téves negatívok.
A kiegyensúlyozatlan adathalmazok legnagyobb veszélye, hogy a modell látszólag jó teljesítményt mutathat (magas pontosság), miközben a valóságban a legfontosabb eseteket – a kisebbségi osztályhoz tartozókat – képtelen felismerni.
A probléma gyökere abban rejlik, hogy az optimalizációs algoritmusok gyakran a hibásan osztályozott minták számát vagy az ebből eredő hibafüggvényt minimalizálják. Kiegyensúlyozatlan adathalmaz esetén a többségi osztályhoz tartozó minták hibás osztályozása sokkal nagyobb hatással van a teljes hibafüggvényre, mint a kisebbségi osztályhoz tartozóké. Ezért az algoritmusok „jutalmazva” érzik magukat, ha a többségi osztályt pontosan ismerik fel, még akkor is, ha ez a kisebbségi osztály teljes ignorálásával jár. Ez a jelenség különösen igaz az olyan algoritmusokra, mint a logisztikus regresszió, a támogató vektor gépek (SVM) vagy a neurális hálók, amelyek a hiba minimalizálására törekednek az egész adathalmazon.
A kiegyensúlyozatlan adathalmazok kezelése tehát nem csupán egy technikai finomhangolás, hanem a modell valós hasznosságának biztosítása szempontjából alapvető lépés. A cél nem a puszta pontosság maximalizálása, hanem olyan modell létrehozása, amely képes megbízhatóan azonosítani mindkét osztályt, különös tekintettel a ritkább, de gyakran fontosabb kisebbségi osztályra. Ehhez szükség van specifikus mintavételezési vagy egyéb kezelési technikák alkalmazására, amelyek a modell fókuszát a kisebbségi osztályra is kiterjesztik, vagy legalábbis kiegyensúlyozottabbá teszik a tanulási folyamatot.
Túl- és alulmintavételezés: az alapkoncepció
A túlmintavételezés (oversampling) és az alulmintavételezés (undersampling) az adathalmaz szintjén beavatkozó technikák, amelyek célja a kiegyensúlyozatlan osztályeloszlás korrigálása. Mindkét módszer az osztályok arányának módosításával igyekszik egyensúlyt teremteni az adatok között, mielőtt azokat a gépi tanulási modell betanítására használnák. A fő különbség a megközelítésben rejlik: a túlmintavételezés a kisebbségi osztály mintáinak növelésével, míg az alulmintavételezés a többségi osztály mintáinak csökkentésével éri el a kívánt hatást.
Túlmintavételezés (oversampling): a kisebbségi osztály megerősítése
A túlmintavételezés során a kisebbségi osztály mintáinak számát növeljük, hogy azok aránya közelebb kerüljön a többségi osztályhoz. Ennek számos módja létezik, a legegyszerűbbtől a komplexebb, szintetikus adatgeneráló algoritmusokig. A fő előnye, hogy nem veszítünk információt az adathalmazból, mivel nem távolítunk el meglévő mintákat. Hátránya lehet, hogy növeli az adathalmaz méretét, ami hosszabb betanítási időt igényelhet, és bizonyos módszerek esetén a modell túltanulásához (overfitting) is vezethet, ha a szintetikus adatok túl közel állnak az eredetiekhez, vagy egyszerűen csak másolatok.
Véletlenszerű túlmintavételezés (random oversampling)
Ez a legegyszerűbb túlmintavételezési technika. Lényege, hogy a kisebbségi osztályhoz tartozó meglévő mintákat véletlenszerűen kiválasztjuk és megismételjük, amíg a kívánt arányt el nem érjük. Ez a módszer könnyen implementálható és gyors, azonban komoly hátrányai is vannak. Mivel egyszerűen másolja a meglévő adatokat, nem ad hozzá új információt az adathalmazhoz, és növelheti a túltanulás kockázatát. A modell hajlamos lehet „megtanulni” a megismételt mintákat, ahelyett, hogy általánosítható mintázatokat fedezne fel, ami gyenge teljesítményhez vezethet új, nem látott adatokon.
SMOTE (Synthetic Minority Over-sampling Technique)
A SMOTE az egyik legnépszerűbb és leghatékonyabb túlmintavételezési algoritmus, amelyet 2002-ben Chawla és munkatársai vezettek be. A véletlenszerű túlmintavételezéssel ellentétben a SMOTE nem egyszerűen másolja a meglévő kisebbségi osztályú mintákat, hanem szintetikus mintákat generál a meglévő minták interpolálásával. Ezáltal új, de reálisnak mondható adatokkal bővíti a kisebbségi osztályt, csökkentve a túltanulás kockázatát és növelve a modell általánosítási képességét.
A SMOTE működési elve a következő:
- Minden egyes kisebbségi osztályú mintához (ún. „mag” ponthoz) megkeresi annak k-legközelebbi szomszédját (k-nearest neighbors – KNN) a kisebbségi osztályon belül.
- Ezután kiválaszt egyet vagy többet ezek közül a szomszédok közül véletlenszerűen.
- A mag pont és a kiválasztott szomszéd pont között egyenes vonalat húz, és ezen a vonalon, véletlenszerűen generál egy új, szintetikus mintát. Ez a folyamat a következő képlettel írható le:
\[ x_{új} = x_{i} + \text{rand}(0,1) \cdot (x_{zi} – x_{i}) \]
Ahol $x_{új}$ az új szintetikus minta, $x_{i}$ a kisebbségi osztályhoz tartozó eredeti minta, $x_{zi}$ pedig az egyik kiválasztott szomszédja. A $\text{rand}(0,1)$ egy 0 és 1 közötti véletlenszámot jelent. - Ezt a folyamatot addig ismétli, amíg a kívánt arányt el nem éri.
A SMOTE előnye, hogy a szintetikus minták a meglévő kisebbségi osztályú adatok „tulajdonságait” tükrözik, miközben elegendő variációt biztosítanak ahhoz, hogy a modell ne tanulja túl az eredeti, korlátozott számú mintát. Ezáltal a döntési határok kevésbé lesznek merevek és jobban általánosíthatók.
A SMOTE variánsai
Bár a SMOTE rendkívül hatékony, vannak bizonyos korlátai, különösen zajos adatok vagy átfedő osztályok esetén. Ezen problémák orvoslására számos SMOTE variánst fejlesztettek ki:
- Borderline-SMOTE: Ez a variáns csak azokat a kisebbségi osztályú mintákat mintavételezi túl, amelyek a döntési határ közelében helyezkednek el, azaz „határesetek”. Két altípusa van: Borderline-SMOTE1 és Borderline-SMOTE2. A célja, hogy a szintetikus minták generálásával ne hozzon létre zajt az adatokban, és a modell jobban tudja elkülöníteni az osztályokat a kritikus területeken.
- ADASYN (Adaptive Synthetic Sampling): Az ADASYN a SMOTE-hoz hasonlóan szintetikus mintákat generál, de adaptív módon. Több szintetikus mintát generál azokhoz a kisebbségi osztályú mintákhoz, amelyek nehezebben osztályozhatók (azaz több többségi osztályú szomszédjuk van). Ez a megközelítés segít a modellnek jobban fókuszálni a „nehéz” mintákra, amelyek a döntési határ közelében vannak.
- Safe-Level SMOTE: Ez a módszer figyelembe veszi az egyes kisebbségi osztályú minták „biztonságos szintjét”, mielőtt szintetikus mintákat generálna. Csak olyan területeken generál szintetikus adatokat, ahol a kisebbségi osztályú minták sűrűn helyezkednek el, elkerülve a zajos vagy átfedő régiókat.
- K-Means SMOTE: Ez a módszer a K-Means klaszterezést használja a kisebbségi osztályú adatok klaszterezésére, majd minden klaszteren belül alkalmazza a SMOTE-ot. Ez segít abban, hogy a generált szintetikus minták jobban illeszkedjenek az adatok természetes klasztereibe, és elkerülje a zajos területeken történő generálást.
- SVMSMOTE: A támogató vektor gépek (SVM) koncepciójára épülve az SVMSMOTE az SVM-et használja a határvonalak azonosítására, és csak a határvonal közelében lévő kisebbségi osztályú mintákra alkalmazza a SMOTE-ot.
Ezek a variánsok mind a SMOTE alapötletére épülnek, de különböző stratégiákat alkalmaznak a szintetikus minták generálására, hogy minimalizálják a zajt, javítsák a modell általánosítási képességét és hatékonyabban kezeljék az osztályok közötti átfedéseket.
Alulmintavételezés (undersampling): a többségi osztály redukálása
Az alulmintavételezés során a többségi osztály mintáinak számát csökkentjük, hogy azok aránya közelebb kerüljön a kisebbségi osztályhoz. Ez a módszer akkor lehet előnyös, ha az adathalmaz rendkívül nagy, és a túlmintavételezés túl sok számítási erőforrást igényelne, vagy ha a túlmintavételezés túltanuláshoz vezetne. Az alulmintavételezés fő hátránya, hogy információvesztéssel járhat, mivel a többségi osztályból származó adatok egy részét egyszerűen elvetjük. Ez potenciálisan fontos mintázatokat is eltávolíthat, ami ronthatja a modell teljesítményét.
Véletlenszerű alulmintavételezés (random undersampling)
Ez a legegyszerűbb alulmintavételezési technika. Lényege, hogy a többségi osztályhoz tartozó mintákat véletlenszerűen kiválasztjuk és eltávolítjuk, amíg a kívánt arányt el nem érjük. Előnye a gyorsaság és az egyszerűség, hátránya azonban, hogy véletlenszerűen távolít el adatokat, ami fontos információ elvesztéséhez vezethet, és a modell teljesítményét ronthatja, ha a véletlenül eltávolított minták kritikusak lettek volna a döntési határok meghatározásában.
Irányított alulmintavételezési technikák
A véletlenszerű alulmintavételezés hátrányainak kiküszöbölésére számos intelligensebb, irányított alulmintavételezési módszert fejlesztettek ki, amelyek megpróbálják minimalizálni az információveszteséget:
- Tomek Links: A Tomek Links olyan mintapárokat azonosít, amelyek különböző osztályokhoz tartoznak, de nagyon közel vannak egymáshoz (azaz egymás legközelebbi szomszédjai). Egy Tomek Linket alkotó pár esetén az egyik pont a többségi osztályból, a másik a kisebbségi osztályból származik. A Tomek Links algoritmus eltávolítja a többségi osztályba tartozó pontot a Tomek Linkből. Ez segít megtisztítani a döntési határt és csökkenteni az osztályok közötti átfedést.
- Edited Nearest Neighbors (ENN): Az ENN algoritmus minden egyes mintához megkeresi annak k-legközelebbi szomszédját. Ha egy minta osztálya eltér a szomszédjai többségének osztályától, akkor azt a mintát eltávolítja az adathalmazból. Ez a módszer a zajos és átfedő mintákat célozza meg, javítva a döntési határok tisztaságát. A többségi osztályra alkalmazva csökkenti a zajt a többségi osztályban, ami segíti a kisebbségi osztály jobb felismerését.
- Condensed Nearest Neighbor (CNN): A CNN célja egy minimális, de reprezentatív adathalmaz létrehozása, amely ugyanolyan pontosan osztályozza az eredeti adatokat, mint a teljes adathalmaz. A CNN egy iteratív folyamat során kiválasztja azokat a többségi osztályú mintákat, amelyek szükségesek a kisebbségi osztályú minták helyes osztályozásához, és a többi többségi osztályú mintát elveti.
- NearMiss: A NearMiss egy családja az alulmintavételezési algoritmusoknak, amelyek a többségi osztályú mintákat úgy választják ki, hogy azok a kisebbségi osztályú mintákhoz a legközelebb esők legyenek. Három fő változata van:
- NearMiss-1: A többségi osztályból azokat a mintákat választja ki, amelyeknek az átlagos távolsága a k-legközelebbi kisebbségi osztályú mintához a legkisebb.
- NearMiss-2: A többségi osztályból azokat a mintákat választja ki, amelyeknek az átlagos távolsága az összes kisebbségi osztályú mintához a legkisebb.
- NearMiss-3: A többségi osztályból azokat a mintákat választja ki, amelyeknek a távolsága a k-legközelebbi kisebbségi osztályú mintához a legnagyobb, miközben a többi többségi osztályú mintához a legközelebb van. Ez a változat a döntési határ mentén elhelyezkedő többségi osztályú mintákat részesíti előnyben.
A NearMiss algoritmusok célja, hogy a többségi osztályból olyan mintákat tartsanak meg, amelyek a legrelevánsabbak a kisebbségi osztálytól való elkülönítés szempontjából.
- One-Sided Selection (OSS): Az OSS a Tomek Links és a CNN kombinációja. Először eltávolítja a zajos és redundáns többségi osztályú mintákat a Tomek Links segítségével, majd a megmaradt adathalmazon alkalmazza a CNN-t a még reprezentatívabb alulmintavételezés érdekében.
- Clustering-based undersampling: Ez a módszer klaszterezési algoritmusokat (pl. K-Means) használ a többségi osztályú adatok klaszterekbe rendezésére. Ezután minden klaszterből véletlenszerűen vagy valamilyen stratégia alapján választ ki reprezentatív mintákat, csökkentve ezzel a többségi osztály méretét, miközben megőrzi annak diverzitását.
Az irányított alulmintavételezési technikák célja, hogy intelligensen válasszák ki a többségi osztályból eltávolítandó mintákat, minimalizálva az információveszteséget és javítva a modell általánosítási képességét, különösen a döntési határ körüli területeken.
Mikor melyik technikát válasszuk? Hibrid megközelítések
A túlmintavételezés és az alulmintavételezés közötti választás számos tényezőtől függ, beleértve az adathalmaz méretét, a kiegyensúlyozatlanság mértékét, a számítási erőforrásokat és a probléma specifikus követelményeit. Nincs „egy méret mindenkire” megoldás, és gyakran a legjobb eredményeket a különböző technikák kombinálásával, azaz hibrid megközelítésekkel érhetjük el.
A túlmintavételezés előnyei és hátrányai:
Előnyök | Hátrányok |
---|---|
Nem jár információveszteséggel. | Növeli az adathalmaz méretét, lassabb betanítás. |
A szintetikus minták diverzitást vihetnek az adatokba. | Túltanuláshoz vezethet, ha a szintetikus minták túl közel vannak. |
Különösen hasznos kis adathalmazok esetén. | Zajos adatok esetén generálhat zajt. |
Az alulmintavételezés előnyei és hátrányai:
Előnyök | Hátrányok |
---|---|
Csökkenti az adathalmaz méretét, gyorsabb betanítás. | Információveszteséggel járhat. |
Különösen hasznos nagy adathalmazok esetén. | A modell kevésbé általánosítható lehet. |
Csökkenti a zajt a többségi osztályban. | Fontos mintázatokat is eltávolíthat. |
Általános iránymutatások a választáshoz:
- Ha az adathalmaz viszonylag kicsi és a kisebbségi osztály mintáinak száma nagyon alacsony, a túlmintavételezés (különösen a SMOTE vagy variánsai) gyakran jobb választás, mivel nem veszítünk el értékes adatokat.
- Ha az adathalmaz rendkívül nagy, és a számítási erőforrások korlátozottak, az alulmintavételezés lehet a praktikusabb megoldás, de fontos a gondos kiválasztás, hogy minimalizáljuk az információveszteséget.
- Ha az osztályok közötti átfedés jelentős, vagy sok a zajos adat, a SMOTE variánsai (pl. Borderline-SMOTE, ADASYN) vagy az irányított alulmintavételezési módszerek (pl. Tomek Links, ENN) jobban teljesíthetnek.
Hibrid megközelítések
A túlmintavételezés és az alulmintavételezés kombinálása gyakran a legrobosztusabb megoldást nyújtja. A hibrid módszerek célja a két megközelítés előnyeinek kihasználása és hátrányainak minimalizálása. A leggyakoribb hibrid stratégiák a következők:
- SMOTE + Tomek Links: Ez a népszerű kombináció először a SMOTE-ot alkalmazza a kisebbségi osztály túlmintavételezésére, majd a Tomek Links algoritmust használja a többségi osztályból származó zajos vagy átfedő minták eltávolítására. A Tomek Links segít megtisztítani a döntési határt azáltal, hogy eltávolítja azokat a többségi osztályú mintákat, amelyek túl közel vannak a kisebbségi osztályú mintákhoz (akár eredeti, akár szintetikus). Ez egy kiegyensúlyozottabb és tisztább adathalmazt eredményez.
- SMOTE + ENN (Edited Nearest Neighbors): Hasonlóan az előzőhöz, ez a kombináció is először SMOTE-ot alkalmaz, majd az ENN-t használja a zajos minták eltávolítására. Az ENN agresszívabb lehet a zaj eltávolításában, mint a Tomek Links, mivel minden olyan mintát eltávolít, amelynek osztálya eltér a szomszédjai többségétől. Ez különösen hasznos lehet, ha az adatok jelentős zajt tartalmaznak.
- Egyéb kombinációk: Számos más hibrid stratégia is létezik, amelyek különböző SMOTE variánsokat (pl. Borderline-SMOTE) kombinálnak különböző alulmintavételezési technikákkal (pl. NearMiss). A választás attól függ, hogy milyen típusú kiegyensúlyozatlansággal és zajjal állunk szemben.
A hibrid megközelítések révén nemcsak kiegyensúlyozottabbá tehetjük az adathalmazt, hanem tisztíthatjuk is a döntési határokat, ami robusztusabb és általánosíthatóbb modellekhez vezet.
A hibrid módszerek alkalmazása során fontos a stratifikált keresztvalidáció használata, amely biztosítja, hogy minden felosztásban (train és test set) megmaradjon az eredeti osztályarány. Ezáltal valósághűbben értékelhető a modell teljesítménye, elkerülve a túlzottan optimista becsléseket.
A modell értékelése kiegyensúlyozatlan adatok esetén

A kiegyensúlyozatlan adathalmazok kezelése során nem elegendő csupán a mintavételezési technikák alkalmazása; a modell teljesítményének értékelését is felül kell vizsgálni. A hagyományos metrikák, mint a puszta pontosság (accuracy), rendkívül félrevezetőek lehetnek kiegyensúlyozatlan adatok esetén, ahogy azt korábban is említettük. Egy 95%-ban negatív osztályból álló adathalmazon egy minden esetet negatívnak jósló modell 95%-os pontosságot érne el, miközben a kisebbségi osztályt egyáltalán nem ismeri fel. Ezért olyan metrikákra van szükség, amelyek jobban tükrözik a modell képességét mindkét osztály, különösen a kisebbségi osztály azonosítására.
Az értékelés alapja a konfúziós mátrix (confusion matrix), amely részletesen bemutatja a modell előrejelzéseit a valós osztályokhoz képest. A konfúziós mátrix négy alapvető elemből áll:
- Valódi pozitív (True Positives, TP): A modell helyesen jósolta meg a pozitív osztályt.
- Valódi negatív (True Negatives, TN): A modell helyesen jósolta meg a negatív osztályt.
- Téves pozitív (False Positives, FP): A modell tévesen jósolta meg a pozitív osztályt (valójában negatív volt).
- Téves negatív (False Negatives, FN): A modell tévesen jósolta meg a negatív osztályt (valójában pozitív volt).
Ezekből az értékekből számos, kiegyensúlyozatlan adatokra jobban alkalmazható metrika származtatható:
Precízió (Precision)
A precízió (más néven pozitív prediktív érték) azt mutatja meg, hogy az összes pozitívnak előrejelzett eset közül hány volt valóban pozitív. Képlete:
\[ \text{Precízió} = \frac{TP}{TP + FP} \]
Magas precízió esetén kevés a téves pozitív, ami például spam szűrőknél fontos, ahol nem akarunk jóindulatú e-maileket spamnek jelölni.
Recall (Sensitivity/Feltárás)
A recall (más néven szenzitivitás vagy feltárás) azt mutatja meg, hogy az összes valóban pozitív eset közül hányat jósolt meg helyesen a modell. Képlete:
\[ \text{Recall} = \frac{TP}{TP + FN} \]
Magas recall esetén kevés a téves negatív, ami például betegségdiagnózis esetén kritikus, ahol nem akarunk beteg embereket egészségesnek minősíteni.
F1-score
Az F1-score a precízió és a recall harmonikus átlaga, és egyetlen mérőszámban igyekszik összefoglalni a modell teljesítményét. Különösen hasznos, ha a precízió és a recall egyensúlyát szeretnénk látni. Képlete:
\[ F1\text{-score} = 2 \cdot \frac{\text{Precízió} \cdot \text{Recall}}{\text{Precízió} + \text{Recall}} \]
Az F1-score akkor magas, ha mind a precízió, mind a recall magas, így kiegyensúlyozottabb képet ad a modell teljesítményéről, mint a puszta pontosság.
ROC AUC (Receiver Operating Characteristic – Area Under the Curve)
A ROC görbe a valódi pozitív arány (TPR = Recall) és a téves pozitív arány (FPR = FP / (FP + TN)) közötti kompromisszumot mutatja a különböző döntési küszöbértékek mellett. Az AUC (Area Under the Curve) érték a ROC görbe alatti területet jelenti, és 0 és 1 közötti értéket vesz fel. Minél közelebb van az AUC értéke 1-hez, annál jobban elkülöníti a modell a pozitív és negatív osztályokat. Az AUC robusztus metrika kiegyensúlyozatlan adatok esetén, mivel nem függ a küszöbérték megválasztásától és a osztályeloszlástól.
PR AUC (Precision-Recall Area Under the Curve)
A PR görbe a precízió és a recall közötti kompromisszumot mutatja a különböző döntési küszöbértékek mellett. A PR AUC érték a PR görbe alatti területet jelenti. Kiegyensúlyozatlan adatok esetén a PR AUC gyakran informatívabb, mint a ROC AUC, különösen akkor, ha a pozitív osztály a kisebbségi osztály. A PR görbe jobban rávilágít a modell azon képességére, hogy a kisebbségi osztályt magas precízió és recall mellett azonosítsa.
G-mean (Geometric Mean)
A G-mean a recall és a specificitás (Specifity = TN / (TN + FP)) geometriai átlaga. A specificitás azt méri, hogy a modell mennyire jól ismeri fel a negatív osztályt. A G-mean célja, hogy minimalizálja a teljesítménybeli különbséget a pozitív és negatív osztályok felismerésében. Képlete:
\[ \text{G-mean} = \sqrt{\text{Recall} \cdot \text{Specificitás}} \]
Magas G-mean érték azt jelenti, hogy a modell mindkét osztályt viszonylag jól felismeri, elkerülve a többségi osztály felé történő torzítást.
A megfelelő értékelési metrikák kiválasztása kulcsfontosságú a kiegyensúlyozatlan adatokkal dolgozó gépi tanulási projektekben. A pontosság helyett a precízió, recall, F1-score, ROC AUC és PR AUC együttes vizsgálata ad reális képet a modell teljesítményéről és hasznosságáról.
Implementációs szempontok és gyakorlati tanácsok
A túl- és alulmintavételezési technikák hatékony alkalmazásához nem elegendő csupán az algoritmusok ismerete; fontos a helyes implementációs stratégia és a gyakorlati szempontok figyelembe vétele is. A rossz alkalmazás könnyen torzított eredményekhez vagy adatszivárgáshoz (data leakage) vezethet, ami érvénytelenítené az egész folyamatot.
Adathalmaz felosztása és keresztvalidáció
A legkritikusabb szempont a helyes adathalmaz felosztás. Soha ne alkalmazzuk a mintavételezési technikákat a teljes adathalmazon, mielőtt felosztanánk azt edző (training) és teszt (test) halmazokra! A mintavételezést mindig csak az edzőhalmazon kell elvégezni. Ha a teszthalmazra is alkalmazzuk, az adatszivárgáshoz vezet, mivel a modell olyan mintákat „lát” a teszthalmazban, amelyek az edzőhalmazból származó szintetikus adatokkal összefüggésben vannak, vagy éppen az edzőhalmazból eltávolított eredeti adatokhoz tartoznak. Ez irreálisan optimista teljesítménybecsléshez vezet.
A stratifikált keresztvalidáció (stratified k-fold cross-validation) használata elengedhetetlen kiegyensúlyozatlan adatok esetén. Ez a módszer biztosítja, hogy minden egyes keresztvalidációs felosztásban (fold) az eredeti osztályarányok megmaradjanak mind az edző-, mind a validációs részhalmazokban. Ezáltal a modell teljesítménye megbízhatóbban becsülhető meg, és elkerülhető, hogy egy adott felosztásban a kisebbségi osztály túl kevés vagy hiányzó mintával rendelkezzen.
Mindig a tréning adathalmazon végezzük a túl- vagy alulmintavételezést, soha ne a teljes adathalmazon vagy a teszthalmazon! Ez alapvető a megbízható modellértékeléshez.
Pipeline integráció
A mintavételezési technikák integrálása egy gépi tanulási pipeline-ba a legbiztonságosabb és legtisztább módja az alkalmazásnak. Egy pipeline lehetővé teszi, hogy a különböző adatfeldolgozási lépéseket (pl. skálázás, feature engineering, mintavételezés, modell betanítás) egyetlen, összefüggő munkafolyamatba foglaljuk. Ez biztosítja, hogy a mintavételezés minden keresztvalidációs iterációban helyesen, csak az edzőhalmazon történjen, elkerülve az adatszivárgást és a kódismétlést.
Például egy Pythonban, scikit-learn és imbalanced-learn könyvtárakkal felépített pipeline így nézhet ki:
from imblearn.over_sampling import SMOTE
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import StratifiedKFold
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
# Létrehozzuk a pipeline-t
pipeline = Pipeline([
('scaler', StandardScaler()), # Adatok skálázása
('smote', SMOTE(random_state=42)), # Túlmintavételezés
('classifier', LogisticRegression(random_state=42)) # Modell
])
# Stratifikált keresztvalidáció
skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
# Modell betanítása és értékelése a pipeline segítségével
# cross_val_score vagy GridSearchCV használatával
Ez a megközelítés garantálja, hogy a SMOTE (vagy bármely más mintavételezési technika) csak az aktuális keresztvalidációs felosztás edző részhalmazán fut le, mielőtt a modell betanulna. A teszthalmaz érintetlen marad az eredeti osztályeloszlásával, így a végső teljesítményértékelés valósághű lesz.
Szoftverkönyvtárak
Pythonban az imbalanced-learn
(gyakran imblearn
néven importálják) könyvtár a de facto standard a kiegyensúlyozatlan adathalmazok kezelésére. Számos túlmintavételezési (pl. SMOTE, ADASYN) és alulmintavételezési (pl. Tomek Links, NearMiss, ENN) algoritmust, valamint hibrid módszereket (pl. SMOTEENN, SMOTETomek) implementál. Az imbalanced-learn
zökkenőmentesen integrálódik a scikit-learn
pipeline-jaival, ami rendkívül megkönnyíti a helyes alkalmazást.
Hyperparaméter-hangolás
A mintavételezési technikáknak is vannak hyperparaméterei (pl. a SMOTE-ban a k_neighbors
, vagy a generálandó minták aránya). Ezeknek a paramétereknek a hangolása is fontos lehet a legjobb eredmények eléréséhez. A GridSearchCV
vagy RandomizedSearchCV
használata pipeline-on belül lehetővé teszi a modell hyperparamétereinek és a mintavételezési technika hyperparamétereinek együttes optimalizálását.
Domain tudás
Bár a mintavételezési technikák hatékonyak, soha nem helyettesíthetik a domain tudást. A probléma megértése, a kisebbségi osztály jelentőségének felmérése, és az esetleges adatszármaztatási hibák felismerése alapvető. Néha a kiegyensúlyozatlanság maga is értékes információt hordozhat, és a „probléma” gyökere az adatgyűjtésben vagy a jelenség természetében rejlik, nem csupán a gépi tanulási algoritmusban.
Például, ha egy csalásfelderítő rendszerben a csalások aránya 0.1%, és a túlmintavételezés után 50%-ra növeljük, a modell sok „hamis” csalást generált adaton tanul. Fontos megérteni, hogy a szintetikus adatok nem a valóságot tükrözik 100%-ban, és a modellnek továbbra is képesnek kell lennie a valós adatokon való teljesítésre. A domain szakértő bevonása segíthet annak eldöntésében, hogy melyik metrika a legfontosabb (pl. a recall vs. precision tradeoff), és melyik mintavételezési technika illeszkedik a legjobban az adott üzleti célhoz.
Alternatív megközelítések a kiegyensúlyozatlan adatok kezelésére
Bár a túl- és alulmintavételezés hatékony eszközök, nem ezek az egyetlen módszerek a kiegyensúlyozatlan adathalmazok kezelésére. Számos alternatív megközelítés létezik, amelyek a modell szintjén vagy a költségfüggvény módosításával próbálják orvosolni a problémát. Ezeket a technikákat gyakran kombinálják a mintavételezési módszerekkel a még jobb eredmények elérése érdekében.
Költségérzékeny tanulás (Cost-Sensitive Learning)
A költségérzékeny tanulás egy olyan megközelítés, amely a különböző típusú hibákhoz (pl. téves pozitív és téves negatív) eltérő súlyokat rendel. Kiegyensúlyozatlan adathalmazok esetén a téves negatívok (amikor a kisebbségi osztályt tévesen negatívnak minősítik) gyakran sokkal nagyobb költséggel járnak, mint a téves pozitívok. A költségérzékeny algoritmusok ezt a „költségmátrixot” építik be az optimalizációs folyamatba, így a modell arra törekszik, hogy minimalizálja a nagyobb költséggel járó hibákat.
Például, ha egy betegség diagnosztizálásánál egy téves negatív (beteg ember egészségesnek minősítése) súlyosabb, mint egy téves pozitív (egészséges ember betegnek minősítése, ami további vizsgálatokat igényel), akkor a téves negatívra nagyobb büntetést szabunk ki a modell betanítása során. Számos gépi tanulási algoritmus, mint például a logisztikus regresszió, a támogató vektor gépek (SVM) vagy a döntési fák, rendelkezik beépített súlyozási lehetőségekkel (pl. class_weight
paraméter a scikit-learnben), amelyek lehetővé teszik a költségérzékeny tanulás implementálását.
Ez a módszer különösen akkor hasznos, ha a különböző hibák valós költségei jól számszerűsíthetők, és nem akarunk szintetikus adatokat generálni, vagy meglévő adatokat elvetni.
Ensemble módszerek kiegyensúlyozatlan adatokhoz
Az ensemble módszerek több modell kombinálásával próbálják javítani az előrejelzési pontosságot és a robusztusságot. Egyes ensemble algoritmusokat kifejezetten a kiegyensúlyozatlan adathalmazok kezelésére fejlesztettek ki, gyakran a mintavételezési technikákkal kombinálva.
- Bagging alapú módszerek (pl. BalancedBaggingClassifier): A Bagging (Bootstrap Aggregating) során több almodellt tanítunk be az eredeti adathalmaz különböző bootstrap mintáin. A kiegyensúlyozatlan adatok esetében a
BalancedBaggingClassifier
azimbalanced-learn
könyvtárban a bootstrap minták generálása előtt véletlenszerű alulmintavételezést vagy túlmintavételezést végez minden egyes almodellhez. Ezáltal minden almodell egy kiegyensúlyozottabb részhalmazon tanul, ami csökkenti a torzítást. - Boosting alapú módszerek (pl. AdaBoost, Gradient Boosting): A Boosting algoritmusok iteratívan építenek fel modelleket, és minden új modell az előző modell hibáira fókuszál. Kiegyensúlyozatlan adatok esetén az AdaBoost például nagyobb súlyt ad a hibásan osztályozott mintáknak (beleértve a kisebbségi osztályt is), ami segíthet a modellnek jobban odafigyelni a nehezen felismerhető mintákra. Léteznek speciális boosting algoritmusok is, mint az
EasyEnsemble
és aBalanceCascade
(mindkettő azimbalanced-learn
-ben található), amelyek többszörös alulmintavételezett adathalmazokon tanítanak be különböző almodelleket, majd azokat kombinálják. - SMOTEBoost: Ez egy hibrid megközelítés, amely a SMOTE-ot és az AdaBoost-ot kombinálja. Minden AdaBoost iterációban a SMOTE-ot alkalmazzák a kisebbségi osztályú minták túlmintavételezésére, mielőtt az almodellt betanítanák. Ez segít a kisebbségi osztály jobb felismerésében, miközben kihasználja a boosting erejét.
Döntési küszöb módosítása (Threshold Moving)
Számos bináris osztályozó modell valószínűséget ad vissza, nem pedig közvetlen osztálycímkét. A standard megközelítés az, hogy ha a valószínűség meghaladja a 0.5-ös küszöbértéket, akkor pozitívnak, egyébként negatívnak minősítjük. Kiegyensúlyozatlan adathalmazok esetén a döntési küszöb módosítása egyszerű, de hatékony módszer lehet a recall és a precízió közötti kompromisszum beállítására.
Ha például a téves negatívok költsége magas (azaz a kisebbségi osztály felismerése kulcsfontosságú), csökkenthetjük a küszöbértéket (pl. 0.3-ra). Ez azt jelenti, hogy a modell több esetet fog pozitívnak minősíteni, növelve a recall-t, de potenciálisan csökkentve a precíziót (több téves pozitív). A küszöbérték optimalizálása a ROC görbe vagy a PR görbe alapján, a kívánt üzleti céloknak megfelelően, gyakran jobb eredményt hozhat, mint a mintavételezés önmagában.
Adatgyűjtés és Feature Engineering
Néha a legjobb megoldás nem a meglévő adatok manipulálása, hanem több adat gyűjtése a kisebbségi osztályról, ha ez lehetséges. Ha az adatgyűjtés nem kivitelezhető, a feature engineering (jellemzőmérnökség) segíthet. Új, informatív jellemzők létrehozása, amelyek jobban elkülönítik a kisebbségi osztályt a többségtől, jelentősen javíthatja a modell teljesítményét anélkül, hogy az adathalmaz méretét vagy arányát megváltoztatnánk. Ez magában foglalhatja az interakciós jellemzők létrehozását, a dimenziócsökkentést vagy a domain-specifikus transzformációkat.
Összességében elmondható, hogy a kiegyensúlyozatlan adathalmazok kezelése nem egyetlen technika alkalmazását jelenti, hanem egy átfogó stratégia kidolgozását, amely magában foglalhatja a mintavételezést, a költségérzékeny tanulást, az ensemble módszereket, a döntési küszöb optimalizálását, és az adatgyűjtési/feature engineering erőfeszítéseket. A legjobb megközelítés mindig az adott probléma, az adatok természete és az üzleti célok alapos elemzésén alapul.
Gyakori hibák és buktatók
A túl- és alulmintavételezés, bár hatékony, számos buktatót rejthet magában, amelyek érvényteleníthetik a modell teljesítményét vagy félrevezető eredményekhez vezethetnek. Az alábbiakban a leggyakoribb hibákat és azok elkerülésének módjait vesszük sorra.
1. Adatszivárgás (Data Leakage)
Ez a leggyakoribb és legveszélyesebb hiba. Akkor fordul elő, ha a mintavételezési technikákat a teljes adathalmazon alkalmazzuk, mielőtt azt felosztanánk edző- és teszthalmazokra. Ennek következtében a teszthalmaz olyan mintákat fog tartalmazni, amelyek „látták” az edzőhalmazból származó információkat (pl. szintetikus minták a kisebbségi osztályból, amelyek az edzőhalmazból származó eredeti minták interpolálásával jöttek létre, vagy a többségi osztályból eltávolított minták, amelyek az edzőhalmazban lévő mintákhoz viszonyítva kerültek kiválasztásra). Ez irreálisan magas teljesítménybecsléshez vezet a teszthalmazon, ami a valóságban nem tartható. A megoldás, ahogy korábban is említettük, a mintavételezés kizárólag az edzőhalmazon való alkalmazása, ideális esetben egy jól felépített gépi tanulási pipeline részeként.
2. Véletlenszerű mintavételezés túlzott használata
A véletlenszerű túlmintavételezés (random oversampling) és a véletlenszerű alulmintavételezés (random undersampling) a legegyszerűbb technikák, de gyakran a legkevésbé hatékonyak. A random oversampling túltanuláshoz vezethet, mivel egyszerűen másolja a meglévő adatokat, nem ad hozzá új információt. A random undersampling jelentős információveszteséggel járhat, mivel véletlenszerűen távolít el adatokat, figyelmen kívül hagyva azok fontosságát vagy elhelyezkedését a döntési határokhoz képest. Bár gyorsak és egyszerűek, érdemes inkább a kifinomultabb, intelligensebb algoritmusokat (SMOTE, ADASYN, Tomek Links, ENN stb.) előnyben részesíteni, amelyek jobban megőrzik az adatstruktúrát vagy szintetikus, de releváns adatokat generálnak.
3. Nem megfelelő értékelési metrikák használata
Ahogy azt részletesen tárgyaltuk, a puszta pontosság (accuracy) félrevezető lehet kiegyensúlyozatlan adathalmazok esetén. Ha kizárólag erre a metrikára hagyatkozunk, könnyen hihetjük, hogy a modell jól teljesít, miközben a kisebbségi osztályt egyáltalán nem ismeri fel. Mindig használjunk olyan metrikákat, mint a precízió, recall, F1-score, ROC AUC vagy PR AUC, amelyek jobban tükrözik a modell képességét a kisebbségi osztály helyes azonosítására és a téves pozitív/negatív hibák kezelésére. A probléma üzleti kontextusának megértése kulcsfontosságú annak eldöntésében, hogy melyik metrika a legfontosabb (pl. a recall vagy a precízió).
4. A zajos adatok figyelmen kívül hagyása
Zajos adatok vagy átfedő osztályok esetén a SMOTE és más túlmintavételezési technikák szintetikus mintákat generálhatnak a zajos régiókban vagy az osztályok közötti átfedési területeken. Ez tovább ronthatja a problémát, és a modell nehezebben tudja majd elkülöníteni az osztályokat. Ilyen esetekben a SMOTE variánsai, mint a Borderline-SMOTE vagy az ADASYN, amelyek a határvonalra vagy a nehezen osztályozható mintákra fókuszálnak, jobb választásnak bizonyulhatnak. Az alulmintavételezési technikák, mint az ENN vagy a Tomek Links, szintén segíthetnek a zaj eltávolításában és a döntési határok tisztításában.
5. A szintetikus adatok túlzott mértékű generálása
Bár a túlmintavételezés célja a kiegyensúlyozatlanság csökkentése, a túlzott mértékű szintetikus adatgenerálás túltanuláshoz vezethet, különösen, ha a generált minták nem elég diverzek. A modell túlságosan alkalmazkodhat a szintetikus adatokhoz, és elveszítheti általánosítási képességét a valós, nem látott adatokon. Fontos az optimális arány megtalálása, és nem feltétlenül kell 1:1 arányra kiegyenlíteni az osztályokat. Kísérletezésre és alapos validációra van szükség a megfelelő arány megtalálásához.
6. A domain tudás hiánya
A technikai megközelítések önmagukban nem elegendőek. A problématerület mélyreható ismerete (domain tudás) elengedhetetlen a sikeres projekt kivitelezéséhez. Meg kell érteni, hogy miért kiegyensúlyozatlan az adathalmaz, milyen következményekkel járnak a különböző típusú hibák, és milyen üzleti célokat szolgál a modell. Például, ha egy csalásfelderítő rendszerről van szó, a téves negatívok (nem felismert csalások) pénzügyi veszteséget jelentenek, mírt a téves pozitívok (hamis riasztások) ügyfélfrusztrációt és üzemeltetési költséget. A domain tudás segít kiválasztani a megfelelő metrikákat, a megfelelő mintavételezési stratégiát és értelmezni az eredményeket.
7. A teljesítmény romlása a többségi osztályon
Bár a cél a kisebbségi osztály teljesítményének javítása, fontos figyelni arra, hogy ez ne történjen meg a többségi osztály teljesítményének drasztikus romlása árán. Különösen az alulmintavételezés esetén, ahol adatokat dobunk el, fennáll a veszélye, hogy a modell elveszíti a többségi osztályra vonatkozó fontos információkat. Az ensemble módszerek és a hibrid megközelítések gyakran segítenek ebben az egyensúly megőrzésében.
Ezen buktatók elkerülése érdekében alapos tervezésre, szigorú validációs protokollokra (stratifikált keresztvalidáció, pipeline-ok), és folyamatos kísérletezésre van szükség. A gépi tanulás iteratív folyamat, és a kiegyensúlyozatlan adatok kezelése különösen nagy odafigyelést igényel.
Fejlett technikák és jövőbeli irányok

A túl- és alulmintavételezés, valamint a költségérzékeny tanulás mellett az adatelemzés terén folyamatosan fejlődnek a kiegyensúlyozatlan adathalmazok kezelésére szolgáló módszerek. Ezek a fejlett technikák gyakran kombinálják a korábbi megközelítéseket, vagy teljesen új paradigmákat vezetnek be.
Ensemble módszerek mélyrehatóbban
Az ensemble módszerek, mint a Bagging és Boosting, már említésre kerültek, de érdemes mélyebben is megvizsgálni a kifejezetten kiegyensúlyozatlan adatokra optimalizált változataikat.
- EasyEnsemble: Ez a módszer (az
imbalanced-learn
könyvtárban is megtalálható) több alulmintavételezett többségi osztályú részhalmazt hoz létre, és mindegyiken betanít egy-egy almodellt. Az alulmintavételezés vé