Poglave 6 Logistična regresia Se bo osnovnošolec Vinko uvrstil v drugi krog tekmovana iz kemie? Se bo po sredni šoli vpisal na Kemisko fakulteto? Ga bo zaposlilo podete, ki se ukvara z biofarmacio? Bo negov košarkaški klub Olimpia premagal Crveno zvezdo to soboto? Se bo poročil s sosedovo Niko? Bo negova idea o tekočini, ki vsakih 35 minut spremeni barvo, uspela na Kickstarteru? Morda smo s kakšnim od zgornih vprašan zašli, a na vsa eno od naštetih vemo, da e nan možno dovol dobro odgovoriti. So pa to vprašana, ki niso regresiska, oziroma e napoved kategoričnega tipa bo ali ne bo. Še bol natančno: za vsako od zgornih vprašan bi pravzaprav radi ocenili veretnost, ali se bo nek dogodek zgodil. Recimo, zanima nas, s kakšno veretnosto se bo Vino poročil z Niko. In pa, s kakšno veretnosto bo negov kicksterski proekt uspel. Seveda bomo tudi tokrat napovedne modele, seda klasifikaciske, gradili iz podatkov. Za silo bi take podatke in s tem problem spremenili v regresiskega tako, da bi odgovore označili z vrednosto 0 (dogodek se ni zgodil) ali 1 (dogodek se e zgodil), potem pa to vrednost obravnavali kot zvezno vrednost odvisne spremenlivke oziroma razreda y. Primer take obravnave nam kaže tabela 6.1 s podatki o obiskovalcih ordinacie, ki im e zdravnik izmeril telesno temperaturo in potem (seveda na podlagi dodatnih preiskav, ki pa ih tu ne podaamo) določil zdravstveno stane. Naš cil e zgraditi model, ki zdravstveno stane oceni (samo) na podlagi telesne temperature. Podatke predstavimo grafično (slika 6.1) in si potem nane drznemo vpeti linearno funkcio y h(x). Napre opazimo, da e zaloga vrednosti funkcie h(x) neprimerna, sa gre ta od do. Na intervalu telesnih temperatur okoli točke 37 ima funkcia sicer vrednost med 0 in 1. Poavi pa se vprašane, kako vrednost te linearne funkcie sploh interpretirati, oziroma kako o pretvoriti v veretnost. Spomnimo se, da vsaka veretnostna funkcia vrača vrednosti med 0 in 1, naša linearna funkcia pa e omeena na ta interval samo v določenem območu vrednosti vhodnega atributa. Dodaten problem e še z osamelci, oziroma obiskovalci s skranimi vrednostnimi atributov. Če bi podatkom dodali še en primer bolnika z zelo visoko temperaturo, bi se naša funkcia prece spremenila in pomaknila v desno. Potrebuemo nek 55
56 POGLAVJE 6. LOGISTIČNA REGRESIJA Tabela 6.1: Telesna temperatura in stane pregledovanca, ki smo ga zapisali v numerični obliki kot razred y. temperatura stane y 36,5 zdrav 0 36,6 zdrav 0 36,8 zdrav 0 36,9 bolan 1 37,0 zdrav 0 37,2 bolan 1 37,5 bolan 1 37,6 bolan 1 39,5 bolan 1 predpis, ki bi vrednosti take funkcie pretvoril v veretnosti in ih morda blizu y 0 in y 1 malce zmehčal. 1.2 1.0 0.8 0.6 0.4 0.2 0.0 0.2 36.0 36.5 37.0 37.5 38.0 38.5 39.0 39.5 40.0 Slika 6.1: Poskus klasifikacie z linearno regresio. 6.1 Logistična funkcia Funkcia, ki o bomo uporabili in ki neko realno število pretvori v število na intervalu [-1, 1], e logistična funkcia (slika 6.2): g(z) 1 1 + e z (6.1) Logistična funkcia e zvezna, monotona, z z konvergira proti 0 in z z proti 1.
6.2. LOGISTIČNA REGRESIJA 57 1.0 0.8 0.6 0.4 0.2 0.0 10 5 0 5 10 Slika 6.2: Logistična funkcia. Je odvedliva pri vseh vrednosti nenega parametra. Nen odvod e: dg(z) dz d 1 dz 1 + e z 1 (1 + e z ) 2 e z 1 e z 1 + e z 1 + e z 1 1 + e z 1 1 + e z 1 + e z 1 ( 1 ) 1 1 + e z 1 + e z g(z)[1 g(z)] (6.2) 6.2 Logistična regresia Zapišimo seda naš klasifikaciski model. V osnovi bo to linearni model, tore utežena vsota vrednosti atributov. A tokrat o bomo transformirali z logistično funkcio, da bo vrednost modela izražala pripadnost (veretnost) cilnemu razredu: h θ (x) g(θ 0 + θ 1 x 1 + θ 2 x 2 +... θ n x n ) g(θ T x) 1 1 + e θt x (6.3) Model zaradi uporabe logistične funkcie imenuemo logistična regresia.
58 POGLAVJE 6. LOGISTIČNA REGRESIJA 6.3 Računane veretnosti razreda V nadalevanu bomo tore logistično funkcio uporabili tako, da nam bo naš model h θ (x), ki e v osnovi linearni model, vračal vrednosti med 0 in 1. Še napre bomo predpostavlali, da e naša razredna spremenlivka dvovrednostna, a privzeli, da e nena cilna vrednost razred z oznako y 1 in da zan model h θ (x) vrača veretnost tega razreda. K oznaki modela smo namenoma pripisali oznako za vektor parametrov θ in na ta način poudarili, da ti parametri tudi polno opredelio naš model. Zapišemo tore lahko: P(y 1 x; θ) h θ (x) (6.4) P(y 0 x; θ) 1 h θ (x) (6.5) Izraz za P(y 1 x; θ) nam tore podaa veretnost, da e razred primera, ki e opisan z vektorem atributnih vrednosti x, enak 1. Oziroma podaa veretnost, da neodvisna spremenlivka zavzame vrednost 1 pri opisu primera x in parametrizacii modela s parametri θ. En sam izraz, ki združi zgorni enačbi v eno in ki podaa veretnostno porazdelitev za spremenlivko y e: p(y x; θ) (h θ (x)) y (1 h θ (x)) 1 y (6.6) Pravilnost zgornega izraza preveri tako, da za vrednost spremenlivke y vstaviš enkrat y 1 in drugič y 0. 6.4 Verete Izraz za p(y x; θ) v enačbi 6.6 tore podaa veretnost za določeno vrednost neodvisne spremenlivke in določen vektor atributnih vrednosti pri modelu, ki e podan z θ. Seda pa si predstavlamo, da vrednosti elementov vektora θ spreminamo. Prav gotovo se bo na ta način tudi spreminala veretnost za dani razred pri izbranem primeru; enkrat bo ta veretnost viša, drugič niža. Zamrznimo seda parametre modela θ in izračunamo veretnosti L(θ) pravih razredov y za primere v učni množici, ki o opišemo z matriko atributnih vrednosti X. Predpostavlamo, da so primeri iz učne množice neodvisni in zato veretnost za vrednosti spremenlivke y za celotno učno množico lahko zapišemo kot produkt veretnosti za vrednost y za posamezne
6.5. GRADIENT LOGARITMA VERJETJA 59 primere: L(θ) p( y X; θ) m p(y (i) x (i) ; θ) m h θ (x (i) ) y(i) (1 h θ (x (i) )) 1 y(i) (6.7) Kot smo označili v zgorni funkcii L, e ta veretnost odvisna od parametrov modela θ. Kakšen model bi želeli imeti? Tak, pri katerem e veretnost L(θ) naveča. Tore tak model, ker bo veretnost, da bo model napovedal take vrednosti razredov, kot so v učni množici, naveča. L(θ) igra vlogo kriteriske funkcie, ki pa o tokrat maksimiziramo. Funkcio L imenuemo verete. Iščemo tore parametre θ, ker e nena vrednost naveča. Tudi tokrat bomo tako vrednost parametrov iskali z gradientnimi pristopi, za te pa seda že vemo, da moramo znati izračunati odvode po posameznih parametrih, oziroma, da moramo znati izračunati gradient kriteriske funkcie. Ker e odvaane funkci z mnogo produkti, tore funkci, kot e naša L(θ), prece mučno, se vprašamo, ali obstaa kakšna preslikava funkcie L, za katero bi bilo laže izračunati odvod in pri kateri bi vrednosti θ, ki to funkcio maksimizirao prav tako maksimizirale tudi funkcio L(θ). Taka preslikava e logaritemska funkcia, ki e na intervalu od 0 do monotona in bo tore vektor θ, ki maksimizira log(l(θ)) tak, da maksimizira tudi L(θ). Logaritem L(θ) označimo kot l(θ) in ga izračunamo kot: l(θ) log L(θ) [ y (i) log h θ (x (i) ) + (1 y (i) ) log(1 h θ (x (i) )) ] (6.8) Namesto kriteriske funkcie L(θ) bomo tore uporabili funkcio l(θ), ki i pravimo tudi logaritem vereta (angl. log likelihood). 6.5 Gradient logaritma vereta Iščemo tore tak θ, ki maksimizira logaritem vereta l(θ). Ker bomo uporabili gradientno metodo in ker e θ vektor [θ 0 θ 1... θ n ], moramo izračunati parcialne odvode naše kriteriske
60 POGLAVJE 6. LOGISTIČNA REGRESIJA funkcie: θ l(θ) [ y (i) log h θ (x (i) ) + (1 y (i) ) log(1 h θ (x (i) )) ] θ [ y (i) 1 g(θ T x (i) ) (1 1 y(i) ) 1 g(θ T x (i) ) [ y (i) g(θ T x (i) ) (1 y(i) ) 1 g(θ T x (i) ) [ y (i) g(θ T x (i) ) g(θ T x (i) )(1 g(θ T x (i) )) (y (i) g(θ T x (i) ))x (i) (y (i) h θ (x (i) ))x (i) ] θ g(θ T x (i) ) ] g(θ T x (i) )(1 g(θ T x (i) )) θ θ T x (i) ] g(θ T x (i) )(1 g(θ T x (i) ))x (i) Zelo enostavno! Smo tak rezultat oziroma tako enačbo videli že ke pre? Seveda! Pri linearni regresii. Parcialni odvodi so identični tem za linearno regresio. Seveda z mahno razliko. Tokrat naša funkcia h θ uporabla logistično funkcio (en. 6.3), pri linearni regresii pa e bila h θ samo utežena vsota atributnih vrednosti. 6.6 Optimizacia parametrov modela Postopek iskana parametrov modela e identičen temu pri linearni regresii. Seveda, z mahno razliko, da e tokratni model h θ (x) model logistične regresie. osveževane vrednosti parametra θ : θ θ + α Vseeno zapišimo korak za ( y (i) h θ (x (i) ) ) x (i) (6.9) Tudi tokrat e α stopna učena, katerega vrednost e pri normaliziranih podatkih tipično mahna (npr. 0.001). Tuka vela opozorilo. Pristop z gradientnim sestopom e počasen in e, že za sredne velike podatke, potrebno izvesti mnogo iteraci popravlana vrednosti parametrov θ. Namesto te tehnike tipično uporablamo optimizaciske tehnike, ki imao hitrešo konvergenco. Ena od teh e postopek L-BFGS, ki pa ga tipično uporabimo iz za to dostopne knižnice. Na vhodu postopek L-BFGS potrebue cenovno funkcio (tore l(θ)) in pa nen gradient, ki smo ga izračunali zgora (en. 6.9).