Vad är överutrustning i maskininlärning och hur man undviker det?



Den här artikeln omfattar överanpassning i maskininlärning med exempel och några tekniker för att undvika, upptäcka överanpassning i en maskininlärningsmodell.

Att bygga en maskininlärningsmodell handlar inte bara om att mata in data, det finns många brister som påverkar noggrannheten hos alla modeller. Övermontering i är en sådan brist på maskininlärning som hindrar modellens noggrannhet och prestanda. Följande ämnen behandlas i den här artikeln:

Vad är överanpassning i maskininlärning?

En statistisk modell sägs vara överanpassad när vi matar den mycket mer data än nödvändigt. Föreställ dig att försöka passa in i stora kläder.





När en modell passar mer data än den faktiskt behöver, börjar den fånga de bullriga data och felaktiga värden i data. Som ett resultat minskar modellens effektivitet och noggrannhet. Låt oss titta på några exempel på överanpassning för att förstå hur det faktiskt händer.



Exempel på övermontering

Exempel 1

Om vi ​​tar ett exempel på enkel linjär regression , utbildning av data handlar om att ta reda på minimikostnaden mellan linjen för bästa passform och datapunkterna. Det går igenom ett antal iterationer för att ta reda på den bästa passformen, vilket minimerar kostnaden. Det är här överanpassning kommer in i bilden.



Linjen i bilden ovan kan ge ett mycket effektivt resultat för en ny datapunkt. I fallet med överanpassning, när vi kör träningsalgoritmen på datamängden, låter vi kostnaden minska med varje antal iteration.

Kör detta för länge kommer att innebära en reducerad kostnad men det passar också de bullriga uppgifterna från datamängden. Resultatet skulle se ut ungefär som i diagrammet nedan.

Det här kan se effektivt ut men är inte riktigt. Huvudmålet för en algoritm som linjär regression är att hitta en dominerande trend och anpassa datapunkterna därefter. Men i det här fallet passar linjen alla datapunkter, vilket är irrelevant för modellens effektivitet när det gäller att förutsäga optimala resultat för nya ingångspunkter.

Låt oss nu överväga ett mer beskrivande exempel med hjälp av ett problemuttalande.

Exempel 2

Problemförklaring: Låt oss överväga att vi vill förutsäga om en fotbollsspelare kommer att landa en slot i en fotbollsklubb i nivå 1 baserat på hans / hennes nuvarande prestanda i nivå 2-ligan.

Föreställ dig nu, vi tränar och passar modellen med 10 000 sådana spelare med resultat. När vi försöker förutsäga resultatet på den ursprungliga datamängden, låt oss säga att vi har en 99% noggrannhet. Men noggrannheten i en annan datamängd är cirka 50 procent. Det betyder att modellen inte generaliserar bra från vår träningsdata och osedda data.

Så här ser överutrustning ut. Det är ett mycket vanligt problem inom maskininlärning och till och med datavetenskap. Låt oss nu förstå signalen och bruset.

Signal mot buller

I prediktiv modellering hänvisar signal till det verkliga underliggande mönstret som hjälper modellen att lära sig data. Å andra sidan är buller irrelevanta och slumpmässiga data i datamängden. För att förstå begreppet brus och signal, låt oss ta ett verkligt exempel.

Låt oss anta att vi vill modellera ålder kontra läskunnighet bland vuxna. Om vi ​​provar en mycket stor del av befolkningen kommer vi att hitta en tydlig relation. Detta är signalen, medan buller stör signalen. Om vi ​​gör detsamma för en lokal befolkning blir förhållandet lerigt. Det skulle påverkas av avvikelser och slumpmässighet, till exempel en vuxen gick tidigt i skolan eller någon vuxen hade inte råd med utbildning etc.

När vi pratar om brus och signal i termer av maskininlärning kommer en bra maskininlärningsalgoritm att automatiskt separera signaler från bruset. Om algoritmen är för komplex eller ineffektiv kan den också lära sig bruset. Därför övermontering av modellen. Låt oss också förstå underfitting i maskininlärning.

Vad är underfitting?

För att undvika överanpassning kunde vi stoppa träningen i ett tidigare skede. Men det kan också leda till att modellen inte kan lära sig tillräckligt av träningsdata, så att det kan ha svårt att fånga den dominerande trenden. Detta kallas underfitting. Resultatet är detsamma som överanpassning, ineffektivitet när det gäller att förutsäga resultat.

