Förhindra överanpassning och obalanserade data med automatiserad ML

Överanpassning och obalanserade data är vanliga fallgropar när du skapar maskininlärningsmodeller. Som standard tillhandahåller Azure Machine Learnings automatiserade ML diagram och mått som hjälper dig att identifiera dessa risker och implementerar metodtips för att minimera dem.

Identifiera överanpassning

Överanpassning i maskininlärning sker när en modell passar träningsdata för bra och därför inte kan förutsäga osedda testdata korrekt. Med andra ord har modellen memorerat specifika mönster och brus i träningsdata, men är inte tillräckligt flexibel för att göra förutsägelser om verkliga data.

Tänk på följande tränade modeller och deras motsvarande tränings- och testprecisioner.

Modell Träningsnoggrannhet Testnoggrannhet
A 99,9 % 95 %
B 87% 87%
C 99,9 % 45 %

Tänk på modell A, det finns en vanlig missuppfattning om att om testprecisionen på osedda data är lägre än träningsprecisionen är modellen överanpassad. Testprecisionen bör dock alltid vara mindre än träningsprecisionen, och skillnaden för överanpassning jämfört med lämplig passform beror på hur mycket mindre exakt.

Jämför modeller A och B, modell A är en bättre modell eftersom den har högre testprecision, och även om testprecisionen är något lägre vid 95 %, är det ingen betydande skillnad som tyder på att överanpassning finns. Du skulle inte välja modell B eftersom tränings- och testprecisionerna är närmare varandra.

Modell C representerar ett tydligt fall av överanpassning. träningsprecisionen är hög, men testprecisionen är inte i närheten av lika hög. Den här skillnaden är subjektiv, men kommer från kunskap om ditt problem och dina data och vilka felstorlekar som är acceptabla.

Förhindra överanpassning

I de mest vedervärdiga fallen förutsätter en överanpassad modell att de kombinationer av funktionsvärden som visas under träningen alltid resulterar i exakt samma utdata för målet.

Det bästa sättet att förhindra överanpassning är att följa ML:s metodtips, inklusive:

  • Använda mer träningsdata och eliminera statistisk bias
  • Förhindra målläckage
  • Använda färre funktioner
  • Regularisering och optimering av hyperparametrar
  • Begränsningar för modellkomplexitet
  • Korsvalidering

I samband med automatiserad ML listar de tre första sätten metodtips som du implementerar. De tre sista fetstilta objekten är metodtips som automatiserad ML implementerar som standard för att skydda mot överanpassning. I andra inställningar än automatiserad ML är alla sex metodtips värda att följa för att undvika överanpassning av modeller.

Metodtips som du implementerar

Använda mer data

Att använda mer data är det enklaste och bästa sättet att förhindra överanpassning, och som en extra bonus ökar vanligtvis noggrannheten. När du använder mer data blir det svårare för modellen att memorera exakta mönster, och den tvingas nå lösningar som är mer flexibla för att hantera fler villkor. Det är också viktigt att känna igen statistisk bias för att säkerställa att dina träningsdata inte innehåller isolerade mönster som inte finns i realtidsförutsägelsedata. Det här scenariot kan vara svårt att lösa eftersom det kan finnas överanpassning jämfört med realtidstestdata.

Förhindra målläckage

Målläckage är ett liknande problem, där du kanske inte ser överanpassning mellan tränings-/testuppsättningar, utan snarare visas vid förutsägelsetid. Målläckage inträffar när din modell "fuskar" under träningen genom att ha åtkomst till data som den normalt inte bör ha vid förutsägelsetiden. Om du till exempel vill förutsäga på måndag vad ett råvarupris kommer att vara på fredag, om dina funktioner av misstag inkluderade data från torsdagar, skulle det vara data som modellen inte kommer att ha vid förutsägelsetiden eftersom den inte kan se in i framtiden. Målläckage är ett enkelt misstag att missa, men kännetecknas ofta av onormalt hög noggrannhet för ditt problem. Om du försöker förutsäga aktiekursen och tränat en modell med 95 % noggrannhet finns det sannolikt målläckage någonstans i dina funktioner.

Använda färre funktioner

Att ta bort funktioner kan också hjälpa till med överanpassning genom att förhindra att modellen har för många fält att använda för att memorera specifika mönster, vilket gör att den blir mer flexibel. Det kan vara svårt att mäta kvantitativt, men om du kan ta bort funktioner och behålla samma noggrannhet har du förmodligen gjort modellen mer flexibel och har minskat risken för överanpassning.

Metodtips Automatiserade ML-implementeringar

Justering av regularisering och hyperparameter

