Mi az a krosszvalidáció? És mi az általános recept rá?





A keresztvalidáció célja, hogy meggyőződj arról, hogy a predikciós/becslési modelled valójában mennyire is jó.
Általános recept, hogy az adathalmazodat felosztod N egyenlő részre, amelyből N-1 részt használsz a modelled tanítására/paraméterezésére, a fennmaradó részt pedig a validálásra. Ezt megismétled N alkalommal, más-más felosztásban tanítva/tesztelve a modelledet. Az N darab keresztvalidáció átlagos eredményét tekintheted a modelled minőségének ("93% pontosság", vagy "átlagos hiba 0.13 kutyagumi").
Mivel a modelledet nem azokon az adatokon teszteled, amelyekkel tanítottad, így nem áll fenn annak a veszélye, hogy a modelled teszteredménye túltanulás (overfitting) miatt a valósnál jobb értéket mutat. Ha túltanulási problémái vannak a modellednek, akkor az a keresztvalidáció gyenge teszteredményein látszani fog, és nem vezet félre az, hogy a teljes adathalmazon tanítva, és naivan ugyanazon a teljes adathalmazon tesztelve egyébként jónak tűnik.
Ha meggyőződtél arról, hogy a modelled jó, akkor persze végül a teljes adathalmazzal taníthatod, és kijelentheted, hogy 93% pontosságú vagy 0.13 kutyagumi átlagos hibájú a modelled.
Az N részre osztásnak persze külön finomságai lehetnek, pl. "stratification": hasonló arányban érdemes az egyes kalapokba tenni különböző jellemzőjű adatokat/alanyokat. De nagy vonalakban ez a lényeg.





Sima validálás alatt ugye azt érted, hogy X adathalmazzal tanítod a modelled, és egy attól független Y adathalmazon validálod, ugye?
Ebben az esetben kevesebb adattal tanítottad a modelled, mint amennyi amúgy rendelkezésre áll, és kevesebbel is validáltad. Tehát nemcsak hogy a modellépítésbe nem vontál be minden rendelkezésre álló információt, de még a modelled teljesítményét se határoztad meg olyan pontosan, mintha krosszvalidáltál volna.
Ha igazán sok adatod van, akkor persze megteheted. De ha mondjuk 200 zajos mintád van összesen, akkor óriási pazarlás fele-felével tanítani és validálni. Ilyenkor inkább csinálsz egy ötszörös keresztvalidációt, modellt illesztesz 160-ra, teszteled 40-en, újra illesztesz 160-ra és teszteled másik 40-en, majd ugyanezt még háromszor. Így lesz 200 tiszta validációd, aminek az átlaga közelebb lesz a valósághoz, mintha csak 100 mintán validáltál volna - ezt közzéteheted, mint a modelled becsült teljesítményét.
Végül pedig fogod mind a 200 mintát, és mind megtanítod a modellednek. Ilyenkor már nem validálsz semmit (hiszen a modelled teljesítményét már keresztvalidációval megállapítottad), ez már csak az utolsó simítás, hogy adat ne menjen kárba.
A legextrémebb keresztvalidáció az úgynevezett leave-one-out: 199-cel tanítasz, a kimaradó egyen tesztelsz. Megismétled 200-szor. Feltéve hogy nem túl hosszadalmas a tanítás, ez a legpontosabb validáció, hiszen a 199 és 200 mintával tanított modelljeid praktikusan ugyanolyanok lesznek, mégis független mintákkal validáltál végig.





Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!