Vratimo se sada na primer koji smo koristili za upoznavanje paradigme programiranja vođenog podacima. U skupu podataka imali smo informacije o kvadraturi nekretnina i njihovim cenama, a naš zadatak je bio da naučimo vezu između ovih vrednosti tako da možemo da procenjujemo cene za nove nekretnine.

Jednostavnosti radi, neka bude da raspolažemo skupom za treniranje koji sadrži 10 instanci koje su popisane u donjoj tabeli:

 Square Footage (m2) Real estate Prices (1000€)
43 60
25 32.1
66 88.4
80 111.4
105 120.32
70 72.1
40 46.3
85 90.1
84 99.6
102 139.2

Ove instance možemo da prikažemo i grafički. Duž x-ose ćemo postaviti vrednosti kvadratura, duž u-ose vrednosti cena nekretnina i parove vrednosti obeležiti plavim kružićima.


Odaberimo za model funkciju koja povezuje kvadrature nekretnina x i cene nekretnina y jednačinom \(y = \beta_0 + \beta_1x\), gde \(\beta_0\) i \(\beta_1\) predstavljaju nepoznate parametre. Ovo je takozvani   linearni model, a pošto ga koristimo za rešavanje zadatka regresije zovemo ga i   modelom linearne regresije. Primetimo da je ovo zapravo jednačina prave \(y = kx + n\), gde je koeficijent pravca prave obeležen sa \(\beta_1\) a slobodni član sa \(\beta_0\). Motivacija za uvođenje ovog modela leži u tome što tačke prate zamišljenu dijagonalu kvadranta, možda malo spuštenu niže.

Ova sekcija je uparena sa Jupyter sveskom   05-1-linear_regression.ipynb. Da bi mogao da pratiš sadržaj dalje, klikni na link, a potom i na dugme open  da bi se sadržaj otvorio u okruženju   Google Colab. Ukoliko sveske pregledaš na lokalnoj mašini, među sadržajima pronađi svesku sa istim imenom i pokreni je. Za detaljnije instrukcije pogledaj sekciju   Hands-on zona   i lekciju   Jupyter sveske za vežbu.

Tvoj zadatak je da u pratećoj svesci učitaš skup podataka o nekretninama i da odabereš vrednosti parametara \(\beta_0\) i \(\beta_1\) za koje misliš da najbolje odgovaraju ovim podacima. Možeš ih fino podešavati pomeranjem slajdera levo i desno. Zapamti vrednosti koje si odabrao i koje ideje su te vodile prilikom određivanja parametara.

Verovatno si se trudio da prilikom izbora parametara dobiješ pravu koja prilazi što bliže zadatim tačkama i pravi što manja odstupanja. Pojedinim izborima parametara si bio podjednako zadovoljan dok su neki bili baš loši. I iz ugla mašinskog učenja pokušavamo da pronađemo vrednosti parametara \(\beta_0\) i \(\beta_1\) za koje pravimo najmanju grešku s tim što moramo precizno da definišemo šta je to zapravo greška. Evo kako ćemo to uraditi.

Pretpostavimo da su odabrane vrednosti \(\beta_0= 6.3\) i \(\beta_1= 1.02\). Proširimo sada tabelu sa podacima kolonom sa vrednostima koje je izračunao ovaj model linearne regresije za vrednosti kvadratura kojima raspolažemo. Njih iz ugla modela predstavljamo veličinom x.

 Square Footage
(m2)

Real estate Prices
(1000€)
Model price
\(y = 6.3 + 1.02x\)
(1000€)
43 60 50.16
25 32.1 31.8
66 88.4 73.62
80 111.4 87.9
105 120.32 113.4
70 72.1 77.7
40 46.3 47.1
85 90.1 93
84 99.6 91.98
102 139.2 110.34

The difference between the values that are expected (known in the data set) and the values that we have calculated (remember to call them predictions) is an error. Now let's calculate all the errors and record them in the table.

 Square Footage
(m2)

Real estate Prices
(1000€)
Model price
\(y = 6.3 + 1.02x\)
(1000€)
Model error
43 60 50.16 9.84
25 32.1 31.8 0.3
66 88.4 73.62 14.78
80 111.4 87.9 2.53
105 120.32 113.4 6.92
70 72.1 77.7 -5.6
40 46.3 47.1 -0.8
85 90.1 93 -2.9
84 99.6 91.98 7.62
102 139.2 110.34 28.86

Da bi lakše mogli da ispratimo ponašanje grešaka, na donjoj slici su njihove vrednosti prikazane plavim isprekidanim linijama.

Da bismo dobili predstavu o ukupnoj grešci modela, nije mudro sabirati pojedinačne greške pošto su neke vrednosti grešaka pozitivne a neke vrednosti negativne. Zato možemo da ih kvadriramo pa saberemo - ovo će nam preneti i jaču informaciju o veličini greške bez obzira na to da li je pozitivna ili negativna. Ukoliko ovako dobijeni zbir podelimo brojem instanci u skupu,  dobićemo predstavu o prosečnoj grešci modela. U našem slučaju to je: \((9.84^2+0.32^2+14.782^2+23.52^2+6.92^2+(-5.6)^2+(-0.8)^2+(-2.9)^2+7.62^2+28.86^2)/10=184.687\)

Ovako izračunata greška modela linearne regresije se zove srednjekvadratna greška (eng.  mean squared error, MSE  ). Za fiksirane vrednosti parametara β0 i β1 postupak izračunavanja koji smo opisali možemo skraćeno prikazati formulom \(\frac{1}{N}\sum\limits_{i = 1}^{N}(y_i-(\beta_0+\beta_1x_i))^2\). U njoj parovi \(x_i,y_i\) odgovaraju pojedinačnim instancama, kvadraturama nekretnina xi i njihovim cenama yi, a brojem n je označen ukupan broj instanci. To je 10 u našem slučaju. Izraz koji figuriše u sumi predstavlja razliku očekivanih yi i izračunatih \(\beta_0+ \beta_1x_i\) vrednosti.

Srednjekvadratna greška je greška koju uvek uparujemo sa modelom linearne regresije i koju želimo da što više smanjimo izborom pravix parametara\(\beta_0\) i \(\beta_1\). Iz iskustva podešavanja parametara si video da to i nije baš lak zadatak. Srećom , postoje matematičke tehnike koje nam u tome mogu pomoći. Da bismo otkrili kako ovo da uradimo, pređimo na sledeću lekciju o gradijentnom spustu.

 

 

Last modified: Saturday, 21 June 2025, 10:36 PM