Applet byl vytvořen jako ilustrace k predikčním metodám. Umožňuje nadefinovat
body a část těchto bodů předat jedné z predikčních metod, která z nich
vypredikuje zbylé body. Jak vstup, tak výstup metody je přehledně zobrazován v grafu,
pro přesnější srovnání slouží tabulka, která je zobrazována ve speciálním
okně.
Applet byl navržen tak, aby bylo možno snadno přidávat další predikční metody,
slouží tedy hlavně jako vstupně-výstupní zařízení pro metody, funkce dosud
implementovaných metod je spíše ilustrativní. Pokud by měl někdo zájem použít
tento applet pro svou predikční metodu či jiný účel, vytvořil jsem podrobný popis rozhraní a funkcí appletu. Je umožněno a připraveno i
libovolné další nastavení metody pomocí vlastního okna.
Zpracování nového vstupu textových políček se provádí po stisku klávesy Enter,
nestačí tedy pouze změnit hodnotu, je nutno ji stiskem Enteru potvrdit. Pro kontrolu
vstupu může sloužit graf, ve kterém se všechny změny zobrazují.
Jinak je ovládání intuitivní a doufám, že to zvládnete.
Body je možno definovat přímo - zadáním posloupnosti hodnot, nebo definicí funkce a zadáním počtu bodů - body jsou pak vygenerovány z hodnot funkce (v lineárním rozložení v rozsahu -10 .. 10).
Při zadání bodů posloupností můžete do políčka psát hodnoty oddělené čárkou. Pokud body definujete opakovaně, jsou nové přidávány k bodům již definovaným. Též je možno všechny definované body zrušit a začít definovat znovu.
Funkce se zadává standardní implicitní definicí s jednou proměnnou x. Je umožněno použít operátory +, - , *, / a ^ (mocnina) a definované funkce: sin, cos, trunc (desetinná část parametru) a noise - pseudonáhodná funkce realizující "šum" vstupu.
Pro nastavení vstupu predikční metody slouží zadání počtu
"učících" bodů - body, které jsou předány jako vstup metodě a počet
vstupů, který udává z kolika předchozích hodnot má být další hodnota
vypočítána - tato hodnota nemusí být u všech metod použita.
Některé metody mohou mít další parametry, které se nastavují ve speciálním okně
metody před zahájením výpočtu (rozhraní pro rozšíření
je opět připraveno). Při zobrazení tohoto okna je vstup appletu "zamčen",
je tedy nutné nejprve okno potvrdit jedním z tlačítek, pak teprve lze pokračovat
přímo v appletu.
Výpočet metody probíhá v separátním vlákně, je jej tedy možno pozastavit či
úplně zastavit. Jednotlivé metody mohou v průběhu výpočtu předávat appletu
mezivýsledky, a to buď průbežnou "chybu učení" - číselnou hodnotu, či
přímo vypredikované body, ze kterých se vypočítává a zobrazuje chyba predikce a
též je možné průbežné zobrazování v grafu.
Při přerušení či po dokončení výpočtu jsou výsledky opět předány appletu,
zobrazeny v grafu a též je vytvořena (přepočtena) a zobrazena tabulka pro
přesňější srovnání.
V InternetExploreru nejsou vždy políčka po změně hodnoty obnovovány, jak by měly
být, takže je možné, že při delším výpočtu se applet bude zdát
"zatuhlý", ale není to chyba appletu, ale prohlížeče.
Applet zatím umožňuje predikci pomocí dvou statistických metod - lineární a
goniometrické aproximace. Brzy budou implementovány i neronové sítě - skoro hotova je
velmi zajímavá síť GMDH a pracuji též na implementaci sítě BackPropagation.
U aproximačních metod je možno vybrat z více typů. Proložení všech známých bodů
jednou křivkou je vhodné, pokud rozložení bodů odpovídá aproximační funkci.
Proložení předchozích bodů (poloha každého bodu se spočte z polohy všech
předchozích bodů) je mírnou modifikací prvního typu, je spíše ilustrativní pro
představu průběhu, pokud prokládané body získáváme postupně. Metoda třetí
počítá polohu bodu z polohy několika předchozích bodů, zachytává tedy celkem
přesně lokální změny, nelze však s její pomocí zjišťovat "vzdálenou
budoucnost", tedy predikovat více bodů dopředu.
Lineární aproximace
Zadaná množina je aproximována lineární funkcí ve tvaru f(x) = a*x + b,
kde parametry a, b jsou vypočítány tak, aby součet druhých mocnin chyb bodů (rozdíl
zadaná - vypočtená hodnota) byl minimální, tedy metodou nejmenších čtverců.
Tato metoda je vhodná, pokud je vývoj predikované časové řady lineární (což není
příliš častý případ), ale relativně slušné výsledky může mít i pro predikci
další hodnoty z několika předchozích.
Goniometrická aproximace
Tato metoda je dle mého názoru pro predikci celkem vhodná, protože uvažuje
jistou periodicitu v časové řadě. Problém je však výpočet libovolné kombinace
goniometrických funkcí (soustavu rovnic nelze spočíst jinak než přibližnými
metodami), proto byla zvolena funkce f(x) = a*sin(x) + b*cos(x) + c, kde
koeficienty jsou opět určeny metodou nejmenších čtverců.
Problémem této implementace je nemožnost přizpůsobení se libovolné délce periody
funkce.
Test predikce
Tato "metoda" byla přidána jen pro ilustraci možností appletu při
delším výpočtu. Umožňuje vyzkoušet chování a funkce appletu pro neuronové
sítě, protože výpočet neuronovou sítí může být velmi náročný a tedy i
dlouhý.
Metoda pouze opakovaně (500x) náhodně generuje body v rozsahu vstupu, přičemž první
a poslední bod zůstávají stále shodné - minimum a maximum.
Neuronové sítě
Značnou výhodou neuronových sítí je jejich schopnost přizpůsobení se. Jedna
neuronová síť je po naučení schopna velmi dobře predikovat libovolné vývoje
časové řady (realizovat libovolnou "aproximační funkci").