Om Train, Validation og Test Sets i Machine Learning
On oktober 17, 2021 by adminDette er en kort grundbog for alle, der har brug for at kende forskellen mellem de forskellige datasætopdelinger under træning af Machine Learning-modeller.
Til denne artikel vil jeg citere basisdefinitionerne fra Jason Brownlee’s fremragende artikel om samme emne, den er ret omfattende, tjek den ud for flere detaljer.
Træningsdatasæt: Det faktiske datasæt, som vi bruger til at træne modellen (vægte og bias i tilfælde af et neuralt netværk). Modellen ser og lærer af disse data.
Valideringsdatasæt
Valideringsdatasæt: Prøve af data, der bruges til at give en uvildig evaluering af en model, der passer til træningsdatasættet, mens modellens hyperparametre indstilles. Evalueringen bliver mere skævvredet, efterhånden som færdighed på valideringsdatasættet indarbejdes i modelkonfigurationen.
Valideringssættet bruges til at evaluere en given model, men dette er til hyppig evaluering. Vi, som maskinlæringsingeniører, bruger disse data til at finjustere modellens hyperparametre. Derfor ser modellen lejlighedsvis disse data, men den “lærer” aldrig af dem. Vi bruger resultaterne fra valideringssættet og opdaterer hyperparametre på højere niveau. Valideringssættet påvirker altså en model, men kun indirekte. Valideringssættet er også kendt som Dev-sættet eller udviklingssættet. Det giver mening, da dette datasæt hjælper under modellens “udviklingsfase”.
Test Dataset
Test Dataset: Prøve af data, der bruges til at give en uvildig evaluering af en endelig model, der passer til træningsdatasættet.
Testdatasættet giver den gyldne standard, der bruges til at evaluere modellen. Det bruges først, når en model er fuldstændig trænet (ved hjælp af trænings- og valideringssættene). Testsæt er generelt det, der bruges til at evaluere konkurrerende modeller (f.eks. i mange Kaggle-konkurrencer frigives valideringssættet i første omgang sammen med træningssættet, og det egentlige testsæt frigives først, når konkurrencen er ved at være slut, og det er resultatet af modellen på testsætet, der afgør vinderen). Mange gange bruges valideringssættet som testsæt, men det er ikke god praksis. Testsættene er generelt velkuraterede. Det indeholder omhyggeligt udtagne data, der spænder over de forskellige klasser, som modellen vil blive konfronteret med, når den anvendes i den virkelige verden.
Om datasættets opdelingsforhold
Nu da du ved, hvad disse datasæt gør, søger du måske anbefalinger til, hvordan du kan opdele dit datasæt i Train-, Validation- og Testsæt.
Dette afhænger hovedsageligt af 2 ting. For det første det samlede antal prøver i dine data og for det andet den faktiske model, du træner.
Nogle modeller har brug for betydelige data at træne på, så i dette tilfælde vil du optimere for de større træningssæt. Modeller med meget få hyperparametre vil være nemme at validere og indstille, så du kan sandsynligvis reducere størrelsen af dit valideringssæt, men hvis din model har mange hyperparametre, vil du også have et stort valideringssæt(selv om du også bør overveje krydsvalidering). Hvis du tilfældigvis har en model uden hyperparametre eller en model, der ikke let kan indstilles, har du sandsynligvis heller ikke brug for et valideringssæt!
Alt i alt er splitforholdet mellem træning-test-validering, som mange andre ting inden for maskinlæring, også ret specifikt for dit anvendelsestilfælde, og det bliver lettere at foretage en vurdering, efterhånden som du træner og bygger flere og flere modeller.
Note om krydsvalidering: Mange gange opdeler folk først deres datasæt i 2 – Train og Test. Derefter holder de Test-sættet til side og vælger tilfældigt X% af deres Train-datasæt til at være det egentlige Train-sæt og de resterende (100-X)% til at være Valideringssættet, hvor X er et fast tal (f.eks. 80%), modellen trænes og valideres derefter iterativt på disse forskellige sæt. Der er flere måder at gøre dette på, og det er almindeligvis kendt som krydsvalidering. Grundlæggende bruger du dit træningssæt til at generere flere opdelinger af trænings- og valideringssættene. Krydsvalidering undgår overpasning og bliver mere og mere populær, med K-fold Cross Validation som den mest populære metode til krydsvalidering. Tjek dette for at få mere at vide.
Skriv et svar