regresione metode - odlučivanje | centar za poslovno...
TRANSCRIPT
Regresione metode
Regresionе metode se u praksi veoma uspešno koriste za rešavanje problema procene i
klasifikacije. Linearna regresija služi za rešavanje zadatka procene, tj. predviđanja
kontinualnih zavisnih promenljivih. Logistička regresija služi za rešavanje zadatka
klasifikacije, tj. predviđanja kategoričkih ili binarnih zavisnih promenljivih.
Linearna regresija
Linearna regresija je algoritam koji rešava zadatak procene tj. uspostavlja vezu
između:
jedne ili više ulaznih varijabli (prediktora) koje mogu biti kontinualnog ili
kategoričkog tipa
i izlazne varijable koja je kontinualnog tipa.
Jedan od primera ovakvog zadatka je određivanje cene stana na osnovu njegove
kvadrature. Na Slici 1 dat je primer podataka, koji mogu da posluže za rešavanje
ovakvog zadatka. Slučajevi ovog problema predstavljaju stanovi koji se nalaze u
okviru jednog naselja (na sličnoj su lokaciji) i imaju sličan nivo opremljenosti. Ovi
stanovi se razlikuju po kvadraturi (x-osa) i prodajnoj ceni (y-osa). Potrebno je kreirati
model koji će određivati (predviđati) cene na osnovu kvadrature stanova.
Slika 1. Zavisnost cene od kvadrature stanova
Linearna regresija pretpostavlja linearnu zavisnost između ulaznih i izlazne
promenljive. To znači da linearna regresija zapravo pokušava da pronađe liniju koja
opisuje (pretpostavlja) vezu između ulaznih i izlaznog podatka (ravan u slučaju dve
promenljive i hiper-ravan u slučaju više promenljivih). Dakle, pretpostavljeni model ili
hipoteza, linearne regresije za slučaj jedne promenljive je:
( )
Jasno je da ova hipoteza predstavlja jednačinu prave (pretpostavlja se da su ulazne i
izlazne promenljive linearno zavisne). Dakle osnovni problem linearne regresije je
pronaći takve paramere i (pravu) koja “najbolje” opisuje vezu između ulaznih
promenljivih i izlazne promenljive. Na Slici 2 je predstavljeno nekoliko mogućih
hipoteza.
Slika 2. Hipoteze linearne regresije
Intuitivno je jasno da središnja hipoteza najbolje opisuje vezu između ulaza (x-osa) i
izlaza (y-osa) podataka sa slike. Međutim za analitičko pronalaženje najbolje hipoteze
(linije) neophodno je definisati funkciju cilja, tj. meru kvaliteta hipoteze (linije). U
slučaju linerne regresije kvalitet hipoteze se meri kao prosečna vrednost odstojanja
svih slučajeva od hipoteze.
Slika 3. Ostojanja slučajeva od hipoteze
Na Slici 3 su prikazane dve hipoteze, gde je odstojanje od nekih slučajeva
predstavljeno strelicama. Jasno da vidi da hipoteza koja se nalazi na desnoj strani ima
manje ukupno ostojanje slučajeva od hipoteze. Takođe se može primetiti da rastojanja
mogu da budu pozitivna ili negativna (nalaze se sa gornje ili donje strane hipoteze).
Da se pozitivna i negativna odstojanja ne bi anulirala pri računanju aritmetičke
sredine, konačna funkcija cilja se računa kao kvadratno odstojanje:
( ) ∑( ̅ )
Gde predstavlja broj slučajeva u skupu podataka, prave izlazne vrednosti, a ̅ predviđene vrednosti slučajeva. Dakle, funkcija cilja (eng. “cost”) se može izraziti
kao:
( ) ∑( ( ) )
Kada su hipoteza i funkcija cilja definisane, problem pronalaženja najbolje hipoteze
može da se postavi kao optimizacioni problem. Poznato je da kvadratne funkcije imaju
osobinu konveksnosti i glatkosti, što znači da one imaju globalni minimum i da u
svakoj tački imaju izvod. Primeri konveksne i nekonveksne funkcije su dati na slici
ispod.
Slika 4. Primer nekonveksne i konveksne funkcije
Zbog navedenih osobina (glatkosti i konveksnosti) funkcije cilja, moguće je koristiti
metodu najbržeg (gradijentnog) spusta, kako bismo pronašli optimalnu hipotezu.
Poznato je da se ekstremna vrednost kvadratne funkcije nalazi u tački gde je njen prvi
izvod jednak nuli. Takođe je poznato da prvi izvod funkcije određuje pravac najbržeg
rasta (ili opadanja ukoliko se pomnoži sa -1). Na osnovu ove činjenice definisana je
metoda “najbržeg spusta”. Ova metoda iterativno “pomera” parametre i u pravcu
prvog izvoda funkcije. Ova metoda garantuje konvergenciju, ukoliko je pomeraj
parametara i dovoljno mali, odnosno, pomeraj se množi sa proizvoljno malom
vrednošću ( ). Prvi izvod funkcije cilja po parametrima i se
može izraziti sledećim formulama:
1. ( )
∑ (( ) )
2. ( )
∑ (( ) )
Metoda najbržeg spusta se može opisati sledećim algoritmom:
1. Inicijalizovati vrednosti parametara i
2. Izračunati funkciju cilja ( ) ∑ ( ̅)
3. Ponavljati korake 4., 5. i 6. do optimalnosti ( )
4.
∑ (( ) )
5.
∑ (( ) )
6. Izračunati funkciju cilja ( ) ∑ ( ̅)
7. Ukoliko je ( ) optimalna, zaustvlja se izvršavanje, ukoliko nije, vratiti se na
korak 3.
Kao što je već rečeno linearna regresija rešava problem procene (predviđanja
kontinualnog izlaza), međutim ideja linearne regresije se uz male izmene može veoma
uspešno koristiti i za rešavanje problema klasifikacije. Algoritam koji implementira
ovu intuiciju, naziva se Logistička regresija i biće opisan u daljem tekstu.
Logistička regresija:
Kao što je već rečeno, logistička regresija služi za rešavanje problema klasifikacije.
Problem klasifikacije se definiše kao problem uspostavljanja veze između jedne ili
više ulaznih varijabli (prediktora) koje mogu biti kontinualnog ili kategoričkog tipa i
izlazne varijable koja mora biti kategoričkog ili binarnog tipa. U ovom tekstu ćemo
razmatrati samo probleme sa binarnim izlazom koji se jako često sreću u praksi.
Ukoliko se binarna izlazna promenljiva predstavi sa numeričkim vredmostima: 1 i 0,
moguće je iskoristiti ideju linearne regresije za rešavanje problema klasifikacije.
Primer rešavanja problema binarne klasifikacije uz pomoć ideje linearne regresije
ilustrovan je na Slici 5. Na Slici 5 su opisani klijenti koji su uzeli kredit od banke. Na
X-osi se nalaze iznosi njihovih plata, a na Y-osi indikator vraćanja kredita. Dakle, svi
slučajevi mogu uzeti samo vrednosti 0 (klijent neće vratiti kredit) ili 1 (klijent će
vratiti kredit).
Slika 5. Primer problema klasifikacije
Korišćenjem algoritma linearne regresije, moguće je pronaći optimalnu hipotezu koja
minimizuje prosečno kvadratno odstajanje. Međutim, pošto sada ne određujemo
kontinualnu vrednost izlaza, već pripadnost klasi (0 ili 1), neophodno je odrediti
granicu odluke (za koje vrednosti hipoteze se odlučujemo da dodelimo klasu 1). Na
Slici 5, ta granica je 0.5 (horizontalna linija) Dakle, za vrednosti hipoteze koje se
nalaze sa leve strane tačke preseka hipoteze (isprekidane linije) i granice odluke
(horizontalne linije)biće doneta jedna odluka, a za ostale druga. Ova podela je
ilustrovana vertikalnom linijom (deli skup na klijente koji imaju platu manju ili
jednaku 30000 RSD i klijente koji imaju platu veću od 30000RSD).
Dodela klase (predikcija) se vrši na sledeći način: slučajevima koji imaju predviđenu
vrednost veću ili jednaku 0.5, dodeljuje se klasa 1, dok se ostalim slučajevima
dodeljuje klasa 0. Odnosno, za sve slučajeve koji imaju primanja iznad određene
granice (u ovom slučaju 30000 RSD), očekuje se da će vratiti kredit. Na Slici 5 ovakva
granica odluke bi rezultirala savršenom klasifikacijom (svi slučajevi bi bili svrstani u
odgovarajuće klase).
Međutim, ovakav način klasifikacije je veoma osetljiv na promenu ulaznih podataka.
Ovo je ilustrovano na Slici 6. Možemo videti da dva slučaja odstupaju od ostalih po
iznosu plate (90000 i 110000 RSD).
Slika 6. Primer nekonveksne i konveksne funkcije
U ovom slučaju optimalna hipoteza linearne regresije je nešto drugačija. Ukoliko
koristimo granicu odluke 0.5, predvidećemo da će kredit vratiti samo klijenti koji
imaju platu veću od 40000 RSD (što nije ispravno jer su i svi klijenti koji imaju platu
između 30000 I 40000 RSD vratili kredit).
Jasno je da u opštem slučaju linearna regresija ne može kvalitetno da rešava probleme
klasifikacije. Jedan od razloga leži u tome što funkcija cilja ne odgovara problemu
klasifikacije. Ona smanjuje ukupno odstojanje slučajeva od hipoteze, a potrebno je
razvrstati slučajeve u grupe bez preklapanja. Takođe hipoteza nije odgovarajuća, jer za
problem klasifikacije nam je potrebno da znamo stepen pripadnosti određenoj klasi,
kako bismo za sve probleme mogli da odredimo jedinstvenu granicu odluke.
0
0.25
0.5
0.75
1
10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 110000
Plata (RSD)
Nije vratio kredit
Vratio kredit
Hipoteza Logističke regresije
Dakle za rešavanje problema klasifikacije je potrebna hipoteza koja će na najbolji
mogući način da razdvoji dve klase u zavisnosti od vrednosti ulazne promenljive. Na
Slici 7, se može videti jedna takva hipoteza. U ovom slučaju, kada je granica odluke
0.5 svi slučajevi su dobro klasifikovani iako neki slučajevi značajno odstupaju na
ulazu. Na postavljena hipoteza na
Slika 7. Linearna hipoteza koja dobro razdvaja slučajeve
Ipak, čak i sa ovako optimizovanom funkcijom cilja, linearna hipoteza, nije ograničena
na interval [0,1] (na Slici 7, klijenti koji imaju platu veú od 40000 imaće vrednost
hipoteze veću od 1) i nije pogodna za interpretaciju. To zapravo znači da u slučaju
binarne klasifikacije, mi želimo da odredimo stepen pripadnosti (verovatnoću ili
šansu) klasi 1 ili klasi 0. Baš ove osobine daje logistička kriva.
0
0.25
0.5
0.75
1
10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 110000
Plata (RSD)
Nije vratio kredit
Vratio kredit
Slika 8. Logistička funkcija
Logistička hipoteza zapravo preslikava linearnu hipotezu na S krivu koja je ograničena
na interval [0,1]. Dakle, kod logističke regresije, ostaje linearna hipoteza (pronaći
liniju koja najbolje razdvaja pozitivne od negativnih slučajeva), ali je ta hipoteza
integrisana u tzv. Logit funkciju, koja se može interpretirati kao Logaritam šanse da
novi slučaj pripada pozitivnoj klasi. Primer logističke hipoteze je prikazan na Slici 9.
Slika 9. Primer logističke funkcije
0
0.25
0.5
0.75
1
10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 110000
Plata (RSD)
Nije vratio kredit
Vratio kredit
Dakle, formula hipoteze logističke regresije je:
( )
( )
Funkcija cilja Logističke regresije
Obzirom da hipoteza logističke regresije zapravo predviđa samo verovatnoću
pripadosti klasi 1 (pozitivnoj klasi), neophodno je definisati funkciju cilja na sledeći
način.
Za slučajeve koji pripadaju klasi 1, a predviđena verovatnoća pripadnosti klasi 1 niska,
funkcija cilja se penalizuje visokim vrednostima. Obrnuto, kada je predviđena
verovatnoća pripadnosti klasi 1 visoka, fukcija cilja se penalizuje niskim vrednostima.
Ova situacija je opisana na Slici 9 (levo). Na X-osi se nalazi hipoteza (predviđena
verovatnoća pripadnosti klasi 1), a na Y-osi cena (“Cost”) greške.
Slika 9.
Na Slici 9 (desno) opisana je situacija za slučajeve koji pripadaju klasi 0: sa porastom
verovatnoće da slučaj pripada klasi 1, funkcija cilja plaća veći penal.
Dakle, funkcija cilja (“Cost”) logističke regresije je opisana sledećom formulom.
( ( ) ) { ( ( ))
( ( ))
Pošto kod binarne klasifikacije imamo dva moguća ishoda modela, funkciju cilja
možemo napisati u sledećem obliku:
( )
[∑ ( ) ( ( )) ( ( )) ( ( ( )))
]
Kao i u slučaju linearne regresije, i ova funkcija je konveksna i glatka, tako da se može
egzaktno rešiti metodom najbržeg spusta. Dodatno, izvodi funkcija cilja logističke i
linearne regresije su identični, što znači da je i postupak optimizacije identičan.
Zadaci
1) Logistička regresija sa jednom promenljivom
U tabeli nalazi se cena kvadrata u stoninama evra i to da li je stan bio prodat ili ne,
izračunati:
a) cost funciju za inicijane vrednosti parametra θ0 = 0; θ1 = 0;
b) na osnovu algoritma najbržeg spusta optimizovati parametre θ0 i θ1 ukoliko
je veličina koraka α = 0,01 (uraditi jednu iteraciju)
c) na osnovu dobijenih vrednosti parametara (pod b) ponovo izračunati cost
funkciju
Tabela slučajeva:
Cena kvadrata (*100) Prodat stan
5 1
8 0
6 1
7 0
10 1
Rešenje:
A) Računanje funkcije cilja (cost funkcije) Prvo računamo hipotezu logističke regresije za svaki slučaj u tabeli slučajeva.
θ0+ θ1x ( )
( ) Prodat
0+0*5 = 0 0,5 1
0+0*8 = 0 0,5 0
0+0*6 = 0 0,5 1
0+0*7 = 0 0,5 0
0+0*10 = 0 0,5 1
Kada smo izračunali hipoteze za svaki slučaj, možemo izračunati ukupnu vrednost
funkcije cilja (greške hipoteze), na osnovu sledeće formule:
( )
[∑ ( ) ( ( )) ( ( )) ( ( ( )))
]
J(θ) = -1/5*(1*log(0,5) + (1-1)*log(1- 0,5) + 0*log(0,5) + (1-0)*log(1- 0,5)
+ 1*log(0,5) + (1-1)*log(1- 0,5)+ 0*log(0,5) + (1-0)*log(1- 0,5) + 1*log(0,5)
+ (1-1)*log(1- 0,5) )
J(θ) = 0,693
B) Optimizacija funkcije cilja (metoda najbržeg spusta)
Nakon izračunavanja inicijalne greške, pokušaćemo tu grešku da smanjimo,
korišćenjem metode najbržeg spusta. Za svaki parameter , računamo izvod i
pomeramo parameter u obrnutom pravcu od izvoda (da bi se kretali ka minimumu),
koji je skaliran parametrom . Ovo pomeranje se radi po formuli:
j = ∑ ( ( ( )) ( )) ( )
Kada uvrstimo vrednosti u formula, dobijamo:
θ0 = 0 – 0,001*((0,5-1)*1 + (0,5 – 0)*1 + (0,5 – 1)*1 + (0,5 – 0)*1 + (0,5 – 1)*1)
θ0 = 0.005;
θ1 = 0 – 0,001*((0,5-1)*5 + (0,5 – 0)*8 + (0,5 – 1)*6 + (0,5–0)*7+(0,5 – 1)*10)
θ1=0.03;
C) Računanje funkcije cilja na osnovu novih parametara Ovaj postupak je identičan kao i pod A), samo što koritimo nove parametre hipoteze
(θ0 = 0.005 i θ1=0.03)
θ0+ θ1x ( )
( ) Prodat
0.005 +0.03*5 = 0.155 0.5387 1
0.005+0.03*8 = 0.245 0.5609 0
0.005+0.03*6 = 0.185 0.5461 1
0.005+0.03*7 = 0.215 0.5535 0
0.005+0.03*10 = 0.305 0.5756 1
J(θ) = -1/5*(1*log(0.5387) + (1-1)*log(1- 0,5387) + 0*log(0,5609) + (1-0)*log(1-
0,5609) + 1*log(0,5461) + (1-1)*log(1- 0,5461) + 0*log(0,5535) + (1-0)*log(1-
0,5535) + 1*log(0,5756) + (1-1)*log(1- 0,5756) )
J(θ) =0.681
2) Logistička regresija sa dve promenljive
U tabeli nalazi se podaci o klijentima. Pravi se model koji predviđa da li će klijent
vratiti kredit. Svako klijent opisan je starošću (u desetinama godina) i visinom
primanja (pomoženo sa 10.000 dinara). Izračunati:
a) cost funciju za inicijane vrednosti parametra θ0 = 0.01; θ1 = 0.02; θ2=0.05
b) na osnovu algoritma najbržeg spusta optimizovati parametre θ0 i θ1 ukoliko
je veličina koraka α = 0,05 (uraditi jednu iteraciju)
c) na osnovu dobijenih vrednosti parametara (pod b) ponovo izračunati cost
funkciju
Tabela slučajeva:
Starost (*10) Visina primanja (*10.000) Vratio kredit
2.5 4 0
5 3 1
4 3 0
A) Računanje funkcije cilja:
θ0+ θ1x1 + θ2x2 ( )
( )
Vratio
kredit
0.01+0.03*2.5 + 0.05*4 = 0.285
( )= 0.571 0
0.01+0.03*5 + 0.05*3 =0.310
( )= 0.577 1
0.01+0.03*4 + 0.05*3 =0.280
( )= 0.570 0
( )
[∑ ( ) ( ( )) ( ( )) ( ( ( )))
]
J(θ) = -1/3*(0*log(0,571) + (1-0)*log(1- 0,571) + 1*log(0,577) + (1-1)*log(1- 0,577)+
0*log(0,570) + (1-0)*log(1- 0,570))
J(θ) = 0,746
B) Optimizacija funkcije cilja (metoda najbržeg spusta)
j = ∑ ( ( ( )) ( )) ( )
θ0 = 0.01 – 0.05*((0.571-0)*1 + (0.577 – 1)*1 + (0.570 – 0)*1);
θ0 = -0.026; θ1 = 0.03 – 0.05*((0.571-0)*2.5 + (0,577 – 1)*5 + (0.570 – 0)*4);
θ1= - 0.049; θ2 = 0.05 – 0.05*((0.571-0)*4 + (0.577 – 1)*3 + (0.570 – 0)*3);
θ2=- 0.086;
C) Računanje funkcije cilja na osnovu novih parametara
θ0+ θ1x1 + θ2x2 ( )
( ) Vratio kredit
-0.026 - 0.049*2.5 – 0.086*4 = -0.494
( ) = 0.379
0
-0.026 - 0.049*5 – 0.086*3 = -0.532
( ) = 0.370
1
-0.026 - 0.049*4 – 0.086*3 = -0.482
( ) = 0.382
0
J(θ) = -1/3*(0*log(0.379) + (1-0)*log(1- 0.379) + 1*log(0.370) + (1-1)*log(1-
0.370)+ 0*log(0.382) + (1-0)*log(1- 0.382))
J(θ) =0.650
3) Logistička regresija sa dve promenljive i pet tačaka
U tabeli nalazi se podaci o klijentima. Pravi se model koji predviđa da li će klijent
vratiti kredit. Svako klijent opisan je starošću (u desetinama godina) i visinom
primanja (pomoženo sa 10.000 dinara). Izračunati:
a) cost funciju za inicijane vrednosti parametra θ0 = 0.01; θ1 = 0.03; θ2=0.05
b) na osnovu algoritma najbržeg spusta optimizovati parametre θ0 i θ1 ukoliko
je veličina koraka α = 0,03 (uraditi jednu iteraciju)
c) na osnovu dobijenih vrednosti parametara (pod b) ponovo izračunati cost
funkciju
Starost (*10 god) Prihod (*10000 din) Vratio kredit?
2.5 4 Ne
5 3 Da
6.5 2.5 Da
3.5 7 Da
4 3 Ne
A) Računanje funkcije cilja:
( )
[∑ ( ) ( ( )) ( ( )) ( ( ( )))
]
J(θ) =0.654
B) Optimizacija funkcije cilja (metoda najbržeg spusta)
∑( ( ( )) ( )) ( )
θ0 = 0.013;
θ1= 0.104;
θ2=0.081;
C) Računanje funkcije cilja na osnovu novih parametara
J(θ) =0.634