Source: Det är en viktig teknik som oftast utförs som ett förbehandlingssteg före många modeller för maskininlärning, för att standardisera utbudet av funktioner i indata.
Vissa ML-utvecklare tenderar att standardisera sina data blint före ”varje” modell för maskininlärning utan att anstränga sig för att förstå varför det måste användas, eller till och med om det behövs eller inte. Så målet med det här inlägget är att förklara hur, varför och när man ska standardisera data.
Standardisering
Standardisering kommer in i bilden när funktioner i indatamängden har stora skillnader mellan sina intervall, eller helt enkelt när de mäts i olika måttenheter (t.ex. pund, meter, mil… etc).
Dessa skillnader i intervallet för de ursprungliga funktionerna orsakar problem för många maskininlärningsmodeller. För modeller som bygger på avståndsberäkning gäller till exempel att om en av funktionerna har ett brett värdeintervall kommer avståndet att styras av just denna funktion.
För att illustrera detta med ett exempel: låt oss säga att vi har en tvådimensionell datamängd med två funktioner, Höjd i meter och Vikt i pund, som sträcker sig från Meter respektive Pound. Oavsett vilken avståndsbaserad modell du använder på denna datamängd kommer viktfunktionen att dominera över höjdfunktionen och bidra mer till avståndsberäkningen, bara för att den har större värden än höjdfunktionen. Så för att förhindra detta problem är lösningen att omvandla funktioner till jämförbara skalor med hjälp av standardisering.
Hur man standardiserar data?
Z-score
Z-score är en av de mest populära metoderna för att standardisera data, och kan göras genom att subtrahera medelvärdet och dividera med standardavvikelsen för varje värde av varje funktion.
När standardiseringen är gjord kommer alla funktioner att ha ett medelvärde på noll, en standardavvikelse på ett och därmed samma skala.
Det finns andra standardiseringsmetoder men för enkelhetens skull nöjer jag mig i denna berättelse med Z-score-metoden.
När man ska standardisera data och varför?
Som framgår ovan utförs standardisering för distansbaserade modeller för att förhindra att funktioner med större intervall dominerar distansmåttet. Men anledningen till att vi standardiserar data är inte densamma för alla modeller för maskininlärning och skiljer sig från en modell till en annan.
Så före vilka ML-modeller och metoder måste du standardisera dina data och varför?
1- Före PCA:
I Principal Component Analysis får funktioner med hög varians/breddare intervall mer vikt än de med låg varians, och följaktligen slutar de att på ett oegentligt sätt dominera de första huvudkomponenterna (komponenterna med maximal varians). Jag använde ordet ”illegitimt” här, eftersom anledningen till att dessa egenskaper har höga varianser jämfört med de andra bara är att de mättes i olika skalor.
Standardisering kan förhindra detta genom att ge alla egenskaper samma vikt.
2- Före klusterbildning:
Klusterbildningsmodeller är avståndsbaserade algoritmer, för att mäta likheter mellan observationer och bilda kluster använder de ett avståndsmetriskt mått. Så funktioner med stora avstånd kommer att ha ett större inflytande på klusterbildningen. Därför krävs standardisering innan man bygger en klustermodell.
3- Innan KNN:
k-nästa grannar är en avståndsbaserad klassificerare som klassificerar nya observationer baserat på likhetsmått (t.ex. avståndsmått) med märkta observationer i träningsuppsättningen. Standardisering gör att alla variabler bidrar lika mycket till likhetsmåtten .
4- Före SVM
Support Vector Machine försöker maximera avståndet mellan det separerande planet och stödvektorerna. Om en funktion har mycket stora värden kommer den att dominera över andra funktioner när avståndet beräknas. Så standardisering ger alla funktioner samma inflytande på distansmåttet.
Källa: Arun Manglick: arun-aiml.blogspot.com
5- Innan man mäter variabel betydelse i regressionsmodeller
Du kan mäta variabel betydelse i regressionsanalys, genom att anpassa en regressionsmodell med hjälp av de standardiserade oberoende variablerna och jämföra det absoluta värdet av deras standardiserade koefficienter. Men om de oberoende variablerna inte är standardiserade blir det meningslöst att jämföra deras koefficienter.
6- Innan Lasso- och Ridge-regression
LASSO- och Ridge-regressioner lägger ett straff på storleken av de koefficienter som är kopplade till varje variabel. Och skalan på variablerna påverkar hur mycket straff som läggs på deras koefficienter. Eftersom koefficienter för variabler med stor varians är små och därmed mindre straffade. Därför krävs standardisering innan båda regressionerna anpassas.
Fall då standardisering inte behövs?
Logistisk regression och trädbaserade modeller
Logistisk regression och trädbaserade algoritmer som beslutsträd, slumpmässig skog och gradient boosting är inte känsliga för variablernas storlek. Så standardisering behövs inte innan man anpassar den här typen av modeller.
Avsluta datastandardisering
Som vi såg i det här inlägget beror det på vilken modell du vill använda och vad du vill göra med den, när du ska standardisera och när du inte ska göra det. Så det är mycket viktigt för en ML-utvecklare att förstå hur algoritmer för maskininlärning fungerar internt, för att kunna veta när data ska standardiseras och för att bygga en framgångsrik modell för maskininlärning.
N.B: Listan över modeller och metoder när standardisering krävs, som presenteras i det här inlägget är inte uttömmande.