• No results found

Zhodnocen´ı pˇr´ıpadov´e studie

4.3 Pˇr´ıpadov´a studie - Odhad ceny nemovitosti

4.3.6 Zhodnocen´ı pˇr´ıpadov´e studie

V pˇr´ıpadov´e studii jsem se zab´yval odhadem ceny nemovitosti na z´akladˇe nˇekolik zn´am´ych skuteˇcn´ı o n´ı. Pomoc´ı nˇekolika technik jsem provedl anal´yzu dat o nemovi-tostech a na jeho z´akladˇe jsem vybral nˇekolik atribut˚u, kter´e jsem n´aslednˇe pouˇzil pro tvorbu regresn´ıho modelu. Vytvoˇren´y regresn´ı model je na z´akladˇe jeho statistik pˇresn´y a m˚uˇze b´yt pouˇzit k dalˇs´ı anal´yze nebo k predikci.

5 Vytvoˇren´ı nez´ avisl´ eho modelu

V t´eto ˇc´asti pr´ace se budu zab´yvat tvorbou vlastn´ıho regresn´ıho modelu prostˇrednictv´ım nez´avisl´e platformy. Pro jeho tvorbu pouˇziji prostˇred´ı Octave. ˇRad´ı se mezi svobodn´y software a je ˇs´ıˇren´y pod licenc´ı GPL. Toto jsou hlavn´ı d˚uvody, kv˚uli kter´ym jsem ho zvolil jako nejvhodnˇejˇs´ı variantu, protoˇze vytvoˇren´y program bude pouˇzit pro studijn´ı ´uˇcely a proto by prostˇred´ı, kde p˚ujde spustit, mˇelo b´yt snadno dostupn´e a bez potˇreby poˇr´ızen´ı licence.

5.1 Struktura programu

Program je rozdˇelen na nˇekolik ˇc´ast´ı, podle toho jakou funkci prov´adˇej´ı. Vstupem do programu je soubor main.m. Strukturu rozloˇzen´ı programu zobrazuje obr´azek 5.1.

V n´asleduj´ıc´ıch kapitol´ach pop´ıˇsi jeho jednotliv´e ˇc´asti.

Obr´azek 5.1: Diagram funkc´ı

5.2 Cten´ı dat ˇ

Program pˇreˇcte datov´y soubor, kde na kaˇzd´em ˇr´adku bude jednotliv´y z´aznam a hod-noty budou oddˇeleny libovoln´ym oddˇelovaˇcem. Je tˇreba, aby na prvn´ım ˇr´adku byl uve-den seznam vˇsech atribut˚u a dalˇs´ı ˇr´adky odpov´ıdaly poˇrad´ım tomuto seznamu. Jm´eno souboru spoleˇcnˇe s oddˇelovaˇcem zad´a uˇzivatel pˇri vstupu do programu. V pˇr´ıpadˇe neuveden´ı souboru se pouˇzije defaultn´ı soubor s nemovitostmi a jako oddˇelovaˇc ˇc´arka. V tomto pˇr´ıpadˇe budou data naˇc´ıt´any z datov´eho souboru finalData.csv.

Prvn´ı ˇr´adek obsahuje textov´y popis atribut˚u a na dalˇs´ıch jsou jednotliv´e z´aznamy o nemovitostech. Hodnoty na ˇr´adku jsou oddˇeleny ˇc´arkami. Vzorek souboru zobrazuje

zdrojov´y k´od 5.1. Na tˇechto datech budu prezentovat funkˇcnost programu.

6 5 , 8 4 5 0 , 7 , 2 0 0 3 , 2 0 0 3 , 1 9 6 , 8 5 6 , 8 5 6 , 8 5 4 , 1 7 1 0 , 2 , 8 , 0 , 5 4 8 , 2 0 0 3 , 0 , 6 1 , 2 0 8 5 0 0 8 0 , 9 6 0 0 , 6 , 1 9 7 6 , 1 9 7 6 , 0 , 1 2 6 2 , 1 2 6 2 , 0 , 1 2 6 2 , 2 , 6 , 1 , 4 6 0 , 1 9 7 6 , 2 9 8 , 0 , 1 8 1 5 0 0 6 8 , 1 1 2 5 0 , 7 , 2 0 0 1 , 2 0 0 2 , 1 6 2 , 9 2 0 , 9 2 0 , 8 6 6 , 1 7 8 6 , 2 , 6 , 1 , 6 0 8 , 2 0 0 1 , 0 , 4 2 , 2 2 3 5 0 0 6 0 , 9 5 5 0 , 7 , 1 9 1 5 , 1 9 7 0 , 0 , 7 5 6 , 9 6 1 , 7 5 6 , 1 7 1 7 , 1 , 7 , 1 , 6 4 2 , 1 9 9 8 , 0 , 3 5 , 1 4 0 0 0 0

Zdrojov´y k´od 5.1: Vzorek dat

