Professional Documents
Culture Documents
13 czerwca 2005
Abstract:
Prognozowanie przyszłych wartości akcji giełdowych jest marzeniem wielu
osób. Artykuł przedstawia wykorzystanie hybrydowego rozwiązania
bazującego na sieciach neuronowych oraz analizie statystycznej podczas
predykcji danych w szeregach czasowych na przykładzie predykcji cen
akcji KGHM Polska Miedź S.A. W dokumencie zostały szczegółowo
omówione dwie architektury sieci neuronowych jedna bazująca na
znakowej reprezentacji wartości funkcji druga bazująca na jej wartościach
rzeczywistych. Na koniec omówiono rozwiązanie hybrydowe łączące
Predykcja danych w szeregach czasowych 2/42
moŜliwości tych sieci z predykcją opartą na funkcji regresji. Zostały
omówione otrzymane wyniki oraz przedstawione moŜliwe ulepszenia.
Predykcja danych w szeregach czasowych 3/42
Spis treści:
1. Wstęp.............................................................................................................................. 6
2. Dane ............................................................................................................................... 7
3. Predykcja ...................................................................................................................... 11
4. Metody predykcji ......................................................................................................... 13
Sieć neuronowa numeryczna............................................................................................ 13
Sieć neuronowa znakowa ................................................................................................. 15
Regresja ............................................................................................................................ 17
5. Eksperymenty............................................................................................................... 18
1. Badanie..................................................................................................................... 18
6. Wnioski ........................................................................................................................ 41
7. Literatura ...................................................................................................................... 42
Spis tabel:
Tabela 1. Dane giełdowe dla akcji spółki KGHM. .................................................................... 7
Tabela 2. Dane po preprocessingu. ............................................................................................ 7
Tabela 3. Błąd predykcji sieci liczbowej dla zbioru uczącego. ............................................... 19
Tabela 4. Liczba epok uczących sieci numerycznej dla zbioru testowego. ............................. 19
Spis rysunków:
Rysunek 1. Dane giełdowe spółki KGHM................................................................................. 8
Rysunek 2. Wykres funkcji liniowej. ......................................................................................... 9
Rysunek 3. Wykres funkcji kwadratowej................................................................................... 9
Rysunek 4. Funkcja okresowa sin(x) + a ................................................................................. 10
Rysunek 5. Funkcja okresowa sin(x) + x ................................................................................ 10
Rysunek 6. Związek pomiędzy wartościami funkcji predykowanymi i rzeczywistymi. ......... 11
Rysunek 7. Idea predykcji krótko okresowej. .......................................................................... 12
Rysunek 8. Idea predykcji długo okresowej. ........................................................................... 12
Rysunek 9. Schemat blokowy hybrydy.................................................................................... 13
Rysunek 10. Schemat sieci numerycznej. ................................................................................ 14
Rysunek 11. Schemat konwersji danych dla sieci znakowej. .................................................. 15
Rysunek 12. Budowa sieci znakowej. ...................................................................................... 16
Rysunek 13. Przykład przybliŜenia funkcji wielomianem drugiego stopnia. .......................... 17
Rysunek 14. Przykład przybliŜenia funkcji wielomianem trzeciego stopnia........................... 17
Rysunek 15. Przykład przybliŜenia funkcji wielomianem czwartego stopnia......................... 17
Rysunek 16. Przykład przybliŜenia funkcji wielomianem piątego stopnia.............................. 17
Rysunek 17.Przykład przybliŜenia funkcji wielomianem szóstego stopnia. ........................... 17
Rysunek 18. Wykres zaleŜności błędu sieci numerycznej od ilości epok uczących................ 18
Rysunek 19. Wykres zaleŜności błędu sieci znakowej od ilości epok uczących. .................... 18
Rysunek 20. Funkcja linowa. ................................................................................................... 21
Rysunek 21. Predykcja na zbiorze uczącym. ........................................................................... 21
Rysunek 22. Predykcja krokowa na zbiorze testowym............................................................ 22
Rysunek 23. Predykcja ciągła na zbiorze testowym. ............................................................... 22
Predykcja danych w szeregach czasowych 4/42
Rysunek 24. Predykcja na zbiorze uczącym. ........................................................................... 22
Rysunek 25 Predykcja krokowa na zbiorze testowym............................................................. 22
Rysunek 26 Predykcja ciągła na zbiorze testowym. ................................................................ 22
Rysunek 27. Predykcja na zbiorze uczącym. ........................................................................... 23
Rysunek 28. Predykcja krokowa na zbiorze testowym............................................................ 23
Rysunek 29. Predykcja na zbiorze uczącym. ........................................................................... 23
Rysunek 30. Predykcja krokowa na zbiorze testowym............................................................ 23
Rysunek 31. Funkcja kwadratowa............................................................................................ 24
Rysunek 32. Predykcja na zbiorze uczącym. ........................................................................... 24
Rysunek 33. Predykcja krokowa na zbiorze testowym............................................................ 25
Rysunek 34. Predykcja ciągła na zbiorze testowym. ............................................................... 25
Rysunek 35. Predykcja na zbiorze uczącym. ........................................................................... 25
Rysunek 36. Predykcja krokowa na zbiorze testowym............................................................ 25
Rysunek 37. Predykcja ciągła na zbiorze testowym. ............................................................... 25
Rysunek 38. Predykcja na zbiorze uczącym. ........................................................................... 26
Rysunek 39. Predykcja krokowa na zbiorze testowym............................................................ 26
Rysunek 40. Predykcja na zbiorze uczącym. ........................................................................... 26
Rysunek 41. Predykcja krokowa na zbiorze testowym............................................................ 26
Rysunek 42. Funkcja sinusoidalna. .......................................................................................... 27
Rysunek 43. Predykcja na zbiorze uczącym. ........................................................................... 27
Rysunek 44. Predykcja krokowa na zbiorze testowym............................................................ 28
Rysunek 45. Predykcja ciągła na zbiorze testowym. ............................................................... 28
Rysunek 46. Predykcja na zbiorze uczącym. ........................................................................... 28
Rysunek 47. Predykcja krokowa na zbiorze testowym............................................................ 28
Rysunek 48. Predykcja ciągła na zbiorze testowym. ............................................................... 28
Rysunek 49. Funkcja sinusoidalno-malejąca. .......................................................................... 29
Rysunek 50. Predykcja na zbiorze uczącym. ........................................................................... 29
Rysunek 51. Predykcja krokowa na zbiorze testowym............................................................ 30
Rysunek 52. Predykcja ciągła na zbiorze testowym. ............................................................... 30
Rysunek 53. Predykcja na zbiorze uczącym. ........................................................................... 30
Rysunek 54. Predykcja krokowa na zbiorze testowym............................................................ 30
Rysunek 55. Predykcja ciągła na zbiorze testowym. ............................................................... 30
Rysunek 56. Predykcja na zbiorze uczącym. ........................................................................... 31
Rysunek 57. Predykcja krokowa na zbiorze testowym............................................................ 31
Rysunek 58. Predykcja na zbiorze uczącym. ........................................................................... 31
Rysunek 59. Predykcja krokowa na zbiorze testowym............................................................ 31
Rysunek 60. Funkcja notowań akcji firmy KGHM Polska Miedź S.A. .................................. 32
Rysunek 61. Predykcja na zbiorze uczącym. .......................Błąd! Nie zdefiniowano zakładki.
Rysunek 62. Predykcja krokowa na zbiorze testowym............................................................ 33
Rysunek 63. Predykcja ciągła na zbiorze testowym. ............................................................... 33
Rysunek 64. Predykcja na zbiorze uczącym. ........................................................................... 33
Rysunek 65. Predykcja krokowa na zbiorze testowym............................................................ 34
Rysunek 66. Predykcja ciągła na zbiorze testowym. ............................................................... 34
Rysunek 67. Predykcja na zbiorze uczącym. .......................Błąd! Nie zdefiniowano zakładki.
Rysunek 68. Predykcja krokowa na zbiorze testowym............................................................ 35
Rysunek 69. Predykcja ciągła na zbiorze testowym. ............................................................... 35
Rysunek 70. Predykcja na zbiorze uczącym. ........................................................................... 35
Rysunek 71. Predykcja krokowa na zbiorze testowym............................................................ 35
Rysunek 72. Predykcja na zbiorze uczącym. ........................................................................... 35
Rysunek 73. Predykcja krokowa na zbiorze testowym............................................................ 35
Predykcja danych w szeregach czasowych 5/42
Rysunek 74. Predykcja na zbiorze uczącym. ........................................................................... 35
Rysunek 75. Predykcja krokowa na zbiorze testowym, ciągły w stosunku do zbioru uczącego.
.......................................................................................................................................... 37
Rysunek 76. Predykcja ciągła na zbiorze testowym, po okresie jednorocznej przerwy, w
stosunku do zbioru uczącego............................................................................................ 37
Rysunek 77. Okno główne programu - widok parametrów nauki. .......................................... 38
Rysunek 78. Okno główne programu - widok parametrów predykcji ..................................... 39
Rysunek 79. Okno główne programu - widok danych wyników. ............................................ 39
Rysunek 80. Okno główne programu - widok danych predykcji............................................. 40
Predykcja danych w szeregach czasowych 6/42
1. Wstęp
Dokument ten poświęcony jest zagadnieniu predykcji danych w szeregach czasowych. Na
wstępie postaramy się wyjaśnić podstawowe pojęcia uŜywane zarówno w tytule jak i dalszej
części niniejszej pracy. Jednym z kluczowych pojęć jest predykcja danych, polega ona na
próbie przewidzenia t przyszłych wartości funkcji na podstawie n wcześniejszych wartości.
Drugim bardzo waŜnym pojęciem jest szereg czasowy, który jest ciągiem następujących po
sobie czasowo wartości. Szereg czasowy moŜe na przykład stanowić odczyt wskazań
urządzenia pomiarowego lub zestawienie cen akcji giełdowych danej spółki na giełdzie.
Predykcja cen akcji giełdowych jest niezmiernie interesująca dziedziną biorąc pod uwagę
korzyści, jakie moŜe przynieść dokładne prognozowanie kolejnych wartości cenowych. Na
podstawie tych prognoz moŜna podejmować decyzję czy dane akcje warto kupować w danej
chwili czy teŜ moŜe lepiej je sprzedać. Im predykcja jest bardziej dokładna tym lepiej moŜna
operować dysponowanymi przez nas pieniędzmi. Nic więc dziwnego, Ŝe prowadzi się wiele
prac na ten temat. Niestety wiele z rozwiązań nie jest publikowanych i stanowią one jedynie
część całych pakietów, których cena jest czasami niesamowicie wysoka.
Predykcja moŜe być krótko lub długookresowa. Predykcja krótko okresowa dotyczy
zazwyczaj predykcji kilku wartości w przód, podczas gdy predykcja długookresowa swoim
zasięgiem moŜe obejmować bardzo długie okresy. Przyjmuje się, Ŝe dla predykcji krótko
okresowych błąd szacowanych wartości z wartościami rzeczywistymi powinien być bardzo
mały. Podczas predykcji długookresowej tolerowana jest nawet znaczna rozbieŜność na rzecz
zachowania ogólnego trendu danych.
W dokumencie tym opisane jest wykorzystanie sieci neuronowych oraz metod regresji w
zadaniu predykcji danych. Metody te zostaną dokładnie scharakteryzowane w dalszej części
tej pracy.
Predykcja danych w szeregach czasowych 7/42
2. Dane
Udało się uzyskać dane giełdowe spółki KGHM z lat 2001 – 2005, pobrane one zostały z
serwisu www.money.pl. Wśród wartości, jakimi dysponowaliśmy były:
• Cena otwarcia
• Cena minimalna w ciągu dnia
• Cena maksymalna w ciągu dnia
• Cena podczas zamknięcia giełdy
• Procentowa zmiana w stosunku do dnia poprzedniego
• Ilość sprzedanych akcji w ciągu dnia (wolumen)
s
Uznaliśmy, Ŝe interesująca z naszego punktu widzenia jest szczególnie wartość dotycząca
ceny akcji podczas zamknięcia giełdy. Posiadane przez nas dane zostały poddane wstępnemu
preprocessingowi, w którym usunęliśmy kolumny nie istotne z naszego punktu widzenia. W
Tabela 2 został pokazany widok danych po tym procesie.
Data Zamkn
2005-05-27 29,40
2005-05-25 28,90
2005-05-24 28,60
2005-05-23 28,60
2005-05-20 28,60
2005-05-19 29,00
2005-05-18 28,40
2005-05-17 29,40
2005-05-16 28,90
45,00
40,00
35,00
30,00
Wartość akcji [zł]
25,00
20,00
15,00
10,00
5,00
0,00
2005-05-27
2005-04-18
2005-03-07
2005-01-27
2004-12-21
2004-11-12
2004-10-04
2004-08-26
2004-07-20
2004-06-11
2004-05-04
2004-03-23
2004-02-13
2004-01-07
2003-11-25
2003-10-16
2003-09-09
2003-07-31
2003-06-24
2003-05-15
2003-04-03
2003-02-25
2003-01-17
2002-12-05
2002-10-24
2002-09-17
2002-08-08
2002-07-01
2002-05-20
2002-04-09
2001-11-20
2001-07-30
2001-04-04
2000-08-11
1999-05-25
1999-03-29
1999-01-22
1998-11-09
Data [dni]
PoniewaŜ nie widać w tych danych wyraźniej zaleŜności postanowiliśmy przebadać nasze
rozwiązanie równieŜ na innych danych wejściowych. Wybraliśmy do tego następujące
funkcje:
10000
12000
14000
100
200
300
400
500
600
700
800
900
2000
4000
6000
8000
0
2003-01-27
0
2002-04-16
2002-06-16 2003-03-27
2002-08-16
2003-05-27
2002-10-16
2003-07-27
2002-12-16
Rysunek 3. Wykres funkcji kwadratowej.
2003-08-16 2004-01-27
Data [dni]
Data [dni]
2003-10-16 2004-03-27
2003-12-16
2004-05-27
2004-02-16
2004-04-16 2004-07-27
2004-06-16
2004-09-27
2004-08-16
2004-11-27
2004-10-16
2004-12-16 2005-01-27
2005-02-16
2005-03-27
2005-04-16
2005-05-27
9/42
Predykcja danych w szeregach czasowych
Cena [zł] Cena [zł]
10,5
11,5
10,00
12,00
14,00
8,5
9,5
0,00
2,00
4,00
6,00
8,00
10
11
8
9
2002-04-16 2002-04-16
2002-06-16 2002-06-16
2002-08-16 2002-08-16
2002-10-16 2002-10-16
2002-12-16 2002-12-16
Rysunek 5. Funkcja okresowa sin(x) + x
Fukncja sin(x)+x
2003-06-16 2003-06-16
2003-08-16 2003-08-16
Data [dni]
Data [dni]
2003-10-16 2003-10-16
2003-12-16 2003-12-16
2004-02-16 2004-02-16
2004-04-16 2004-04-16
2004-06-16 2004-06-16
2004-08-16 2004-08-16
2004-10-16 2004-10-16
2004-12-16 2004-12-16
2005-02-16 2005-02-16
2005-04-16 2005-04-16
10/42
Predykcja danych w szeregach czasowych 11/42
3. Predykcja
Jak wspominaliśmy juŜ we wstępie predykcja ma za zadanie oszacowanie wartości funkcji na
podstawie innych jej wartości. Predykcja w szeregach czasowych bazuje na wartościach z
przeszłości w celu próby oszacowania wartości w kolejnych punktach czasu. Jakość predykcji
mierzy się zazwyczaj jako średnie odchylenie wartości uzyskanych w poszczególnych
punktach od wartości rzeczywistych (oczekiwanych).
Weźmy pod uwagę przykładową funkcję przedstawioną na Rysunek 6, oraz pewne punkty
kontrolne t0, t1 oraz t2. Funkcja rzeczywista, czyli ta która próbujemy oszacować narysowana
jest linią ciągłą, zaś nasze oszacowanie na wykresie narysowane jest linią przerywaną. Z
rysunku łatwo moŜna zobaczyć, Ŝe znalezione oszacowanie róŜni się od funkcji jakiej
szukaliśmy.
Przyjęta przez nas miara jakości predykcji wyraŜona jest wzorem (1).
Błąd predykcji:
n
∑o z
−o
(1)
Err = i =1
n
Objaśnienie:
Predykcja długo okresowa – to rodzaj predykcji który ma na celu prognozę trendu badanej
funkcji. Nacisk kładziony jest na zachowanie ogólnego charakteru funkcji, a niŜeli dokładne
przewidzenie przyszłych wartości. Predykcja taka dokonywana jest zazwyczaj poprzez
przesuwanie okna danych z jednoczesnym włączaniem do szeregu uczącego przewidzianych
wartości. Schemat ideowy takiego rozwiązania przedstawiony jest na Rysunek 8.
4. Metody predykcji
W programie zostały zastosowane trzy metody predykcji. Dwie z nich wykorzystują sztuczną
sieć neuronową, trzecia natomiast opiera się na metodzie regresji wielomianowej dowolnego
stopnia. Rozwiązanie hybrydowe umoŜliwia wykorzystanie dowolnej kombinacji tych metod.
Na Rysunek 9 przedstawiony jest ideowy schemat pracy hybrydy z włączonymi wszystkimi
metodami predykcji.
W dalszej części tego rozdziału zostanie dokładnie wyjaśnione kaŜde z tych rozwiązań.
Sieć ta składa się przynajmniej z trzech warstw (Rysunek 10), pierwsza warstwa – wejściowa,
jest odpowiedzialna za pobieranie wartości funkcji. Liczność tej warstwy odpowiada
dokładnie szerokości okna danych. KaŜdy neuron pobiera wobec tego jedną wartość z okna i
przekazuje go do warstwy ukrytej.
Warstwa ukryta jest konfigurowalna w programie. MoŜemy określić ile neuronów będzie
wchodzić w jej skład. Dodatkowo mamy równieŜ moŜliwość określenia ilości tych warstw. W
literaturze podawane jest jednak najczęściej, Ŝe sieć taka powinna posiadać jedną warstwę
ukrytą o liczności równej ilości neuronów w warstwie wejściowej. W naszym programie
postanowiliśmy jednak sprawdzić jak zachowują się sieci z większą ilością warstw ukrytych
oraz z róŜna od wejściowej liczbą neuronów w nich zawartych.
Warstwa wyjściowa składa się zawsze z jednego neuronu, którego wartość na wyjściu
stanowi wynik działania sieci.
Predykcja danych w szeregach czasowych 14/42
Warstwa wyjściowa
Warstwa ukryta 1 2 3 4 5 6 7 8
Warstwa wejściowa 1 2 3 4 5 6 7 8
ilosc _ wzorców ∑ (o Z
− o) 2
(2)
Blad = ∑ i =0
i =1 ilosc _ wyjsc
Objaśnienie:
Objaśnienie:
Sieć znakowa w naszym programie to specyficzny rodzaj sieci, która na wejściu analizuje nie
wartości liczb a cyfry, z jakich one się składają. Efektem działania takiej sieci jest zatem
predykcja pewnego napisu, który w szczególności będzie liczbą. Przykład konwersji liczby
2.5 na wejścia sieci znakowej został pokazany na Rysunek 11.
NaleŜy zwrócić uwagę, Ŝe dla ciągu liczb 2.5; 2.51; 4.321 naleŜy ujednolicić ich zapis. W
programie realizowane jest to dopisaniem tylu zer końcowych, aby długość kaŜdej liczby była
taka sama. Dla naszego przykładu po takiej konwersji uzyskalibyśmy liczby (a w zasadzie
napisy): 2.500 ; 2.510; 4.321
Predykcja danych w szeregach czasowych 16/42
Liczba, 4 przez która przemnaŜana jest liczba neuronów warstwy wejściowej i wyjściowej,
wynika z faktu konwersji kaŜdej cyfry na postać binarną. PoniewaŜ musimy zakodować 10
cyfr oraz przecinek, potrzebnych jest naw w tym celu 11 wartości, a najbliŜsza potęgą dwójki
jest 4 (liczba 16).
KaŜdy neuron sieci znakowej zbudowany jest tak samo jak neuron sieci numerycznej. Błąd
sieci równieŜ liczony jest ze wzoru (2). Sieć uczona jest równieŜ algorytmem
BackPropagation.
Zdecydowaną róŜnicą, jaka cechuje sieć znakową i sieć liczbową poza sposobem interpretacji
danych wejściowych jest ilość neuronów, jaka wchodzi w ich skład.
Zastosowanie sieci znakowej wynikało z paru czynników. Pierwszy z nich polegał na chęci
przetestowania zastosowalności i przydatności takiego podejścia. Nigdzie w literaturze nie
spotkaliśmy się z podobnym rozwiązaniem, dlatego ciekawiło nas jakie rezultaty jesteśmy w
stanie osiągnąć z jego pomocą. Drugim powodem jaki przemawiał za zastosowaniem sieci
znakowej był fakt jej wraŜliwości nawet na bardzo małe zmiany wartości wejściowych.
Wystarczy, Ŝe weźmiemy taki przykład:
Dla sieci numerycznej wartości 1 oraz 3 są w zasadzie nierozróŜnialne, podczas gdy w sieci
znakowej zmianie ulegnie wartość 3 neuronów.
demonstrują wpływ stopnia wielomianu na otrzymany wynik:
krzywej regresji do funkcji. PoniŜej przedstawionych jest kilka przykładów, które
bazowej. Wybranie stopnia wielomianu pozawala na mniejsze lub większe dopasowanie się
polega na minimalizacji średniego odchylenia krzywej aproksymującej prostą od funkcji
przypadku jest to krzywa wielomianowa, poprzez dostrajanie jej parametrów. Dostrajanie to
Regresja jest metodą, która polega na ustaleniu wzoru krzywej pewnego stopnia, w naszym
Regresja
Predykcja danych w szeregach czasowych
Wartość akcji [zł]
Wartość akcji [zł]
10,00
15,00
20,00
25,00
30,00
35,00
40,00
45,00
0,00
5,00
10,00
15,00
20,00
25,00
30,00
35,00
40,00
45,00
0,00
5,00
2005-05-27
2005- 05-27
Data [dni]
Data [dni]
2003-06-11
2003- 06-11
2003-05-06
2003- 05-06
2003-03-26
2003- 03-26
2003-02-18
2003- 02-18
2003-01-13
2003- 01-13
2002-12-02
2002- 12-02
2002-10-22
2002- 10-22
Wartość akcji [zł]
2002-09-16
2002- 09-16
10,00
15,00
20,00
25,00
30,00
35,00
40,00
45,00
0,00
5,00
2002-08-08
2005- 05-27 2002- 08-08
2002-07-02
2005- 04-19 2002- 07-02
2002-05-22
2005- 03-09 2002- 05-22
2002-04-12
2005- 02-01 2002- 04-12
2001-12-14
2004- 12-27 2001- 12-14
2001-08-22
2004- 11-19 2001- 08-22
2004- 03-02
2003- 12-15
2003- 11-06
2003- 10-01
2003- 08-26
2003- 07-18
Data [dni]
2003- 06-11
2003- 05-06
2003- 03-26
10,00
15,00
20,00
25,00
30,00
35,00
40,00
45,00
2003- 01-13
0,00
5,00
10,00
15,00
20,00
25,00
30,00
35,00
40,00
45,00
0,00
5,00
2002- 12-02 2005- 05-27
2005- 05-27
Data [dni]
2003- 06-11
Data [dni]
2003- 06-11
2003- 05-06
2003- 05-06
2003- 03-26
2003- 03-26
2003- 02-18
2003- 02-18
2003- 01-13
2003- 01-13
2002- 12-02
2002- 12-02
2002- 10-22
2002- 10-22
2002- 09-16
2002- 09-16
2002- 08-08
2002- 08-08
2002- 07-02
2002- 07-02
2002- 05-22
2002- 05-22
2002- 04-12
2002- 04-12
2001- 12-14
2001- 12-14
2001- 08-22
2001- 08-22
2001- 05-16
2001- 05-16
2000- 10-13
2000- 10-13
1999- 08-25
1999- 08-25
1999- 04-26
1999- 04-26
1999- 02-15
1999- 02-15
1998- 12-02
1998- 12-02
17/42
Predykcja danych w szeregach czasowych 18/42
5. Eksperymenty
1. Badanie błędu sieci podczas procesu uczenia
Pierwsze badanie miało na celu określenie zaleŜności pomiędzy wartością błędu sieci, a
długością procesu uczenia. Dla sieci numerycznej zaleŜność ta została przedstawiona na
Rysunek 18, a dla sieci znakowej, na Rysunek 19. Jak widać obie zaleŜności mają
charakter 1/x.
3,5
2,5
Wartość błędu
1,5
0,5
0
1 51 101 151 201 251 301 351
Ilość epok uczących
Rysunek 18. Wykres zaleŜności błędu sieci numerycznej od ilości epok uczących.
4,5
3,5
3
Błąd sieci
2,5
1,5
0,5
0
1 26 51 76
Ilość epok
Rysunek 19. Wykres zaleŜności błędu sieci znakowej od ilości epok uczących.
Predykcja danych w szeregach czasowych 19/42
2. Badanie wpływu parametrów uczenia na ilość epok uczących oraz błąd sieci.
3. Predykcja funkcji
Rysunek 22. Predykcja krokowa na zbiorze Rysunek 23. Predykcja ciągła na zbiorze testowym.
testowym.
Rysunek 25 Predykcja krokowa na zbiorze testowym. Rysunek 26 Predykcja ciągła na zbiorze testowym.
Predykcja danych w szeregach czasowych 23/42
Drugi test został przeprowadzony na sieci znakowej (zasada działania opisana w poprzednim
punkcie). Uzyskane wyniki dla duŜego błędu (powyŜej 1) nie wykazują Ŝadnej (bardzo
znikomą) korelacji z funkcją bazową (Rysunek 27 i Rysunek 28). Dopiero zmniejszenie
dopuszczalnego błędu pozwoliło uzyskać akceptowalne wyniki dla zbioru uczącego. JednakŜe,
tak jak podejrzewaliśmy, sieć ta ma tendencję do uczenia się na pamięć, co moŜna
zaobserwować na Rysunek 29 i Rysunek 30.
Rysunek 27. Predykcja na zbiorze uczącym. Rysunek 28. Predykcja krokowa na zbiorze testowym.
Rysunek 29. Predykcja na zbiorze uczącym. Rysunek 30. Predykcja krokowa na zbiorze testowym.
Predykcja danych w szeregach czasowych 24/42
5. Predykcja funkcji kwadratowej
Kolejny test przeprowadzony został dla funkcji kwadratowej, przedstawionej na Rysunek 31.
Badanie to ma na celu sprawdzenie zdolności uogólniania zaleŜności funkcyjnej. Badania
zostały przeprowadzone zarówno dla sieci numerycznej jak i sieci znakowej.
Rysunek 33. Predykcja krokowa na zbiorze testowym. Rysunek 34. Predykcja ciągła na zbiorze testowym.
Rysunek 36. Predykcja krokowa na zbiorze testowym. Rysunek 37. Predykcja ciągła na zbiorze testowym.
Predykcja danych w szeregach czasowych 26/42
Rysunek 38. Predykcja na zbiorze uczącym. Rysunek 39. Predykcja krokowa na zbiorze testowym.
Predykcja z zastosowaniem sieci znakowej (max. błąd = 0.01)
Rysunek 40. Predykcja na zbiorze uczącym. Rysunek 41. Predykcja krokowa na zbiorze testowym.
Predykcja danych w szeregach czasowych 27/42
Kolejne testy przeprowadzone zostały dla funkcji okresowej w celu zbadania zdolności sieci
do uczenia się schematów. Na Rysunek 42 przestawiony jest wykres funkcji bazowej.
Rysunek 44. Predykcja krokowa na zbiorze testowym. Rysunek 45. Predykcja ciągła na zbiorze testowym.
Rysunek 47. Predykcja krokowa na zbiorze testowym. Rysunek 48. Predykcja ciągła na zbiorze testowym.
Predykcja danych w szeregach czasowych 29/42
7. Predykcja funkcji okresowej – y=sin(x) + x
Rysunek 56. Predykcja na zbiorze uczącym. Rysunek 57. Predykcja krokowa na zbiorze testowym.
Rysunek 58. Predykcja na zbiorze uczącym. Rysunek 59. Predykcja krokowa na zbiorze testowym.
Predykcja danych w szeregach czasowych 32/42
Rysunek 60. Funkcja notowań akcji firmy KGHM Polska Miedź S.A.
Dla duŜej wartości dopuszczalnego błędu, sieć numeryczna nie odwzorowuje funkcji bazowej.
Jest to związane z faktem bardzo małej róŜnicy pomiędzy kolejnymi wartościami w ciągu
uczącym (Rysunek 61, Rysunek 62 i Rysunek 63).
Rysunek 70. Predykcja na zbiorze uczącym. Rysunek 71. Predykcja krokowa na zbiorze testowym.
Predykcja z zastosowaniem sieci znakowej (max. błąd = 0.01)
Rysunek 72. Predykcja na zbiorze uczącym. Rysunek 73. Predykcja krokowa na zbiorze testowym.
Predykcja danych w szeregach czasowych 36/42
Predykcja z zastosowaniem sieci znakowej (max. błąd = 0.001)
Rysunek 74. Predykcja na zbiorze uczącym. Rysunek 75. Predykcja krokowa na zbiorze testowym.
6. Opis programu
PoniŜsze rysunki przedstawiają interfejs programu oraz jego podstawowe funkcje.
Okno z wykresem
wyników
Wybór metod
predykcji
Parametry regresji
wielomianowej
Parametry zbiorów
uczących
Rozpoczęcie nauki
Parametry dotyczące
zakresu predykcji
Parametry dotyczące
typu predykcji
Rozpoczęcie
predykcji
Uzyskane wartości z
predykcji
Wartość predykcji
sieci znakowej
Wartość predykcji
dla metody regresji
Wartość rzeczywista
funkcji
Wartość predykcji
sieci numerycznej
7. Wnioski
Projekt dał nam moŜliwość zgłębienia wiedzy na temat predykcji i aproksymacji danych.
Postawiony przed nami rzeczywisty problem, pozwolił nam zastosować własne rozwiązanie
w postaci sieci znakowej. Podejście to nie było nigdzie opisane, dlatego z niecierpliwością
oczekiwaliśmy na pierwsze wyniki. W celu zwiększenia efektywności tej metody,
postanowiliśmy wspomóc ją innymi rozwiązaniami. Tworząc tym samym system hybrydowy.
Nie ogranicza to w Ŝaden sposób naszych moŜliwości związanych z konfiguracją
poszczególnych modułów.
Zaproponowana przez nas sieć znakowa nie radziła sobie dobrze z funkcjami testowymi.
Jednak dla funkcji rzeczywistej (notowań akcji na giełdzie) spisywała się ona porównywalnie
lub w nielicznych przypadkach nawet lepiej niŜ sieć numeryczna. Efekt ten uzyskiwany był
jednak tylko na krótkich przedziałach czasowych, nieznacznie oddalonych od zbioru
uczącego.
Rozwiązanie nasze cechuje bardzo dobra zdolność predykcji krótkookresowej, która moŜe
być przydatna w rzeczywistych zastosowaniach, na przykład podczas gry na giełdzie. Wyniki
predykcji długoterminowej są niezadowalające, czego moŜna się było spodziewać ze względu
na kumulację błędów predykcji krótkookresowej, co w skali dłuŜszego okresu czasu
odbiegało znacznie od wartości rzeczywistych.
Projekt ten stanowił dla nas wyzwanie i pozwolił nam zgłębić nasza wiedzę w tej dziedzinie.
Predykcja danych w szeregach czasowych 42/42
Literatura
Benjamin W. Wah, Minglun Qian „Constrained Formulations and Algorithms for Stock-Price
Predictions Using Recurrent FIR Neural Networks”
Józef Kalisz, Ryszard Pełka, Ryszard Szplet „Problemy projektowe w precyzyjnej metrologii
odcinków czasu”