Regularisering är en process för att minimera en kostnadsfunktion för att straffa komplexa och överanpassade modeller. Det finns olika typer av regulariseringsfunktioner, men i allmänhet straffar de modellkoefficientstorlek, varians och komplexitet. Automatiserad ML använder L1 (Lasso), L2 (Ridge) och ElasticNet (L1 och L2 samtidigt) i olika kombinationer med olika modellinställningar för hyperparameter som styr överanpassning. Automatiserad ML varierar hur mycket en modell regleras och väljer det bästa resultatet.

Begränsningar för modellkomplexitet

Automatiserad ML implementerar också explicita modellkomplexitetsbegränsningar för att förhindra överanpassning. I de flesta fall gäller den här implementeringen specifikt för beslutsträds- eller skogsalgoritmer, där maxdjupet för enskilda träd är begränsat och det totala antalet träd som används i skogs- eller ensembletekniker är begränsat.

Korsvalidering

Korsvalidering (CV) är processen att ta många delmängder av dina fullständiga träningsdata och träna en modell på varje delmängd. Tanken är att en modell kan få "tur" och ha stor noggrannhet med en delmängd, men genom att använda många delmängder kommer modellen inte att uppnå denna höga noggrannhet varje gång. När du gör CV anger du en datauppsättning för valideringsspärr, anger dina CV-vikter (antal delmängder) och Automatiserad ML tränar din modell och justerar hyperparametrar för att minimera fel på valideringsuppsättningen. En CV-vikt kan vara överanpassad, men genom att använda många av dem minskar sannolikheten för att din slutliga modell är överanpassad. Kompromissen är att CV resulterar i längre träningstider och högre kostnad, eftersom du tränar en modell en gång för varje n i CV-delmängderna.

Anteckning

Korsvalidering är inte aktiverat som standard. Den måste konfigureras i inställningarna för automatiserad maskininlärning. Men när korsvalidering har konfigurerats och en verifieringsdatauppsättning har angetts automatiseras processen åt dig.

Identifiera modeller med obalanserade data

Obalanserade data finns ofta i data för klassificeringsscenarier för maskininlärning och refererar till data som innehåller ett oproportionerligt förhållande mellan observationer i varje klass. Den här obalansen kan leda till en felaktigt upplevd positiv effekt av en modells noggrannhet, eftersom indata har bias mot en klass, vilket resulterar i att den tränade modellen efterliknar den biasen.

Dessutom genererar automatiserade ML-jobb följande diagram automatiskt. De här diagrammen hjälper dig att förstå korrekthet i klassificeringarna för din modell och identifiera modeller som kan påverkas av obalanserade data.

Diagram Beskrivning
Förvirringsmatris Utvärderar korrekt klassificerade etiketter mot de faktiska etiketterna för data.
Precisionsåterkallning Utvärderar förhållandet mellan korrekta etiketter och förhållandet mellan hittade etikettinstanser av data
ROC-kurvor Utvärderar förhållandet mellan korrekta etiketter och förhållandet mellan falska positiva etiketter.

Hantera obalanserade data

Som en del av målet att förenkla arbetsflödet för maskininlärning har automatiserad ML inbyggda funktioner för att hantera obalanserade data som,

  • En viktkolumn: Automatiserad ML skapar en kolumn med vikter som indata som gör att rader i data viktas upp eller ned, vilket kan användas för att göra en klass mer eller mindre "viktig".

  • De algoritmer som används av automatiserad ML identifierar obalans när antalet exempel i minoritetsklassen är lika med eller mindre än 20 % av antalet prover i majoritetsklassen, där minoritetsklassen refererar till den med minst antal exempel och majoritetsklassen refererar till den som har flest exempel. Därefter kör automatiserad maskininlärning ett experiment med delexempeldata för att kontrollera om användning av klassvikter skulle åtgärda det här problemet och förbättra prestandan. Om det säkerställer en bättre prestanda genom det här experimentet tillämpas denna åtgärd.

  • Använd ett prestandamått som hanterar obalanserade data bättre. Till exempel är AUC_weighted ett primärt mått som beräknar bidraget för varje klass baserat på det relativa antalet exempel som representerar den klassen, och därför är mer robust mot obalans.

Följande tekniker är ytterligare alternativ för att hantera obalanserade data utanför automatiserad ML.

  • Omsampling till även klassobalansen, antingen genom uppsampling av de mindre klasserna eller nedsampling av de större klasserna. Dessa metoder kräver expertis för att bearbeta och analysera.

  • Granska prestandamått för obalanserade data. F1-poängen är till exempel det harmoniska medelvärdet av precision och träffsäkerhet. Precision mäter en klassificerarens exakthet, där högre precision indikerar färre falska positiva identifieringar, medan träffsäkerhet mäter en klassificerarens fullständighet, där högre träffsäkerhet indikerar färre falska negativa identifieringar.

Nästa steg

Se exempel och lär dig hur du skapar modeller med automatiserad ML: