M Stanek-Predykcja Danych w Szeregach Czasowych

42
Predykcja danych w szeregach czasowych 1/42 Predykcja danych w szeregach czasowych na przykladzie predykcji cen akcji gieldowych spólki KGHM Polska Miedź S.A. Piotr Kupczyk ([email protected] ) Michal Stanek ([email protected] ) 13 czerwca 2005 Abstract: Prognozowanie przyszlych wartości akcji gieldowych jest marzeniem wielu osób. Artykul przedstawia wykorzystanie hybrydowego rozwiązania bazującego na sieciach neuronowych oraz analizie statystycznej podczas predykcji danych w szeregach czasowych na przykladzie predykcji cen akcji KGHM Polska Miedź S.A. W dokumencie zostaly szczególowo 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 lączące

Transcript of M Stanek-Predykcja Danych w Szeregach Czasowych

Page 1: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

1/42

Predykcja danych w szeregach czasowych

na przykładzie predykcji cen akcji giełdowych spółki KGHM Polska Miedź S.A.

Piotr Kupczyk ([email protected]) Michał Stanek ([email protected])

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

Page 2: M Stanek-Predykcja Danych w Szeregach Czasowych

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.

Page 3: M Stanek-Predykcja Danych w Szeregach Czasowych

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

Page 4: M Stanek-Predykcja Danych w Szeregach Czasowych

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

Page 5: M Stanek-Predykcja Danych w Szeregach Czasowych

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

Page 6: M Stanek-Predykcja Danych w Szeregach Czasowych

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.

Page 7: M Stanek-Predykcja Danych w Szeregach Czasowych

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)

W Tabela 1 znajduje się przykład formatu wykorzystywanych danych.

Tabela 1. Dane giełdowe dla akcji spółki KGHM.

Data Otw Min Max Zamkn Zmn.[%] Wolumen

2005-05-27 29,10 29,00 29,40 29,40 1,73 328848 2005-05-25 28,60 28,60 29,00 28,90 1,05 271585 2005-05-24 28,60 28,10 28,70 28,60 0,00 256392 2005-05-23 28,70 28,50 29,00 28,60 0,00 231664 2005-05-20 28,90 28,50 29,40 28,60 -1,38 549326 2005-05-19 28,90 28,50 29,00 29,00 2,11 1188384 2005-05-18 28,30 27,70 28,50 28,40 1,07 818496 2005-05-17 28,90 27,70 28,90 28,10 -1,75 702573 2005-05-16 29,00 28,20 29,00 28,60 -1,72 207168

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.

Tabela 2. Dane po preprocessingu.

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

Na Rysunek 1 przedstawiona jest zmiana wartości akcji w czasie.

Page 8: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

8/42

Dane giełdowe spółki KGHM

0,00

5,00

10,00

15,00

20,00

25,00

30,00

35,00

40,00

45,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]

War

tość

akc

ji [z

ł]

Rysunek 1. Dane giełdowe spółki KGHM.

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:

• Funkcja liniowa y = ax+b • Funkcja kwadratowa y = ax2 + bx + c • Funkcja okresowa y = sin(x) + a • Funkcja okresowa y = sin(x) + x

PoniŜej znajdują się wykresy tych funkcji.

Page 9: M Stanek-Predykcja Danych w Szeregach Czasowych

Pred

ykcja danych w

szeregach czasowych

9/42

Fu

nkcja liniowa y=-ax+b

0

100

200

300

400

500

600

700

800

9002003-01-27

2003-03-27

2003-05-27

2003-07-27

2003-09-27

2003-11-27

2004-01-27

2004-03-27

2004-05-27

2004-07-27

2004-09-27

2004-11-27

2005-01-27

2005-03-27

2005-05-27

Data [dni]

Cena [zł]

R

ysunek 2. Wykres fu

nkcji liniow

ej.

Funkcja

kwa

dratow

a y=

ax^2+

bx+c

0

2000

4000

6000

8000

10000

12000

14000

2002-04-16

2002-06-16

