Source:
Néhány ML-fejlesztő hajlamos vakon szabványosítani az adatait “minden” Machine Learning modell előtt, anélkül, hogy venné a fáradságot, hogy megértse, miért kell használni, vagy egyáltalán, hogy szükség van-e rá vagy sem. Ezért ennek a bejegyzésnek az a célja, hogy elmagyarázza, hogyan, miért és mikor kell az adatokat szabványosítani.
Szabványosítás
A szabványosítás akkor kerül képbe, amikor a bemeneti adathalmaz jellemzőinek tartományai között nagy különbségek vannak, vagy egyszerűen akkor, amikor különböző mértékegységekben mérik őket (pl. font, méter, mérföld … stb.).
A kezdeti jellemzők tartományainak ilyen eltérései sok gépi tanulási modellnek okoznak gondot. Például a távolságszámításon alapuló modellek esetében, ha az egyik jellemzőnek széles értéktartománya van, akkor a távolságot ez a bizonyos jellemző fogja szabályozni.
Egy példával szemléltetve ezt : mondjuk, hogy van egy kétdimenziós adathalmazunk két jellemzővel, a magasság méterben és a súly fontban, amelyek tartománya méter, illetve font. Bármilyen távolság alapú modellt is hajtunk végre ezen az adathalmazon, a Súly jellemző dominálni fog a Magasság jellemzővel szemben, és nagyobb mértékben fog hozzájárulni a távolságszámításhoz, egyszerűen azért, mert nagyobb értékekkel rendelkezik a Magassághoz képest. Ennek a problémának a megelőzésére tehát a jellemzőket szabványosítással összehasonlítható skálákra transzformálni a megoldás.
Hogyan lehet az adatokat szabványosítani?
Z-score
A Z-score az egyik legnépszerűbb módszer az adatok szabványosítására, és az egyes jellemzők egyes értékeinek átlagának kivonásával és a szórással való osztásával végezhető el.
Miután a standardizálás megtörtént, az összes jellemző átlaga nulla, szórása egy, és így azonos skála lesz.
Léteznek más standardizálási módszerek is, de az egyszerűség kedvéért ebben a történetben megelégszem a Z-score módszerrel.
Mikor és miért kell standardizálni az adatokat?
Amint fentebb láttuk, a távolság alapú modellek esetében a standardizálást azért végezzük, hogy megakadályozzuk, hogy a szélesebb tartományú jellemzők domináljanak a távolságmetrikában. De az ok, amiért standardizáljuk az adatokat, nem ugyanaz minden gépi tanulási modell esetében, és modellenként eltérő.
Mely ML-modellek és módszerek előtt kell tehát standardizálni az adatokat, és miért?
1- PCA előtt:
A főkomponens-elemzésben a nagy szórású/széles tartományú jellemzők nagyobb súlyt kapnak, mint az alacsony szórásúak, és ennek következtében végül törvénytelenül dominálják az első főkomponenseket (a legnagyobb szórású komponenseket). Azért használtam itt a “törvénytelenül” szót, mert ezeknek a jellemzőknek a többihez képest azért van nagy varianciájuk, mert különböző skálákon mértük őket.
A szabványosítással ezt meg lehet akadályozni, ha minden jellemzőnek azonos súlyt adunk.
2- Klaszterezés előtt:
A klaszterezési modellek távolság alapú algoritmusok, a megfigyelések közötti hasonlóságok mérésére és a klaszterek kialakítására távolságmérőt használnak. Így a nagy távolságokkal rendelkező jellemzők nagyobb hatással lesznek a klaszterezésre. Ezért a klaszterezési modell felépítése előtt szabványosításra van szükség.
3- KNN előtt:
– A KNN:
k legközelebbi szomszédok egy távolságalapú osztályozó, amely az új megfigyeléseket hasonlósági mértékek (pl. távolsági metrika) alapján osztályozza a képzési halmaz címkézett megfigyeléseivel. A szabványosítás révén minden változó egyformán járul hozzá a hasonlósági mértékekhez .
4- Mielőtt SVM
A támogató vektor gép megpróbálja maximalizálni a távolságot az elválasztó sík és a támogató vektorok között. Ha egy jellemzőnek nagyon nagy értékei vannak, akkor a távolság kiszámításakor dominálni fog a többi jellemzővel szemben. A szabványosítás tehát minden jellemzőnek ugyanolyan befolyást biztosít a távolságmetrikára.
Forrás: Vektorvektor Vektorok Vektorai: Arun Manglick: arun-aiml.blogspot.com
5- A változók fontosságának mérése előtt a regressziós modellekben
A változók fontosságát a regresszióelemzésben úgy mérheti, hogy a standardizált független változókkal regressziós modellt illeszt, és összehasonlítja a standardizált együtthatók abszolút értékét. Ha azonban a független változók nem standardizáltak, az együtthatóik összehasonlítása értelmetlenné válik.
6- A Lasso- és Ridge-regresszió előtt
A LASSO- és Ridge-regresszió büntetést alkalmaz az egyes változókhoz tartozó együtthatók nagyságára. A változók skálája pedig befolyásolja, hogy mekkora büntetést alkalmaznak az együtthatóikra. Mivel a nagy varianciájú változók együtthatói kicsik, ezért kevésbé büntetik őket. Ezért mindkét regresszió illesztése előtt standardizálásra van szükség.
Azok az esetek, amikor nincs szükség standardizálásra?
Logisztikus regresszió és fa alapú modellek
A logisztikus regresszió és a fa alapú algoritmusok, mint például a Decision Tree, a Random Forest és a gradient boosting, nem érzékenyek a változók nagyságára. Így az ilyen típusú modellek illesztése előtt nincs szükség szabványosításra.
Az adatok szabványosításának lezárása
Amint ebben a bejegyzésben láttuk, az, hogy mikor kell szabványosítani és mikor nem, attól függ, hogy milyen modellt akarunk használni, és mit akarunk vele csinálni. Ezért nagyon fontos, hogy egy ML-fejlesztő megértse a gépi tanulási algoritmusok belső működését, hogy tudja, mikor kell szabványosítani az adatokat, és sikeres gépi tanulási modellt tudjon építeni.
N.B.: Az ebben a bejegyzésben bemutatott lista a modellekről és módszerekről, amikor szabványosításra van szükség, nem teljes körű.