Funktionsval inom maskininlärning

Hej Habr!

Vi på Reksoft översatte artikeln till ryska Funktionsval i maskininlärning. Vi hoppas att det kommer att vara användbart för alla som är intresserade av ämnet.

I den verkliga världen är data inte alltid så ren som företagskunder ibland tror. Det är därför som datautvinning och datatvist efterfrågas. Det hjälper till att identifiera saknade värden och mönster i frågestrukturerad data som människor inte kan identifiera. För att hitta och använda dessa mönster för att förutsäga resultat med hjälp av upptäckta samband i data, är maskininlärning praktiskt.

För att förstå någon algoritm måste du titta på alla variabler i datan och ta reda på vad dessa variabler representerar. Detta är avgörande eftersom logiken bakom resultaten är baserad på att förstå data. Om data innehåller 5 eller till och med 50 variabler kan du undersöka dem alla. Tänk om det finns 200 av dem? Då kommer det helt enkelt inte att finnas tillräckligt med tid för att studera varenda variabel. Dessutom fungerar vissa algoritmer inte för kategoriska data, och då måste du konvertera alla kategoriska kolumner till kvantitativa variabler (de kan se kvantitativa ut, men måtten visar att de är kategoriska) för att lägga till dem i modellen. Alltså ökar antalet variabler och det finns cirka 500. Vad ska man göra nu? Man skulle kunna tro att svaret skulle vara att minska dimensionaliteten. Algoritmer för dimensionsreduktion minskar antalet parametrar men har en negativ inverkan på tolkningsbarheten. Tänk om det finns andra tekniker som eliminerar funktioner och samtidigt gör de återstående lätta att förstå och tolka?

Beroende på om analysen är baserad på regression eller klassificering kan funktionsvalsalgoritmerna skilja sig, men huvudidén med deras implementering förblir densamma.

Mycket korrelerade variabler

Variabler som är starkt korrelerade med varandra ger samma information till modellen, så det finns ingen anledning att använda dem alla för analys. Till exempel, om en datauppsättning innehåller funktionerna "Online Time" och "Traffic Used", kan vi anta att de kommer att vara något korrelerade, och vi kommer att se en stark korrelation även om vi väljer ett opartiskt dataprov. I det här fallet behövs bara en av dessa variabler i modellen. Om du använder båda kommer modellen att vara övermonterad och partisk mot en viss funktion.

P-värden

I algoritmer som linjär regression är en initial statistisk modell alltid en bra idé. Det hjälper till att visa vikten av funktionerna genom deras p-värden som erhölls av denna modell. Efter att ha ställt in signifikansnivån kontrollerar vi de resulterande p-värdena, och om något värde ligger under den specificerade signifikansnivån, förklaras denna funktion signifikant, det vill säga en förändring i dess värde kommer sannolikt att leda till en förändring av värdet på målet.

Direkt urval

Framåtval är en teknik som innebär att man tillämpar stegvis regression. Modellbyggandet börjar med en fullständig nolla, det vill säga en tom modell, och sedan lägger varje iteration till en variabel som gör en förbättring av modellen som byggs. Vilken variabel som adderas till modellen bestäms av dess signifikans. Detta kan beräknas med hjälp av olika mått. Det vanligaste sättet är att använda p-värdena som erhålls i den ursprungliga statistiska modellen med alla variabler. Ibland kan framåtval leda till att en modell överanpassas eftersom det kan finnas mycket korrelerade variabler i modellen, även om de ger samma information till modellen (men modellen visar fortfarande förbättring).

Omvänt val

Omvänt urval innebär också steg-för-steg-eliminering av egenskaper, men i motsatt riktning jämfört med framåtval. I det här fallet inkluderar den initiala modellen alla oberoende variabler. Variabler elimineras sedan (en per iteration) om de inte bidrar med värde till den nya regressionsmodellen i varje iteration. Funktionsuteslutning baseras på p-värdena för den initiala modellen. Denna metod har också osäkerhet när man tar bort högkorrelerade variabler.

Eliminering av rekursiva funktioner

RFE är en mycket använd teknik/algoritm för att välja det exakta antalet viktiga funktioner. Ibland används metoden för att förklara ett antal "viktigaste" egenskaper som påverkar resultaten; och ibland för att reducera ett mycket stort antal variabler (cirka 200-400), och endast de som ger åtminstone något bidrag till modellen behålls, och alla andra exkluderas. RFE använder ett rankningssystem. Funktionerna i datamängden är tilldelade rang. Dessa rangordningar används sedan för att rekursivt eliminera egenskaper baserat på kolineariteten mellan dem och betydelsen av dessa egenskaper i modellen. Förutom att rangordna funktioner kan RFE visa om dessa funktioner är viktiga eller inte ens för ett givet antal funktioner (eftersom det är mycket troligt att det valda antalet funktioner kanske inte är optimalt, och det optimala antalet funktioner kan vara antingen fler eller mindre än det valda antalet).

Funktionens betydelsediagram

När vi talar om tolkbarheten av maskininlärningsalgoritmer diskuterar vi vanligtvis linjära regressioner (som låter dig analysera vikten av funktioner med hjälp av p-värden) och beslutsträd (som bokstavligen visar vikten av funktioner i form av ett träd, och vid samtidigt deras hierarki). Å andra sidan använder algoritmer som Random Forest, LightGBM och XG Boost ofta ett funktionsviktighetsdiagram, det vill säga ett diagram över variabler och "deras betydelsetal" plottas. Detta är särskilt användbart när du behöver ge en strukturerad motivering för vikten av attribut när det gäller deras inverkan på verksamheten.

Regularisering

Regularisering görs för att kontrollera balansen mellan bias och varians. Bias visar hur mycket modellen har överanpassat träningsdatauppsättningen. Avvikelsen visar hur olika förutsägelserna var mellan tränings- och testdatauppsättningarna. Helst bör både bias och varians vara liten. Det är här regularisering kommer till undsättning! Det finns två huvudtekniker:

L1 Regularization - Lasso: Lasso straffar modellvikter för att ändra deras betydelse för modellen och kan till och med annullera dem (dvs. ta bort dessa variabler från den slutliga modellen). Vanligtvis används Lasso när en datauppsättning innehåller ett stort antal variabler och du vill utesluta några av dem för att bättre förstå hur viktiga funktioner påverkar modellen (det vill säga de funktioner som har valts ut av Lasso och har tilldelats betydelse).

L2 Regularization - Ridge-metod: Ridges uppgift är att lagra alla variabler och samtidigt tilldela dem betydelse baserat på deras bidrag till modellens prestanda. Ridge kommer att vara ett bra val om datasetet innehåller ett litet antal variabler och alla är nödvändiga för att tolka resultaten och resultaten.

Eftersom Ridge behåller alla variabler och Lasso gör ett bättre jobb med att fastställa deras betydelse, utvecklades en algoritm som kombinerar de bästa egenskaperna hos båda regulariseringarna, känd som Elastic-Net.

Det finns många fler sätt att välja funktioner för maskininlärning, men huvudidén är alltid densamma: visa vikten av variabler och eliminera sedan några av dem baserat på den resulterande betydelsen. Betydelse är en mycket subjektiv term, eftersom det inte bara är en utan en hel uppsättning mätvärden och diagram som kan användas för att hitta nyckelattribut.

Tack för att du läste! Lycka till med lärandet!

Källa: will.com

Lägg en kommentar