2002-08-16

2002-10-16

2002-12-16

2003-02-16

2003-04-16

2003-06-16

2003-08-16

2003-10-16

2003-12-16

2004-02-16

2004-04-16

2004-06-16

2004-08-16

2004-10-16

2004-12-16

2005-02-16

2005-04-16

Data [dni]

Cena [zł]

R

ysunek 3. Wykres fu

nkcji kwad

ratow

ej.

Page 10: M Stanek-Predykcja Danych w Szeregach Czasowych

Pred

ykcja danych w

szeregach czasowych

10/42

Funkcja okresow

a y=sin(x)+a

8

8,5 9

9,5 10

10,5 11

11,52002-04-16

2002-06-16

2002-08-16

2002-10-16

2002-12-16

2003-02-16

2003-04-16

2003-06-16

2003-08-16

2003-10-16

2003-12-16

2004-02-16

2004-04-16

2004-06-16

2004-08-16

2004-10-16

2004-12-16

2005-02-16

2005-04-16

Data [dni]

Cena [zł]

R

ysunek 4. Fun

kcja okreso

wa

sin(x) + a

Fukn

cja sin(x)+x

0,00

2,00

4,00

6,00

8,00

10,00

12,00

14,00

2002-04-16

2002-06-16

2002-08-16

2002-10-16

2002-12-16

2003-02-16

2003-04-16

2003-06-16

2003-08-16

2003-10-16

2003-12-16

2004-02-16

2004-04-16

2004-06-16

2004-08-16

2004-10-16

2004-12-16

2005-02-16

2005-04-16

Data [dni]

Cena [zł]

R

ysunek 5. Funkcja okresow

a sin(x) + x

Page 11: M Stanek-Predykcja Danych w Szeregach Czasowych

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.

Rysunek 6. Związek pomiędzy wartościami funkcji predykowanymi i rzeczywistymi.

Przyjęta przez nas miara jakości predykcji wyraŜona jest wzorem (1). Błąd predykcji:

n

ooErr

n

i

z∑

=

−= 1

(1)

Objaśnienie:

Err – całkowity błąd predykcji o – wartość uzyskana z predykcji oz – wartość oczekiwana n – ilość elementów predykowanego zbioru

Page 12: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

12/42

Predykcja krótko okresowa – jest to rodzaj predykcji, który na podstawie wartości z przeszłości (okna) próbuje oszacować małą liczbę wartości w przyszłości. Podczas takiej predykcji nacisk kładziony jest na minimalizacje błędu predykcji. Podczas predykcji kaŜdej wartości wykorzystuje się dane rzeczywiste. W przypadku naszego programu byłaby to sytuacja, w której prognozuje on cenę akcji na następny dzień na podstawie wartości poprzednich. Za kaŜdym razem do programu podawane są rzeczywiste wartości cen akcji z dni poprzednich.

Cena [zł]

Rysunek 7. Idea predykcji krótko okresowej.

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.

Rysunek 8. Idea predykcji długo okresowej.

Page 13: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

13/42

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.

Rysunek 9. Schemat blokowy hybrydy.

W dalszej części tego rozdziału zostanie dokładnie wyjaśnione kaŜde z tych rozwiązań.

Sieć neuronowa numeryczna Jako pierwsze omówimy rozwiązanie bazujące na sieci neuronowej z propagacją wsteczną. Nazwa „sieć numeryczna” została jej nadana ze względu na sposób pracy z danymi. 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.

Page 14: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

14/42

2 3 41 6 7 85

2 3 41 6 7 85

Warstwa wyjściowa

Wejścia do sieci – normalizacja danych

Warstwa wejściowa

Warstwa ukryta

Wyjście – denormalizacja wartości

Rysunek 10. Schemat sieci numerycznej.

Błąd działania sieci:

∑∑

=

=

−=

wzorcówilosc

i

wyjscilośl

i

Z

wyjscilosc

ooBlad

_

1

_

0

2

