Maskininlärning
I den verkliga världen, är data inte så rena som de ofta antas vara. Det är där all datautvinning och datahantering kommer in; för att skapa insikter ur data som har strukturerats med hjälp av frågor, och som nu förmodligen innehåller vissa saknade värden och uppvisar möjliga mönster som är osynliga för blotta ögat. Det är där maskininlärning kommer in: Att leta efter mönster och använda dessa mönster för att förutsäga resultat med hjälp av dessa nyss förstådda förhållanden i uppgifterna.
För att förstå algoritmens djup måste man läsa igenom variablerna i uppgifterna och vad dessa variabler representerar. Att förstå detta är viktigt eftersom man måste bevisa sina utfall, baserat på sin förståelse av data. Om dina data innehåller fem eller till och med femtio variabler, låt oss säga att du kan gå igenom dem alla. Men vad händer om den innehåller 200 variabler? Du har inte tid att gå igenom varje variabel. Dessutom fungerar olika algoritmer inte med kategoriska data, så du måste omvandla alla kategoriska kolumner till kvantitativa variabler (de ser kvantitativa ut, men mätvärdena motiverar att de är kategoriska) för att kunna föra in dem i modellen. Detta ökar alltså antalet variabler i dina data, och nu hänger du runt med 500 variabler. Hur hanterar du dem? Du kanske tror att dimensionalitetsreducering är svaret på en gång. Algoritmer för dimensionalitetsreducering minskar dimensionerna, men tolkningsbarheten är inte så bra. Vad händer om jag berättar att det finns andra tekniker som kan eliminera funktioner och det fortfarande är lätt att förstå och tolka de behållna funktionerna?
Beroende på om analysen är regressions- eller klassificeringsbaserad kan teknikerna för val av funktioner skilja sig åt/variera, men den allmänna idén om hur den ska genomföras är densamma.
Här är några tekniker för val av funktioner för att hantera denna fråga:
Variabler som är starkt korrelerade med varandra ger samma information till modellen, och därför blir det onödigt att inkludera dem alla i vår analys. Till exempel: Om ett dataset innehåller en funktion som heter “Browsing Time” och en annan som heter “Data Used while Browsing”, kan man föreställa sig att dessa två variabler kommer att vara korrelerade i viss utsträckning, och vi skulle se denna höga korrelation även om vi tar ett opartiskt urval av data. I ett sådant fall behöver endast en av dessa variabler finnas med som prediktor i modellen, för om vi använder båda variablerna kommer modellen att överanpassas och bli snedvriden mot den eller de särskilda funktionerna.
P-Values
I algoritmer som linjär regression, är en inledande statistisk modell alltid en bra idé, eftersom den hjälper till att visualisera betydelsen av funktionerna med hjälp av de P-värden som erhållits med hjälp av den modellen. När vi fastställer en signifikansnivå kontrollerar vi de erhållna P-värdena, och om detta värde är mindre än signifikansnivån visar det att funktionen är signifikant, dvs. att en förändring av detta värde sannolikt kommer att visa en förändring av värdet på målet.
Förhandsval
Förhandsval är en teknik som innebär att man använder sig av stegvis regression. Modellen börjar alltså byggas från noll, dvs. en tom modell, och sedan läggs det för varje iteration till en variabel så att det sker en förbättring av den modell som byggs. Vilken variabel som läggs till i varje iteration bestäms med hjälp av dess betydelse, och den kan beräknas med hjälp av olika mått, där ett vanligt mått är det P-värde som erhålls från en första statistisk modell som byggs upp med alla variabler. Ibland kan Forward Selection orsaka en överanpassning eftersom den kan lägga till starkt korrelerade variabler till modellen, även om de ger samma data till modellen (men modellen visar en förbättring).
Backward Elimination
Backward Elimination innebär också ett stegvis urval av funktioner, på ett sätt som är motsatt till Forward Selection. I det här fallet börjar den ursprungliga modellen med alla oberoende variabler, och en efter en elimineras dessa variabler (en per iteration) om de inte ger något värde till den nybildade regressionsmodellen i varje iteration. Detta är återigen baserat på de P-värden som erhålls med hjälp av den ursprungliga statistiska modellen, och baserat på dessa P-värden elimineras funktionerna från modellen. Även med denna metod finns det en osäkerhet när det gäller avlägsnandet av starkt korrelerade variabler.
Recursive Feature Elimination (RFE)
RFE är en allmänt använd teknik/algoritm för att välja ut ett exakt antal signifikanta funktioner, Ibland för att förklara ett visst antal “viktigaste” funktioner som påverkar verksamheten, och ibland som en metod för att reducera ett mycket stort antal funktioner (säg runt 200-400) till endast de som har en liten påverkan på modellen, och eliminera resten. RFE använder ett rangbaserat system för att visa rangordningen av funktionerna i datamängden, och dessa rangordningar används för att eliminera funktionerna i en rekursiv slinga, baserat på den kollinearitet som finns mellan dem, och naturligtvis på deras betydelse för modellen. Förutom att rangordna funktionerna kan RFE visa om dessa funktioner är viktiga eller inte, även för det valda antalet funktioner (eftersom det är mycket möjligt att det valda antalet, som vi valt, inte representerar det optimala antalet viktiga funktioner, och att det optimala antalet funktioner kan vara mer eller mindre än det antal som användaren valt).
Kartläggningen av funktionsbetydelsen
När vi talar om tolkningsbarheten hos algoritmer för maskininlärning, brukar vi diskutera linjär regression (eftersom vi kan analysera funktionernas betydelse med hjälp av P-värdena) och beslutsträd (som praktiskt taget visar funktionernas betydelse i form av ett träd), som också visar hierarkin av betydelse), men å andra sidan använder vi ofta diagrammet över variabel betydelse för att visa variablerna och deras betydelse i algoritmer som Random Forest Classifier, Light Gradient Boosting Machine och XG Boost. Detta är särskilt användbart när välstrukturerad betydelse av funktioner behöver presenteras för en verksamhet som analyseras.
Regularisering
Regularisering görs för att övervaka kompromissen mellan bias och varians. Bias talar om hur mycket modellen har överanpassats på träningsdatamängden. Variansen talar om hur olika förutsägelser som gjorts på tränings- och testdatamängderna har varit. I idealfallet måste både bias och varians minskas. Regularisering kommer att rädda dagen här! Det finns huvudsakligen två typer av regleringstekniker:
L1 Reglering – Lasso: Lasso bestraffar modellens betakoefficienter för att ändra deras betydelse i modellen och kan till och med göra dem mindre viktiga (omvandla dem till nollor, dvs. i princip ta bort dessa variabler från den slutliga modellen). I allmänhet används Lasso när du observerar att ditt dataset har ett stort antal variabler och du behöver ta bort några av dem för att få en bättre förståelse för hur de viktiga funktionerna påverkar din modell (dvs. de funktioner som slutligen väljs ut av Lasso och deras betydelse tilldelas).
L2 Regularisering – Ridge: Ridge har till uppgift att bibehålla alla variabler, dvs. använda alla variabler för att bygga upp modellen, och samtidigt tilldela dem betydelse så att modellens prestanda förbättras. Ridge är ett utmärkt val när antalet variabler i datamängden är lågt, och därför krävs alla dessa variabler för att tolka de insikter och förutspådda målresultat som erhållits.
Då Ridge behåller alla variabler intakta och Lasso gör ett bättre jobb när det gäller att tilldela variablerna betydelse, utvecklades en kombination av båda, känd som Elastic-Net, som ett sätt att utveckla en algoritm, genom att kombinera de bästa egenskaperna hos Ridge och Lasso. Elastic-Net blir det idealiska valet på det sättet.