Mikor és miért érdemes szabványosítani az adatokat?

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ű.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.