Pro naˇcten´ı souboru pouˇziji funkci input(). Jako vstupn´ı parametry pˇreb´ır´a jeho jm´eno a oddˇelovaˇc hodnot. V t´eto funkci naˇctu datov´y soubor a kaˇzd´y ˇr´adek rozdˇeluji podle zadan´eho oddˇelovaˇce. Na v´ystupu funkce vrac´ı dvourozmˇern´e pole data s jed-notliv´ymi hodnotami o velikosti poˇcet z´aznam˚u × poˇcet atribut˚u a oddˇelenou hlaviˇcku h z n´azvy atribut˚u.

f u n c t i o n [ data , h ] = i n p u t( f i l e N a m e , d e l i m e t e r )

Zdrojov´y k´od 5.2: Funkce pˇro ˇcten´ı

Kromˇe tohoto zp˚usobu jsem otestoval tak´e funkci csvRead(), kter´a je souˇc´ast´ı standardn´ı instalace Octave. Tato funkce umoˇzˇnuje naˇc´ıst soubor typu .csv, ale ˇcte pouze ˇc´ıseln´e hodnoty, tud´ıˇz jsem od jej´ıho pouˇzit´ı upustil i za cenu znaˇcn´eho zv´yˇsen´ı doby ˇcten´ı a parsov´an´ı souboru. ˇCas v´ypoˇctu jednotliv´ych funkc´ı zobrazuje tabulka 5.1. K n´ar˚ustu doˇslo zejm´ena z d˚uvodu parsov´an´ı a konverze hodnot do vhodn´e datov´e struktury.

funkce ˇcas[s]

input() 2.443 csvRead() 0.249

Tabulka 5.1: Porovn´an´ı ˇcasu v´ypoˇctu funkc´ı pro ˇcten´ı

N´aslednˇe rozdˇel´ım atributy mezi z´avisl´e a nez´avisl´e promˇenn´e podle v´ybˇeru uˇzivatele. Z´avislou promˇennou zde pˇredstavuje cena nemovitosti, kterou uloˇz´ım do promˇenn´e y a ostatn´ı nez´avisl´e atributy do dvourozmˇern´eho pole X.

5.3 Normalizace

Pˇred v´ypoˇctem odhad˚u parametr˚u regresn´ıho modelu se m˚uˇze prov´est normalizace dat.

D˚uvodem normalizace atribut˚u je, ˇze odhadnut´e koeficienty regresn´ıho modelu budou standardizovan´e. D˚uvody popisuji v kapitole testov´an´ı 4.3.5. Normalizace prov´ad´ım ve funkci normalize(). Jako vstup funkce pˇreb´ır´a datovou matici X s nez´avisl´ymi promˇenn´ymi. N´a v´ystupu vrac´ı pole hodnot, kde prvn´ı parametr je normalizovan´a datov´a matice, druh´y a tˇret´ı parametr jsou stˇredn´ı hodnoty a smˇerodatn´e odchylky pro jednotliv´e atributy.

f u n c t i o n [ X norm , mu, sigma ] = n o r m a l i z e (X)

Ve funkci nejprve urˇc´ım stˇredn´ı hodnoty mu a smˇerodatn´e odchylky sigma pro jednotliv´e atributy. Pot´e provedu normalizace hodnot. Od hodnot matice X na inde-xech i,j, kde j odpov´ıd´a j-t´emu atributy a i i-t´e hodnotˇe v atributu odeˇctu stˇredn´ı hodnotu a tento rozd´ıl dˇel´ım smˇerodatnou odchylkou. Algoritmus v´ypoˇctu zobrazuje zdrojov´y k´od 5.3. Celkov´a doba v´ypoˇctu funkce normalize() na datov´em souboru s nemovitostmi odpov´ıd´a pˇribliˇznˇe 1.038s.

Zdrojov´y k´od 5.3: Normalizace hodnot

5.4 Odhad parametr˚ u regresn´ıho modelu

Odhady koeficient˚u regresn´ıho modelu urˇcuji pomoc´ı metody nejmenˇs´ıch ˇctverc˚u. Pro v´ypoˇcet parametr˚u uˇz´ıv´am dvˇe metody. Prvn´ı je analytick´e ˇreˇsen´ı pomoc´ı standardn´ı rovnice popsan´e v kapitole 2.4.1. Nev´yhodu t´eto metody m˚uˇze b´yt pouˇzitelnost pouze do urˇcit´eho poˇctu atribut˚u (pˇribliˇznˇe 1000). Jak je vidˇet v rovnici 2.59, v´ypoˇcet inverzn´ı matice m˚uˇze b´yt pˇri vˇetˇs´ım poˇctu atribut˚u n´aroˇcnˇejˇs´ı. Proto jako druhou uˇz´ıv´am gradientn´ı metodu naz´yvanou tak´e gradient descent. V´ypoˇcet touto metodou n´am umoˇzˇnuje zadat stupeˇn uˇcen´ı a poˇcet iterac´ı. V n´asleduj´ıc´ıch kapitol´ach provedu rozbor obou metod a doby ˇcau v´ypoˇctu.

5.4.1 Standardn´ı rovnice

Analytick´y v´ypoˇcet regresn´ıch koeficient˚u metodou nejmenˇs´ıch ˇctverc˚u provede funkce normalEqn(). Na vstupu funkce pˇreb´ır´a dva parametry, dvourozmˇern´e pole nez´avisl´ych promˇenn´ych X a vybran´y c´ılov´y atribut y. Pˇred v´ypoˇctem je tˇreba vloˇzit jednotkov´y vektor na poˇc´atek matice X. Form´at matice X zobrazuje rovnice 2.52. V´ypoˇcet regresn´ıch parametr˚u provedu zad´an´ım parametr˚u do rovnice 2.59.

Algoritmus v´ypoˇctu zobrazuje zdrojov´y k´od 5.4.

f u n c t i o n [b e t a] = normalEqn (X, y )

Zdrojov´y k´od 5.4: Standartn´ı rovnice

Funkce nejprve inicializuje promˇennou beta, kter´a odpov´ıd´a poˇctu nez´avisl´ych atribut˚u plus jednotkov´y vektor pro konstantn´ı koeficient. Pot´e vektorovˇe vypoˇc´ıt´am jednotliv´e koeficienty beta, kter´e vrac´ım jako v´ystup. Doba pr˚ubˇehu funkce nad testovac´ımi daty je v pr˚umˇeru 0.002s.

5.4.2 Gradientn´ı metoda

Dalˇs´ım pˇr´ıkladem v´ypoˇctu koeficient˚u regresn´ı modelu pomoc´ı nejmenˇs´ıch ˇctverc˚u je gradientn´ı metoda. ˇRad´ıme ji mezi iteraˇcn´ı metody, kter´e definujeme jako proces opakovan´eho pouˇzit´ı funkce s c´ılem pˇribl´ıˇzit se s urˇcitou d´elkou kroku a poˇctu iterac´ı co nejv´ıce k v´ysledku. Pouˇziji funkci viz rovnice 2.58. Pˇri v´ypoˇctu touto metodou nemus´ıme dos´ahnout v´ysledku, protoˇze se m˚uˇze st´at, ˇze metoda bude divergovat. Je tedy tˇreba ovˇeˇrit jej´ı konvergenci. Postaˇcuj´ıc´ı podm´ınku konvergence pro gradientn´ı metodu je symetriˇcnost matice XTX[12]. Staˇc´ı ovˇeˇrit, ˇze matice je pozitivnˇe definitn´ı, tedy ˇze vˇsechny jej´ı hlavn´ı minory jsou kladn´e. Pro n´asobek matic (XT × X) tato podm´ınka je splnˇena a lze tedy konstatovat, ˇze gradientn´ı metodu lze pro danou soustavu pouˇz´ıt.

V´ypoˇcet gradientn´ı metodou provedu zavol´an´ım funkce gradientDescent(). Jako vstupn´ı parametry jsou c´ılov´a promˇenn´a y, nez´avisl´e atributy X, stupeˇn uˇcen´ı a poˇcet iterac´ı. Na poˇc´atku inicializujeme promˇennou m, kter´a odpov´ıd´a rozsahu v´ybˇerov´eho souboru, d´ale pole koeficient˚u beta. V promˇenn´e J history ukl´ad´am hodnoty funkce po kaˇzd´e iteraci a pozdˇeji mi umoˇzn´ı vykreslit kˇrivku pr˚ubˇehu uˇcen´ı. V kaˇzd´e kroku cyklu vypoˇctu nov´e hodnoty funkce gradJ s aktu´aln´ımi hodnotami koeficient˚u beta.

D´ale podle nastaven´eho stupnˇe uˇcen´ı urˇc´ım jejich nov´e hodnoty. Do promˇenn´e J history zap´ıˇsu hodnotu funkce computCost(). Pˇresnost a doba v´ypoˇctu metody bude z´aviset na dan´em stupni uˇcen´ı, tj. d´elka kroku a na poˇctu iterac´ı. V pˇr´ıpadˇe volby pˇr´ıliˇs vysok´e d´elky kroku se m˚uˇze st´at, ˇze metoda bude divergovat. Touto vlastnost´ı se budu v dalˇs´ıch ˇc´astech t´eto kapitoly zab´yvat. Zdrojov´y k´od funkce zobrazuje 5.5.

Zdrojov´y k´od 5.5: Gradientn´ı metoda

Provedu porovn´an´ı nˇekolik nastaven´ı gradientn´ı metody. Jako referenˇcn´ı hodnotu pˇreb´ır´am hodnotu koeficientu determinace modelu urˇcen´e pomoc´ı analytick´e formy

v´ypoˇctu, kter´y odpov´ıd´a R ∼= 0.787885. Tabulka 5.2 ud´av´a z´avislost poˇctu krok˚u na dobˇe pr˚ubˇehu v´ypoˇctu a pˇresnosti urˇcen´ych koeficient˚u. Vid´ıme, ˇze ˇcas roste line´arnˇe s poˇctem proveden´ych krok˚u a ze zvyˇsuj´ıc´ım se poˇctem iterac´ı hodnota koeficientu determinace konverguje k referenˇcn´ı hodnotˇe.

Poˇcet krok˚u Stupeˇn uˇcen´ı ˇcas[s] Koeficient determinace

50 0.1 =.022 =.780244

100 0.1 =.041 =.786300

1000 0.1 =.368 =.787869

10000 0.1 =3.632 =.787884

100000 0.1 =36.297 =.787885

Tabulka 5.2: Z´avislost poˇctu krok˚u na dobˇe pr˚ubˇehu a pˇresnosti modelu

Stupeˇn uˇcen´ı bude ovlivˇnovat rychlost konvergence k referenˇcn´ı hodnotˇe. Pr˚ubˇeh odhadu gradientn´ı metodou pro koeficienty β1 a β2 (jednoduch´y line´arn´ı regresn´ı model) zobrazuje obr´azek 5.2.

Obr´azek 5.2: Gradientn´ı metoda

Za pˇredpokladu volby pˇr´ıliˇs velk´e d´elky kroku metoda nezachyt´ı glob´aln´ı minimum a zaˇcne divergovat, naopak pokud je krok pˇr´ıliˇs mal´y, vykon´av´an´ı metody skonˇc´ı pˇred t´ım, neˇz nalezne glob´aln´ı minimum. Oba tyto pˇr´ıpady pro odhad jednoho koeficientu β zobrazuje obr´azek 5.3, nalevo je nastaven stupeˇn pˇr´ıliˇs n´ızk´y a naopak na prav´em vysok´y.

Obr´azek 5.3: Nastaven´ı stupnˇe uˇcen´ı (d´elky kroku)

V´ystupem proveden´e funkce jsou dvˇe pole, odhadnut´e regresn´ı koeficienty a pr˚ubˇeh uˇcen´ı. Jeho hodnoty jsem zanesl do graf˚u a zobrazuje je soubor obr´azk˚u 5.4. Obsahuje pr˚ubˇehy kˇrivky uˇcen´ı pro r˚uzn´a nastaven´ı gradientn´ı metody. Nejoptim´alnˇejˇs´ı jsou na obr´azc´ıch 5.4b a 5.4c. Na tomto z´akladˇe usuzuji, ˇze nejlepˇs´ımi nastaven´ımi metody pro testovac´ı data bude 50 aˇz 100 iterac´ı a stupeˇn uˇcen´ı 0, 1 nebo 0, 3.

(a) 100 iterac´ı, stupeˇn uˇcen´ı 0,01

(b) 100 iterac´ı, stupeˇn uˇcen´ı 0,1

(c) 100 iterac´ı, stupeˇn uˇcen´ı 0,3

(d) 1000 iterac´ı, stupeˇn uˇcen´ı 0,01

(e) 1000 iterac´ı, stupeˇn uˇcen´ı 0,1

(f) 1000 iterac´ı, stupeˇn uˇcen´ı 0,3

Obr´azek 5.4: Kˇrivky uˇcen´ı

V pˇr´ıpadˇe nastaven´ı kroku vˇetˇs´ıho, jak 0.33 doˇslo k divergov´an´ı metody. Abych mohl vykreslit poˇzadovan´y graf, nastavil jsem poˇcet iterac´ı na 20 a jeho pr˚ubˇeh zobrazuje obr´azek 5.5. Z grafu vid´ıme, ˇze hodnota funkce roste exponenci´alnˇe do nekoneˇcna.

(a) 20 iterac´ı, stupeˇn uˇcen´ı 0,34

(b) 20 iterac´ı, stupeˇn uˇcen´ı 0,4

(c) 20 iterac´ı, stupeˇn uˇcen´ı 1

Obr´azek 5.5: Divergov´an´ı gradientn´ı metody

5.5 Testov´ an´ı modelu

Nyn´ı pˇristoup´ım k testov´an´ı sestaven´eho regresn´ıho modelu. Provedu nˇekolik test˚u, kter´e budou vypov´ıdat o kvalitˇe vytvoˇren´eho regresn´ıho modelu a d´ale otestuji vˇsechny

atributy. Jednotliv´e testy prov´ad´ım ve funkci testing(). Jako vstupn´ı parametry pˇreb´ır´a hodnoty nez´avisl´ych atribut˚u, c´ılovou promˇennou, odhad c´ılov´e promˇenn´e na z´akladˇe sestaven´eho modelu a jeho koeficienty. Celkov´a doba v´ypoˇctu testov´an´ı pro v´ybˇerov´y soubor s nemovitostmi se pohybovala okolo 0.005912s. V n´asleduj´ıc´ıch kapitol´ach se budu zab´yvat v´ypoˇctem jednotliv´ych test˚u regresn´ıho modelu.

f u n c t i o n [ F , PvalF , R2 , R2adj , RCor , t , Pval , Sy , Se , St ] = t e s t i n g ( y , yOdhad ,beta,X)

5.5.1 Koeficient determinace

Zaˇcnu shrnut´ım z´akladn´ıch regresn´ıch statistik o odhadnut´em regresn´ım modelu, mezi neˇz patˇr´ı koeficient v´ıcen´asobn´e korelace, determinace a jeho korigovan´a varianta. Pro tyto v´ypoˇcty uˇziji poznatky z´ıskan´e v kapitole 2.2.4. Nejdˇr´ıve urˇc´ım celkov´y, rezidu´aln´ı a vysvˇetlen´y (regresn´ı) souˇcet ˇctverc˚u. D´ale vypoˇc´ıt´am koeficient determinace jako pod´ıl vysvˇetlovan´eho a celkov´eho souˇctu ˇctverc˚u. V´ıcen´asobnou korelaci urˇc´ım jako jeho odmocninu. Vzhledem k tomu, ˇze s koeficientem determinace je spojeno nˇekolik probl´em˚u (viz 2.2.4) spoˇc´ıt´am tak´e jeho korigovanou variantu. Pro tuto variantu je tˇreba zjistit poˇcet stupˇn˚u volnosti pro jednotliv´e ˇc´asti modelu. Jejich hodnoty urˇc´ım n´asleduj´ıc´ım zp˚usobem:

• regresn´ı ˇc´ast: DF M = p − 1,

• rezidu´aln´ı ˇc´ast: DF E = n − p,

• celkov´y souˇcet: DF T = n − 1,

kde n odpov´ıd´a rozsahu v´ybˇerov´eho souboru a p je poˇcet odhadnut´ych koeficient˚u β.

Korigovan´y koeficient determinace odpov´ıd´a:

R2adjust= 1 − (1 − R2) ∗ DF T

DF E , (5.1)

kde R2 je rovno jeho nekorigovan´e variantˇe. ˇC´ast zdrojov´eho k´odu viz 5.6.

%s o u c t y c t v e r c u

Zdrojov´y k´od 5.6: Koeficient determinace

Jednotliv´e vypoˇcten´e koeficienty pro model vytvoˇren´y nad testovac´ımi daty z nemo-vitosti jsou shrnuty v tabulce 5.3.

R R2 R2adjust

.88763 .78789 .78538

Tabulka 5.3: Regresn´ı statistiky pro odhad ceny nemovitosti

5.5.2 Anal´ yza rozptylu - ANOVA

Nyn´ı n´asleduje anal´yza rozptylu (Analysis Of Variance). Pro v´ypoˇcet pouˇziji souˇcty ˇctverc˚u jednotliv´ych ˇc´ast´ı regresn´ıho modelu a jejich stupnˇe volnosti urˇcen´ych pˇri v´ypoˇctu korigovan´eho koeficientu determinace. Urˇc´ım stˇredn´ı hodnotu jednotliv´ych souˇctu ˇctverc˚u vydˇelen´ım odpov´ıdaj´ıc´ım stupnˇem volnosti. F-statistiku urˇc´ım jako pod´ıl stˇredn´ıch hodnot regresn´ı a rezidu´aln´ı ˇc´asti. V´ysledky anal´yzy rozptylu pro model vytvoˇren´y nad testovac´ımi daty jsou uvedeny v tabulce 5.4.

Model Souˇcet ˇctverc˚u Stupeˇn volnosti F statistika Regresn´ı 7.2548e + 012 17

315.071380 Rezidu´aln´ı 1.9531e + 012 1442

Celkov´a 9.2079e + 012 1459

Tabulka 5.4: Anal´yza rozptylu

5.5.3 T-testy atribut˚ u

Dalˇs´ı ˇc´ast´ı je testov´an´ı odhadnut´ych regresn´ıch parametr˚u. Pro tento v´ypoˇcet urˇc´ım inverzn´ı matici k (X∗X) a d´ale rozptyl rozd´ılu p˚uvodn´ı a odhadnut´e c´ılov´e promˇenn´e.

D´ale v cyklu pro kaˇzd´y odhadnut´y regresn´ı parametr urˇcuji hodnotu t-testu. Konkr´etn´ı v´ypoˇcet ud´av´am v rovnici 5.2. Nejˇcastˇejˇs´ı zp˚usob formulace hodnoty t-testu je prostˇrednictv´ım p-hodnoty. Definujeme ji jako nejmenˇs´ı hladinu v´yznamnosti testu, pˇri n´ıˇz na dan´ych datech jeˇstˇe zam´ıtneme nulovou hypot´ezu [14]. Postup v´ypoˇctu obou hodnot zobrazuje zdrojov´y k´od 5.7.

t(i) = β(i)

Zdrojov´y k´od 5.7: T-test a p-hodnota

Tabulku regresn´ıch koeficient˚u s jejich statistikami pro jednotliv´e atributy uv´ad´ım vzhledem k jejich obs´ahlosti pˇr´ıloze D.

5.6 Ovl´ ad´ an´ı programu