_

)(

(2)

Objaśnienie:

Blad –błąd pracy sieci neuronowej o – wartość uzyskana na wyjściu z neuronu warstwy wyjściowej oz – wartość oczekiwana na wyjściu neuronu ilosc_wzorców – ilość wzorców danych ilosc_wyjsc – ilość wyjść sieci neuronowej

Wartości dostarczane do warstwy wejściowej poddaje się normalizacji zgodnie z następującym wzorem: Normalizacja wartości wejściowej

minmax

min

−−= r

s

xx

(3)

Objaśnienie:

xs – wartość podawana na wejście sieci

Page 15: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

15/42

xr – wartość rzeczywista przekazana na wejście min – minimalna wartość w zbiorze danych max – maksymalna wartość w zbiorze danych

Wyjście z sieci następnie poddawane jest procesowi denormalizacji:

minmin)(max +−⋅= rs xx (4)

Objaśnienie:

xs – wartość podawana na wejście sieci xr – wartość rzeczywista przekazana na wejście min – minimalna wartość w zbiorze danych max – maksymalna wartość w zbiorze danych

Do uczenia sieci zastosowany jest algorytm propagacji wstecznej. KaŜdy z neuronów wchodzących w skład sieci ma dodatkowe wejście zwane biasem, które zawsze na wejściu ma podawaną wartość 1. Jako funkcja aktywacji neuronu zastosowana została funkcja unipolarna.

Sieć neuronowa znakowa 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.

Rysunek 11. Schemat konwersji danych dla sieci znakowej.

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

Page 16: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

16/42

Budowa sieci znakowej jest następująca:

• Liczba neuronów w warstwie wejściowej – długość najdłuŜszej liczby (w postaci napisu) * 4 * szerokość okna

• Liczba neuronów w warstwie ukrytej – 0.5 * ilość neuronów wejściowych • Liczba neuronów wyjściowych – długość najdłuŜszej liczby z danych uczących (w

postaci napisu) * 4

Rysunek 12. Budowa sieci znakowej.

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: Zakres danych = 100 Wartość 1 = 45.500 Wartość 2 = 49.000 Wartość 3 = 45.506 Dla sieci numerycznej wartości 1 oraz 3 są w zasadzie nierozróŜnialne, podczas gdy w sieci znakowej zmianie ulegnie wartość 3 neuronów.

Page 17: M Stanek-Predykcja Danych w Szeregach Czasowych

Pred

ykcja danych w

szeregach czasowych

17/42

Regresja

Regresja jest m

etodą, która polega n

a ustaleniu wzoru krzyw

ej pew

nego

stopnia, w

naszym

przypadku jest to krzywa w

ielomianow

a, poprzez dost

rajanie jej parametrów

. Dostrajanie to

polega na minim

alizacji średniego odch

ylenia krzywej ap

roksymującej prostą od funkcji

bazowej. W

ybranie stopnia w

ielomianu pozaw

ala na mn

iejsze lub większe dopasow

anie się

krzywej

regresji

do funkcji.

PoniŜej

przedstawion

ych jest

kilka przykładów

, które

dem

onstrują wpływ

stopnia wielom

ianu na otrzyman

y wynik:

D

ane giełdowe spółki K

GH

M

0,00

5,00

10,00

15,00

20,00

25,00

30,00

35,00

40,00

45,00

2005-05-27

2005-04-19

2005-03-09

2005-02-01

2004-12-27

2004-11-19

2004-10-12

2004-09-06

2004-07-30

2004-06-24

2004-05-18

2004-04-07

2004-03-02

2004-01-26

2003-12-15

2003-11-06

2003-10-01

2003-08-26

2003-07-18

2003-06-11

2003-05-06

2003-03-26

2003-02-18

2003-01-13

2002-12-02

2002-10-22

2002-09-16

2002-08-08

2002-07-02

2002-05-22

2002-04-12

2001-12-14

2001-08-22

2001-05-16

2000-10-13

1999-08-25

1999-04-26

1999-02-15

1998-12-02

Data [dni]

Warto ść akcji [zł]

R

ysunek 13. Przykład

przyb

liŜenia funkcji

wielo

mia

nem

drugie

go sto

pnia.

Dane giełdow

e spółki KG

HM

0,00

5,00

10,00

15,00

20,00

25,00

30,00

35,00

40,00

45,00

2005-05-27

2005-04-19

2005-03-09

2005-02-01

2004-12-27

2004-11-19

2004-10-12

2004-09-06

2004-07-30

2004-06-24

2004-05-18

2004-04-07

2004-03-02

2004-01-26

2003-12-15

2003-11-06

2003-10-01

2003-08-26

2003-07-18

2003-06-11

2003-05-06

2003-03-26

2003-02-18

2003-01-13

2002-12-02

2002-10-22

2002-09-16

2002-08-08

2002-07-02

2002-05-22

2002-04-12

2001-12-14

2001-08-22

2001-05-16

2000-10-13

1999-08-25

1999-04-26

1999-02-15

1998-12-02

Data [dni]

Warto ść akcji [zł]

R

ysunek 14. Przykład

przyb

liŜenia funkcji

wielo

mia

nem

trzeciego sto

pnia.

D

ane giełdowe spółki K

GH

M

0,00

5,00

10,00

15,00

20,00

25,00

30,00

35,00

40,00

45,00

2005-05-27

2005-04-19

2005-03-09

2005-02-01

2004-12-27

2004-11-19

2004-10-12

2004-09-06

2004-07-30

2004-06-24

2004-05-18

2004-04-07

2004-03-02

2004-01-26

2003-12-15

2003-11-06

2003-10-01

2003-08-26

2003-07-18

2003-06-11

2003-05-06

2003-03-26

2003-02-18

2003-01-13

2002-12-02

2002-10-22

2002-09-16

2002-08-08

2002-07-02

2002-05-22

2002-04-12

2001-12-14

2001-08-22

2001-05-16

2000-10-13

1999-08-25

1999-04-26

1999-02-15

1998-12-02

Data [dni]

Warto ść akcji [zł]

R

ysunek 15. Przykład

przyb

liŜenia funkcji

wielo

mia

nem

czwartego

stop

nia.

Dane giełdow

e spółki KG

HM

0,00

5,00

10,00

15,00

20,00

25,00

30,00

35,00

40,00

45,00

2005-05-27

2005-04-19

2005-03-09

2005-02-01

2004-12-27

2004-11-19

2004-10-12

2004-09-06

2004-07-30

2004-06-24

2004-05-18

2004-04-07

2004-03-02

2004-01-26

2003-12-15

2003-11-06

2003-10-01

2003-08-26

2003-07-18

2003-06-11

2003-05-06

2003-03-26

2003-02-18

2003-01-13

2002-12-02

2002-10-22

2002-09-16

2002-08-08

2002-07-02

2002-05-22

2002-04-12

2001-12-14

2001-08-22

2001-05-16

2000-10-13

1999-08-25

1999-04-26

1999-02-15

1998-12-02

Data [dni]

Warto ść akcji [zł]

R

ysunek 16. Przykład

przyb

liŜenia funkcji

wielo

mia

nem

piąte

go sto

pnia.

D

ane giełdowe spółki K

GH

M

0,00

5,00

10,00

15,00

20,00

25,00

30,00

35,00

40,00

45,00

2005-05-27

2005-04-19

2005-03-09

2005-02-01

2004-12-27

2004-11-19

2004-10-12

2004-09-06

2004-07-30

2004-06-24

2004-05-18

2004-04-07

2004-03-02

2004-01-26

2003-12-15

2003-11-06

2003-10-01

2003-08-26

2003-07-18

2003-06-11

2003-05-06

2003-03-26

2003-02-18

2003-01-13

2002-12-02

2002-10-22

2002-09-16

2002-08-08

2002-07-02

2002-05-22

2002-04-12

2001-12-14

2001-08-22

2001-05-16

2000-10-13

1999-08-25

1999-04-26

1999-02-15

1998-12-02

Data [dni]

Warto ść akcji [zł]

R

ysunek 17.Przykład

przyb

liŜenia funkcji w

ielom

ianem

szóstego

stop

nia.

Page 18: M Stanek-Predykcja Danych w Szeregach Czasowych

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.

Uczenie sieci numerycznej

0

0,5

1

1,5

2

2,5

3

3,5

1 51 101 151 201 251 301 351

Ilość epok ucz ących

War

tość

błę

du

Rysunek 18. Wykres zaleŜności błędu sieci numerycznej od ilości epok uczących.

Błąd podczas uczenia sieci znakowej

0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

5

1 26 51 76

Ilość epok

Błą

d si

eci

Rysunek 19. Wykres zaleŜności błędu sieci znakowej od ilości epok uczących.

Page 19: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

19/42

2. Badanie wpływu parametrów uczenia na ilo ść epok ucz ących oraz bł ąd sieci. Badanie polegało na sprawdzeniu wpływu parametrów uczenia takich jak: maksymalny dopuszczalny błąd, współczynnik uczenia. Jak widać (Tabela 3. Błąd predykcji sieci liczbowej dla zbioru uczącego.Tabela 3 i Tabela 4) zmniejszenie wartośći dopuszczalnego błędu wpływa na polepszenie jakości otrzymywanych rozwiązań. JednakŜe związane jest to z dodatkowym kosztem obliczeniowym, wynikającym z dłuŜszego procesu uczenia.

Tabela 3. Błąd predykcji sieci liczbowej dla zbioru uczącego.

Tabela 4. Liczba epok uczących sieci numerycznej dla zbioru testowego.

L.p. Max_bład=0,1 Wsp_uczenia=0.25

Max_błąd=0,1 Wsp_uczenia=0.1 Max_błąd=0,01

Wsp_uczenia=0.25

1 0,33944595 0,40188 0,119438 2 0,40685362 0,377126 0,087539 3 0,3211001 0,435145 0,139914 4 0,39504743 0,399811 0,178516 5 0,30614528 0,388575 0,166054 6 0,3702581 0,401558 0,100523 7 0,55567235 0,39477 0,119242 8 0,4061748 0,39934 0,393672 9 0,44178638 0,405562 0,096405 10 0,34696692 0,399018 0,212274

Średnia : 0,388945093 0,400279 0,161358

L.p. Max_bład=0,1 Wsp_uczenia=0.25

Max_błąd=0,1 Wsp_uczenia=0.1 Max_błąd=0,01

Wsp_uczenia=0.25

1 128 156 443 2 51 67 638 3 54 104 723 4 32 87 879 5 61 121 505 6 31 131 660 7 47 108 848 8 73 130 480 9 36 109 742 10 38 104 637

Średnia : 50,11363636 101,5545 595,9318

Page 20: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

20/42

3. Predykcja funkcji W celu porównania działania wykorzystanych metod, poddano predykcji następujące funkcje:

• funkcja liniowa • funkcja kwadratowa • funkcja sinusoidalna (sin(x) + a) • funkcja sinusoidalna połączona z funkcja liniową (sin(x) + x) • funkcja przedstawiająca notowania cen akcji firmy KGHM Polska Miedź S.A.

Proces testowania polegał na wyuczeniu sieci numerycznej i znakowej na wybranym podzbiorze dziedziny funkcji, a następnie próbie predykcji wartości dla nieznanych dotąd argumentów. W kolejnych punktach przedstawione są uzyskiwane rezultaty.

Page 21: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

21/42

4. Predykcja funkcji liniowej Badania predykcji funkcji liniowej przedstawionej na Rys.20, miało na celu określenie zdolności systemu do wykrywania prostych zaleŜności między danymi.

Rysunek 20. Funkcja linowa.

Jako pierwszą zastosowaną metodę opartą na sieci numerycznej. Predykcję przeprowadzono dla dwóch wartości dopuszczalnego błędu: 1.0 i 0.01. Jak wynika z Rysunek 21 i Rysunek 24, obniŜenie progu błędu, pozwala na lepsze odwzorowanie funkcji, dla wartości wchodzących w skład zbioru uczącego. Wpływa to jednak ujemnie na zdolność uogólniania (Rysunek 22 i Rysunek 25). Akceptowalne rezultaty otrzymujemy jedynie dla predykcji krótkookresowej (krokowej). Dla predykcji długookresowej kumulacja błędu jest tak duŜa, Ŝe wartości predykowane nie zachowują nawet trendu funkcji bazowej (Rysunek 23 i Rysunek 26). Predykcja z zastosowaniem sieci numerycznej (max. błąd = 1):

Rysunek 21. Predykcja na zbiorze uczącym.

Page 22: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

22/42

Rysunek 22. Predykcja krokowa na zbiorze

testowym.

Rysunek 23. Predykcja ciągła na zbiorze testowym.

Predykcja z zastosowaniem sieci numerycznej (max. błąd = 0.01):

Rysunek 24. Predykcja na zbiorze uczącym.

Rysunek 25 Predykcja krokowa na zbiorze testowym.

Rysunek 26 Predykcja ciągła na zbiorze testowym.

Page 23: M Stanek-Predykcja Danych w Szeregach Czasowych

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. Predykcja z zastosowaniem sieci znakowej (max. błąd = 1):

Rysunek 27. Predykcja na zbiorze uczącym.

Rysunek 28. Predykcja krokowa na zbiorze testowym.

Predykcja z zastosowaniem sieci znakowej (max. błąd = 0.01)

Rysunek 29. Predykcja na zbiorze uczącym.

Rysunek 30. Predykcja krokowa na zbiorze testowym.

Page 24: M Stanek-Predykcja Danych w Szeregach Czasowych

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 31. Funkcja kwadratowa.

Uzyskane wyniki są porównywalne z wynikami otrzymanymi w poprzednim badaniu. Po raz kolejny swoja przewagę wykazała sieć numeryczna. Podczas testów potwierdziło się poprzednie przypuszczenie, Ŝe dla małej dopuszczalnej wartości błędu sieci, uczy się ona na pamięć. PoniŜej znajdują się otrzymane wyniki. Predykcja z zastosowaniem sieci numerycznej (max. błąd = 1):

Rysunek 32. Predykcja na zbiorze uczącym.

Page 25: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

25/42

Rysunek 33. Predykcja krokowa na zbiorze testowym.

Rysunek 34. Predykcja ciągła na zbiorze testowym.

Predykcja z zastosowaniem sieci numerycznej (max. błąd = 0.01)

Rysunek 35. Predykcja na zbiorze uczącym.

Rysunek 36. Predykcja krokowa na zbiorze testowym.

Rysunek 37. Predykcja ciągła na zbiorze testowym.

Page 26: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

26/42

Predykcja z zastosowaniem sieci znakowej (max. błąd = 1)

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.

Page 27: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

27/42

6. Predykcja funkcji okresowej – y=sin(x) + a 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 42. Funkcja sinusoidalna.

Podczas prowadzenia badań zaobserwowaliśmy, iŜ okresowość funkcji pozwala zmniejszyć dopuszczalny błąd. W poprzednich badaniach zabieg ten dał negatywne efekty, których przejawem była nauka wzorców na pamięć. W aktualnie testowanej funkcji cecha ta jest poŜądana.

Predykcja z zastosowaniem sieci numerycznej (max. błąd = 1):

Rysunek 43. Predykcja na zbiorze uczącym.

Page 28: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

28/42

Rysunek 44. Predykcja krokowa na zbiorze testowym.

Rysunek 45. Predykcja ciągła na zbiorze testowym.

Predykcja z zastosowaniem sieci numerycznej (max. błąd = 0.01):

Rysunek 46. Predykcja na zbiorze uczącym.

Rysunek 47. Predykcja krokowa na zbiorze testowym.

Rysunek 48. Predykcja ciągła na zbiorze testowym.

Page 29: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

29/42

7. Predykcja funkcji okresowej – y=sin(x) + x

W celu zbadania zdolności uogólniania zaleŜności funkcyjnych przy jednoczesnym wykorzystaniu faktu okresowości funkcji, badaniu poddaliśmy funkcję y=sin(x)+x. Wykres funkcji znajduje się na Rysunek 49.

Rysunek 49. Funkcja sinusoidalno-malejąca.

Jak wykazują przeprowadzone badania sieć numeryczna z dobrym rezultatem potrafiła odwzorować trend rozpatrywanej funkcji. Wysoka dokładność predykcji została uzyskana nie tylko na wzorcach uczących, ale równieŜ na zbiorze testowym (Rysunek 54). Wyniki predykcji długookresowej (ciągłej) pozostają nadal niezadowalające (Rysunek 52 i Rysunek 55). Predykcja z zastosowaniem sieci numerycznej (max. błąd = 1):

Rysunek 50. Predykcja na zbiorze uczącym.

Page 30: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

30/42

Rysunek 51. Predykcja krokowa na zbiorze testowym.

Rysunek 52. Predykcja ciągła na zbiorze testowym.

Predykcja z zastosowaniem sieci numerycznej (max. błąd = 0.01):

Rysunek 53. Predykcja na zbiorze uczącym.

Rysunek 54. Predykcja krokowa na zbiorze testowym.

Rysunek 55. Predykcja ciągła na zbiorze testowym.

Page 31: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

31/42

Predykcja z zastosowaniem sieci znakowej (max. błąd = 1):

Rysunek 56. Predykcja na zbiorze uczącym.

Rysunek 57. Predykcja krokowa na zbiorze testowym.

Predykcja z zastosowaniem sieci znakowej (max. błąd = 0.01):

Rysunek 58. Predykcja na zbiorze uczącym.

Rysunek 59. Predykcja krokowa na zbiorze testowym.

Page 32: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

32/42

8. Predykcja danych giełdowych na przykładzie notow ań akcji firmy KGHM Polska Mied ź S.A.

Najbardziej istotnym testem z punktu widzenia projektu było badanie zaproponowanego rozwiązania na danych rzeczywistych. Wstępna analiza ciągu uczącego nie pozwalała nam zakładać, Ŝe istnieją w nim jakiekolwiek zaleŜności funkcyjne (Rysunek 60).

Rysunek 60. Funkcja notowań akcji firmy KGHM Polska Miedź S.A.

Predykcja z zastosowaniem sieci numerycznej (max. błąd = 1):

Rysunek 61. Predykcja na zbiorze uczącym

Page 33: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

33/42

Rysunek 62. Predykcja krokowa na zbiorze testowym.

Rysunek 63. Predykcja ciągła na zbiorze testowym.

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). Predykcja z zastosowaniem sieci numerycznej (max. błąd = 0.01):

