- View
Logistička regresija je poznati algoritam koji se koristi za kreiranje modela binarne klasifikacije. On nam uz informaciju o tome kojoj klasi pripada instanca izračunava i verovatnoću pripadnosti toj klasi.
Zamislimo da raspolažemo skupom podataka sa dva atributa \(X_1\) i \(X_2\) i da su instance ovog skupa prikazane kao na donjoj slici. Duž x-ose je predstavljen atribut \(X_1\), duž y-ose atribut \(X_2\), dok boja tačaka označava klasu kojoj svaka od ovih instanci pripada. Složićeš se da bi neki linearni model koji određuje pravu u ravni mogao da nam pomogne u rešavanju zadatka klasifikacije tako što bi razdvojio klase - jedna bi se našla ispod ove prave, a druga iznad. Da bi mogli da zaključujemo na ovaj način, biće nam od koristi sigmoidna funkcija.

Sigmoidna funkcija je popularna funkcija u priči o mašinskom učenju. Određena je jednačinom
\(σ(x)=\frac{1}{1+e^{−x}}\)
i njen grafik izgleda kao na donjoj slici.

Grafik sigmoidne funkcije
Odmah možemo da primetimo da ova funkcija uzima raspon vrednosti od 0 do 1. Što su vrednosti broja \(x\) manje, to je vrednost ove funkcije bliža 0 i, slično, što je vrednost broja \(x\) veća, to je vrednost sigmoidne funkcije bliže 1. Za \(x= 0\) vrednost sigmoidne funkcije je 0,5. Ukoliko ovu vrednost proglasimo pragom i uvedemo pravila:
- ako je vrednosti sigmoidne funkcije veća ili jednaka od 0,5, pridruži x pozitivnoj klasi i
- ako je vrednost sigmoidne funkcije manja od praga 0,5 pridruži x negativnoj klasi
dobićemo jednu funkciju podesnu za zadatak klasifikacije.
Deluje nam i da što su vrednosti broja x, veće to je odluka da se x pridruži pozitivnoj klasi uverljivija jer značajno prelazimo iznad vrednosti praga. Deluje i da što su vrednosti broja x manje da je odluka da se x pridruži negativnoj klasi uverljivija jer značajno prelazimo ispod vrednosti praga. Za vrednosti broja x, koje su oko nule, ovi argumenti su slabiji. Zato sigmoidnoj funkciji možemo pridružiti i interpretaciju verovatnoće pripadnosti nekoj klasi.
Ukoliko povežemo sigmoidnu funkciju i jednačinu linearnog modela, dobićemo jednačinu modela logističke regresije koja u opštem slučaju glasi
\(y=σ(X_1,X_2,...,X_n)=\frac{1}{1+e^{−(ꞵ_0+ꞵ_1X_1+ꞵ_2X_2+ꞵ_3X_3+...+ꞵ_nX_n)}}\).
Argumenti \(X_1, X_2, ..., X_n\) označavaju atribute u skupu podataka, dok su njene vrednosti uu u rasponu od 0 do 1 i kao što smo videli smislene za zadatak klasifikacije. Ovoj jednačini možemo da pridružimo i sledeću geometrijsku interpretaciju: podaci se klasifikuju ili ispod ili iznad ”prave” koja je određena jednačinom linearne veze koju smo u startu i zamislili.
Ukoliko imamo tačno jedan atribut, ”prava” koju pominjemo je zaicta prava. Ako imamo tačno dva atributa, ”prava” je zapravo ravan u prostoru. Ako imamo više od dva atributa, ”prave” su, matematičkim jezikom, hiperravni.
Unakrsna entropija
Funkcija greške koja karakteriše logističku regresiju se zove unakrsna entropija. Upoznajmo prvo intuiciju koja leži iza ove funkcije, a potom upoznajmo i njen matematički oblik.
Rekli smo da vrednost koju nam izračunava model logističke regresije tumačimo kao verovatnoću pripadnosti jednoj od klasa i da se vodimo pravilom da ako ta vrednost pređe prag 0,5 to protumačimo kao pripadnost pozitivnoj klasi, a ukoliko ta vrednost bude manja od 0,5 to protumačimo kao pripadnost negativnoj klasi. Ukoliko vrednost verovatnoće bude baš 0,5, to tumačimo kao pripadnost pozitivnoj klasi.
Funkciju greške izračunavamo na skupu za treniranje. U njemu za svaku instancu znamo koja su tačna obeležja pa uvek možemo da ih upoređujemo sa obeležjima koja je izračunao, tj. pridružio model.
Pretpostavimo da je za tri instance koje pripadaju pozitivnoj klasi model logističke regresije redom izračunao vrednosti 0,94, 0,56 i 0,3. U prvom slučaju je vrednost bliska jedinici pa označava sigurnu odluku modela. U drugom slučaju je ova vrednost manja i bliže pragu klasifikacije, ali dovoljna za dobru odluku modela. U trećem slučaju je vrednost ispod praga pa bi navela model da pogreši. Prilikom dizajniranja funkcije greške želimo da više kaznimo izračunavanja modela koja za pozitivne instance više odstupaju od vrednosti 1, tj. da učinimo da njihovi doprinosi ukupnoj grešci modela budu veći. Jedna takva funkcija koja zadovoljava traženo svojstvo je \(− log(x)\) čiji je grafik prikazan na donjoj slici. Predznak minus nam je potreban da bi greška dobila pozitivnu vrednost jer je logaritam negativan za vrednosti argumenta funkcije koje su od 0 do 1. Na grafiku možemo i da vidimo da su vrednosti funkcije male za argumente bliže 1, tj. da su vrednosti funkcije veće za argumente koji su bliže nuli. Tako će sada, redom, doprinosi ukupnoj grešci izdvojenih instanci biti \(− log(0.94)= 0.062\), \(− log(0.56)= 0.579\), \(− log(0.3)= 1.203\) i baš odnosa veličina koji smo želeli. Možemo ih zabeležiti i u tabeli, na način na koji smo to radili i u zadatku linearne regresije. U prvoj koloni ćemo smestiti obeležje klase (tačnu vrednost), u drugoj koloni verovatnoću p koju je izračunao modela, dok ćemo u trećoj koloni upisati vrednost \(− log(p)\). Primetimo da u imenu kolone stoji \(− y ∗ log (p)\), no kako je \(y = 1\) ovo je isto kao \(− log(p)\).