Program s uˇzivatelem komunikuje formou dialogov´ych oken. Prostˇred´ı Octave umoˇzˇnuje pouˇz´ıt nˇekolik grafick´ych oken [7]. Ve sv´em programu uˇz´ıv´am informaˇcn´ı okna, dialogy s tlaˇc´ıtky a moˇznost´ı v´ybˇeru v´ıce poloˇzek ze seznamu a dalˇs´ı.

Vstupem do programu je soubor main.m. Po jeho spuˇstˇen´ı je uˇzivatel vyzv´an k zad´an´ı vstupn´ıho souboru. Tak´e m´a moˇznost pouˇz´ıt jiˇz pˇred-pˇripraven´a data z nemovitostmi, na kter´ych je prezentov´ana funkˇcnost programu. Po naˇcten´ı souboru je uˇzivatel vyzv´an k ovˇeˇren´ı jejich korektnosti. V pˇr´ıpadˇe chyby program uˇzivateli umoˇzn´ı opˇetovn´e naˇcten´ı. Po korektn´ım naˇcten´ım dat je uˇzivatel vyzv´an k v´ybˇeru c´ılov´eho atributu a nez´avisl´ych promˇenn´ych. V´ybˇerov´e dialogy zobrazuje obr´azek 5.6.

(a) V´ybˇer c´ılov´eho atributu (b) V´ybˇer nez´avisl´ych atribut˚u

Obr´azek 5.6: V´ybˇer atribut˚u

Po v´ybˇeru je uˇzivateli umoˇznˇen n´ahled na statistick´e ´udaje ke vˇsem vybran´ych atribut˚u, zobrazen´ı jejich histogram˚u a korelaˇcn´ı z´avislost na c´ılov´em atributu.

V pˇr´ıpadˇe, ˇze uˇzivatel jiˇz nepotˇrebuje ˇz´adn´e dalˇs´ı informace o pouˇzit´ych atributech n´asleduje v programu krok odhadu parametr˚u regresn´ıho modelu a jeho celkov´e testov´an´ı. Program umoˇzˇnuje v´ypoˇcet odhadu parametr˚u dvˇema metodami. Volbu metody si uˇzivatel zvol´ı v dialogov´em oknˇe. V pˇr´ıpadˇe volby standardn´ı rovnice dojde k rovnou vytvoˇren´ı regresn´ıho modelu vˇcetnˇe jej´ıho testov´an´ı. Pokud uˇzivatel zvol´ı gradientn´ı metodu je mu d´ana moˇznost volby jej´ıho nastaven´ı. Uˇzivatel nastav´ı poˇcet iterac´ı a stupeˇn uˇcen´ı gradientn´ı metody. Po zad´an´ı hodnot dojde k vypoˇcten´ı odhadu a k vytvoˇren´ı kˇrivky pr˚ubˇehu uˇcen´ı. Ta je zobrazena uˇzivateli a v pˇr´ıpadˇe, ˇze uˇzivatel potvrd´ı jej´ı korektnost dojde opˇet k otestov´an´ı cel´eho modelu. Pokud je pr˚ubˇeh uˇcen´ı chybn´y (viz. kapitola 5.4.2) je uˇzivateli umoˇznˇeno opakovat v´ypoˇcet odhadu parametr˚u s nov´ymi nastaven´ımi. Celkov´e v´ysledky regresn´ıho modelu, kter´e zahrnuj´ı odhady parametr˚u a statistiky o proveden´em modelu, jsou uˇzivateli vyps´any do konzole programu Octave. Je umoˇznˇeno tak´e exportov´an´ı v´ysledk˚u do souboru typu .txt nebo .csv. Obr´azek 5.7 zobrazuje grafick´y popis ovl´ad´an´ı programu.

Obr´azek 5.7: Grafick´y popis ovl´ad´an´ı programu

5.7 Zhodnocen´ı

V´ysledn´y program umoˇzˇnuje vytvoˇren´ı vlastn´ıho line´arn´ıho regresn´ıho modelu. M˚uˇze pracovat s libovolnou datovou sadou, kde bude sada atribut˚u ˇc´ıseln´eho typu a jeden z nich bude vhodnou c´ılovou promˇennou. Umoˇzˇnuje uˇzivateli z naˇcten´ych atri-but˚u vybrat c´ılovou promˇennou a nez´avisl´e atributy. D´ale zobraz´ı statistick´e ´udaje o naˇcten´ych datech. Z d˚uvodu pohodlnosti ovl´ad´an´ı program komunikuje s uˇzivatelem formou dialogov´ych oken. K odhadu parametr˚u je uˇzita metoda nejmenˇs´ıch ˇctverc˚u.

Program ji umoˇzˇnuje spoˇc´ıtat dvˇema zp˚usoby, standardn´ı rovnice popsanou v kapitole 2.4.1 a gradientn´ı metodou viz 5.4.2. V´ystupem programu jsou odhadnut´e regresn´ı parametry a celkov´e testov´an´ı modelu vˇcetnˇe testu nez´avisl´ych atribut˚u. V´ystup programu je moˇzn´e exportovat do souboru typu .txt nebo .csv. Tento program je vhodn´y pro v´yuku line´arn´ı regresn´ı anal´yzy a jej´ıho celkov´eho testov´an´ı spoleˇcnˇe s testov´an´ım odhadnut´ych parametr˚u.

