Om tränings-, validerings- och testuppsättningar i maskininlärning
On oktober 17, 2021 by adminDetta är tänkt att vara en kortfattad introduktion för alla som behöver känna till skillnaden mellan de olika uppdelningarna av datauppsättningar vid träning av modeller för maskininlärning.
För den här artikeln citerar jag grunddefinitionerna från Jason Brownlees utmärkta artikel om samma ämne, den är ganska omfattande, kolla in den för mer information.
Training Dataset: Det faktiska datasetet som vi använder för att träna modellen (vikter och bias i fallet med ett neuralt nätverk). Modellen ser och lär sig av dessa data.
Valideringsdataset
Valideringsdataset: Det urval av data som används för att ge en opartisk utvärdering av en modell som passar in på träningsdatasetetet samtidigt som man ställer in modellens hyperparametrar. Utvärderingen blir mer partisk när färdighet på valideringsdatasetet införlivas i modellkonfigurationen.
Valideringsuppsättningen används för att utvärdera en viss modell, men detta är för frekventa utvärderingar. Vi, som maskininlärningsingenjörer, använder dessa data för att finjustera modellens hyperparametrar. Därför ser modellen ibland dessa uppgifter, men den ”lär” sig aldrig av dem. Vi använder resultaten från valideringsuppsättningen och uppdaterar hyperparametrar på högre nivå. Valideringsuppsättningen påverkar alltså modellen, men endast indirekt. Valideringsuppsättningen är också känd som Dev-uppsättningen eller utvecklingsuppsättningen. Detta är logiskt eftersom denna datauppsättning hjälper till under modellens ”utvecklingsfas”.
Test Dataset
Test Dataset: Det urval av data som används för att ge en opartisk utvärdering av en slutlig modell som passar in på träningsdatamängden.
Testdatamängden ger den gyllene standard som används för att utvärdera modellen. Det används först när en modell har tränats färdigt (med hjälp av tränings- och valideringsuppsättningarna). Testuppsättningen är i allmänhet det som används för att utvärdera konkurrerande modeller (i många Kaggle-tävlingar släpps till exempel valideringsuppsättningen inledningsvis tillsammans med träningsuppsättningen och den egentliga testuppsättningen släpps först när tävlingen är på väg att avslutas, och det är modellens resultat på testuppsättningen som avgör vem som vinner). Många gånger används valideringsuppsättningen som testuppsättning, men det är ingen bra metod. Testuppsättningen är i allmänhet väl kurerad. Den innehåller noggrant utvalda data som sträcker sig över de olika klasser som modellen skulle möta när den används i den verkliga världen.
Om förhållandet mellan uppdelningar av datasetet
Nu när du vet vad dessa dataset gör kanske du letar efter rekommendationer om hur du ska dela upp ditt dataset i Train-, Validerings- och Testset.
Detta beror huvudsakligen på två saker. För det första, det totala antalet prover i dina data och för det andra, den faktiska modellen du tränar.
Vissa modeller behöver omfattande data att träna på, så i detta fall skulle du optimera för de större träningsuppsättningarna. Modeller med mycket få hyperparametrar kommer att vara lätta att validera och ställa in, så du kan förmodligen minska storleken på din valideringsuppsättning, men om din modell har många hyperparametrar bör du också ha en stor valideringsuppsättning (även om du också bör överväga korsvalidering). Om du råkar ha en modell som inte har några hyperparametrar eller sådana som inte är lätta att ställa in behöver du förmodligen inte heller någon valideringsuppsättning!
Samt sett, som många andra saker inom maskininlärning, är uppdelningsförhållandet mellan träning, test och validering också ganska specifikt för ditt användningsfall och det blir lättare att göra bedömningar när du tränar och bygger fler och fler modeller.
Notis om korsvalidering: Många gånger delar man först upp sitt dataset i två delar – träning och test. Därefter behåller de testuppsättningen åt sidan och väljer slumpmässigt ut X % av sin Train-databasuppsättning som den egentliga Train-uppsättningen och resterande (100-X)% som valideringsuppsättningen, där X är ett fast nummer (t.ex. 80 %). Det finns flera sätt att göra detta, och det är allmänt känt som korsvalidering. I grund och botten använder du din träningsuppsättning för att generera flera uppdelningar av tränings- och valideringsuppsättningarna. Korsvalidering undviker överanpassning och blir alltmer populär, med K-fold Cross Validation som den mest populära metoden för korsvalidering. Läs mer här.
Lämna ett svar