Odaberimo sada tri instance negativne klase i prodiskutujmo očekivanja koja imamo od funkcije greške u njihovom slučaju. Neka su, redom, verovatnoće koje je izračunao model logističke regresije 0,03,0,48 i 0,74. Sada je u prvom slučaju vrednost modela bliska nuli pa označava sigurnu odluku o pripadnosti negativnoj klasi. U drugom slučaju ova vrednost je blizu pragu klasifikacije, ali jeispod njega, pa je opet dovoljna da model odluči o negativnoj klasi. U slučaju treće instance, vrednost verovatnoće je preko praga pa će model pogrešiti i instancu klasifikovati kao pozitivnu. Ono što očekujemo od funkcije greške za negativne instance je da njihov udeo u ukupnoj grešci bude što veći što su one dalje od nule. Jedna takva funkcija koja zadovoljava ovo svojstvo je \(− log(1 − p)\) i njen grafik je prikazan na slici ispod. Opet koristimo funkciju sa predznakom minus kako bi vrednost greške bila pozitivna. Možemo sada zapisati i vrednosti ove funkcije u tabeli. Sada su u prvoj koloni obeležja instanci sa vrednošću 0, u drugoj koloni verovatnoće p koje je model izračunao, dok su u poslednjoj koloni vrednosti funkcije greške \(− log(1 − p)\). S obzirom na to da je \(y = 0\) za sve instance, obeležje u imenu kolone \(−(1 − y) ∗ (1 − p)\) ništa ne menja.

Ukupna vrednost funkcija unakrsne entropije se dobija kada se saberu doprinosi grešaka svih pozitivnih i svih negativnih instanci (slično kao što smo radili u zadatku linearne regresije i srednjekvadratne greške). To skraćeno zapisujemo u obliku
\(−\sum\limits_{i = 1}^{N}(y_i⋅log(p_i)+(1−y_i)⋅log(1−p_i))\)
gde zapravo prvi faktor sumira doprinose grešaka pozitivnih instanci a drugi faktor doprinose grešaka negativnih instanci. Vrednost yi je tačno obeležje klase iz skupa za treniranje a pi verovatnoća koju je izračunao model logističke regresije. Ova greška se zove unakrsna entropija (eng. binary crossentropy).
Vrednosti nepoznatih parametara \(β\) u modelu logističke regresije se pronalaze tako što se bira ona vrednost parametara za koju je funkcija unakrsne greške najmanja. Tehnika gradijentnog spusta nam može pomoći i u ovom slučaju.
Upoznajmo sada jedan malo drugačiji algoritam klasifikacije.