6 Srovn´ an´ı

V t´eto kapitole provedu srovn´an´ı line´arn´ıho regresn´ıho modelu vytvoˇren´e prostˇrednictv´ım aplikace Modeler s v´ystupem programu v Octave. N´aslednˇe porovn´av´am ˇcasov´e rozd´ıly v´ypoˇctu. Srovn´av´an´ı provedu na nˇekolika v´ybˇerov´ymi soubory.

6.1 Srovn´ an´ı v´ ysledk˚ u model˚ u

6.1.1 V´ ybˇ erov´ y soubor - Nemovitosti

Prvn´ı srovn´an´ı provedu s v´ysledky m´e pˇr´ıpadov´e studie, kde jsem odhadoval cenu nemovitosti na z´akladˇe dalˇs´ıch zn´am´ych skuteˇcnost´ı. V´ysledky prezentuji v nˇekolika v´ystupn´ıch tabulk´ach. V prvn´ı tabulce 6.1 porovn´av´am v´ysledky regresn´ı statistiky.

Na ˇr´adku s oznaˇcen´ım Model ˇc. 1 jsou v´ysledky podan´e programem Modeler, na ˇr´adku ˇc. 2 jsou v´ysledky m´eho regresn´ıho modelu vytvoˇren´eho v Octave. Z uveden´e tabulky vid´ıme, ˇze oba modely pod´avaj´ı srovnateln´e v´ysledky. Veˇsker´e v´ysledky zaokrouhluji na 5 desetinn´ych m´ıst z d˚uvodu prezentace pˇresnosti.

Model Summary

Model R R Square Adjusted R Square

1 .88763 .78789 .78538

2 .88763 .78789 .78538

Tabulka 6.1: Regresn´ı statistika test ˇc. 1

Dalˇs´ı v´ystupn´ı tabulkou 6.2 je anal´yza rozptylu (ANOVA - test). V tabulce je opˇet na prvn´ı ˇr´adku v´ystup z aplikace Modeler a druh´em ˇr´adku v´ysledky m´eho modelu. Urˇcen´e hodnoty se opˇet srovnateln´e.

ANOVA

Model Sum of Squares df Mean Square F Sig.

1

Regression 7.255e + 12 17 4.268e + 11 315.071 .000 Residual 1.953e + 12 1442 1.35e + 09

Total 9.208e + 12 1459

2

Regression 7.2548e + 12 17 4.2675e + 11 315.0713 .000 Residual 1.9531e + 12 1442 1.3545e + 09

Total 9.2079e + 12 1459

Tabulka 6.2: V´ysledky anal´yzy ANOVA test ˇc. 1

V posledn´ı tabulce 6.3 srovn´av´am jednotliv´e odhady parametr˚u a jejich statistiky.

V lev´e ˇc´asti tabulky vid´ıme v´ysledky podan´e programem Modeler a v prav´e ˇc´asti v´ysledky m´eho proveden´e modelu. Opˇet vid´ıme, ˇze se v´ysledky t´emˇeˇr neliˇs´ı, aˇz na nˇekter´e v´yjimky, kde u druh´eho a tˇret´ıho desetinn´eho m´ısta doˇslo k drobn´e odchylce.

Tato odchylka mohla b´yt zp˚usobena zaokrouhlov´an´ım.

Coefficients

Model 1 2

Atribut Unstand. Stand. t Sig. Unstand. Stand. t Sig.

(Constant) -1245621.962 -9.283 .000 -1245621.955 -9.338 .000

LotFrontage 13.953 .004 .274 .784 13.953 .004 .276 .783

LotArea .528 .066 4.938 .000 .528 .066 4.967 .000

OverallQual 19220.507 .335 16.314 .000 19220.508 .335 16.410 .000

YearBuilt 225.045 .086 3.769 .000 225.045 .086 3.791 .000

YearRemodAdd 357.732 .093 5.523 .000 357.732 .093 5.556 .000

MasVnrArea 32.400 .074 5.228 .000 32.400 .074 5.259 .000

TotalBsmtSF 16.379 .090 3.891 .000 16.379 .091 3.914 .000

1stFlrSF 31.432 .153 1.471 .142 31.432 .153 1.479 .139

2ndFlrSF 22.992 .126 1.094 .274 22.992 .126 1.100 .272

GrLivArea 16.421 .109 .787 .431 16.421 .109 .792 .429

FullBath -3726.450 -.026 -1.412 .158 -3726.450 -.026 -1.421 .156 TotRmsAbvGrd 1084.673 .022 .994 .320 1084.673 .022 1.000 .318

Fireplaces 8113.577 .066 4.472 .000 8113.577 .066 4.498 .000

