Mnogo puta do sada smo ponovili da se podaci pre primene algoritma mašinskog učenja dele na skup za treniranje i skup za testiranje (validacioni skup uključujemo onda kada nam je to neophodno). Pomenuli smo i da je postupak podele nasumičan. Možda si se pitao da li bi neke drugačije podele, u odnosu na one koje smo odabrali, dovele do drugačijih rezultata rada modela. Možda baš za neku konkretnu podelu skupa podataka dobijamo optimističnije rezultate ili drastično lošije. I to je neka vrsta prilagođavanja.

 Kadgod veličine skupova podataka i odabrani algoritmi dozvoljavaju, poželjno je zapravo izvršiti više podela polaznog skupa podataka na skup za treniranje i skup za testiranje tako da svaka instanca u skupu podataka dobije priliku da se nađe i u jednom i u drugom skupu. Jedan takav postupak koji ćemo opisati se zove   unakrsna validacija   (eng.  cross validation  ). U primeru ćemo koristiti algoritam linearne regresije, ali je priča opšta i važi za sve algoritme.

 Podelimo skup podataka na 10 delova kao na donjoj slici. U prvom koraku izdvojimo prvi deo skupa za testiranje a preostalih devet delova zadržimo za treniranje. Da bi lakše mogao da pratiš, skup za testiranje je na slici obojen žutom bojom, a skupovi za treniranje plavom. Obučimo sada prvi model linearne regresije na skupu za treniranje i izračunajmo vrednost njegove srednjekvadratne greške na skupu za testiranje. Dobijenu vrednost možemo obeležiti sa MSE1  . U koraku dva izdvojimo drugi deo skupa za testiranje, a preostalih devet delova za skup za treniranje. Sada je na slici drugi deo obojen žutom bojom, a preostali delovi plavom. Ponovo obučimo model linearne regresije na skupu za treniranje (to je sada drugi model) i izračunajmo vrednost njegove srednjekvadratne greške na skupu za testiranje. Obeležimo sada ovu vrednost sa MSE2  . Nastavimo ovaj postupak sve dok ne stignemo do poslednjeg, desetog, dela: sada ćemo njega zadržati kao skup za testiranje, a preostale delove ćemo iskoristiti za treniranje modela. Nad njime ćemo obučiti deseti po redu model linearne regresije a potom i izračunati srednjekvadratnu grešku MSE10   na skupu za testiranje.

Unakrsna validacija sa 10 slojeva

Pošto imamo 10 različitih podela skupa podataka imamo i 10 različitih vrednosti srednjekvadratne greške. Prosek dobijenih vrednosti (MSE1   + MSE2   + … + MSE10  )/10 zapravo najbolje ukazuje kako se ponaša naš model i pomaže nam da razrešimo dileme koje smo imali u startu u vezi sa uticajem podele na uspešnost rada modela. Ono što nije baš najjasnije je koji to od 10 različitih modela kojima raspolažemo treba da odaberemo. Da li onaj čija je greška najmanja ili neki drugi? Zapravo , sada bi trebalo da obučimo novi model nad celim skupom podataka i dalje ga koristimo - njegovo ponašanje smo aproksimirali i ocenili ponašanjima svakog od 10 obučenih modela.

Opisani postupak se zove unakrsna validacija sa 10 slojeva (eng.  10 -fold cross validation  ). U praksi se koriste i podele sa 3 i 5 slojeva, a izbori zavise od veličine skupa podataka i vrste algoritama koji se koriste. Takođe , postoji i podela u kojoj broj slojeva odgovara broju instanci u skupu podataka, takozvana   izostavi jednu instancu   unakrsna validacija (eng.  leave-one -out cross validation  ).

Last modified: Saturday, 21 June 2025, 9:29 PM