Rysunek 64. Predykcja na zbiorze uczącym.

Page 34: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

34/42

Rysunek 65. Predykcja krokowa na zbiorze testowym

Rysunek 66. Predykcja ciągła na zbiorze testowym.

Przy obniŜeniu wartości dopuszczalnego błędu, uzyskane rezultaty na ciągu testowym wykazują niesamowite zdolności predykcji danych. Sieć potrafiła poprawnie predykować wartości dla 4-miesięcznego okresu następującego po ciągu uczącym. Niemniej jednak zdolność do predykcji długoterminowej nie uległa znacznej poprawie. Okres predykcji w tym przypadku nie przekracza nawet tygodnia. Predykcja z zastosowaniem sieci numerycznej (max. błąd = 0.001):

Rysunek 67. Predykcja na zbiorze uczącym

Page 35: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

35/42

Rysunek 68. Predykcja krokowa na zbiorze testowym.

Rysunek 69. Predykcja ciągła na zbiorze testowym.

Predykcja z zastosowaniem sieci znakowej (max. błąd = 1):

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.

Page 36: M Stanek-Predykcja Danych w Szeregach Czasowych

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.

Zaskakującym jest fakt, iŜ sieć znakowa wykazuje zdolność do wiernego odwzorowywania tak złoŜonej funkcji. Wyniki uzyskane w tej części badań są dla nie duŜo lepsze, niŜ w poprzednich testach. W pewnych sytuacjach jest ona lepsza niŜ sieć numeryczna. Wytłumaczyć to moŜna faktem, iŜ w ciągu uczącym róŜnice pomiędzy kolejnymi elementami są bardzo małe. Predykcja z zastosowaniem sieci numerycznej i sieci znakowej (max. błąd = 0.01):