Nu när vi har förstått vad underutrustning och överutrustning i maskininlärning verkligen är, låt oss försöka förstå hur vi kan upptäcka överutrustning i maskininlärning.

Hur upptäcker jag överanpassning?

Den största utmaningen med överanpassning är att uppskatta noggrannheten i vår modell med nya data. Vi skulle inte kunna uppskatta noggrannheten förrän vi faktiskt testar den.

För att lösa detta problem kan vi dela upp den ursprungliga datamängden i separata tränings- och testdatamängder. Med denna teknik kan vi faktiskt uppskatta hur bra vår modell kommer att fungera med de nya uppgifterna.

Låt oss förstå detta med ett exempel, föreställ dig att vi får 90+ procents noggrannhet på träningssatsen och 50 procents noggrannhet på testuppsättningen. Då skulle det automatiskt vara en röd flagga för modellen.

Ett annat sätt att upptäcka övermontering är att börja med en förenklad modell som kommer att fungera som ett riktmärke.

är en har en relation

Med detta tillvägagångssätt, om du försöker med mer komplexa algoritmer kommer du att kunna förstå om den ytterligare komplexiteten till och med är värd för modellen eller inte. Det är också känt som Occams rakhyvelprov , det väljer i grunden den förenklade modellen i händelse av jämförbar prestanda vid två modeller. Även om det är bra att upptäcka överanpassning,men det finns flera tekniker för att förhindra övermontering också. Låt oss ta en titt på hur vi kan förhindra överanpassning i maskininlärning.

Hur undviker man överanpassning i maskininlärning?

Det finns flera tekniker för att undvika överanpassning i Machine Learning helt och hållet listade nedan.

  1. Korsvalidering

  2. Träning med mer data

  3. Ta bort funktioner

  4. Tidigt stopp

  5. Regularisering

  6. Montering

1. Korsvalidering

En av de mest kraftfulla funktionerna för att undvika / förhindra överanpassning är korsvalidering. Tanken bakom detta är att använda den första träningsdata för att generera mini-tåg-test-split, och sedan använda dessa split för att ställa in din modell.

I en standardvalidering av k-vikt delas data i k-delmängder, även kända som veck. Efter detta tränas algoritmen iterativt på k-1-veck medan de återstående vikarna används som testuppsättning, även känd som håll-veck.

Korsvalideringen hjälper oss att ställa in hyperparametrarna med endast den ursprungliga träningssatsen. Det håller i princip testuppsättningen separat som en riktig osedd datamängd för att välja den slutliga modellen. Därför undviker du överanpassning helt.

2. Träning med mer data

Denna teknik kanske inte fungerar varje gång, som vi också har diskuterat i exemplet ovan, där träning med en betydande mängd befolkning hjälper modellen. Det hjälper i princip modellen att identifiera signalen bättre.

Men i vissa fall kan den ökade datan också innebära att modellen ger mer buller. När vi tränar modellen med mer data måste vi se till att informationen är ren och fri från slumpmässighet och inkonsekvenser.

3. Ta bort funktioner

Även om vissa algoritmer har ett automatiskt urval av funktioner. För ett betydande antal av dem som inte har ett inbyggt funktionsval kan vi manuellt ta bort några irrelevanta funktioner från inmatningsfunktionerna för att förbättra generaliseringen.

Ett sätt att göra det är genom att dra en slutsats om hur en funktion passar in i modellen. Det är ganska likt att felsöka koden rad för rad.

Om en funktion inte kan förklara relevansen i modellen kan vi helt enkelt identifiera dessa funktioner. Vi kan till och med använda några heuristiska funktionsval för en bra utgångspunkt.

4. Tidig stopp

När modellen tränar kan du faktiskt mäta hur bra modellen presterar baserat på varje iteration. Vi kan göra detta till en punkt då upprepningarna förbättrar modellens prestanda. Efter detta överträffar modellen träningsdata eftersom generaliseringen försvagas efter varje iteration.

vad är logger i java

Så i grund och botten betyder tidigt stopp att stoppa träningsprocessen innan modellen passerar den punkt där modellen börjar överträffa träningsdata. Denna teknik används mestadels i Djup lärning .

