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´ı