Rysunek 76. Predykcja na zbiorze uczącym.

Page 37: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

37/42

Rysunek 77. Predykcja krokowa na zbiorze testowym, ciągłym w stosunku do zbioru uczącego.

Rysunek 78. Predykcja ciągła na zbiorze testowym, po

okresie jednorocznej przerwy, w stosunku do zbioru uczącego.

Ostatnie badanie polegało na sprawdzeniu jakości predykcji dla danych testowych, pochodzących z następujących po sobie lat. Jak moŜna zauwaŜyć dokładność działania sieci maleje wraz z

Page 38: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

38/42

6. Opis programu

PoniŜsze rysunki przedstawiają interfejs programu oraz jego podstawowe funkcje.

Rysunek 79. Okno główne programu - widok parametrów nauki.

Wybór metod predykcji

Parametry sieci numerycznej

Parametry regresji wielomianowej

Parametry nauki sieci neuronowych

Parametry zbiorów uczących

Rozpoczęcie nauki

Okno z wykresem wyników

Otrzymane krzywe predykcji

Page 39: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

39/42

Rysunek 80. Okno główne programu - widok parametrów predykcji

Rysunek 81. Okno główne programu - widok danych wyników.

Parametry dotyczące zakresu predykcji

Parametry dotyczące typu predykcji