GarageArea 38.015 .102 6.136 .000 38.015 .102 6.172 .000

GarageYrBlt 15.940 .005 .221 .825 15.940 .005 .223 .824

WoodDeckSF 32.132 .051 3.893 .000 32.132 .051 3.916 .000

OpenPorchSF 5.820 .005 .368 .713 5.820 .005 .370 .712

Tabulka 6.3: Odhady regresn´ıch parametr˚u test ˇc. 1

6.1.2 V´ ybˇ erov´ y soubor - V´ ykon CPU

Dalˇs´ı srovn´an´ı provedu na v´ybˇerov´em souboru, kde odhaduji hodnotu relativn´ıho v´ykonu v z´avislosti na dobˇe cyklu, velikost pamˇeti atd. V´ıce informac´ı o stanoven´ı

relativn´ı hodnoty v´ykonu pod´av´a publikace [2]. Data jsem z´ıskal z port´alu UCI, kter´y je zamˇeˇren na v´yuku strojov´eho uˇcen´ı[1]. Popis atribut˚u uv´ad´ım v pˇr´ıloze E.

V´ybˇerov´y soubor obsahoval 209 z´aznam˚u. Tato data jiˇz byla pˇredzpracovan´a, a tud´ıˇz jsem na nˇe aplikoval pouze regresn´ı anal´yzu. Z uveden´ych tabulek vid´ıme, ˇze oba modely dos´ahly opˇet srovnateln´ych v´ysledk˚u. Jejich rozloˇzen´ı odpov´ıd´a testu ˇc. 1.

Model Summary

Model R R Square Adjusted R Square

1 .930 .865 .861

2 .929995 .864891 .860878

Predictors: (Constant), CHMAX, MYCT, MMIN, CACH, CHMIN, MMAX

Tabulka 6.4: Regresn´ı statistika test ˇc. 2

ANOVA

Model Sum of Squares df Mean Square F Sig.

1

Regression 4653317.024 6 775552.837 215.514 .000 Residual 726920.115 202 3598.614

Total 5380237.139 208

2

Regression 4653317.023564 6 775552.837 215.514291 .000 Residual 726920.115204 202 3598.614

Total 5380237.138756 208 Dependent Variable: PRP

Predictors: (Constant), CHMAX, MYCT, MMIN, CACH, CHMIN, MMAX

Tabulka 6.5: V´ysledky anal´yzy ANOVA test ˇc. 2

Coefficients

Model 1 2

Atribut Unstand. Stand. t Sig. Unstand. Stand. t Sig.

(Constant) -55.894 -6.948 .000 -55.8939 -7.0501 .000

MYCT .049 .079 2.789 .006 .048855 .079059 2.829779 0.005114

MMIN .015 .369 8.371 .000 .015293 .368810 8.494595 .000

MMAX .006 .406 8.681 .000 .005571 .406224 8.808762 .000

CACH .641 .162 4.596 .000 .641401 .162029 4.663581 .000006 CHMIN -.270 -.011 -.316 .752 -.270358 -.011458 -.320618 .748822 CHMAX 1.482 .240 6.737 .000 1.482472 .239633 6.836666 .000 Dependent Variable: PRP

Tabulka 6.6: Odhady regresn´ıch parametr˚u test ˇc. 2

6.2 Casov´ ˇ e srovn´ an´ı

V t´eto ˇc´asti provedu ˇcasov´e srovn´an´ı budov´an´ı regresn´ıho modelu mezi Modeler a program v Octave. Porovn´av´am jak ˇcas d´ılˇc´ıch ˇc´ast´ı procesu, tak i celkovou dobu.

V Modeleru lze pˇri spuˇstˇen´ı cel´eho proudu a libovoln´ych jeho ˇc´ast´ı zaznamen´avat ˇcas jejich vykon´an´ı, ale sofistikovanˇejˇs´ı ´udaje o dob´ach v´ykonu jednotliv´ych ˇc´ast´ı pˇr´ıpadˇe spuˇstˇen´ı cel´eho proudu v nˇem nejsou k dispozici. Naproti tomu Octave poskytuje nˇekolik n´astroj˚u pro ˇcasov´an´ı a zjiˇstˇen´ı doby pr˚ubˇehu d´ılˇc´ıch funkc´ı a cel´eho procesu.

Jedn´ım z nich je n´astroj profile, kter´y lze aktivovat a deaktivovat v libovoln´em ´useku programu. Jeho v´ystup lze zobrazit zaps´an´ım pˇr´ıkazu profshow do pˇr´ıkazov´e konzole v prostˇred´ı Octave. Jeho v´ystup zobrazuje tabulka 6.7. Dalˇs´ı moˇznost´ı ˇcasov´an´ı je pouˇzit´ı funkc´ı tic() a toc()[7].

Funkce Celkov´y ˇcas(s) Procesorov´y ˇcas (s) Poˇcet proveden´ı

Funkce Celkov´y ˇcas(s) Procesorov´y ˇcas (s) Poˇcet proveden´ı

Related documents