Video: Jens Rathmann Hansen for Venstre 2024
Nogle gange kræver maskinindlæring, at du bliver nødt til at ty til krydsvalidering. Et mærkbart problem med toget / test set split er, at du rent faktisk introducerer bias i din testning, fordi du reducerer størrelsen af dine træningsdata i prøven. Når du deler dine data, kan du faktisk holde nogle nyttige eksempler ud af træningen. Desuden er dine data sommetider så komplekse, at et test sæt, men tilsyneladende svarer til træningssættet, ikke er rigtigt ens, fordi kombinationer af værdier er forskellige (hvilket er typisk for højdimensionelle datasæt).
Disse problemer tilføjer ustabiliteten af prøveudtagningsresultater, når du ikke har mange eksempler. Risikoen for at opdele dine data på en ugunstig måde forklarer også, hvorfor toget / testopdelingen ikke er den favoriserede løsning af maskinlæringspraksis, når du skal evaluere og justere en maskinindlæringsløsning.
Cross-validering baseret på k-folds er faktisk svaret. Den er afhængig af tilfældig opdeling, men denne gang deler den dine data ind i et antal k af folder (dele af dine data) af samme størrelse. Derefter holdes hver fold ud igen som et testsæt, og de andre bruges til træning. Hver iteration bruger en anden fold som en test, som giver et fejl estimat.
Faktisk, efter at prøven er afsluttet på en fold mod de andre, der anvendes som træning, holdes en efterfølgende fold, der er forskellig fra den foregående, ud, og proceduren gentages for at frembringe et andet fejlestimat. Processen fortsætter, indtil alle k-foldene bruges en gang som et testsæt, og du har et k antal fejloverslag, som du kan beregne i et gennemsnitligt fejloverslag (krydsvalideringsscoren) og en standardfejl i estimaterne.
Denne fremgangsmåde giver følgende fordele:
- Det fungerer godt uanset antallet af eksempler, fordi du ved at øge antallet af brugte folder faktisk øger størrelsen på dit træningssæt (større k, større træningssæt, reduceret bias) og nedsættelse af testsætets størrelse.
- Forskelle i fordelingen for individuelle folder betyder ikke noget så meget. Når en fold har en anden fordeling i forhold til de andre, bruges den kun én gang som et testsæt og blandes med andre som en del af træningssættet under de resterende tests.
- Du tester faktisk alle observationerne, så du tester fuldt ud din maskiners læringshypotese ved at bruge alle de data, du har.
- Ved at tage gennemsnittet af resultaterne, kan du forvente en prædiktiv præstation. Derudover kan standardafvigelsen af resultaterne fortælle dig, hvor meget variation du kan forvente i reelle data uden for stikprøven. Højere variation i de krydsvaliderede præstationer informerer dig om yderst varierede data, at algoritmen ikke er i stand til korrekt at fange.
Brug af k-fold kryds-validering er altid det optimale valg, medmindre de data, du bruger, har en slags ordre, der betyder noget. Det kan for eksempel indebære en tidsserie, som f.eks. Salg. I så fald bør du ikke bruge en stikprøveudtagningsmetode, men i stedet stole på en tog / test-split baseret på den oprindelige rækkefølge, så ordren bevares, og du kan teste på de sidste eksempler på den bestilte serie.