Kada treniramo model mašinskog učenja, gotovo uvek će se pokazati da model ima bolje performanse na podacima na kojima je treniran. Razlog je što se model prilagođava obrascima u tim podacima, pa se njegov kvalitet može preceniti kada bismo je gledali samo na trening skupu. Naš cilj u evaluaciji modela je da procenimo kako bi se on ponašao u realnom svetu na novim, nepoznatim podacima. Da bismo to postigli, koristimo podelu podataka na trening i test skupove.
Trening skup, kao što mu ime kaže, služi za treniranje modela, tj. za ocenjivanje parametara modela, dok se test skup koristi za nezavisnu proveru performansi modela.
Idealno, prilikom treniranja modela ponašamo se kao da test skup „ne postoji” – oslanjamo se isključivo na trening podatke za sve aspekte modeliranja, uključujući selekciju prediktora i transformaciju podataka. Ovo simulira stvarnu situaciju, gde nemamo uvid u buduće podatke.
Treba imati na umu za koji model mi vršimo evaluaciju, odnosno sa kojom tačno motivacijom pravimo podelu na trening i test skup.
U praktičnom scenariju, mi želimo da napravimo što bolji model. Ako nam je jedini cilj da isporučimo kvalitetan model, treniraćemo model nad svim podacima i proglasiti ga finalnim modelom.
Često imamo za zadatak da damo procenu kvaliteta tog modela. Čin podele na trening i test skup, kao i proces treniranja modela nad trening skupom, i računanje njegovih performansi na test skupu, služi za procenu performansi finalnog modela, a ne modela treniranim nad trening skupom. Razlog je što nas ne zanima kako će da se ponaša model napravljen nad delom podataka, već kako će da se ponaša model u produkciji, u praksi, istreniran nad svim podacima. Pošto su potrebni novi podaci kako bismo napravili nezavisnu evaluaciju, ne možemo direktno da testiramo performanse finalnog modela, istreniranog nad svim podacima, pa vršimo podelu na trening i na test skup, i koristimo perforamnse modela treninarog nad trening skupom kao procenu performansi finalnog modela.
Sama podela na trening i test skup je nasumična. Postavlja se pitanje koji je idealan procenat podataka koji treba da se odvoji za test skup.
Neke standardne preporuke za odnos trening i test skupa koje se mogu pronaći jesu 2:1, 70:30, 4:1, itd. Pošto je za disperziju evaluacije samo bitna ukupna količina podataka u test skupu, treba imati na umu da što imamo više podataka, to nam je procentualno manji test skup potreban za jednako dobru evaluaciju. Tako da, ako bismo imali bazu sa 10000 vrsta, sigurno bi sasvim dovoljno bilo da odvojimo 500, tj. 5% za test skup.
Na malim skupovima podataka, često nije moguće uzeti i dovoljno velik trening skup i dovoljno velik test skup kako bismo bili zadovoljni preciznošću evaluacije. Unakrsna validacija (eng. Cross-Validation) sa k grupa (eng. fold) rešava ovaj problem:
Time se osigurava da svaki podatak bude testiran, a nijedan nije viđen tokom treninga za tu iteraciju, što omogućava stabilniju i pouzdaniju procenu performansi. Praktično dobijamo procenu modela kao da smo koristili \(\frac{k-1}{k}\) udeo podataka za trening skup, a 100% podataka za test.
Mana unakrsne validacije: Iako daje stabilne rezultate, vremenski je skupa jer zahteva treniranje \(k\) modela, što se oseti na većim bazama podataka i pri korišćenju kompleksnijih modela.
Odabir k: Veće k daje precizniju procenu, ali je i vremenski zahtevnije. Kada je broj foldova jednak broju podataka \((k = N)\), pri svakoj iteraciji se model pravi nad svim podacima sem jednog i testira na tom jednom - Leave One Out Cross-Validation (LOOCV). U praksi se za malo veće baze podataka najčešće uzima da je k = 10.
Podela na trening i test (ili unakrsnu validaciju) možemo i da koristimo kada želimo više modela (npr. logistička regresija napsram KNN-a gde je \(K = 10\), ili 2 modela logističke regresije sa različitim prediktorima, ili KNN gde je \(K = 10\) naspram KNN-a gde je \(K = 11\), itd.) da uporedimo, da bismo se odlučili za najbolji. Procena performansi koju dobijamo na test skupu (ili prosečna performansa pri unakrsnoj validaciji) nam služi kao merilo za upoređivanje modela - model koji ima najbolje performanse proglašavamo najboljim i odlučujemo se za njega. Tada finalni model dobijamo trenirajući najbolji model nad svim podacima.
Na sledećim slikama je prikazan primer upoređivanja dva modela
linearne regresije, jedan sa linearnim i kvadratnim članom, a drugi sa
polinomijalnim članovima do desetog stepena. Model 10-tog stepena
(prikazan plavom bojom) je klasičan primer
preprilagođavanja trening podacima, jer uviđa
pravilnosti koje zapravo ne postoje, već su samo specifičnosti trening
skupa.
Kada uporedimo performanse modela (u vidu srednjekvadratne greške) na trening i test skupu, vidimo da sa jedne strane, oba modela značajno manje greše na trening skupu, a sa druge da je model 10-tog stepena bolji na trening skupu, ali lošiji na test skupu, tj. lošije generalizuje nad novim podacima.