Rozpoczęcie predykcji

Uzyskane wartości z predykcji

Dane kontrolne gromadzone w procesie nauki oraz predykcji

Page 40: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

40/42

Rysunek 82. Okno główne programu - widok danych predykcji.

Wartość predykcji sieci numerycznej

Wartość rzeczywista funkcji

Wartość predykcji sieci znakowej

Wartość predykcji dla metody regresji

Page 41: M Stanek-Predykcja Danych w Szeregach Czasowych

Predykcja danych w szeregach czasowych

41/42

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. W celu oceny otrzymanego rozwiązania, przeprowadzone zostały testy na wybranych funkcjach o róŜnych charakterystykach. W dokumencie zamieszczone zostały wyniki przeprowadzonych badań. Sieć numeryczna w znakomitej większości przypadków wykazywała swoją przewagę nad innymi podejściami. Na jej korzyść przemawiają równieŜ: prostota oraz powszechnie znany algorytm uczenia. 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. W projekcie uŜytkownik ma równieŜ moŜliwość wykorzystania metod statystycznych, jaką jest regresja wielomianowa. 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.

Page 42: M Stanek-Predykcja Danych w Szeregach Czasowych

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” G. E. P. Box, G. M. Jenkins „Time Series Analysis: Forecasting and Control” Józef Kalisz, Ryszard Pełka, Ryszard Szplet „Problemy projektowe w precyzyjnej metrologii odcinków czasu” Rayid Ghani, Hillery Simmons „Predicting the End-Price of Online Auctions” Rick Martinelli „Market data prediction with adaptive kalman filter” Jeffrey K. MacKie-Mason Anna Osepayshvili Daniel M. Reeves Michael P. Wellman „Price Prediction Strategies for Market-Based Scheduling” Ivakhnenko, A.G. „Recent Developments of Self-Organising Modeling in Prediction and Analysis of Stock Market” Foster „Commodities Futures Price Prediction An Artificial Intelligence Approach” (presentation) Sven F. „Crone Bussiness Forecasting with Artificial Neural Networks” (presentation)