Změny

Skočit na navigaci Skočit na vyhledávání

Implementace - Diplomka

Přidáno 5 609 bajtů, před 9 lety
Implementace
== Analýza ==
=== Kritéria pro úspěšnost analýzy ===
* Zpracovatelnost získaných dat
* Správnost zvolené metody
** Zvolená metoda poskytuje pro zpracovávané data výsledky
** Metoda je schopna se vyrovat s charakteristikou vstupních dat
* Smysluplná velikost získaných farem
** Alespoň pět portálů v každé farmě
** Ne více než 50 portálů v jedné farmě
 
== Implementace ==
V této kapitole se budu zabývat samotnou implementací výše popsaných algoritmů a metod.
 
OBRAZEK STRUKTYRY DB Z NAVICATU !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
=== Získávání dat ===
Dále probíhá zpracování načtených zpráv do formátu pro statistickou analýzu. Tento proces je zevrubně popsán v kapitole XXXX%ADD%REF.
 
'''Tabulka s velikostí dat, ze kdy jsou, kolik denně'''
=== Předzpracování dat pro analýzu ===
=== Vyhledávání shluků ===
Samotné vyhledávání shluků používá výše vybranou metodu DBSCAN, která je vhodná pro svou rychlost a dobré vyrovnání se s odlehlými hodnotami (v tomto případě samostatně stojícími portály).
 
Nejprve s pomocí třídy ''PortalList'' získám seznam portálů, které jsou relevantní pro daný časový úsek, tedy veškeré portály s definovanou minilální úrovní, které byly aktivní v intervalu začínajícím 5 minut před zadaným časem a končícím 5 minut po něm. Každý z těchto portálů má nastavené číslo clusteru na hodnotu 0, která znamená že zatím nepatří do žádného shluku.
 
Následně, pokud portál nepatří do žádného existujícího shluku, se portálu přiřadí nejbližší volné číslo clusteru a najdou se veškeré zbývající portály se seznamu, které splňují podmínku maximální vzdálenosti a patří stejné frakci. Tyto portály jsou následně zařazeny do zpracovávaného shluku. V případě, že některý z okolních portálů již patří do existujícího clusteru, dojde k jejich sloučení pod číslem existujícího shluku. Zde by bylo možno dosáhnout minoritního zrychlení porovnámím velikosti shluků a následným použitím čísla většího z nich, avšak při průměrné velikosti shluku okolo pěti portálů by tato optimalizace mohla být naopak kontraproduktivní. Tento krok je opakován pro veškeré portály ze seznamu.
 
Posledním krokem shlukování je vyřazení příliš malých shluků (v současné době je experimentálně stanovena nejmenší velikost shluku na 5 portálů). Výsledné shluky jsou následně vypsány aby mohly být použity pro jejich grafické znázornění.
 
=== Grafické znázornění výsledků ===
Jelikož správná analýza získaných dat a další experimentace s nimi je jen velmi obtížně realizovatelná jen s pomocí textového umístění portálu (adresy portálu) a jeho jména, implementoval jsem jednoduché grafické rozhraní, na kterém je možno si zobrazit jednotlivé shluky portálů přímo na mapě města Brna.
 
Základním stavebním kamenem je zde Google Maps API, které poskytuje platformu, s pomocí které je možno jednotlivé portály patřící do shluků zobrazit na mapě. Klientská část API je psána v jazyce JavaScript, celý proces vykreslení proto probíhá v klientském prohlížeči.
 
Vstupními daty jsou jednotlivé shluky portálů, kdy každý portál je reprezentován jeho názvem a GPS souřadnicemi. Vstupní data jsou pro jednoduchost zpracování předávána ve formátu JSON, který je ideální pro zpracování JavaScriptem.
 
== Vyhodnocení experimentu ==
Experiment jsem provedl s datovým vzorkem z oblasti Brna tak, jak jsem popsal v předchozí kapitole.
 
=== Vyhodnocení kritérií analýzy ===
* '''Zpracovatelnost získaných dat''' - získaná data se ukázaly jako zpracovatelná, jejich objem je dostatečný vzhledem ke zvoleným metodám předzpracování a následné analýzy.
* '''Správnost zvolené metody''' - zvolená metoda DBSCAN se ukázala správnou, poskytuje pro vstupní sadu dat výsledky a nemá problém se vyrovnat s velkým počtem odlehlých dat, které nepatří do žádného se shluků
** Zvolená metoda poskytuje pro zpracovávané data výsledky
** Metoda je schopna se vyrovat s charakteristikou vstupních dat
* '''Smysluplná velikost získaných farem''' - po vhodném vyladění parametrů metody jsou výstupem shluky portálů (farmy), jež vyhovují uvedeným kritériím. Ve zpracovávaném časovém rámci se podařilo najít větší množství shluků, které vyhovují těmto kritériím.
** Alespoň pět portálů v každé farmě
** Ne více než 50 portálů v jedné farmě
 
=== Úspěšnost analýzy ===
úspěšnost zvolené metody vyhodnocuji jako potvrzení domněnky o lokaci běžně známých shluků. Chování hráčů potvrzuje, že zvolená metoda dolování z dat odpovídá realitě. Na zvoleném vzorku dat se podařilo dokázat, že použitá metoda je schopna zpracovávat skutečná data.
 
==== Experimentace s maximální vzdáleností portálů ve shluku ====
Pro relevanci výsledků, které poskytuje shlukování pomocí metody DBSCAN je důležitým parametrem maximální vzdálenost jednotlivých bodů ve shluku, v tomto konkrétním případě maximální vzdálenost dvou portálů v rámci jedné farmy.
 
Jako výchozí hodnotu jsem zvolil vzdálenost 150 metrů. Tato vzdálenost mi přišla jako stále ještě rozumná vzdálenost, kterou je hráč ochoten ujít mezi dvěma portály. V průběhu analýzy dat se však ukázalo, že tato vzdálenost je příliš velká a metoda má sklon ke spojování dvou shluků pomocí řetězce osamocených portálů. Takovýto výsledek se hrubě neshodoval s reálným průběhem hry a proto bylo potřeba přistoupit ke korekci tohoto parametru.
 
Postupnými úpravemi vzdálenosti jsem nakonec dospěl k maximální vzdálenosti portálů 50 metrů, při které výsledné umístění a tvar shluků nejvíce odpovídá empirické zkušenosti.

Navigační menu