• No results found

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)

Related documents