Over- og underfitting er to fænomener, der kan opstå i forbindelse med træning af Machine Learning-modeller. Begge fænomener kan føre til modeller, der ikke er i stand til at generalisere godt til nye data.
Underfitting
Underfitting opstår, når en model er for simpel og ikke lærer træningsdataene godt nok. Dette kan resultere i en model, der ikke kan generalisere godt til nye data, fordi den ikke har lært træningsdataene godt nok.
Et eksempel på underfitting kan være at træne en lineær regression model på et datasæt med komplekse sammenhænge mellem variablerne. Hvis modellen er for simpel, vil den ikke være i stand til at lære de komplekse sammenhænge og vil derfor ikke generalisere godt til nye data.
Overfitting
Overfitting opstår, når en model bliver for kompleks og lærer træningsdataene for godt. Dette kan resultere i en model, der ikke generaliserer godt til nye data, fordi den har "memoriseret" træningsdataene. Med andre ord er modellen blevet så specialiseret i træningsdataene, at den ikke kan anvendes på nye data.
Et eksempel på overfitting kan være at træne en model til at skelne hunde og katte ved hjælp af billeder. Hvis modellen bliver for kompleks og træner på et lille datasæt, kan den ende med at lære specifikke træk ved billederne i træningssættet, der ikke er relevante for at skelne hunde og katte generelt. Dette resulterer i en model, der kun kan skelne mellem de specifikke hunde og katte i træningssættet og ikke kan generalisere til nye hunde og katte.
Hvorfor er over- og underfitting dårligt?
Både over- og underfitting kan føre til modeller, der ikke er i stand til at generalisere godt til nye data. Dette betyder, at modellen ikke er i stand til at udføre den opgave, som den er blevet trænet til at udføre, på nye data.
Overfitting kan også føre til modeller, der er meget specifikke for træningsdataene og ikke kan generalisere til nye data. Dette betyder, at modellen ikke er i stand til at udføre den opgave, som den er blevet trænet til at udføre, på nye data.
Underfitting kan føre til modeller, der er for simple til at lære træningsdataene godt nok. Dette betyder, at modellen ikke er i stand til at udføre den opgave, som den er blevet trænet til at udføre, godt nok.
I stedet for både over- og underfitting, ønsker vi at træne en model, der generaliserer godt til nye data og kan udføre den opgave, som den er blevet trænet til at udføre. Derfor er det vigtigt at finde den rette balance mellem kompleksitet og præcision, når man træner Machine Learning-modeller.
Det kan være lidt svært at forstå, hvordan det reelt kan ske på et datasæt, så vi prøver at få lidt hands-on Opgaver til Over- og underfit. Dette er dog ikke pensum og obligatorisk, da I er i gang med projektet her!
Overfitting in Machine Learning: What It Is and How to Prevent It
Måder at undgå overfitting
Stop modellen tidligt.
Som vi kan se på overs normale overfittede graf, skyder vores valideringsset i vejret efter et hvis punkt. Den mest simple måde at stoppe vores overfitting er at stoppe vores model på det laveste punkt og kun bruge den del af modellen.
Det er lidt en “hurtig” måde at komme over vores problem og måske ikke særlig teknisk imponerende. Det er heller ikke den bedste måde at gøre det på.
Cross-validation
Cross validering bruger løbende mere data og validere ud fra det tidligere. Her er et eksempel på k-cross-validation, med k=10.
Her er trinnene til at vælge hyperparametre ved hjælp af 10-fold krydsvalidering: