Sommige ML-ontwikkelaars hebben de neiging om hun gegevens blindelings te standaardiseren vóór “elk” Machine Learning-model, zonder de moeite te nemen om te begrijpen waarom het moet worden gebruikt, of zelfs of het nodig is of niet. Dus het doel van deze post is om uit te leggen hoe, waarom en wanneer je data moet standaardiseren.
- Standardization
- Hoe gegevens te standaardiseren?
- Z-score
- Wanneer gegevens standaardiseren en waarom?
- 1- Vóór PCA:
- 2- Vóór Clustering:
- 3- Vóór KNN:
- 4- Before SVM
- 5- Voordat u het belang van variabelen in regressiemodellen meet
- 6- Vóór Lasso en Ridge Regressie
- Gevallen waarin standaardisatie niet nodig is?
- Logistische regressie- en boommodellen
- Insluiten van gegevensstandaardisatie
Standardization
Standardization komt in beeld wanneer features van input data set grote verschillen hebben tussen hun bereiken, of gewoon wanneer ze worden gemeten in verschillende meeteenheden (bijv., Pounds, Meters, Miles … etc).
Deze verschillen in de bereiken van initiële features veroorzaakt problemen met veel machine learning modellen. Voor de modellen die op afstandsberekening zijn gebaseerd, geldt bijvoorbeeld dat als een van de kenmerken een groot waardenbereik heeft, de afstand door dit kenmerk zal worden bepaald.
Om dit met een voorbeeld te illustreren: stel dat we een tweedimensionale gegevensreeks hebben met twee kenmerken, lengte in meters en gewicht in ponden, die respectievelijk variëren van meters en ponden. Welk afstandsgebaseerd model je ook uitvoert op deze gegevensverzameling, het Gewicht-kenmerk zal domineren over het Hoogte-kenmerk en zal meer bijdragen tot de afstandsberekening, gewoon omdat het grotere waarden heeft in vergelijking met de Lengte. Dus, om dit probleem te voorkomen, is het transformeren van kenmerken naar vergelijkbare schalen met behulp van standaardisatie de oplossing.
Hoe gegevens te standaardiseren?
Z-score
Z-score is een van de meest populaire methoden om gegevens te standaardiseren, en kan worden gedaan door het gemiddelde af te trekken en te delen door de standaardafwijking voor elke waarde van elk kenmerk.
Als de standaardisatie eenmaal is uitgevoerd, hebben alle kenmerken een gemiddelde van nul, een standaardafwijking van één, en dus dezelfde schaal.
Er bestaan andere standaardisatiemethoden, maar omwille van de eenvoud neem ik in dit verhaal genoegen met de Z-score-methode.
Wanneer gegevens standaardiseren en waarom?
Zoals hierboven gezien, wordt bij op afstand gebaseerde modellen standaardisatie toegepast om te voorkomen dat kenmerken met een groter bereik de afstandsmetriek gaan domineren. Maar de reden waarom we gegevens standaardiseren is niet dezelfde voor alle machine learning-modellen, en verschilt van model tot model.
Voor welke ML-modellen en -methoden moet je je gegevens dus standaardiseren en waarom?
1- Vóór PCA:
In Principal Component Analysis krijgen kenmerken met een hoge variantie/breed bereik meer gewicht dan die met een lage variantie, en bijgevolg domineren ze uiteindelijk op onwettige wijze de eerste hoofdcomponenten (Componenten met maximale variantie). Ik gebruik hier het woord “onrechtmatig”, omdat de reden waarom deze kenmerken een hoge variantie hebben in vergelijking met de andere gewoon is dat ze op verschillende schalen zijn gemeten.
Standaardisatie kan dit voorkomen door alle kenmerken hetzelfde gewicht te geven.
2- Vóór Clustering:
Clustering-modellen zijn op afstand gebaseerde algoritmen, om de overeenkomsten tussen waarnemingen te meten en clusters te vormen, gebruiken ze een afstandsmetriek. Dus, kenmerken met een hoog bereik zullen een grotere invloed hebben op de clustering. Daarom is standaardisatie vereist voordat een clustermodel wordt gebouwd.
3- Vóór KNN:
k-nearest neighbors is een op afstand gebaseerde classificeerder die nieuwe waarnemingen classificeert op basis van overeenkomsten (b.v. afstandsmetrieken) met gelabelde waarnemingen van de trainingsset. Standaardisatie zorgt ervoor dat alle variabelen gelijkelijk bijdragen aan de similariteitsmetingen.
4- Before SVM
Support Vector Machine probeert de afstand tussen het scheidingsvlak en de support vectoren te maximaliseren. Als één kenmerk zeer grote waarden heeft, zal het domineren over andere kenmerken bij het berekenen van de afstand. Dus standaardisatie geeft alle kenmerken dezelfde invloed op de afstandsmetriek.
5- Voordat u het belang van variabelen in regressiemodellen meet
U kunt het belang van variabelen in regressieanalyses meten door een regressiemodel te passen met de gestandaardiseerde onafhankelijke variabelen en de absolute waarde van hun gestandaardiseerde coëfficiënten te vergelijken. Maar als de onafhankelijke variabelen niet gestandaardiseerd zijn, wordt het vergelijken van hun coëfficiënten zinloos.
6- Vóór Lasso en Ridge Regressie
LASSO en Ridge regressies leggen een straf op de grootte van de coëfficiënten die aan elke variabele zijn gekoppeld. En de schaal van variabelen beïnvloedt hoeveel straf op hun coëfficiënten zal worden toegepast. Want coëfficiënten van variabelen met een grote variantie zijn klein en worden dus minder afgestraft. Daarom is standaardisatie vereist alvorens beide regressies te fitten.
Gevallen waarin standaardisatie niet nodig is?
Logistische regressie- en boommodellen
Logistische regressie- en boomalgoritmen zoals Beslisboom, Random forest en gradient boosting, zijn niet gevoelig voor de grootte van variabelen. Standaardisatie is dus niet nodig voordat dit soort modellen wordt toegepast.
Insluiten van gegevensstandaardisatie
Zoals we in dit bericht hebben gezien, hangt het af van het model dat u wilt gebruiken en wat u ermee wilt doen, wanneer u wel en wanneer u niet moet standaardiseren. Het is dus erg belangrijk voor een ML-ontwikkelaar om de interne werking van machine learning-algoritmen te begrijpen, om te kunnen weten wanneer gegevens moeten worden gestandaardiseerd en om een succesvol machine learning-model te bouwen.
N.B: De lijst van modellen en methoden wanneer standaardisatie vereist is, gepresenteerd in deze post, is niet uitputtend.