- View
Videli smo da je u algoritmu k-najbližih suseda potrebno da unapred fiksiramo vrednost broja k, kao i da različiti izbori dovode do različitih zaključaka. Kako da znamo koju vrednost baš da odaberemo? Ovo pitanje prati i sve druge algoritme mašinskog učenja u kojima se pojavljuju neke vrednosti koje unapred treba da definišemo. Takve vrednosti zovemo hiperparametrima ili metaparametrima.
Pomenuli smo da prilikom podele skupa podataka uvek izdvajamo skup za treniranje, skup za testiranje i skup za validaciju. Skup za validaciju do sada nismo koristili. On nam je zapravo potreban kadgod u našem algoritmu učenja figurišu neki hiperparametri čiju najbolju vrednost treba da odredimo. Priča koju ćemo podeliti važi za sve algoritme, ali ćemo nastaviti da koristimo algoritam k-najbližih suseda.
Vratimo se na pitanje kako da odaberemo najbolju vrednost hiperparametra k. Prirodno je da pomislimo: probaćemo više vrednosti, na primer, sve brojeve od 1 do 10, pa ćemo odabrati najbolju vrednost! Ovo ćemo zapravo i uraditi ali ćemo veoma voditi računa o tome gde oprobavamo koliko je naš izbor dobar. Ako to budemo radili nad skupom za testiranje, ogrešićemo se o zlatno pravilo mašinskog učenja o strogoj razdvojenosti skupa za testiranje i razvoja modela: upotrebićemo skup za testiranje da odlučimo koja je najbolja vrednost hiperparametra k, a onda ćemo, kada obučimo model, opet iskoristiti skup za testiranje da ocenimo koliko je dobar! Složićeš se da to i nema baš mnogo smisla!
Korektno je da uradimo sledeće: isprobavaćemo koje vrednosti hiperparametara su najbolje na skupu za validaciju. Taj skup ne deli informacije ni sa skupom za treniranje ni sa skupom za testiranje pa će doprineti objektivnosti naših zaključaka. Sada kada smo to ustanovili, možemo da se bacimo na posao određivanja najbolje vrednosti hiperparametra k.
Za svaku od vrednosti hiperparametra k koju želimo da probamo, posebno ćemo obučiti model na skupu za treniranje i izračunati njegovu meru kvaliteta na validacionom skupu. Neka to u našem slučaju bude tačnost. Dobijene vrednosti možemo da prikažemo grafički tako što ćemo duž x-ose postaviti različite vrednosti parametra k, a duž y-ose vrednosti tačnosti. Vrednost hiperparametra k za koju dobijamo najbolju vrednost mere kvaliteta na validacionom skupu je vrednost hiperparametra koju tražimo. To se na grafiku obično vidi kao region gde su vrednosti najveće.

Prikaz tačnosti modela na skupu za validaciju
Na osnovu prethodnog grafika vidimo da su optimalne vrednosti hiperparametra k zapravo 9, 10, 11, 12 i 13 jer sve rezultiraju istom, najvećom tačnošću modela.
Slični grafici se mogu crtati i za vrednosti hiperparametra i funkciju greške. Tada duž x-ose postavljamo različite vrednosti hiperparametra, a duž y-ose vrednosti funkcije greške. Sada je važno uočiti vrednosti hiperparametra za koju je funkcija greške najmanja.
Kada u algoritmu učenja figuriše više hiperparametara cilj je pronaći najbolju kombinaciju hiperparametara. Nju , takođe, određujemo na osnovu skupa za validaciju prateći uspešnost modela i loveći kombinaciju koja daje najbolju vrednost mere kvaliteta (ili ravnopravno, prateći grešku modela i loveći kombinaciju koja daje najmanju vrednost greške). Nevolja je što ovaj postupak za veliki broj hiperparametara može da bude dosta spor i računski zahtevan: recimo, ako želimo da ispitamo 10 različitih vrednosti broja k i 3 različite funkcije rastojanja, imamo zapravo 10 x 3 = 30 različitih kombinacija pa moramo da obučimo i ocenimo 30 različitih modela.