eské vysoké u£ení technické v Praze Fakulta elektrotechnická Katedra po£íta£·
Diplomová práce
Modul pro statistické zpracování dat Bc. Jaroslav Kucha°
Vedoucí práce: Ing. Pavel Kordík, Ph.D.
Studijní program: Elektrotechnika a informatika, strukturovaný, Navazující magisterský Obor: Výpo£etní technika 19. kv¥tna 2009
iv
v
Pod¥kování D¥kuji vedoucímu diplomové práce Ing. Pavlu Kordíkovi, Ph.D., ale i Ing. Tomá²i Sieglovi za zájem, p°ipomínky a £as, který v¥novali mé práci.
vi
vii
Prohlá²ení Prohla²uji, ºe jsem práci vypracoval samostatn¥ a pouºil jsem pouze podklady uvedené v p°iloºeném seznamu. Nemám závaºný d·vod proti uºití tohoto ²kolního díla ve smyslu 60 Zákona £. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o zm¥n¥ n¥kterých zákon· (autorský zákon).
V Litom¥°icích dne 19. 5. 2009
.............................................................
viii
Abstract This thesis designs and implements statistical data processing module in Java. This module provides statistical evaluating of inductive models. Part of this thesis is introduction to statistical interface of the R language. R is measurement standard in statistical world. Statistical evaluating can evaluate correctness of the model learning. The rst part is retrieval of the statistical libraries, models theory and statstical theory. Second part is aimed at implemetation and integration statistical methods into module.
Abstrakt Tato práce navrhuje a implementuje modul v jazyce Java pro statistické zpracování dat a umoº¬uje pouºití k hodnocení induktivních model·. Sou£ástí práce je seznámení s moºnostmi statistického vyhodnocení v jazyce R, který je pouºit p°i testování jako etalon. Pomocí statistického vyhodnocení je moºné rozhodnout o správnosti nau£eného modelu. V první £ásti práce se zabývám re²er²í dostupných knihoven, teorií model· a statistiky. Druhá £ást je zam¥°ena na implementaci a integraci statistického vyhodnocování do modulu.
ix
x
Obsah 1 Úvod
1
2 Popis problému, specikace cíle
3
3 Teorie
5
2.1 2.2 3.1 3.2 3.3
3.4
Popis °e²eného problému . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Specikace cíle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data mining, induktivní modely . . . 3.1.1 Data mining . . . . . . . . . . 3.1.2 Induktivní modely . . . . . . Neuronové sít¥ a typy °e²ených úloh 3.2.1 Neuronové sít¥ . . . . . . . . 3.2.2 Regrese a klasikace . . . . . Statistika . . . . . . . . . . . . . . . 3.3.1 Chyby . . . . . . . . . . . . . 3.3.2 Výb¥r statistických metod . . 3.3.3 Zvolené metody . . . . . . . . 3.3.4 Testování hypotéz . . . . . . 3.3.5 Popis test· . . . . . . . . . . Popis výsledk· a výstup· . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. 5 . 5 . 7 . 7 . 7 . 8 . 8 . 9 . 9 . 9 . 10 . 11 . 12
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
Výb¥r a srovnání statistických knihoven 5.1.1 Srovnání vybrané knihovny s R . Vývoj modulu a jeho integrace . . . . . 5.2.1 Poºadavky na modul . . . . . . . 5.2.2 Návrh . . . . . . . . . . . . . . . 5.2.3 Rozhraní . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
4 Pouºité technologie 4.1 4.2
4.3 4.4
FAKE GAME . . . . . . . . . . . Jazyk R . . . . . . . . . . . . . . 4.2.1 Prost°edí jazyka R . . . . 4.2.2 Pouºití . . . . . . . . . . . 4.2.3 Základní pot°ebné p°íkazy 4.2.4 Statistika . . . . . . . . . JasperReports, iReport . . . . . . 4.3.1 JasperReports . . . . . . . 4.3.2 iReport . . . . . . . . . . IntelliJ IDEA . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
5 Analýza a návrh °e²ení 5.1 5.2
3 3
xi
15
15 16 16 17 17 18 19 19 19 20
21
21 21 22 23 23 24
xii
OBSAH
6 Realizace 6.1 6.2
6.3 6.4
6.5
Implementace . . . . . . . . . . . Popis modulu a jeho rozhraní . . 6.2.1 Struktura, popis test· . . 6.2.2 Rozhraní modulu . . . . . Roz²í°ení . . . . . . . . . . . . . 6.3.1 Postup pro p°idání nového Popis vyuºití JSC . . . . . . . . . 6.4.1 Statistické testy . . . . . . 6.4.2 Vizualizace . . . . . . . . Gracké rozhraní . . . . . . . . . 6.5.1 Spu²t¥ní . . . . . . . . . . 6.5.2 Modul . . . . . . . . . . . 6.5.3 Popis d·leºitých £ástí . . 6.5.4 Report . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . testu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
27 27 27 27 28 29 30 30 31 32 32 32 33 33 36
7 Testování na reálných datech
39
8 Testování na um¥le vytvo°ených datech
43
9 Záv¥r
47
Literatura
49
A Seznam pouºitých zkratek
51
B Instala£ní a uºivatelská p°íru£ka
53
C Obsah p°iloºeného CD
55
D Testování na reálných datech
57
7.1 7.2 8.1 8.2 8.3
D.1 D.2 D.3 D.4 D.5 D.6 D.7 D.8 D.9
Popis a postup testování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Vyhodnocení testování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Postup testování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Popis výsledk· . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Záv¥r testování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Rozmery_deti_vaha2_regrese.txt boshouse.txt . . . . . . . . . . . . . buildingraw.txt . . . . . . . . . . . antro-age.txt . . . . . . . . . . . . cars.txt . . . . . . . . . . . . . . . mandarin.txt . . . . . . . . . . . . motol-brain-pressure.txt . . . . . . nalada.txt . . . . . . . . . . . . . . tul-unknown.txt . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
E Testování na um¥le vytvo°ených datech E.1 E.2 E.3 E.4
Pár normálních rozd¥lení . . . . . . Normální a exponenciální rozd¥lení Normální a t rozd¥lení . . . . . . . R·zné st°ední hodnoty . . . . . . .
. . . .
. . . .
. . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
57 57 57 58 59 59 59 59 61
65 65 65 69 71
OBSAH
xiii
E.5 R·zné rozptyly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
F Re²er²e F.1 F.2 F.3 F.4
Jazyk R . . . . . . . . . . . . . . . . . . Knihovny statistických funkcí, statistické Fake Game, Weka, RapidMiner . . . . . Java, JasperReports . . . . . . . . . . .
. . . . . . programy . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
75
75 76 77 78
xiv
OBSAH
Seznam obrázk· 3.1
Rozhodovací schéma pro výb¥r test· st°edních hodnot [19] . . . . . . . . . . . 10
4.1 4.2 4.3 4.4 4.5
FAKE GAME architektura . FAKE GAME architektura 2 ukázka R . . . . . . . . . . . JasperReports architektura . iReport ukázka . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
15 16 17 19 20
5.1 5.2 5.3 5.4
Use Case diagram . . . . . . . . . . . . . . . . Activity diagram - uºivatelem denovaný test Activity diagram - automatický test . . . . . Class diagram - návrh . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
23 24 25 26
6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15
Struktura balí£ku . . . . . . . . . . . . . . . . . . . . . . . . Obrazovka - spu²t¥ní statistického rozhraní . . . . . . . . . Obrazovka - rozhraní modulu . . . . . . . . . . . . . . . . . Obrazovka - rozhraní modulu pro popis . . . . . . . . . . . Obrazovka - £ást 1 - spu²t¥ní rozhraní pro testování hypotéz Obrazovka - £ást 2 - výb¥r dat k testování . . . . . . . . . . Obrazovka - £ást 3 - volba test· . . . . . . . . . . . . . . . . Obrazovka - £ást 4 - volby spu²t¥ní testování . . . . . . . . Obrazovka - £ást 5 - úvodní informace o datech . . . . . . . Obrazovka - £ást 6 - výsledky jednotlivých test· . . . . . . . Obrazovka - £ást 7 - celkové zhodnocení testu . . . . . . . . Obrazovka - £ást 8 - gracké zobrazení výsledk· . . . . . . . JasperReports - Úvodní £ást . . . . . . . . . . . . . . . . . . JasperReports - Detail testu . . . . . . . . . . . . . . . . . . JasperReports - Detail testu a vyhodnocení . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
28 32 33 33 34 34 34 35 35 35 36 36 37 37 38
E.1 E.2 E.3 E.4 E.5 E.6 E.7 E.8 E.9 E.10
Pár normálních rozd¥lení - st°ední hodnota 0, sm¥rodatná odchylka Modul - Pár normálních rozd¥lení . . . . . . . . . . . . . . . . . . . Normální a exponenciální rozd¥lení . . . . . . . . . . . . . . . . . . Modul - Normální a exponenciální rozd¥lení . . . . . . . . . . . . . Normální a t rozd¥lení . . . . . . . . . . . . . . . . . . . . . . . . . Modul - Normální a t rozd¥lení . . . . . . . . . . . . . . . . . . . . Normální rozd¥lení - st°ední hodnota 0 a 1, sm¥rodatná odchylka 1 Modul - R·zné st°ední hodnoty . . . . . . . . . . . . . . . . . . . . Normální rozd¥lení - st°ední hodnota 0, sm¥rodatná odchylka 1 a 2 Modul - R·zné rozptyly . . . . . . . . . . . . . . . . . . . . . . . .
1 . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
65 66 67 68 69 70 71 72 73 74
. . . . .
. . . . .
. . . . .
. . . . .
xv
. . . . .
. . . . .
. . . . .
. . . . .
xvi
SEZNAM OBRÁZK
Seznam tabulek 5.1 5.2
Srovnání nejd·leºit¥j²ích statistických knihoven . . . . . . . . . . . . . . . . . 22 Srovnání JSC s R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
D.1 D.2 D.3 D.4 D.5 D.6 D.7 D.8 D.9
Test Test Test Test Test Test Test Test Test
1 2 3 4 5 6 7 8 9
E.1 E.2 E.3 E.4 E.5
Test Test Test Test Test
10 11 12 13 14
-
Rozmery_deti_vaha2_regrese.txt boshouse.txt . . . . . . . . . . . . buildingraw.txt . . . . . . . . . . antro-age.txt . . . . . . . . . . . . cars.txt . . . . . . . . . . . . . . . mandarin.txt . . . . . . . . . . . . motol-brain-pressure.txt . . . . . nalada.txt . . . . . . . . . . . . . tul-unknown.txt . . . . . . . . . . -
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
58 59 60 61 61 62 62 63 63
2 r·zná normální rozd¥lení . . . . normální a exponenciální rozd¥lení normální a t rozd¥lení . . . . . . . r·zné st°ední hodnoty . . . . . . . r·zné rozptyly . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
66 67 69 71 73
xvii
xviii
SEZNAM TABULEK
Kapitola 1
Úvod Statistika nabízí celou °adu teoreticky dob°e prozkoumaných a léty praxe ov¥°ených metod pro analýzu dat. Její význam je v na²í spole£nosti v²eobecné uznáván. O tom sv¥d£í kaºdodenní setkání s ní - v denním tisku, zprávách a p°i r·zných £innostech. Obecn¥ je statistika obor zabývající se sb¥rem, analýzou a zpracováním informací, které kvantitativn¥ charakterizují zákonitosti jev· ve spojitosti s jejich kvalitativním obsahem [4]. Statistické zpracování dat je pouºívané v r·zných oblastech a oborech. Lze ho vyuºít i v oblasti automatické extrakce informací z dat a tvorby model· reprezentující data. Jednou z metod pro získávání model· z dat je metoda GAME a k ní je dostupné prost°edí FAKE GAME. Toto prost°edí umoº¬uje automatizovanou tvorbu model· pomocí metody GAME. Základem takového modelu je neuronová sí´. Neuronové sít¥ jsou velmi roz²í°ené v r·zných oblastech u£ení informace. Model se u£í na trénovací mnoºin¥ dat, která obsahuje skupinu vstupních a výstupních atribut·. Model by m¥l být po svém nau£ení schopen co nejp°esn¥ji odpovídat správnými hodnotami na výstupu po p°edání konkrétních vstupních hodnot. Tedy co nejvíce se blíºit svými výsledky informacím extrahovaných z trénovací mnoºiny dat. Správnost modelu je pot°eba vyhodnotit a rozhodnout tak o jeho kvalit¥. Pro vyhodnocení správnosti nau£eného modelu je statistika silným nástrojem, která umoº¬uje najít informace z dostupných dat. P°i vyhodnocení je pouºita statistika k párovému porovnávání dat a jejich parametr·. Jedná se o oblast konrma£ní analýzy, která formuluje hypotézu, a metody analýzy pouºijeme k tomu, abychom ji potvrdili £i vyvrátili [2]. Takové vyhodnocení lze pouºít jak na ov¥°ení modelu v·£i testovacím nebo trénovacím dat·m, tak pro srovnání dvou model·.
1
2
KAPITOLA 1. ÚVOD
Kapitola 2
Popis problému, specikace cíle 2.1 Popis °e²eného problému e²eným problémem této diplomové práce je statistické vyhodnocení dat. Existují programy, ve kterých jsou statistické metody, které nás zajímají, jiº implementovány. P°íkladem je jazyk R. Problémem je jejich implementace jako samostatné funkce. Pro jejich správné pouºití je nutné je dob°e znát a vhodn¥ volit jejich výb¥r. Navíc v p°ípad¥ hodnocení model· v aplikaci Fake Game je pot°eba jejich implementace v jazyce Java. Problémem je zajistit zapouzd°ení jednotlivých funkcí do komplexních metod vyhodnocení dat a moºnost pouºívat tyto metody v jazyce Java.
2.2 Specikace cíle Nejd·leºit¥j²ím cílem této diplomové práce je vytvo°it knihovnu statistických funkcí umoº¬ující vyhodnocení dat, zejména testování hypotéz. Knihovna by m¥la být schopna jednak umoºnit aplikovat samostatný test, tak i aplikovat testy automaticky v logickém po°adí. Tím je zaji²t¥na komplexní analýza a výsledné vyhodnocení. Dal²ím cílem je knihovnu integrovat do prost°edí Fake Game ve form¥ modulu a umoºnit tak statistické vyhodnocení modelu. Modul by m¥l být nezávislý na Fake Game a p°ípadn¥ samostatn¥ pouºitelný. Pro správnou implementaci modulu je sou£ástí také nastudování d·leºitých a pot°ebných funk£ností programu Fake Game pot°ebných zejména pro získání dat pro statistické vyhodnocování. Fake Game je velmi rozsáhlý nástroj s velkým rozsahem funkcí a pochopení tohoto nástroje je nezbytnou sou£ástí pro vytvo°ení daného modulu. Fake Game tvo°í rozhraní k metod¥ GAME slouºící k automatické tvorb¥ model·. Tyto modely je pot°eba statisticky vyhodnotit a zjistit tak informace o jejich správnosti. Vyhodnocení by m¥lo být moºné provád¥t mezi modelem a vstupními daty (trénovacími nebo testovacími). Dal²í variantou je vyhodnocovat mezi sebou jednotlivé modely. Ke spln¥ní t¥chto cíl· je nutné prozkoumat, zda jiº n¥co podobného neexistuje v jazyce Java. Pro tento ú£el bude provedena re²er²e. Na základ¥ re²er²e stávajících moºností statistických knihoven pro jazyk Java nalézt, vybrat, otestovat a p°ípadn¥ roz²í°it n¥kterou z existujících knihoven. Ta bude poté pouºita jako základ pro implementaci celého modulu. Pokud nebude knihovna s poºadovanými vlastnostmi nalezena, je pot°eba zajistit její implementaci a umoºnit p°ípadné snadné roz²í°ení o dal²í testy a algoritmy. Nezbytnou sou£ástí diplomové práce je studium matematické statistiky a moºností statistických výpo£t· a analýzy dat v jazyce R. Zejména pak testování hypotéz a regresní analýzu. 3
4
KAPITOLA 2. POPIS PROBLÉMU, SPECIFIKACE CÍLE
Jazyk R je ve sv¥t¥ statistik· uznávaným nástrojem, proto v mé práci bude slouºit jako etalon pro srovnávání výsledk·. K nastudování jsou nutné i dal²í pouºité technologie jako JasperReports, iReport. Ty budou pouºity pro generování report· s výsledky vyhodnocení. D·leºitou sou£ástí je otestování modulu na r·zných vstupních datech, srovnání a vyhodnocení výsledk·.
Kapitola 3
Teorie V teoretické £ásti jsem se zam¥°il dle prostudovaných materiál· na výtah z oblasti data miningu, teorie induktivních model·, neuronových sítí a statistiky.
3.1 Data mining, induktivní modely 3.1.1
Data mining
Data mining je proces hledání jistých závislostí, vzor· a trend· na základ¥ vlastností dat uloºených v databázích prost°ednictvím technik pro dolování znalostí nebo jiných matematických a statistických technik [2].
Pohled na data Na data m·ºeme nahlíºet z r·zných hledisek a hledat tak v nich informace. Mezi tyto pohledy pat°í:
• Exploratorní analýza dat
Pr·zkum dat, první seznámení s daty, formulujeme hypotézy Hojn¥ se vyuºívají gracké techniky • Konrmatorní analýza dat
Máme hypotézy, data slouºí jako prost°edek pro jejich ov¥°ení Vyuºívají se statistické metody (ANOVA, regrese, χ -kvadrát testy,...) • Data mining
Máme data a chceme vytvo°it modely, které fungují a jsou pouºitelné pro predikce. Zda tyto modely popisují skute£né závislosti a d¥je je druho°adé.
Vyuºití metod um¥lé inteligence, strojového u£ení... 5
6
KAPITOLA 3. TEORIE
Ú£el data miningu Data mining je orientován hlavn¥ na praktickou vyuºitelnost výsledk·, hlavn¥ ve form¥ predikcí. Jde hlavn¥ o vytvo°ení modelu, který p°iná²í uºitek, tj. modelu, jehoº prognózy budou trefné a klasikace pouºitelné (zisky a úspory z n¥j plynoucí znatelné). P°íklady otázek na n¥º data mining umí dát p°ibliºnou odpov¥¤:
• Kolik £lov¥kohodin bude t°eba p°í²tí m¥síc odpracovat na ARO? • Kolik asi bude stát pozemek 20 km severn¥ od Prahy? • Odpoví konkrétní £lov¥k z na²í databáze na nabídku, kterou bychom mu zaslali? • Které produkty se prodávají spole£n¥? Které produkty si lidé kupují poté, co si koupili jiné?
Typy úloh °e²ených pomocí data miningu Pomocí data miningu je moºné °e²it n¥kolik typ· úloh:
• Popis dat
Visualizace Sumarizace • Hledání "nuget·"
Dominantní struktury, asocia£ní pravidla Segmentace, shluková analýza, popis rozd¥lení dat • Predikce
Klasikace (predikce kategoriální prom¥nné) Regrese (predikce spojité prom¥nné) asové °ady (predikce závislé na £ase)
Metody dobývání znalostí Jádrem procesu dobývání znalostí je pouºití analytických metod. Vstupem jsou p°edzpracovaná data a výstupem znalosti. V²echny pouºívané metody vycházejí z p°edpokladu, ºe jednotlivé objekty (p°íklady, pozorování) lze popsat pomocí charakteristik takových, ºe objekty pat°ící k témuº konceptu (do téºe t°ídy) mají podobné charakteristiky (tyto metody bývají proto n¥kdy nazývány u£ení na základ¥ podobnosti similarity-based learning). Pokud jsou objekty popsány hodnotami atribut·, lze je reprezentovat body v n-rozm¥rném prostoru atribut· (p°íznak·), kde n je po£et atribut·. U£ení na základ¥ podobnosti pak vychází z p°edstavy, ºe objekty p°edstavující p°íklady téhoº konceptu vytvá°ejí jakési shluky v tomto prostoru. Cílem modelování je tedy nalézt vhodnou reprezentaci t¥chto shluk·. Zp·sob reprezentace znalostí p°itom m·ºe být zna£n¥ rozmanitý. Mohou to být reprezentativní p°íklady-etalony (tak je tomu u metod zaloºených na analogii), mohou to být funkce p°i°azené jednotlivým shluk·m (to je p°ípad subsymbolických metod), m·ºe to být rozd¥lení prostoru atribut· na snadno popsatelné, pravidelné útvary (to je p°ípad metod symbolických) [18]. Základními metodami jsou:
3.2. NEURONOVÉ SÍT
A TYPY EENÝCH ÚLOH
7
• Rozhodovací stromy • Rozhodovací pravidla • Asocia£ní pravidla • Neuronové sít¥ • Statistické metody • Nejbliº²í soused
3.1.2
Induktivní modely
Jedná se o metodu p°i dobývání znalostí. Induktivní modelování vyuºívá techniky automatického u£ení pro tvorbu model· ze zadaných dat. Sí´ dop°edn¥ propojených jednotek (neuron·) se vytvá°í za pomoci procesu indukce. Nejv¥t²í výhodou induktivního modelování oproti tradi£ním neuronovým sítím je hlavn¥ jejich schopnost °e²it rozmanité problémy s velkým mnoºstvím vlastností vstupních dat. Problém je rozd¥len na °adu men²ích podproblém· a informace z nejvýznamn¥j²ích vstupních dat jsou analyzovány nejd°íve a poté se takto získané informace kombinují a dále analyzují [1]. R. 1966 byla ukrajinským profesorem A. G. Ivahknenkem p°edstavena skupina metod pro induktivní modelování, známá jako Group Method of Data Handling (GMDH). Metoda Group of Adaptive Models Evolution (GAME) vychází z jenoho z algoritm· popsaných v GMDH a to sice algoritmu Multilayered Iterative Algorithm (MIA). Model systému je zde reprezentován formou sít¥, algoritmus vytvá°í model sloºitého systému vrstvu po vrstv¥ b¥hem procesu u£ení, p°i£emº u£ení - nastavování parametr· p°enosové sít¥, probíhá za pouºití dat popisujících modelovaný systém [1].
3.2 Neuronové sít¥ a typy °e²ených úloh 3.2.1
Neuronové sít¥
Základní vlastnosti neuronových sítí [3]:
• Inspirovány poznatky o neuronech a nervových sítích ºivých organism· • Schopnost extrahovat a reprezentovat závislosti v datech, které nejsou z°ejmé • Schopnost °e²it siln¥ nelineární úlohy • Schopnost u£it se • Schopnost zev²eobec¬ovat • Vyuºití pro klasikaci, regresi a predikci £asových °ad Um¥lá neuronová sí´ je distribuovaný výpo£etní systém sestávající z díl£ích podsystém· (neuron·), který je inspirován neurofyziologickými poznatky o struktu°e a £innosti neuron· a nervových systém· ºivých organism·, a který je ve v¥t²í £i men²í mí°e realizuje. Neuron je základní výpo£etní jednotkou neuronových sítí. Obsahuje n¥kolik vstup·, které jsou ohodnoceny vahami a jeden výstup. Existuje celá °ada typ· neuronových sítí. Kaºdý typ se hodí pro jinou t°ídu úloh. Základními úlohami neuronových sítí jsou klasikace a regrese (aproximace). Podle p°ítomnosti u£itele m·ºeme neuronové sít¥ d¥lit na sít¥ s u£itelem a bez u£itele [3].
8
KAPITOLA 3. TEORIE
3.2.2 Regrese a klasikace Stejn¥ tak jako neuronové sít¥ i Fake Game se zabývá dv¥mi základními úlohami: regresí a klasikací. Fake Game °e²í i n¥které dal²í úlohy, nap°. shlukování. Tato práce se bude zabývat statistickým vyhodnocením dat u regresních úloh.
Regrese Regresní úlohy se zabývají modelováním závislosti spojité závislé prom¥nné na jedné £i více nezávislých prom¥nných [15]. Typickým p°íkladem regresní úlohy je: Ozón modelování mnoºství ozonu v závislosti na nadmo°ské vý²ce, teplot¥ a rychlosti v¥tru. Regresní analýza je ozna£ení statistických metod, pomocí nichº odhadujeme hodnotu jisté náhodné veli£iny (takzvané závisle prom¥nné, cílové prom¥nné, regresandu anebo vysv¥tlované prom¥nné) na základ¥ znalosti jiných veli£in (nezávisle prom¥nných, regresor·, kovariát anebo vysv¥tlujících prom¥nných). P°íkladem uvaºování v duchu regresní analýzy z b¥ºného ºivota m·ºe být nap°íklad, odhadujeme-li ráno, jaké bude p°es den po£así (regresand) na základ¥ znalosti p°edpov¥di po£así a toho, jaké je venku po£así nyní (dva regresory). P°íklad skute£né regresní analýzy v praxi je odhadování o£ekávané poopera£ní délky ºivota pacient· trpících rakovinou. Na základ¥ zku²eností z minulých let, kdy se shromáºdily p°edopera£ní údaje o zdravotním stavu v¥t²ího po£tu pacient·, nap°íklad velikost a typ nádor·, v¥k pacient· apod. (regresory) jakoº i záznamy o délce ºivota po operaci (regresand), lze pomocí vhodného typu regresní analýzy (v tomto p°ípad¥ obvykle tzv. Coxovy regrese) stanovit vzorec, s jehoº pomocí bude moºné u nového pacienta na základ¥ znalosti jeho zdravotního stavu odhadnout st°ední hodnotu o£ekávané doby p°eºití v p°ípad¥ operace. Je-li navíc k dispozici podobná analýza pro pacienty lé£ené konzervativn¥, lze pak tomuto novému pacientovi doporu£it, který zp·sob lé£by mu v dané situaci dává nad¥ji na del²í p°eºití [16].
Klasikace Klasika£ní úlohy se zabývají modelováním závislosti kategoriální závisle prom¥nné na jedné £i více nezávislých prom¥nných [16]. Typickými p°íklady klasika£ní úlohy jsou:
• Spamy ur£ení, který doru£ený e-mail je spam a který není spam. • Kosatce t°íd¥ní kostac· do jednotlivých druh· na základ¥ velikosti jejich korunních a kali²ních plátk·. T¥mito úlohami se v této práci nebudu zabývat.
3.3 Statistika V této kapitole se zam¥°ím na teoretický základ statistického vyhodnocení dat a na dal²í související metody, které nám podají uºite£né informace o datech.
3.3. STATISTIKA
3.3.1
9
Chyby
Obecn¥ roz²í°ené vyjád°ení p°esnosti výsledk· je pomocí chyb. Chyby se d¥lí na chyby systematické a náhodné. Systematické chyby jsou zp·sobeny neustále stejnou p°í£inou. Náhodné chyby se projevují rozdílnými výsledky opakovaných m¥°ení stejné veli£iny za stejných podmínek.
Systematická chyba Pr·m¥rný rozdíl, který by mohl být získán jako rozdíl mezi pr·m¥rem nekone£ného po£tu m¥°ení m¥°ené veli£iny za podmínek opakovatelnosti a správnou hodnotou m¥°ené veli£iny. Je to sloºka chyby, která v °ad¥ výsledk· zkou²ky (m¥°ení), zam¥°ené na tutéº veli£inu, z·stává konstantní nebo se m¥ní p°edvídatelným zp·sobem1 .
SE = avg(
xi − yi ∗ 100), 1 ≤ i ≤ n xi
Náhodná chyba Sloºka chyby mající diskrétní a kolísavý charakter. Nelze ji ovlivnit ani matematicky korigovat a nabývá kladných i záporných hodnot. Zp·sobuje variabilitu výsledk· m¥°ení, kterou lze charakterizovat p°esností m¥°ení £íseln¥ vyjád°enou jako sm¥rodatná odchylka nebo varia£ní koecient stanovenou na základ¥ statistické analýzy série nezávislých m¥°ení. Její vliv na výsledek m¥°ení lze sníºit zvý²ením po£tu m¥°ení2 .
RE = stdu(
xi − yi ∗ 100), 1 ≤ i ≤ n xi
stdu() = standardní odchylka3 .
3.3.2
Výb¥r statistických metod
Pro statistické vyhodnocení je klí£ový výb¥r vhodných statistických metod a test·. Výb¥r metod a test· je rozsáhlý. Na základ¥ konzultace s Ing. Tomá²em Sieglem jsme zvolili: Rozhodovací schéma pro výb¥r test· st°edních hodnot (Obrázek 3.1), které se nalézá v knize [19]. Výsledky z této skupiny test· jsou pouºívány pro získání základních informací o datech.
3.3.3
Zvolené metody
Ze schématu v kapitole 3.3.2 vyplývá seznam metod a statistických test· nutných k implementaci. Dle tohoto rozhodovacího schématu je jasné, ºe se jedná o oblast testování hypotéz, kde vyuºíváme níºe jmenované testy. Tyto testy jsou v praxi jedny z nejpouºívan¥j²ích: 1 http://www.eqa.cz/terminologie/Text/Terminologie.htm 2 http://www.eqa.cz/terminologie/Text/Terminologie.htm 3
http://cs.wikipedia.org/wiki/Sm¥rodatná_odchylka - vypovídá o tom, jak moc se od sebe navzájem li²í typické p°ípady v souboru zkoumaných £ísel. Je-li malá, jsou si prvky souboru v¥t²inou navzájem podobné, a naopak velká sm¥rodatná odchylka signalizuje velké vzájemné odli²nosti. Lze p°ibliºn¥ ur£it, jak daleko jsou £ísla v souboru vzdálená od pr·m¥ru, resp. hodnoty náhodné veli£iny vzdálené od st°ední hodnoty. Sm¥rodatná odchylka je nejuºívan¥j²í míra variability.
10
KAPITOLA 3. TEORIE
Obrázek 3.1: Rozhodovací schéma pro výb¥r test· st°edních hodnot [19]
• Kolmogorov·v-Smirnov·v test • F-test (Fisher test) • t-test pro stejné a r·zné rozptyly • Wilcoxon·v test pro dva výb¥ry • znaménkový test pro dva výb¥ry
3.3.4 Testování hypotéz Obecn¥ se hypotézou rozumí výpov¥¤ (tvrzení) jejíº platnost se pouze p°edpokládá, ale zárove¬ je formulována tak, ºe ji lze potvrdit nebo vyvrátit [14]. Ve statistice je test hypotézy pravidlo, které pozorované náhodné veli£in¥ p°i°adí rozhodnutí hypotézu zamítnout nebo nezamítnout [4], [20]. P°i testování statistických hypotéz vºdy porovnáváme dv¥ hypotézy. Jedna hypotéza, tzv. nulová (testovaná), je hypotéza, kterou testujeme. Zna£íme ji obvykle H0 . Druhou hypotézou je tzv. alternativní hypotéza, kterou obvykle zna£íme H1 [17].
3.3. STATISTIKA
11
Postup testu • Formulujeme testovanou (nulovou) a alternativní hypotézu • Vybereme vhodný test • Zvolíme hladinu významnosti α (obvykle 0,05) • Sestrojíme kritický obor • Vypo£ítáme hodnotu testovacího kritéria • U£iníme záv¥r o prokázání £i neprokázání alternativní hypotézy (zamítnutí £i nezamítnutí nulové hypotézy)
Vysv¥tlení pojm· Chyba 1.druhu nastává pokud je hypotéza zamítnuta, p°estoºe platí. Chyba 2.druhu naopak pokud hypotéza zamítnutá není, p°estoºe neplatí. Kvalita testu je dána pravd¥podobnostmi, se kterými tyto chyby nastávají. Dopln¥k pravd¥podobnosti chyby 2. druhu do jedni£ky (1 β ) se nazývá síla testu. P°i daném rozsahu výb¥ru obvykle nelze minimalizovat pravd¥podobnost obou druh· chyb sou£asn¥. Hladina významnosti α - test na hladin¥ významnosti α je test, u kterého pravd¥podob-
nost chyby 1. druhu nep°ekra£uje hodnotu α.
Kritický obor je mnoºina hodnot pro n¥º test hypotézu zamítá. P-hodnota(p-value) je obvyklým výstupem po£íta£ových program· na testování hy-
potéz. Udává mezní hladinu významnosti, p°i které bychom hypotézu je²t¥ zamítali. Hypotézu H0 zamítáme na hladin¥ α, práv¥ kdyº p − hodnota je men²í neº α.
3.3.5
Popis test·
Parametrické testy - testy na rozd¥leních o kterých n¥co víme, je nám znám n¥který z parametr· rozd¥lení.
Neparametrické testy - ne vºdy je rozd¥lení dat podobné n¥kterému z b¥ºn¥ pouºívaných rozd¥lení. Pro takovéto rozd¥lení jsou pouºitelné neparametrické testy. Ty nevyºadují znalost typu rozd¥lení, jsou ale slab²í nebo´ vycházejí ze slab²ích p°edpoklad·. Kolmogorov·v-Smirnov·v test Uºívá se pro hodnocení shody rozd¥lení £etností dvou srovnávaných výb¥r·. Metoda matematické statistiky, která umoº¬uje ur£it, jestli se dv¥ jednorozm¥rná pravd¥podobnostní rozd¥lení li²í, p°ípadn¥ jestli se zkoumané pravd¥podobnostní rozd¥lení li²í od p°edpokládaného rozd¥lení. Existují dv¥ verze tohoto testu: jednovýb¥rový a dvouvýb¥rový. Jednovýb¥rový test ov¥°uje, jestli se rozd¥lení náhodné veli£iny v populaci li²í od ur£itého teoretického rozd¥lení. Vyuºívá se pro ov¥°ení, jestli má prom¥nná normální rozd¥lení. Dvouvýb¥rový test srovnává rozd¥lení dvou náhodných veli£in. Je to jedna z nejpouºívan¥j²ích a nejv²eobecn¥j²ích neparametrických metod porovnávání dvou výb¥r·.
12
KAPITOLA 3. TEORIE
F-test Test významnosti rozdílu dvou rozptyl·. Ov¥°ení shodnosti rozptyl·.
T-test Test významnosti rozdílu dvou pr·m¥r·. T-test je metodou matematické statistiky, která umoº¬uje ov¥°it n¥kterou z následujících hypotéz: 1. zda normální rozd¥lení, z n¥hoº pochází ur£itý náhodný výb¥r, má ur£itou konkrétní st°ední hodnotu, p°i£emº rozptyl je neznámý 2. zda dv¥ normální rozd¥lení mající stejný (by´ neznámý) rozptyl, z nichº pocházejí dva nezávislé náhodné výb¥ry, mají stejné st°ední hodnoty (resp. rozdíl t¥chto st°edních hodnot je roven ur£itému danému £íslu) V prvním p°ípad¥ m·ºe být náhodný výb¥r tvo°en bu¤ jednotlivými hodnotami (pak se jedná o jednovýb¥rový t-test), anebo dvojicemi hodnot, u nichº se zkoumají jejich rozdíly (pak se jedná o párový t-test). Ve druhém p°ípad¥ jde o dvouvýb¥rový t-test. V praxi se t-test £asto pouºívá k porovnání, zda se výsledky m¥°ení na jedné skupin¥ významn¥ li²í od výsledk· m¥°ení na druhé skupin¥.
Wilcoxon·v test Tímto testem lze posoudit hypotézu, ºe náhodná veli£ina má rozd¥lení symetrické kolem zvolené hodnoty c. (V tom p°ípad¥ je c mediánem i st°ední hodnotou.) P°itom nezáleºí na tom, jaké symetrické rozd¥lení to je. Test po°adový - testovaná veli£ina T se vypo£te jako sou£et rozdíl· v po°adí párovaných hodnot (zvlá²´ kladné a zvlá²´ záporné, jako testovací kritérium se bere absolutní hodnota men²ího z nich). Wilcoxon·v test slouºí k ov¥°ení, zda lze dva výb¥ry povaºovat za výb¥ry z jednoho základního souboru.
Znaménkový test V tomto testu rozli²ujeme pouze znaménko odchylky od zvolené hodnoty c. Tím se ztrácí kvantitativní informace a tedy i moºnost testovat nap°. st°ední hodnotu. Místo ní se testuje medián.
3.4 Popis výsledk· a výstup· V této £ásti vysv¥tlím výstupy statistických test· pro pozd¥j²í správnou interpretaci. D·leºitá je informace o velikosti dat. Pokud se jedná o malý vzorek dat, v¥t²inou není moºné p°esn¥ vyhodnotit výsledek. ím men²í je vzorek dat, tím m·ºe být výsledek více zkreslený, protoºe máme men²í mnoºství vypovídajících informací o datech. Ale známe n¥které statistické testy, které jsou schopny po£ítat i s malými vzorky (n<10). Jedná se o Wilcoxon·v a znaménkový test.
3.4. POPIS VÝSLEDK A VÝSTUP
13
Základní informace o datech jsou obsaºeny v systematické a náhodné chyb¥. U obou samoz°ejm¥ platí závislost, £ím men²í je chyba, tím jsou men²í rozdíly mezi daty. U systematické chyby se jedná o pr·m¥rný rozdíl a její odhadovaná optimální velikost je v °ádu jednotek. U náhodné chyby se jedná o sm¥rodatnou odchylku a optimální velikost je odhadována v °ádu desítek. Dal²í d·leºitou informací je normalita dat obou vzork·. Pro test zda se jedná o normální rozd¥lení je pouºit Kolmogorov·v-Smirnov·v test vzorku v·£i nagenerovanému vzorku z normálního rozd¥lení. Tímto testem dochází k porovnání rozd¥lení. Na základ¥ výsledk· na obou vzorcích se rozhoduje o pouºití dal²ích test·. V²e je pod°ízeno rozhodovacímu stromu dle obrázku 3.1. Ne mén¥ d·leºitou £ástí je srovnání rozd¥lení obou vzork· v·£i sob¥. Je pouºit také párový Kolmogorov·v-Smirnov·v test. Na základ¥ tohoto testu je moºné rozhodnout o podobnosti nap°. nau£eného modelu a výstupních atribut·. M·ºe totiº snadno dojít k variant¥, kdy data budou mít stejný n¥který parametr, ale úpln¥ jiné rozd¥lení. Tato varianta m·ºe nastat u nesymetrických £i r·zn¥ vychýlených rozd¥lení. Z toho vyplývá podstatná informace o významném rozdílu mezi daty (nap°. ²patn¥ nau£eném modelu).
Výsledek testu Výstupem z kaºdého testu je výsledná testovací statistika. Ta ur£uje míru výsledku daného testu. Testovací statistika se srovnává s kvantilem daného rozd¥lení na ur£ité hladin¥ významnosti. Kvantily bývají uvedeny v tabulkách. Pro lep²í interpretaci se v po£íta£ích pouºívá p-hodnota. Platí, ºe pokud je p-hodnota men²í neº hladina významnosti zamítáme testovanou hypotézu na této hladin¥ významnosti. P-hodnota nabývá hodnot od 0 do 1. Hladina významnosti na 95% má podobu desetinného £ísla 0.05. Pak tedy pokud se p-hodnota pohybuje v intervalu < 0.05, 1 > hypotézu nezamítáme. V opa£ném p°ípad¥ < 0, 0.05) zamítáme. Z velikosti p-hodnoty lze i usoudit jak moc se blíºí výsledek zamítnutí. ím dále je výsledek od hranice významnosti, tím je rozdíl v datech v¥t²í.
Gracké znázorn¥ní P°edchozí údaje o výsledcích test· je moºné interpretovat i gracky. Gaussova k°ivka normálního rozd¥lení nabývá hodnot p°ibliºn¥ od -4 do +4 (Znázor¬uje hustotní funkci normálního rozd¥lení se st°ední hodnotou nula a rozptylem rovným jedné). Obsah pod k°ivkou je roven 1. Stejn¥ tak p-hodnota nabývá hodnot od 0 do 1. Lze tedy vyuºít pro znázorn¥ní velikosti phodnoty plochu zapln¥nou pod k°ivkou. Hladina významnosti nabývá v podob¥ desetinného £ísla také hodnot < 0, 1 >. Ob¥ veli£iny lze tedy znázornit jako plochu zapln¥nou pod k°ivkou. Testovanou hypotézu nezamítáme tedy v p°ípad¥ pokud je plocha p-hodnoty v¥t²í neº hladiny významnosti. Zamítáme pokud klesne pod tuto hranici. D·leºité jsou je²t¥ varianty oboustranného a jednostranného testu. U oboustranného se plocha zapl¬uje z obou stran polovinou hodnoty(p-hodnoty nebo hranicí významnosti). Na rozhodnutí o zamítání to ale nemá vliv.
14
KAPITOLA 3. TEORIE
Kapitola 4
Pouºité technologie 4.1 FAKE GAME Projekt FAKE GAME (Fully Automated Knowledge Extraction using Group of Adaptive Models Evolution)[9], [8] má v úmyslu vytvo°it nástroj schopný pln¥ automatizované extrakce znalostí (informací). Jedná se o open source software vyvíjený od roku 2002 na Kated°e po£íta£· FEL VUT v Praze. Celek se skládá z modulu pro automatické p°edzpracování dat, modulu pro automatický data mining a modulu pro vizualizace. Výsledky p°edzpracování, data miningu a technik pro extrakci informace jsou zpracovány do reportu vyuºívající technologie JasperReports.
Obrázek 4.1: FAKE GAME architektura Modul pro automatickou extrakci informací je zaloºen na metod¥ GAME. Tato £ást je jádrem celého FAKE GAME prost°edí. Vstupem jsou p°edzpracovaná data a výstupem je soubor GAME model·. Základem je neuronová sí´ a genetické algoritmy. FAKE GAME dává k dispozici velké mnoºství voleb a nastavení pro °ízení procesu tvorby model· 1 . 1
http://fakegame.wiki.sourceforge.net/automated+data+mining+module
15
16
KAPITOLA 4. POUITÉ TECHNOLOGIE
Obrázek 4.2: FAKE GAME architektura 2
4.2 Jazyk R R je jazyk a prost°edí pro zpracování dat pomocí statistických výpo£t· a pro tvorbu grackých výstup· [13]. Celý projekt je pod licenci GNU. Je podobný jazyku a prost°edí S, který byl vyvinut v Bell Laboratories. Jazyk R m·ºe být povaºován za jinou implementaci jazyka S. Jsou mezi nimi rozdíly, ale v¥t²ina kód· z S lze spustit beze sm¥n pod R. Jazyk R poskytuje velké mnoºství moºností pro statistické výpo£ty a jejich gracké zobrazení. Gracké výstupy lze pouºít pro odborné publikace v£etn¥ v²ech náleºitostí jako jsou matematické symboly a výrazy. Je dostupný pro v¥t²inu platforem, ke kterým pat°í UNIXové systémy, Windows i MacOS. Má velké mnoºství roz²í°ení umoº¬ujících p°idání dopl¬kových funkcí a p°izp·sobení pro specické ú£ely.
4.2.1 Prost°edí jazyka R R je soubor funkcí umoº¬ující manipulaci s daty, provád¥ní výpo£t· a tvorbu grackých zobrazení. Zahrnuje:
• efektivní práce s daty • soubor operací pro práci s poli a maticemi • velké mnoºství nástroj· pro analýzu dat • gracké vybavení pro analýzu dat (zobrazení bu¤ na obrazovce nebo jako soubor) • jednoduchý a efektivní programovací jazyk zahrnující podmínky, cykly, funkce a vstupní/výstupní operace Jedná se tedy o komplexní systém umoº¬ující uºivatel·m p°idání vlastní funkcionality. Kód napsaný v jazyce C, C++ a Fortran lze nalinkovat a spou²t¥t p°ímo z prost°edí. Pro pokro£ilé je moºnost v jazyce C p°ímo manipulovat s objekty jazyka R.
4.2. JAZYK R
17
Obrázek 4.3: ukázka R
4.2.2
Pouºití
Informace o pouºití lze nalézt nap°. na [12], [7], [5]. V diplomové práci je jazyk R pouºit svými výsledky výpo£t· jako vzor pro statistické výpo£ty nad daty. Jazyk R (p°ípadn¥ jazyk S) je v oblasti statistiky znám a hojn¥ pouºíván. Výsledky jeho výpo£t· jsou tedy dostate£n¥ otestovány praxí. Není tedy d·vod se obávat chyb výsledk·. Sou£ástí mé práce je seznámení s jazykem R, nastudování moºností statistického vyhodnocování. Zejména testování hypotéz a testy zmín¥né v kapitole 3.3. Bliº²í informace o jazyku R naleznete v kapitole 4.2.
4.2.3
Základní pot°ebné p°íkazy
Pro na£tení dat do vektoru x ze souboru ve formátu CSV odd¥leného mezerami a mající hlavi£ku je pot°ebný p°íkaz:
x < −read.table(”data.csv”, header = T RU E) Vypsání vektoru:
x Vypsání sloupce a,b:
x$a x$b uloºení vektoru:
write.table(x, f ile = ”data.csv”, sep = ””, col.names = F ALSE, row.names = F ALSE) Toto je posta£ující základ pro práci s daty v diplomové práci.
18
KAPITOLA 4. POUITÉ TECHNOLOGIE
4.2.4 Statistika Normalita dat Vygenerování vzorku dat o velikosti 1000 a s normálním rozd¥lením.
n < −rnorm(1000) Vygenerování vzorku dat o velikosti 1000 a s normálním rozd¥lením a specikovanými parametry. n < −rnorm(1000, mean = 0, sd = 1) Vygenerování vzorku dat o velikosti 1000 a s exponenciálním rozd¥lením.
n < −rexp(1000) Vygenerování vzorku dat o velikosti 1000 a s t rozd¥lením a jedním stupn¥m volnosti.
n < −rt(1000, 1) Shapir·v-Wilk·v test normality dat:
shapiro.test(x$a) Dvouvýb¥rový Kolmogorov·v-Smirnov·v test normality dat:
ks.test(x$a, n)
Statistické testy Kolmogorov·v-Smirnov·v test (dvouvýb¥rový, neparametrický):
ks.test(x$a, x$b) F-test
var.test(x$a, x$b) T-test (jednovýb¥rový, parametrický)
t.test(x$a) T-test, shodné rozptyly, normalita obou výb¥r· (dvouvýb¥rový, parametrický)
t.test(x$a, x$b) T-test, párový, normalita rozdíl· pár·
t.test(x$a, x$b, paired = T ) T-test, párový, ru£n¥ , normalita rozdíl· pár·
t.test(x$a − x$b) Wilcoxon·v test, spojité výb¥ry (dvouvýb¥rový, neparametrický):
wilcox.test(x$a, x$b) Wilcoxon·v test, párový, spojitost a p°ibliºná symetrie rozdílu pár·
wilcox.test(x$a, x$b, paired = T ) Znaménkový test
2
b < −sum(sort(x$b − x$a) > 0) pbinom(b − 1, length(x$b), 1/2, lower.tail = F ALSE) 2
http://www.stat.umn.edu/geyer/old/5601/examp/sign.html
4.3. JASPERREPORTS, IREPORT
19
4.3 JasperReports, iReport 4.3.1
JasperReports
Jedná se o jednu z nejvíce populárních open source Java knihoven ur£ených pro tvorbu komplexních report· [11]. Lze jednodu²e vloºit do Java aplikace pro získání report· ur£ených pro zobrazení na monitoru, tisk nebo web. Takto vytvo°ený report lze snadno uloºit do nejr·zn¥j²ích formát· (nap°. HTML, pdf, xls, csv, rtf, xml). Kaºdý report je moºno seskládat z velkého mnoºství formátovaných sekcí jako je nap° hlavi£ka, t¥lo a pati£ka stránky. Kaºdá sekce m·ºe obsahovat r·zné prvky a tvary nap°. linky, obdélníky, statické a dynamické texty, obrázky. kaºdý element je moºné p°esn¥ umístit na danou pozici. Velkou výhodou je moºnost vyuºití reportu jako podreportu jiného reportu. Takto lze do sebe vkládat reporty a vytvá°et tak jednodu²e rozsáhlé reporty. Data jsou do reportu p°edána z aplikace vytvá°ející report. Data je moºné p°edat ze zdroj· rela£ních databází (JDBC, JNDI), JavaBeans(EJB, Hibernate), POJO nebo XML. Jednotlivé zdroje lze kombinovat i v rámci jednoho reportu. Report tedy není závislí pouze na jednom typu vstupních dat. JasperReports má v sob¥ také zabudován nástroj pro provád¥ní výraz·. Lze provád¥t základní operace jako suma, pr·m¥r, maximum, minimum a dal²í. Jsou dostupné i pomocné prom¥nné (£íslo stránky, po£et záznam·) zjednodu²ující návrh reportu. V diplomové práci je tato knihovna pouºita pro generování report· s výsledky statických výpo£t·.
Obrázek 4.4: JasperReports architektura
4.3.2
iReport
Jedná se o editor umoº¬ující gracký návrh report· pro JasperReports. Editor je typu WYSIWYG a jeho pouºívání je tedy velmi snadné. Umoº¬uje jednodu²e navrhnout report nebo podreport. Jednotlivým polím lze snadno p°i°adit zdroje dat. Více na [10].
20
KAPITOLA 4. POUITÉ TECHNOLOGIE
V diplomové práci je tento software pouºit pro jednoduchost návrhu report· ur£ených k zobrazení výsledk· statistických test·.
Obrázek 4.5: iReport ukázka
4.4 IntelliJ IDEA Jedná se o komer£ní vývojové prost°edí pro programování v jazyce Java. Toto prost°edí je vyráb¥no rmou JetBrains. Podporuje pokro£ilé funkce vývojového prost°edí jako je asistence kódu, analýza kódu, refactoring a mnoho dal²ích. Samoz°ejmostí je roz²í°itelnost velkým mnoºstvým plugin·.
Kapitola 5
Analýza a návrh °e²ení V této kapitole jsem se zam¥°il na celkovou analýzou problému a návrhem °e²ení. Globálními poºadavky na modul jsou:
• p°esnost odpovídající funkcím jazyka R • jednoduché rozhraní • výstup v podob¥ dialogového okna, souboru a JasperReportu • automatické spu²t¥ní posloupnosti test· • implementace v jazyce Java Ostatní zji²t¥né poºadavky na modul jsou zmín¥ny dále v této kapitole.
5.1 Výb¥r a srovnání statistických knihoven Pro implementaci modulu je pot°eba vytvo°it nebo nalézt knihovnu obsahující pot°ebné algoritmy pro provedení statistického vyhodnocení dat. Dle re²er²e v p°edchozí kapitole existuje mnoho jiº hotových °e²ení obsahujících zmín¥né pot°ebné funkce. Po prostudování moºností (viz tabulka 5.1) jednotlivých hotových °e²ení se výb¥r zúºil na jedno p°ijatelné °e²ení. A tím je Java Statistical Classes [6]. Podrobné srovnání knihoven a zd·vodn¥ní výb¥ru je popsáno v tabulce 5.1.
5.1.1
Srovnání vybrané knihovny s R
Základní srovnání je zachyceno v tabulce 5.2. Test prob¥hl na datech ze záznamu o velikostech d¥tí. Hodnota REAL oproti nau£enému modelu REAL. Velikost datového vzorku je 390. I p°es odchylky hodnot mezi JSC a R, jsem tuto knihovnu vyhodnotil jako dosta£ující. Odchylky mohou být zp·sobeny zaokrouhlovacími chybami p°i výpo£tech, metodami o men²í p°esnosti, nebo nedostate£nou velikostí vzorku. Pro diplomovou práci je nejd·leºit¥j²í phodnota. Na základ¥ této hodnoty bude docházet k zamítání hypotéz. D·kladn¥j²í testování bude provedeno po implementaci. Podrobný test a srovnání JSC knihovny s R je blíºe popsán v kapitole 7. 21
22
KAPITOLA 5. ANALÝZA A NÁVRH EENÍ
Název
Výhody
JRI - Java/R Interface
Java Statistical Classes
JMSL Numerical Library for Java Applications Commons-Math: The Apache Commons Mathematics Library Announcing Uncommons Maths Statistical Distribution Library
-umoº¬uje spou²t¥t R p°ímo z jazyka Java -p°ímý p°ístup k funkcím a objekt·m z prost°edí jazyka R -spl¬uje ve²keré poºadavky pro na²e ú£ely -obsahuje funkce, testy a rozhraní pouºitelné pro tuto diplomovou práci. -velmi rozsáhlá knihovna funk£ností pravd¥podobn¥ spl¬uje ve²keré poºadavky pro tuto práci velmi rozsáhlá knihovna -zdarma dostupná -£asto aktualizovaná -zdarma dostupná -distribu£ní funkce
Nevýhody
pouºívá externí knihovnu, tím se stává platform¥ závislá -neaktualizovaná verze z roku 2005
placený produkt
neobsahuje ve²keré pot°ebné funkce a algoritmy neobsahuje ve²keré pot°ebné funkce a algoritmy obsahuje pouze distribu£ní funkce a ºádné pot°ebné funkce a algoritmy
Tabulka 5.1: Srovnání nejd·leºit¥j²ích statistických knihoven
Test Kolmogorov-Smirnov (normalita dat) T-test (párový) Wilcoxon test (párový) Kolmogorov-Smirnov test (párový)
JSC
- testovací statistika - p-hodnota 0.5044 1.2261 ∗ 10−92 1.1417 0.8874 36358 0.389 0.1202 0.006992
R
- testovací statistika - p-hodnota 0.4757 <2.2 ∗ 10−16 1.1417 0.8874 36358 0.389 0.1202 0.007038
Tabulka 5.2: Srovnání JSC s R
5.2 Vývoj modulu a jeho integrace S integrací knihovny do Fake Game souvisí podrobné nastudování implementace a principu funkce celé aplikace. Druhou £ástí je nutnost návrhu modulu, studium statistické knihovny
5.2. VÝVOJ MODULU A JEHO INTEGRACE
23
a rozhraní statistických funkcí.
5.2.1
Poºadavky na modul
• jádro nezávislé na Fake Game • výb¥r dat k testu
výb¥r originálních dat výb¥r odpov¥di nau£eného modelu • volba statistických test·, jejich aktivace, alternativní hypotézy, hladin významnosti • moºnost zm¥nit data (nap°. zm¥nit na testovací nebo trénovací mnoºinu) • spu²t¥ní testu, spu²t¥ní automatického testu dle rozhodovacího stromu • moºnost vygenerování JasperReportu • textový i gracký výstup výsledk· test·
5.2.2
Návrh
Obrázek 5.1: Use Case diagram Obrázek 5.1 p°edstavuje poºadavky na modul a integraci knihovny modelované v podob¥ Use Case diagramu (diagram p°ípad· pouºití). Diagram zobrazuje interakci uºivatele s modulem pro statistiku v programu Fake Game. V diagramu je znázorn¥n uºivatel a jemu dostupné funkce. Proces testování a zobrazení výsledk· je závislý na modulu a knihovn¥ se statistickými funkcemi. Modul je zobrazen jako samostatná £ást nezávislá na Fake Game. Princip je tedy modulu z Fake Game p°edat data, zavolat p°íslu²ný test a získat zp¥t výsledky. Gracké rozhraní je nad modulem a knihovnou. Vyuºívá tedy funkcí z modulu. Gracké rozhraní komunikuje pouze s rozhraním, které poskytuje modul.
24
KAPITOLA 5. ANALÝZA A NÁVRH EENÍ
Obrázek 5.2: Activity diagram - uºivatelem denovaný test
Na základ¥ poºadavk· jsem stanovil vhodný postup pro spu²t¥ní testu. Obrázek 5.2 zobrazuje Activity diagram. Ten popisuje aktivitu spojenou s provedením vyhodnocení, p°i kterém si uºivatel nadenuje pot°ebné testy. U varianty provedení automatického testu je postup °e²ení podobný (Obrázek 5.3). Jediný rozdíl je ve vynechání volby test· a jejich parametr·. Volba test· je brána na základ¥ rozhodovacího stromu. Obrázek 5.4 zobrazuje návrh class diagramu a zárove¬ znázor¬uje komunikaci Fake Game s knihovnou pomocí rozhraní poskytovaného modulem.
5.2.3 Rozhraní Z provád¥né analýzy a diagram· vyplývají poºadavky na rozhraní modulu:
• p°edání dat modulu • provedení jednotlivých test· samostatn¥ • provedení automatického vyhodnocení • získání výsledk· • moºnost vygenerovat report
5.2. VÝVOJ MODULU A JEHO INTEGRACE
Obrázek 5.3: Activity diagram - automatický test
25
26
KAPITOLA 5. ANALÝZA A NÁVRH EENÍ
Obrázek 5.4: Class diagram - návrh
Kapitola 6
Realizace Tato kapitola se zam¥°uje na popis implementace, celkové realizace a výsledného °e²ení. Zam¥°uje se i na interpretaci výsledk· a jejich správné pochopení.
6.1 Implementace Implementace grackého rozhraní je za°azena do stávajícího jiº p°ipraveného balí£ku ur£eného pro statistiku. Modul je také za°azen do tohoto balí£ku. Na Fake Game je ale závislé pouze gracké rozhraní. To slouºí ke komunikaci Fake Game a modulu v£etn¥ knihovny. Struktura balí£ku je na obrázku 6.1. Gracké rozhraní je tvo°eno t°ídou StatisticalBlock. Základem modulu je t°ída StatisticalDataProcessor. Tato t°ída je rozhraním k modulu, který je moºno pouºít i samostatn¥. Tento samostatný celek je tvo°en celým balí£kem StatisticalBlock.
6.2 Popis modulu a jeho rozhraní 6.2.1
Struktura, popis test·
Celý balí£ek StatisticalBlock je tvo°en balíkem test· a skupinou t°íd pot°ebných pro volání metod, p°edávání dat a prezentaci výsledk·. Balík sou£asn¥ dostupných test· obsahuje pot°ebné testy. T¥mi jsou jiº zmi¬ované: Ftest, Kolmogorov·v-Smirnov·v test, párový t-test, znaménkový a Wilcoxon·v test. Kaºdý test musí být potomkem abstraktní t°ídy AbstractTwoSampleTest. Toto zaru£uje jednotné volání a vracení výsledk· test·. Informace o testu jsou dostupné z metod, které vrací jméno a popis v textové podob¥:
public String getName(); public String getDescription(); Výsledky testu vrací p-hodnotu a testovací statistiku:
public double getPValue(); public double getTestStatistic(); A spu²t¥ní testu:
public void processTest(PairedDataSample data); public void processTest(PairedDataSample data, int alternativeHypothesis);
27
28
KAPITOLA 6. REALIZACE
Obrázek 6.1: Struktura balí£ku
6.2.2 Rozhraní modulu Rozhraní modulu je tvo°eno t°ídou StatisticalDataProcessor. Bylo naimplementováno pro co nejjednodu²²í pouºití.
Data Data jsou p°edávána pomocí t°ídy PairedDataSample
PairedDataSample(double[] a, double[] b) Dostupné metody:
public public public public public public public
double[] getFirstDataSample() double[] getSecondDataSample() double getSystematicError() double getRandomError() boolean isFirstNormalDistrbution() boolean isSecondNormalDistrbution() boolean isTheSameDistribution()
6.3. ROZÍENÍ
29
Modul T°ída má 2 konstruktory, jeden umoº¬uje p°edat rovnou data k testu a druhý ne.
StatisticalDataProcessor() StatisticalDataProcessor(PairedDataSample data) Moºnost p°edat nová data je zaji²t¥n:
public void setData(PairedDataSample data) D·leºitou sou£ástí je seznam dostupných statistických test·, tato funkce je dostupná pomocí:
public String[] getTestsNames() Ke spu²t¥ní jednoho vybraného testu specikovaného pomocí jména, alternativní hypotézou, a hranicí významnosti:
processTest(String name, int alternativeHypothesis, double significanceLevel) Je moºné volat více t¥chto test· za sebou, výsledky se hromadí p°ímo v objektu. Výsledky je moºné smazat pomocí:
public void clearResults() Pro získání výsledk· jako objekty:
public TestResult[] getObjectResult() Pro získání výsledk· v textové podob¥:
public String getTextResult() Pro získání výsledk· v podob¥ jPanelu pro gracké rozhraní:
public JPanel getPanelResult() Pro získání výsledk· v JasperReportu:
public void getJasperReportResult()
6.3 Roz²í°ení Jedním z poºadavk· diplomové práce na tento modul je snadná roz²i°itelnost o nové statistické algoritmy. Navrhl a implementoval jsem jednoduchý princip roz²í°ení a tím jsem usnadnil p°idání nových metod.
30
KAPITOLA 6. REALIZACE
6.3.1 Postup pro p°idání nového testu Postup bude ukázán na vzorovém testu, který bude slouºit pouze k demonstraci. P°i implementaci je moºné se samoz°ejm¥ inspirovat z jiº hotových test·. 1. Prvním krokem je vytvo°ení nové t°ídy v balí£ku statisticalBlock.tests, název by m¥l charakterizovat p°idávaný test (není ale vyºadováno pro správnou funkci modulu). Název pro tento p°íklad bude Test.
public class Test { } 2. Tato t°ída musí d¥dit od AbstractTwoSampleTest
public class Test extends AbstractTwoSampleTest{ } 3. Je nutné implementovat abstraktní metody
public public public public public
abstract abstract abstract abstract abstract
String getName(); String getDescription(); double getPValue(); double getTestStatistic(); void processTest(PairedDataSample data, int alternativeHypothesis);
4. Ukázka funk£ního kódu, sta£í pouze doplnit výkonný kód do metody processTest a p°edat výsledky testu pomocí metod getPValue, getTestStatistic.
public class Test extends AbstractTwoSampleTest{ public String getName() { return "Test name"; } public String getDescription() { return "Test description"; } public double getPValue() { return 0; } public double getTestStatistic() { return 0; } public void processTest(PairedDataSample data, int alternativeHypothesis) { } }
6.4 Popis vyuºití JSC Knihovna se v²emi dostupnými funkcemi a statistickými metodami jsc.jar byla p°idána do hlavního repozitá°e projektu Fake Game. Díky tomu je dostupná pro v²echny uºivatele a vývojá°e aplikace. Modul vyuºívá tuto knihovnu jednak pro výpo£et test· a získání pot°ebných výsledk·, tak £áste£n¥ pro vizualizace. Popis API knihovny je dostupný z WWW: http://www.jsc.nildram.co.uk/api/index.html
6.4. POPIS VYUITÍ JSC
6.4.1
31
Statistické testy
Kolmogorov·v-Smirnov·v test V p°ípad¥ testu normality dat se pouºívá podobn¥ jako v jazyce R KolmogorovTest Konkrétní pouºití je :
KolmogorovTest(double[] x, Distribution F) kde za F se pouºije t°ída Normal 2 , která reprezentuje normální rozd¥lení. Pro test na shodu rozd¥lení je pouºit SmirnovTest 3 .
SmirnovTest(double[] xA, double[] xB, H1 alternative)
T-test T°ída PairedTtest
4
PairedTtest(PairedData data, H1 alternative)
Wilcoxon·v test T°ída WilcoxonTest
5
WilcoxonTest(PairedData data, H1 alternative)
F test T°ída FisherSymmetryTest
6
FisherSymmetryTest(PairedData data, H1 alternative)
Znaménkový test T°ída SignTest
7
SignTest(PairedData data, H1 alternative) 1 http://www.jsc.nildram.co.uk/api/jsc/goodnesst/KolmogorovTest.html 2 http://www.jsc.nildram.co.uk/api/jsc/distributions/Normal.html 3 http://www.jsc.nildram.co.uk/api/jsc/independentsamples/SmirnovTest.html 4 http://www.jsc.nildram.co.uk/api/jsc/onesample/PairedTtest.html 5 http://www.jsc.nildram.co.uk/api/jsc/onesample/WilcoxonTest.html 6 http://www.jsc.nildram.co.uk/api/jsc/onesample/FisherSymmetryTest.html 7
http://www.jsc.nildram.co.uk/api/jsc/onesample/FisherSymmetryTest.html
1.
32
KAPITOLA 6. REALIZACE
6.4.2 Vizualizace JSC poskytuje i rozhraní pro vizualizace a gracké zobrazení výsledk·. V mojí diplomové práci jsem vyuºil PdfPlot, který umoº¬uje zobrazit funkci PDF (Probability Density Function) - hustotu pravd¥podobnosti. Tato t°ída umí vykreslovat pouze k°ivky specikované jejím rozhraním. Pro pouºití v diplomové práci bylo pot°eba roz²í°it o funkce kreslení °et¥zc·, linek a zm¥nu barvy. e²ením je vytvo°it novou t°ídu PlotGraphPanel jako potomka PdfPlot a dané funkce naimplementovat.
public void addCustomLine(int x1,int y1,int x2,int y2) public void addCustomColor(Color c) public void addCustomString(String str, int x,int y)
6.5 Gracké rozhraní V této £ásti bude prezentována kone£ná verze grackého rozhraní statistického modulu. Budou popsány jednotlivé £ásti a vysv¥tleny funkce kaºdé z nich. Ukázka je p°edvedena na datech o rozm¥rech d¥tí a jejich váze.
6.5.1 Spu²t¥ní
Obrázek 6.2: Obrazovka - spu²t¥ní statistického rozhraní Obrázek 6.2 obsahuje ukázku kde je v programu Fake Game dostupné rozhraní pro statistické vyhodnocení. Tato volba je dostupná aº po nau£ení modelu.
6.5. GRAFICKÉ ROZHRANÍ
6.5.2
33
Modul
Obrázek 6.3: Obrazovka - rozhraní modulu Modul je zobrazen na obrázku 6.3. Takto vypadá gracké rozhraní modulu po zapnutí. Dále budou popsány konkrétní £ásti modulu a vysv¥tlena jejich funk£nost.
6.5.3
Popis d·leºitých £ástí
Obrázek 6.4: Obrazovka - rozhraní modulu pro popis Obrázek 6.4 ukazuje znovu modul, ale s ozna£enými jednotlivými £ástmi pro podrobn¥j²í popis. 1. Tato £ást p°edstavuje výb¥r jedné z £ástí statistického rozhraní. Tato diplomová práce je za°azena a pojmenována jako Statistical Block. Ostatní £ásti jsou jiº hotové dopl¬kové funkce, které byly implementovány jiº d°íve.
34
KAPITOLA 6. REALIZACE
Obrázek 6.5: Obrazovka - £ást 1 - spu²t¥ní rozhraní pro testování hypotéz
2. Zde dochází k výb¥ru dvojice dat pro provedení párových test·. V £ásti Data set 1 je moºno zvolit mezi výstupními atributy dat nebo hodnotami nau£eného modelu. Dále je moºnost zde nahrát soubor nap°. s trénovací nebo testovací mnoºinou dat.V £ásti Data set 2 je jiº moºné vybrat jen mezi nau£enými modely. Tato sekce tedy umoº¬uje vybrat r·zné kombinace k porovnání. Nejd·leºit¥j²í jsou moºnosti srovnat výstupní atributy s nau£eným modelem nebo srovnání dvou r·zných model·.
Obrázek 6.6: Obrazovka - £ást 2 - výb¥r dat k testování
3. Výb¥r test· pro variantu spu²t¥ní vybraných test·. K dispozici je seznam dostupných test·. Test lze za²krtnutím checkboxu aktivovat. U kaºdého lze zvolit alternativní hypotézu, a hranici významnosti na které dochází k zamítání nulové hypotézy. V p°ípad¥ spu²t¥ní automatického testu se tyto nastavení ignorují.
Obrázek 6.7: Obrazovka - £ást 3 - volba test·
4. Spu²t¥ní test· je moºné ve dvou variantách. Tla£ítko Start selected tests spustí sérii test· nadenovaných pomocí p°edchozí £ásti rozhraní. Start automatic test provede
6.5. GRAFICKÉ ROZHRANÍ
35
sérii test· podle rozhodovacího stromu. Za²krtnutím Generate report se po provedení test· vygeneruje i JasperReport. Poslední dostupné je tla£ítko Help, které zobrazí nové okno s informacemi o rozhraní.
Obrázek 6.8: Obrazovka - £ást 4 - volby spu²t¥ní testování
5. Úvodní informace se aktualizují pro kaºdou dvojici zvolených dat. Zobrazeny jsou základní informace o t¥chto datech, udávající pot°ebné informace a umoº¬ující snadn¥j²í rozhodování co provést za testy.
Obrázek 6.9: Obrazovka - £ást 5 - úvodní informace o datech
6. V této £ásti se vyskytují informace a výsledky o zvolených nebo automaticky provedených testech.
Obrázek 6.10: Obrazovka - £ást 6 - výsledky jednotlivých test·
7. Celkové zhodnocení je souhrnnou informací z p°edchozích výsledk· test·. Pokud je v n¥které £ásti podez°ení na rozdíl mezi daty, promítne se to i do celkového výsledku. 8. Gracké zobrazení p-hodnoty a hranic významnosti na normálním rozd¥lení. Jedná se o gracké vyjád°ení výsledk· test·. Z této interpretace výsledku lze vy£íst jak moc se
36
KAPITOLA 6. REALIZACE
Obrázek 6.11: Obrazovka - £ást 7 - celkové zhodnocení testu
výsledek blíºil hranici zlomu pro zamítnutí hypotézy. V horní £ásti je název konkrétního provedeného testu. Zelen¥ je zobrazena oblast hranice významnosti. erven¥ je zobrazena p-hodnota jako plocha zapln¥ná pod £ervenou k°ivkou, která znázor¬uje hustotní funkci normálního rozd¥lení se st°ední hodnotou nula a rozptylem rovným jedné. Pokud bude plocha p-hodnoty v oblasti akceptování tak hypotézu nezamítáme. Pokud zapln¥ná plocha bude mimo oblast, tak hypotézu zamítáme.
Obrázek 6.12: Obrazovka - £ást 8 - gracké zobrazení výsledk·
6.5.4 Report Vzhled reportu je v podobném stylu jako popsané gracké rozhraní. Rozdílem je spojení výsledk· test· a grackého zobrazení pro snaº²í orientaci. Obrázky zobrazují úvodní informace o datech (Obrázek 6.13), výsledky test· (Obrázek 6.14) a vyhodnocení(Obrázek 6.15).
6.5. GRAFICKÉ ROZHRANÍ
Obrázek 6.13: JasperReports - Úvodní £ást
Obrázek 6.14: JasperReports - Detail testu
37
38
KAPITOLA 6. REALIZACE
Obrázek 6.15: JasperReports - Detail testu a vyhodnocení
Kapitola 7
Testování na reálných datech Testování bude provád¥no na n¥kolika vzorcích dat pro regresní typ úloh. U kaºdého vzorku bude nau£en alespo¬ jeden model pro kaºdý výstupní atribut. Kaºdý test modulu (zahrnující JSC knihovnu) bude srovnáván s testy a výsledky v jazyce R, který je v mé práci pouºit jako etalon. Mnoºiny dat pouºité pro testování jsou p°iloºeny na CD nebo dostupné z : http://neuron.felk.cvut.cz/game/data/ . Konkrétn¥ se jedná o:
• Rozmery_deti_vaha2_regrese.txt • boshouse.txt • buildingraw.txt • antro-age.txt • cars.txt • mandarin.txt • motol-brain-pressure.txt • nalada.txt • tul-unknown.txt
7.1 Popis a postup testování Testovat se bude na zmín¥ných datových souborech. Základní postup lze shrnout do t¥chto bod·: 1. Nau£ení minimáln¥ jednoho modelu ve Fake Game - tato £ást je provedena standardn¥ pomocí grackého rozhraní. Volby u£ení nebyly více specikovány, pouºil jsem standardní nastavení. Sou£asn¥ byl pouze pro ú£ely testování zahrnout záznam párových dat do souboru, který je pouºit pro jednoduché na£tení dat do jazyka R. 2. Otestování normality obou dat pomocí Kolmogorova-Smirnovova testu - jelikoº se nejedná o funkci samostatn¥ dostupnou z grackého rozhraní - je výsledek tohoto testu na obou mnoºinách dat vypisován do systemové konzole. Stejn¥ tak je pomocí jiº d°íve popsaných postup· (Kapitola 4.2) proveden test v R. 39
40
KAPITOLA 7. TESTOVÁNÍ NA REÁLNÝCH DATECH 3. Otestování shody rozd¥lení pomocí Kolmogorova-Smirnovova testu - výsledky tohoto a následujících test· jsou jiº dostupné z grackého rozhraní navrºeného modulu. Pro výsledky v R jsou pouºity postupy viz Kapitola 4.2. 4. Wilcoxon·v test 5. Znaménkový test 6. F-test 7. T-test
P°ehled popis· datových soubor· a tabulek výsledk· jednotlivých test· jsou pro p°ehlednost textu umíst¥ny do p°íloh(Kapitola D).
7.2 Vyhodnocení testování Obecné vyhodnocení Testování prob¥hlo celkem na 12 párech r·zných dat. Kaºdý soubor dat byl naprosto jiný a jedná se o nezávislé mnoºiny dat. Stejn¥ tak byl pro kaºdý výstupní atribut nau£en model nezávisle na ostatních. Posledním parametrem, ve kterém se páry dat li²ily, je rozsah t¥chto dat. Velikost dat se pohybuje od 160 po 4999. Jedním z pozorovaných záv¥r· z testování je srovnání minimální p-hodnoty mezi JSC a R. Z tabulek je patrné, ºe R hodnoty men²í jak 2, 2∗10−16 nebere v úvahu. Výstupem je hodnota men²í jak 2, 2∗10−16. Tato hodnota z°ejm¥ vyplývá z hranice významnosti testování. Pokud by hranice byla takto malá jednalo by se o poºadavek velmi vysoké p°esnosti, který není ve statistice pouºíván a dosaºení této hranice by bylo velmi obtíºné. Na druhou stranu JSC vykazuje i hodnoty men²í, u kterých není moºné ov¥°it jejich p°esnost. Tento jev p°esto nijak neovliv¬uje kvalitu a p°esnost výsledk·. Druhým z pozorovaných jev· je zaokrouhlování výsledk· R na 4 desetinná místa. Celkov¥ m·ºe mít zaokrouhlování velký vliv na v¥t²inu výsledk· u JSC i R. Posledním jevem, který mohl ovlivnit výsledky je ignorování p°edpoklad· n¥kterých test· jako je F-test a t-test. Tyto testy p°edpokládají normální rozd¥lení.
Kolgomorov·v-Smirnov·v test V pozici testování normality dat vykazuje tento test v knihovn¥ JSC oproti výsledk·m jazyka R mírné rozdíly. Tento rozdíl £inil v p°ípad¥ testovací statistiky maximáln¥ 16% a pr·m¥rn¥ 2,6%. Chybu p-hodnoty není nutné po£ítat z d·vod· vysv¥tlených v obecném vyhodnocení. V pozici testování shody rozd¥lení u testovací statistiky maximáln¥ 0,089%, pr·m¥rn¥ 0,01%. P-hodnoty blízké nule (men²í jak 10−5 ) mají velké rozdíly zp·sobené pravd¥podobn¥ zaokrouhlováním, u ostatních je rozdíl pr·m¥rn¥ 0,5%. Je vid¥t, ºe v p°ípad¥ testování normality dat se jedná o chybu v¥t²í - tento jev p°isuzuji rozdílnému generování dat s normálním rozd¥lením, které se v obou p°ípadech pouºívá jako druhý parametr. I p°es uvedené maximální a pr·m¥rné chyby (rozdíly oproti R) se nejedná o chyby, které by vedly k nesprávnému zamítnutí hypotézy. Jednalo se vºdy o chybu mimo okolí hranice významnosti a tedy tyto výsledky nejsou touto chybou ohroºeny.
7.2. VYHODNOCENÍ TESTOVÁNÍ
41
Wilcoxon·v test Maximální 19% a pr·m¥rná chyba 3,8% u testovací statistiky a maximální 0,1%, pr·m¥rná chyba 0,01% u p-hodnoty nemá stejn¥ jako u p°edchozího testu ºádný vliv na výsledek.
Znaménkový test Z výsledk· znaménkového testu je patrná neshoda. JSC i R mají naprosto jiné výsledky. Tento rozdíl m·ºe být zp·soben rozdílnou implementací testu a jeho výsledk·. Dal²ím moºným vlivem je neexistující znaménkový test v R - provedení tohoto testu je na základ¥ posloupnosti n¥kolika p°íkaz·. To m·ºe zp·sobovat rozdíl ve výsledcích. Nelze tedy s jistotou °íci zda JSC podává ²patné výsledky £i ne.
F-test V p°ípad¥ F-testu se jedná také o rozdílné výsledky. Po pozd¥j²ím hlub²ím prozkoumání obou test· jsem zjistil rozdíl, v p°ípad¥ JSC se jedná o variantu permuta£ního testu a v p°ípad¥ R se jedná o základní test rozptylu, který byl poºadován. Nejedná se tedy o identické testy. V JSC není klasický f-test implementován. Ale i tento test lze pouºít.
T-test Jedinou chybou je maximáln¥ 0,01% u p-hodnoty a ta je zp·sobená zaokrouhlováním. Jinak jsou výsledky R i JSC naprosto identické.
Kvalita model· Z dostupných výsledk· lze vyhodnotit kvalitu nau£ených model·. Jedná se o standardní modely bez podrobné kongurace a lze p°edpokládat velký rozptyl jejich chyb. ádný datový soubor nemá normální rozd¥lení, jedná se o dva nezávislé výb¥ry a jejich rozsah je v¥t²í jak 10. Dle rozhodovacího schématu na Obrázku 3.1 lze pouºít Wilcoxon·v test (znaménkový test pro svoje výsledky nebudeme brát v úvahu). Dal²ím d·leºitým parametrem je systematická a náhodná chyba, test shody rozd¥lení a pro v¥t²í soubory dat i t-test. Jako p°íklad si vezmeme soubor Rozmery_deti_vaha2_regrese.txt a model EST. U tohoto modelu je velmi nízká systematická i náhodná chyba, nepoda°ilo se najít rozdíl v rozd¥lení dat. Ale data mají rozdílný medián. Ve výsledku je tedy podez°ení na rozdíl mezi daty a nau£eným modelem. Druhý model REAL má velké chyby, rozdílné rozd¥lení ale nepoda°ilo se najít rozdíl mezi mediány. Výsledek je ov²em také s podez°ením na rozdíl v datech díky rozdílu v rozd¥leních. Podobné jsou výsledky i u ostatních datových soubor· a model·. Výjímku tvo°í nap°. model PRICE ze souboru cars.txt. Zde je velká systematická a náhodná chyba, ale nepoda°ilo se najít rozdíl v rozd¥leních, v mediánech a ani se nezamítá hypotéza t-testu. Tento model se jeví z hlediska statistiky jako dob°e nau£ený, ale má velké chyby.
42
KAPITOLA 7. TESTOVÁNÍ NA REÁLNÝCH DATECH
Test automatického vyhodnocení V p°edchozí £ásti jsem se zabýval testováním jednotlivých metod samostatn¥. V p°ípad¥ automatického vyhodnocení je procházen strom dle rozhodovacího schématu. Ani jediný datový soubor v reálných datech nemá normální rozd¥lení. Je vºdy zvolen pouze znaménkový a Wilcoxon·v test. Celkový výsledek automatického vyhodnocení se odvíjí pouze od testu na shodu rozd¥lení a od znaménkového, Wilcoxonova testu. Pokud jeden z nich kon£í záporným výsledkem je celkový výsledek správn¥ vyhodnocen jako podez°ení na významný rozdíl v datech.
Test reportování Test reportování souvisí s p°edchozí kapitolou automatického vyhodnocení. V kaºdém reportu je zobrazena úvodní informace o datech, jejich rozd¥leních a chybách. Druhou £ástí jsou výsledky jednotlivých metod v£etn¥ gracké interpretace výsledk·. Poslední £ástí je záv¥re£né vyhodnocení na základ¥ p°edchozích informací. Struktura v²ech report· je stejná. V p°ípad¥ vyhodnocení dat, která nemají mezi sebou významný rozdíl, je celkový výsledek testu úsp¥²ný. Nebyl nalezen d·kaz o jejich rozdílu. Opa£n¥ je vyhodnocen neúsp¥²n¥ s podez°ením na významné rozdíly.
Záv¥r Pouºitelnými testy v porovnání p°esnosti jsou Kolmogorov·v-Smirnov·v, Wilcoxon·v test a t-test. U znaménkového testu nelze ov¥°it jeho správnost z d·vodu rozdílné implementace. V p°ípad¥ f-testu se jedná o jinou variantu testu. Neznamená to, ale ºe tyto testy nejsou pouºitelné. I s tímto omezením lze jednodu²e pomocí statistiky ov¥°it správnost nau£ených model·.
Kapitola 8
Testování na um¥le vytvo°ených datech Testování prob¥hlo na um¥le vygenerovaných datových vzorcích. Pro generování jsem pouºil jazyk R. Stejn¥ jako u reálných dat je pro srovnání pouºit jazyk R a datové vzorky jsou p°iloºeny na CD. Toto testování je za°azeno z d·vodu znalosti testovaných vzork· a tedy je moºné p°edvídat výsledky. U v²ech t¥chto test· se p°edpokládá pokud není °e£eno jinak velká chyba. A to z d·vodu generování nepárových dat. Testování prob¥hlo na t¥chto variantách: 1. dv¥ r·zná normální rozd¥lení - p°edpokládaný výsledek je shoda rozd¥lení, mediánu i pr·m¥ru 2. normální rozd¥lení a exponenciální rozd¥lení - p°edpokládaný výsledek je záporný výsledek v²ech test·, mimo testu normality prvního vzorku 3. normální rozd¥lení a studentovo rozd¥lení (1 stupe¬ volnosti)- p°edpokládaný výsledek je rozdílné rozd¥lení, ale moºná shoda mediánu a pr·m¥ru z d·vodu podobnosti t¥chto rozd¥lení. 4. r·zné st°ední hodnoty, stejné rozptyly - p°edpokladem je záporný výsledek v testech, krom¥ shody rozptylu (standardní odchylky) 5. r·zné rozptyly, stejné st°ední hodnoty - p°edpokladem je záporný výsledek v testech, krom¥ shody st°edních hodnot
8.1 Postup testování Testovat se bude na zmín¥ných datových souborech. Základní postup lze shrnout do t¥chto bod·: 1. Vygenerování dat pomocí jazyka R 2. Otestování normality obou dat pomocí Kolmogorova-Smirnovova testu - jelikoº se nejedná o funkci samostatn¥ dostupnou z grackého rozhraní - je výsledek tohoto testu na obou mnoºinách dat vypisován do systemové konzole. Stejn¥ tak je pomocí jiº d°íve popsaných postup· (Kapitola 4.2) proveden test v R. 43
44
KAPITOLA 8. TESTOVÁNÍ NA UM
LE VYTVOENÝCH DATECH 3. Otestování shody rozd¥lení pomocí Kolmogorova-Smirnovova testu - výsledky tohoto a následujících test· jsou jiº dostupné z grackého rozhraní navrºeného modulu. Pro výsledky v R jsou pouºity postupy viz Kapitola 4.2. 4. Wilcoxon·v test 5. Znaménkový test 6. F-test 7. T-test
Test automatického vyhodnocení Na um¥lých datech jsem otestoval i variantu, kdy oba vzorky dat mají normální rozd¥lení. Správn¥ byly zvoleny F-test a t-test. Díky um¥le vytvo°eným vzork·m dat jsem otestoval a ov¥°il správnou funk£nost i druhou v¥tev vyhodnocovacího schématu z obrázku 3.1. Jedná se vºdy o dva nezávislé výb¥ry s rozsahem v¥t²ím neº 10.
8.2 Popis výsledk· Podrobné tabulky a obrázky jsou dostupné v p°íloze E.
Pár normálních rozd¥lení Ob¥ mnoºiny dat jsou normáln¥ rozd¥lená. To potvrdil výsledek Kolmogorovova-Smirnovova testu, který také vyhodnotil shodu rozd¥lení. Je provedena druhá v¥tev rozhodovacího schématu. Klí£ovým testem je f-test a t-test zkoumající rozptyl a st°ední hodnotu. Pro hranici významnosti 0,05 hypotézy nezamítáme, protoºe p-hodnoty jsou v¥t²í neº 0.05. Mezi daty není nalezen ºádný významný rozdíl. Podobnost je znatelná i z vizualizace dat na obrázku E.1. Z výstupu modulu jsou z°ejmé informace o nezamítání hypotéz a to jak textov¥ tak pomocí obrázku, kde plocha p-hodnoty je v oblasti nezamítající hypotézu (Obrázek E.2).
Normální a exponenciální rozd¥lení Jedna mnoºina dat není normáln¥ rozd¥lena a klí£ovým je Wilcoxon·v test. Z vizualizace dat na obrázku E.3 je patrný rozdíl mezi daty. Výsledkem je zamítnutí hypotézy a tedy byl nalezen významný rozdíl mezi daty (Obrázek E.4).
Normální a t rozd¥lení Mezi normálním a t-rozd¥lením je podobnost vyplývající z E.5. Výsledkem modulu je rozdíl mezi rozd¥leními, ale jinak není ºádná z hypotéz zamítnuta (Obrázek E.6). Z d·vod· rozdílného rozd¥lení je celkovým výsledkem podez°ení na rozdíl mezi daty.
R·zné st°ední hodnoty R·zné st°ední hodnoty zp·sobí rozdíl mezi rozd¥leními a tedy zamítnutí v²ech hypotéz obrázek E.8.
8.3. ZÁV
R TESTOVÁNÍ
45
R·zné rozptyly R·zné rozptyly vedou k zamítnutí hypotézy pro test rozptylu, ostatní testy na st°ední hodnoty a mediány nejsou zamítnuty - obrázek E.10.
8.3 Záv¥r testování Obecné vyhodnocení a záv¥ry o jednotlivých testech je totoºné s testováním na reálných datech. Testováním se potvrdily p°edpoklady na výsledky testu. Rozdílné jsou samoz°ejm¥ jiº zmín¥né testy: F-test a znaménkový test. Um¥le vytvo°ená data poslouºily pro ov¥°ení správné funk£nosti statistických metod samostatn¥ i automatického vyhodnocení. Na reálných datech nebylo moºné tyto varianty otestovat.
46
KAPITOLA 8. TESTOVÁNÍ NA UM
LE VYTVOENÝCH DATECH
Kapitola 9
Záv¥r Cílem mé diplomové práce je navrhnout a implementovat modul pro Fake Game, který bude pouºitelný k statistickému hodnocení induktivních model·. Poºadované vlastnosti modulu jsou jednoduché rozhraní a snadná roz²i°itelnost, v£etn¥ dobré dokumentace. Navrhl a implementoval jsem modul snadno pouºitelný v aplikaci Fake Game. Je navrºen jako samostatný celek, který je moºné pouºít také v jiných aplikacích. P°i návrhu a implementaci modulu jsem bral ohled na jeho snadnou roz²i°itelnost. Dokumentace modulu a jeho rozhraní je sepsána v této diplomové práci a je zahrnuta p°ímo do zdrojových kód· ve form¥ javadoc. Modul umoº¬uje díky svému rozhraní snadné p°edání vstupních hodnot, provedení statistického vyhodnocení a získání výsledk·. Implementovány byly v²echny poºadované formy výstupu v£etn¥ JasperReportu, který lze snadno uloºit do r·zných formát· soubor·. P°ed implementací statistických algoritm· jsem provedl re²er²i stávajících °e²ení. Na základ¥ re²er²e jsem vybral knihovnu JSC jako externí knihovnu modulu pro statistické testy. Modul zapouzd°uje a tvo°í jednotné rozhraní k test·m této knihovny. Pro hodnocení induktivních model· byla vybrána skupina test·, které tvo°í základní sou£ást. Z d·vod· ov¥°ení správnosti model· je sou£ástí diplomové práce nastudování moºností statistiky v jazyce R. R je uznávaným nástrojem statistik· a je vhodný pro testování výsledk· modulu. Testováním jsem zárove¬ prov¥°il p°esnost a pouºitelnost JSC knihovny. Výsledkem je správná funkce Kolmogorovova-Smirnovova, Wilcoxonova testu a t-testu. U znaménkového testu a f-testu se jedná o rozdílnou variantu test·. Tento záv¥r nezamítá jejich pouºití, pouze informuje o jejich rozdílu oproti etalonu v podob¥ jazyka R. Tuto diplomovou práci je moºné roz²í°it o dal²í knihovnu statistických test· nebo provést vlastní implementaci algoritm· a jako rozhraní pouºít implementovaný modul. Dal²ím moºným roz²í°ením práce je p°idání algoritm· umoº¬ujících testování jiných úloh neº regresních. P°íkladem m·ºe být shluková analýza pro klasikaci. Tato práce je p°ínosem pro aplikaci Fake Game, umoº¬uje snadn¥ji získat informace o kvalit¥ modelu a snadn¥ji ho pomoci vyhodnotit. Toto vyhodnocení by bylo dle mého názoru moºné vyuºít jiº p°i fázi tvorby model· pro ov¥°ení, zda je model tvo°en správn¥. Zpracování mé práce mi p°ineslo mnoho zku²eností, získal jsem moºnost podílet se na velkém projektu, seznámil jsem se s novými technologiemi, nástroji a metodami vývoje software. Prohloubil jsem si znalosti jak z oblasti javy a statistiky, tak z uznávaného nástroje jazyka R.
47
48
KAPITOLA 9. ZÁV
R
Literatura [1] J. pirk. Distribuovaný výpo£et induktivních model· [online]. 2008 [cit. 2009-04-22]. Dostupný z WWW:
. [2] P. Po²ík. Data Mining, ást I. Co je data mining? [online]. 2005 [cit. 2009-04-22]. Dostupný z WWW: . [3] Neuronové sít¥ [online]. 2009 [cit. 2009-04-22]. Dostupný z WWW: . [4] Testování hypotéz [online]. 2004 [cit. 2009-04-22]. Dostupný z WWW: . [5] Dokumentace a manuály k R [online]. 2005 [cit. 2009-04-22]. Dostupný z WWW: . [6] Java Statistical Classes [online]. 2005 [cit. 2009-04-22]. Dostupný z WWW: . [7] Jak na jazyk R [online]. 2006 [cit. 2009-04-22]. Dostupný z WWW: . [8] FAKE GAME [online]. 2008 [cit. 2009-04-22]. Dostupný z WWW: . [9] Fake Game Project [online]. 2008 [cit. 2009-04-22]. Dostupný z WWW: . [10] iReport [online]. 2008 [cit. 2009-04-22]. Dostupný z WWW: . [11] JasperReports [online]. 2008 [cit. 2009-04-22]. Dostupný z WWW: . [12] Statistický jazyk R [online]. 2008 [cit. 2009-04-22]. Dostupný z WWW: . [13] The R Project for Statistical Computing [online]. 2008 [cit. 2009-04-22]. Dostupný z WWW: . [14] Hypotéza [online]. 2009 [cit. 2009-04-22]. Dostupný z WWW: . [15] Regresní a klasika£ní stromy [online]. 2009 [cit. 2009-04-22]. http://www.iba.muni.cz/~budinska/. 49
50
LITERATURA
[16] Regresní analýza [online]. 2009 [cit. 2009-04-22]. Dostupný z WWW: . [17] Testování hypotéz [online]. 2009 [cit. 2009-04-22]. Dostupný z WWW: . [18] P. Berka. Aplikace systém· dobývání znalostí pro analýzu medicínských dat [online]. 2001 [cit. 2009-04-22]. Dostupný z WWW: . [19] HENDL, Jan. P°ehled statistických metod zpracování dat. Praha : PORTÁL, s.r.o., 2004. 696 s. ISBN 978-80-7367-482-3. [20] NAVARA, Mirko. Pravd¥podobnost a matematická statistika. Praha : Skriptum FEL VUT, 2007. 210 s.
P°íloha A
Seznam pouºitých zkratek API Application Programming Interface CSV Comma-separated values FAKE GAME Fully Automated Knowledge Extraction using Group of AdaptiveModels Evolution
GUI Graphical user interface JSC Java Statistical Classes R The R Project for Statistical Computing RE Random Error SE Systemaatic Error UML Unied Modeling Language WYSIWYG What you see is what you get XML eXtensible Markup Language
51
52
PÍLOHA A. SEZNAM POUITÝCH ZKRATEK
P°íloha B
Instala£ní a uºivatelská p°íru£ka Modul je sou£ástí programu Fake Game. Moºnosti instalace: 1. pro instalaci je moºné vyuºít projekt pro IntelliJ IDEA, p°iloºený na CD k této diplomové práci. 2. nebo stáhnout aktuální verzi projektu Fake Game. Informace o instalaci z svn a otev°ení projektu jsou dostupné na: (http://sourceforge.net/projects/fakegame) -
• http://fakegame.wiki.sourceforge.net/ • http://fakegame.wiki.sourceforge.net/Opening+project+in+Intellij+IDEA Uºivatelská p°íru£ka je sou£ástí kapitoly Realizace, kde je vysv¥tlena kaºdá £ást modulu zvlá²´ a vysv¥tlena její funkce a princip.
53
54
PÍLOHA B. INSTALANÍ A UIVATELSKÁ PÍRUKA
P°íloha C
Obsah p°iloºeného CD - index.html - install.txt - readme.txt /data /src /Intellij IDEA project /lib - jsc.jar /test /Model /R /html - uml.zargo /javadoc /text /latex /pdf
55
56
PÍLOHA C. OBSAH PILOENÉHO CD
P°íloha D
Testování na reálných datech D.1 Rozmery_deti_vaha2_regrese.txt Rozmery_deti_vaha2_regrese.txt obsahuje data o rozm¥rech a váze d¥tí zm¥°ených p°ed narozením pomocí p°ístroj·. Na základ¥ t¥chto dat je odhadnuta váha EST. Ta je srovnávána s reálnou váhou REAL narozeného dít¥te. vstupní atributy: 4 výstupní atributy: 2 (EST,REAL) velikost dat: 391 systematická chyba (EST): -0,25 náhodná chyba (EST): 3.31 systematická chyba (REAL): -14.31 náhodná chyba (REAL): 168.55
D.2 boshouse.txt Informace o bydlení na p°edm¥stí Bostonu. MEDV je medián v tisících dolarech u dom· obývaných vlastníky. vstupní atributy: 12 výstupní atributy: 1 (MEDV) velikost dat: 506 systematická chyba: -17.4 náhodná chyba: 94.79
D.3 buildingraw.txt vstupní atributy: 4 výstupní atributy: 3 (WBE,WBCW,WBHW) velikost dat: 4010 systematická chyba (WBE): -47.39 náhodná chyba (WBE): 594.62 systematická chyba (WBCW): -1.93 náhodná chyba (WBCW): 36.26 systematická chyba (WBHW): -14.12 náhodná chyba (WBHW): 86.83 57
58
PÍLOHA D. TESTOVÁNÍ NA REÁLNÝCH DATECH
JSC
R
0.5143
0.5959
1.4242 ∗ 10−96 0.5044
<2.2 ∗ 10−16 0.4987
1.2261 ∗ 10−92 0.5134
<2.2 ∗ 10−16 0.5192
3.4101 ∗ 10−96 0.5098
<2.2 ∗ 10−16 0.5345
rozd¥lení
9.2561 ∗ 10−95 0.0179
<2.2 ∗ 10−16 0.0179
rozd¥lení
0.9999 0.1202
1 0.1202
0.00699 33431.0 0.02887 36358 0.3809 151.0 7.8761 ∗ 10−6 185.0
0.007038 33431 0.02887 36358 0.3809 − 3.93807e − 06 −
0.3118 0.7367 0.3818 10.5027 0.8811 −0.8763 0.9999 0.1417 0.3814
0.1559011 1.0044 0.9657 1.1876 0.08993 −0.8763 1 0.1417 0.3814
normalita výstup EST normalita výstup REAL normalita model EST normalita model REAL shoda EST shoda REAL
wilcoxon EST wilcoxon REAL znaménkový EST znaménkový REAL f-test EST f-test REAL t-test EST t-test REAL
Tabulka D.1: Test 1 - Rozmery_deti_vaha2_regrese.txt
D.4 antro-age.txt vstupní atributy: 22 výstupní atributy: 1 (Age) velikost dat: 955 systematická chyba: -35.3 náhodná chyba: 118.12
D.5. CARS.TXT
normalita výstup normalita model shoda rozd¥lení wilcoxon znaménkový f-test t-test
59
JSC
R
0.5046 7.6898 ∗ 10−120 0.5111 3.6053 ∗ 10−123 0.1529 3.7653 ∗ 10−10 0.05929 0.3364 216.0 0.0011525 15.5264 0.2508 −1.1497 0.2508
0.5257 <2.2 ∗ 10−16 0.5158 <2.2 ∗ 10−16 0.1529 4.049 ∗ 10−10 0.0593 0.3361 − 0.0005762577 1.1891 0.05189 −1.1497 0.2508
Tabulka D.2: Test 2 - boshouse.txt
D.5 cars.txt Závislost ceny automobilu na vlastnostech automobilu. vstupní atributy: 45 výstupní atributy: 1 (PRICE) velikost dat: 160 systematická chyba: -16.62 náhodná chyba: 160.57
D.6 mandarin.txt vstupní atributy: 11 výstupní atributy: 1 (water) velikost dat: 4139 systematická chyba: -14.21 náhodná chyba: 104.29
D.7 motol-brain-pressure.txt vstupní atributy: 4 výstupní atributy: 1 (CO2) velikost dat: 4999 systematická chyba: 0.26 náhodná chyba: 13.63
D.8 nalada.txt vstupní atributy: 14 výstupní atributy: 1 (rozpozn_nalady)
60
PÍLOHA D. TESTOVÁNÍ NA REÁLNÝCH DATECH
normalita výstup WBE normalita výstup WBCW normalita výstup WBHW normalita model WBE normalita model WBCW normalita model WBHW shoda rozd¥lení WBE shoda rozd¥lení WBCW shoda rozd¥lení WBHW wilcoxon WBE wilcoxon WBCW wilcoxon WBHW znaménkový WBE znaménkový WBCW znaménkový WBHW f-test WBE f-test WBCW f-test WBHW t-test WBE t-test WBCW t-test WBHW
JSC
R
0.5130 0 0.6079 0 0.5178 0 0.6153 0 0.6316 0 0.53001 0 0.3282 2.9104 ∗ 10−11 0.04239 0.001483 0.081 7.337 ∗ 10−12 3866612.0 0.03519 3920416.0 0.1700 3894742.0 0.08499 1955.0 0.11795 1976.0 0.3681 1927.0 0.01437 295.73 1.0 88.4366 1.0 149.9525 1.0 0.0948 0.9245 −2.3218 0.02029 −2.4037 0.01627
0.5277 <2.2 ∗ 10−16 0.6135 <2.2 ∗ 10−16 0.5116 <2.2 ∗ 10−16 0.5995 <2.2 ∗ 10−16 0.6369 <2.2 ∗ 10−16 0.5291 <2.2 ∗ 10−16 0.3282 <2.2 ∗ 10−16 0.0424 0.001483 0.081 7.27 ∗ 10−12 4175443 0.03519 4121639 0.1700 3894742 0.08499 − 0.9446449 − 0.8242556 − 0.00718335 2.3949 <2.2 ∗ 10−16 1.2886 1.11 ∗ 10−15 1.2816 4.441 ∗ 10−15 0.0948 0.9245 −2.3218 0.02029 −2.4037 0.01627
Tabulka D.3: Test 3 - buildingraw.txt
velikost dat: 199 systematická chyba: -15.53
D.9. TUL-UNKNOWN.TXT
normalita výstup normalita model shoda rozd¥lení wilcoxon znaménkový f-test t-test
61
JSC
R
0.5028 5.5221 ∗ 10−224 0.5181 7.4626 ∗ 10−239 0.1529 3.7653 ∗ 10−10 208986.0 0.02393 427.0 0.001201 53.5865 0.1965 −1.2921 0.1966
0.5037 <2.2 ∗ 10−16 0.5277 <2.2 ∗ 10−16 0.1529 4.049 ∗ 10−10 208986 0.0239 − 0.0006006 1.9706 <2.2 ∗ 10−16 −1.2921 0.1966
Tabulka D.4: Test 4 - antro-age.txt normalita výstup normalita model shoda rozd¥lení wilcoxon znaménkový f-test t-test
JSC
R
0.5 1.6346 ∗ 10−37 0.49604 6.8799 ∗ 10−37 0.05625 0.9628 6120.0 0.5862 78.0 0.8126 3.2584 0.9894 −0.0126 0.99
0.4312 2.388 ∗ 10−13 0.4937 <2.2 ∗ 10−16 0.0562 0.962 6120 0.5862 − 0.4063078 1.0905 0.5857 −0.0126 0.99
Tabulka D.5: Test 5 - cars.txt náhodná chyba: 70.15
D.9 tul-unknown.txt vstupní atributy: 8 výstupní atributy: 1 (quality) velikost dat: 432 systematická chyba: -0.088 náhodná chyba: 3.42
62
PÍLOHA D. TESTOVÁNÍ NA REÁLNÝCH DATECH
normalita výstup normalita model shoda rozd¥lení wilcoxon znaménkový f-test t-test
JSC
R
0.5 0 0.50497 0 0.08552 1.45519 ∗ 10−11 3958117.0 2.2661 ∗ 10−5 1941.0 6.8811 ∗ 10−5 71.3899 1.0 3.2162 0.001309
0.4989 <2.2 ∗ 10−16 0.5004 <2.2 ∗ 10−16 0.0855 1.419 ∗ 10−13 4609613 2.266 ∗ 10−5 − 0.99997 1.0869 0.00738 3.2162 0.001309
Tabulka D.6: Test 6 - mandarin.txt
normalita výstup normalita model shoda rozd¥lení wilcoxon znaménkový f-test t-test
JSC
R
0.5373 0 0.53787 0 0.0302 0.02089 6090941.0 0.122 2377.0 5.5716 ∗ 10−4 43.7059 1.0 −0.7278 0.4668
0.5399 <2.2 ∗ 10−16 0.5487 <2.2 ∗ 10−16 0.0302 0.0209 6090941 0.122 − 0.0002785805 1.0137 0.6314 −0.7278 0.4668
Tabulka D.7: Test 7 - motol-brain-pressure.txt
D.9. TUL-UNKNOWN.TXT
normalita výstup normalita model shoda rozd¥lení wilcoxon znaménkový f-test t-test
63
JSC
R
0.53696 3.521 ∗ 10−54 0.6267 4.2516 ∗ 10−76 0.3065 1.17368 ∗ 10−8 8885.0 0.1906 93.0 0.395 12.964 0.18385 1.3344 0.1836
0.5427 <2.2 ∗ 10−16 0.603 <2.2 ∗ 10−16 0.3065 1.515 ∗ 10−8 11015 0.1906 − 0.8395 10.1056 <2.2 ∗ 10−16 1.3344 0.1836
Tabulka D.8: Test 8 - nalada.txt
normalita výstup normalita model shoda rozd¥lení wilcoxon znaménkový f-test t-test
JSC
R
0.6372 6.577 ∗ 10−171 0.6393 3.6886 ∗ 10−172 0.0972 0.0336 43144.0 0.1633 187.0 0.006035 1.10238 0.932 −0.0918 0.92689
0.6366 <2.2 ∗ 10−16 0.6505 <2.2 ∗ 10−16 0.0972 0.0337 43144 0.1633 − 0.0030174 0.9995 0.9955 −0.0918 0.9269
Tabulka D.9: Test 9 - tul-unknown.txt
64
PÍLOHA D. TESTOVÁNÍ NA REÁLNÝCH DATECH
P°íloha E
Testování na um¥le vytvo°ených datech E.1 Pár normálních rozd¥lení
0
honota
0
−3
−3
−2
−2
−1
−1
honota
1
1
2
2
3
3
velikost dat: 1000 systematická chyba: -23.65 náhodná chyba: 1563.77
0
200
400
600
800
1000
0
200
index
400
600
800
1000
index
Obrázek E.1: Pár normálních rozd¥lení - st°ední hodnota 0, sm¥rodatná odchylka 1
E.2 Normální a exponenciální rozd¥lení velikost dat: 1000 systematická chyba: -589.69 náhodná chyba: 10039.06
65
66
PÍLOHA E. TESTOVÁNÍ NA UM
LE VYTVOENÝCH DATECH
normalita 1 normalita 2 shoda rozd¥lení wilcoxon znaménkový f-test t-test
JSC
R
0.01 0.51 0.02 0.66 0.025 0.9136 256238.0 0.5122 494.0 0.728 543.65 0.63 −0.4835 0.6288
0.035 0.5004 0.034 0.6099 0.025 0.9135 256238 0.5122 − 0.3639858 0.9654 0.5781 0.4835 0.6288
Tabulka E.1: Test 10 - 2 r·zná normální rozd¥lení
Obrázek E.2: Modul - Pár normálních rozd¥lení
67
4
honota
0
2
−1 −2
0
−3
honota
1
6
2
8
3
E.2. NORMÁLNÍ A EXPONENCIÁLNÍ ROZD
LENÍ
0
200
400
600
800
1000
0
200
index
400
600 index
Obrázek E.3: Normální a exponenciální rozd¥lení
normalita 1 normalita 2 shoda rozd¥lení wilcoxon znaménkový f-test t-test
JSC
R
0.0421 0.556 0.5001 7.31 ∗ 10−232 0.539 0 62488.0 7.26 ∗ 10−94 209.0 0 132.133 5.25 ∗ 10−113 24.31 5.99 ∗ 10−103
0.036 0.5361 0.034 0.6099 0.512 <2.2 ∗ 10−16 438012 <2.2 ∗ 10−16 − 1.68 ∗ 10−80 1.0449 0.4878 24.31 <2.2 ∗ 10−16
Tabulka E.2: Test 11 - normální a exponenciální rozd¥lení
800
1000
68
PÍLOHA E. TESTOVÁNÍ NA UM
LE VYTVOENÝCH DATECH
Obrázek E.4: Modul - Normální a exponenciální rozd¥lení
E.3. NORMÁLNÍ A T ROZD
LENÍ
69
E.3 Normální a t rozd¥lení
4000
honota
0
2000
−1
0
−2 −3
honota
1
6000
2
3
8000
velikost dat: 1000 systematická chyba: 50.5 náhodná chyba: 2709.15
0
200
400
600
800
1000
0
200
index
400
600 index
Obrázek E.5: Normální a t rozd¥lení
normalita 1 normalita 2 shoda rozd¥lení wilcoxon znaménkový f-test t-test
JSC
R
0.133 7.22 ∗ 10−16 0.017 0.92 0.139 7.71 ∗ 10−9 252302.0 0.8223 496.0 0.82 2919.62 0.41 1.0388 0.2992
0.128 1.533 ∗ 10−17 0.02 0.9883 0.139 8.129 ∗ 10−9 252302 0.8223 − 0.612 0 <2.2 ∗ 10−16 1.0388 0.2992
Tabulka E.3: Test 12 - normální a t rozd¥lení
800
1000
70
PÍLOHA E. TESTOVÁNÍ NA UM
LE VYTVOENÝCH DATECH
Obrázek E.6: Modul - Normální a t rozd¥lení
E.4. RZNÉ STEDNÍ HODNOTY
71
E.4 R·zné st°ední hodnoty
−1
0
1
honota
0 −1
−2
−2 −3
honota
2
1
3
2
4
3
2 normální rozd¥lení o sm¥rodatné odchylce 1,st°ední hodnot¥ 1 a 0 velikost dat: 1000 systematická chyba: 8.71 náhodná chyba: 1947.59
0
200
400
600
800
1000
0
200
index
400
600
800
1000
index
Obrázek E.7: Normální rozd¥lení - st°ední hodnota 0 a 1, sm¥rodatná odchylka 1
normalita 1 normalita 2 shoda rozd¥lení wilcoxon znaménkový f-test t-test
JSC
R
0.407 2.0 ∗ 10−150 0.0196 0.915 0.414 0 69374.0 3.03 ∗ 10−87 230.0 0 174.52 5.23 ∗ 10−102 24.1721 5.25 ∗ 10−102
0.415 <2.2 ∗ 10−16 0.025 0.9135 0.414 <2.2 ∗ 10−16 69374 <2.2 ∗ 10−16 − 1 1.0498 0.443 24.1721 <2.2 ∗ 10−16
Tabulka E.4: Test 13 - r·zné st°ední hodnoty
72
PÍLOHA E. TESTOVÁNÍ NA UM
LE VYTVOENÝCH DATECH
Obrázek E.8: Modul - R·zné st°ední hodnoty
E.5. RZNÉ ROZPTYLY
73
E.5 R·zné rozptyly
0
honota
0
−2
−1
−4
−2
−6
−3
honota
2
1
4
2
6
3
2 normální rozd¥lení o sm¥rodatné odchylce 1 a 2,st°ední hodnot¥ 0 velikost dat: 1000 systematická chyba: -46.2 náhodná chyba: 3911.066
0
200
400
600
800
1000
0
200
400
index
600
800
1000
index
Obrázek E.9: Normální rozd¥lení - st°ední hodnota 0, sm¥rodatná odchylka 1 a 2
normalita 1 normalita 2 shoda rozd¥lení wilcoxon znaménkový f-test t-test
JSC
R
0.018 0.9698 0.1835 5.84 ∗ 10−30 0.181 0 239461.0 0.2376 288.0 0.467 839.58 0.194 1.3002 0.1938
0.025 0.9135 0.199 <2.2 ∗ 10−16 0.181 1.188 ∗ 10−14 261039 0.2376 − 0.2335 4.0961 <2.2 ∗ 10−16 1.3002 0.1938
Tabulka E.5: Test 14 - r·zné rozptyly
74
PÍLOHA E. TESTOVÁNÍ NA UM
LE VYTVOENÝCH DATECH
Obrázek E.10: Modul - R·zné rozptyly
P°íloha F
Re²er²e Téma Jazyk R, knihovny statistických funkcí a statistické programy v jazyce Java, Fake Game, Weka, RapidMiner, JasperReports
Druhy dokument· zachycených v re²er²i: • Dokumenty z internetu • Záznamy z databáze Journal of Statistical Software (http://www.jstatsoft.org/)
Jazykové vymezení: • e²tina • Angli£tina
Pouºité informa£ní zdroje: • Vyhledávací sluºby: Seznam, Google, Yahoo • Databáze: Journal of Statistical Software
Zp·sob uspo°ádání záznam·: Záznamy jsou rozd¥leny do skupin podle jednotlivých témat, na které se zam¥°ují
Dokumenty z internetu:
F.1 Jazyk R 1. The R Project for Statistical Computing [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . Domovská stránka projektu jazyka R umoº¬ující statistické výpo£ty a gracká zobrazení. Obsahuje jeho popis, dokumentaci a moºnost staºení prost°edí pro r·zné platformy. 75
76
PÍLOHA F. REERE 2. Statistický jazyk R [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . Obsahuje základní informace, popis a p°íklady jazyka R. 3. Jak na jazyk R [online]. 2006 [cit. 2008-10-22]. Dostupný z WWW: . Seznámení s jazykem R, instalace a základní p°íkazy. 4. Dokumentace a manuály k R [online]. 2005 [cit. 2008-10-22]. Dostupný z WWW: . Seznam dokumentací a manuál· pro jazyk R.
F.2 Knihovny statistických funkcí, statistické programy 1. JRI - Java/R Interface [online]. 2007 [cit. 2008-10-22]. Dostupný z WWW: . 2. Java Statistical Classes [online]. 2005 [cit. 2008-10-22]. Dostupný z WWW: . 3. 3. Interactive Statistical Software [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . 4. JMSLTM Numerical Library for JavaTM Applications [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . 5. Commons-Math: The Apache Commons Mathematics Library [online]. 2008 [cit. 200810-22]. Dostupný z WWW: . 6. Colt Project [online]. 2004 [cit. 2008-10-22]. Dostupný z WWW: . 7. Announcing Uncommons Maths [online]. 2007 [cit. 2008-10-22]. Dostupný z WWW: . 8. Statistical Distribution Library [online]. 2007 [cit. 2008-10-22]. Dostupný z WWW: . 9. HYDRA: a Java library for Markov Chain Monte Carlo [online]. 2002 [cit. 2008-10-22]. Dostupný z WWW: . 10. Interactive Java Tools for Exploring High-dimensional Data [online]. 2000 [cit. 200810-22]. Dostupný z WWW: . 11. Q-Stats [online]. 2004 [cit. 2008-10-22]. Dostupný z WWW: . 12. STRStat [online]. 2007 [cit. 2008-10-22]. Dostupný z WWW: .
F.3. FAKE GAME, WEKA, RAPIDMINER
77
13. Predictive Model Markup Language (PMML) [online]. 2006 [cit. 2008-10-22]. Dostupný z WWW: . 14. The OpenNLP Maximum Entropy Package [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . 15. OjAlgo [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . 16. Calico Stat Programs [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . 17. Java Numerics [online]. 2007 [cit. 2008-10-22]. Dostupný z WWW: . 18. Stat Class: Statistical Functions and Distributions [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . 19. Statistical Distributions in JAVA and Internet [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . 20. NAG s numerical statistical libraries and Java [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . 21. Free Statistical Software [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . 22. JavaStatSoft [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . 23. Java Data Processing Framework [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . 24. Topics in Statistical Data Analysis [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: .
F.3 Fake Game, Weka, RapidMiner 1. Fake Game Project [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . Ociální domovské stránky projektu Fake game. 2. FAKE GAME [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . 3. Weka [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . Ociální domovské stránky projektu Weka. 4. RapidMiner [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . Ociální domovské stránky projektu RapidMiner.
78
PÍLOHA F. REERE
F.4 Java, JasperReports 1. Java [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . Ociální stránky pro jazyk Java. 2. Java Tutorials [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . Tutoriály jazyka Java. 3. Java SE Reference at a Glance [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . Dokumentace a podrobné reference jazyka Java. 4. JasperReports [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . Ociální stránky projektu JasperReports. 5. iReport [online]. 2008 [cit. 2008-10-22]. Dostupný z WWW: . Ociální stránky projektu iReport.