5. Regularisering

Det betyder i grunden att konstnärligt tvinga din modell att bli enklare genom att använda ett bredare utbud av tekniker. Det beror helt på vilken typ av lärare vi använder. Till exempel kan vi beskära a , använd ett bortfall på en neuralt nätverk eller lägg till en straffparameter i kostnadsfunktionen i regression.

Ganska ofta är regularisering också en hyperparameter. Det betyder att det också kan ställas in genom korsvalidering.

6. Montering

Denna teknik kombinerar i princip förutsägelser från olika maskininlärningsmodeller. Två av de vanligaste metoderna för montering listas nedan:

  • Bagging försöker minska risken för övermontering av modellerna

  • Boosting försöker förbättra den förutsägbara flexibiliteten hos enklare modeller

Även om de båda är ensemblemetoder, börjar tillvägagångssättet helt från motsatta håll. Bagging använder komplexa basmodeller och försöker jämna ut sina förutsägelser medan boosting använder enkla basmodeller och försöker öka dess aggregerade komplexitet.

Vad är Goodness of Fit?

I statistisk modellering hänvisar godhet av passform till hur nära resultaten eller förutsagda värden matchar de observerade eller sanna värdena.En modell som har lärt sig brus istället för signalen är överanpassad eftersom den passar träningsdatamängden men har sämre effektivitet med den nya datamängden.

Avvägningen mellan förspänning och variation

Både varians och bias är former av förutsägelsefel i . Avvägningen mellan hög varians och hög bias är ett mycket viktigt begrepp inom statistik och maskininlärning. Detta är ett koncept som påverkar alla övervakade maskininlärningsalgoritmer.

Avvikelsen mellan bias-varians har en mycket betydande inverkan på att bestämma komplexiteten, underutrustningen och överutrustningen för varje maskininlärningsmodell.

Partiskhet

Det är inget annat än skillnaden mellan de förutsagda värdena och de faktiska eller sanna värdena i modellen. Det är inte alltid lätt för modellen att lära sig av ganska komplexa signaler.

Låt oss föreställa oss att passa en linjär regression till en modell med icke-linjära data. Oavsett hur effektivt modellen lär sig observationerna, kommer den inte att modellera kurvorna effektivt. Det är känt som underfitting.

Variation

Det hänvisar till modellens känslighet för specifika uppsättningar i träningsdata. En algoritm med hög varians kommer att producera en bisarr modell som skiljer sig drastiskt från träningssatsen.

Föreställ dig en algoritm som passar den obegränsade och superflexibla modellen, den kommer också att lära av bruset i träningssatsen som orsakar överanpassning.

Bias-variation avvägning

En maskininlärningsalgoritm kan inte uppfattas som en engångsmetod för träning av modellen, utan är en repetitiv process.

Algoritmer med låg varians och hög förspänning är mindre komplexa, med en enkel och styv struktur.

  • De kommer att träna modeller som är konsekventa, men i genomsnitt felaktiga.

  • Dessa inkluderar linjära eller parametriska algoritmer, såsom regression, , etc.

Algoritmer med hög varians och låg förspänning tenderar att vara mer komplexa, med en flexibel struktur.

  • De kommer att träna modeller som är inkonsekventa men exakta i genomsnitt.

  • Dessa inkluderar icke-linjära eller icke-parametriska algoritmer såsom , , etc.

Detta leder oss till slutet av den här artikeln där vi har lärt oss Overfitting i maskininlärning och om olika tekniker för att undvika det. Jag hoppas att du är tydlig med allt som har delats med dig i denna handledning.

Om du tyckte att den här artikeln om ”Overfitting In Machine Learning” är relevant, kolla in ett pålitligt online-lärande företag med ett nätverk med mer än 250 000 nöjda elever spridda över hela världen.

Vi är här för att hjälpa dig med varje steg på din resa och komma med en läroplan som är utformad för studenter och yrkesverksamma som vill vara en . Kursen är utformad för att ge dig ett försprång till Python-programmering och träna dig för både kärn- och avancerade Python-koncept tillsammans med olika tycka om , , etc.

Om du stöter på några frågor är du välkommen att ställa alla dina frågor i kommentarfältet i 'Overfitting In Machine Learning' så svarar vårt team gärna.