Uniwersytet Ekonomiczny we Wrocławiu Wydział Zarządzania, Informatyki i Finansów. Krzysztof Drelczuk. Praca magisterska



Podobne dokumenty
H-Adviser. Hybrydowy system wspomagania decyzji inwestycyjnych

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych. Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS

System transakcyjny oparty na średnich ruchomych. ś h = gdzie, C cena danego okresu, n liczba okresów uwzględnianych przy kalkulacji.

Systemy uczące się Lab 4

Co to jest grupowanie

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Algorytm indukcji klasyfikatora za pomocą EA z automatycznym przełączaniem ukierunkowań

Analiza składowych głównych. Wprowadzenie

Hierarchiczna analiza skupień

Zastosowanie sztucznych sieci neuronowych w prognozowaniu szeregów czasowych (prezentacja 2)

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 335

Adrian Horzyk

METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań

Analiza skupień. Analiza Skupień W sztucznej inteligencji istotną rolę ogrywają algorytmy grupowania

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Klasyfikator. ˆp(k x) = 1 K. I(ρ(x,x i ) ρ(x,x (K) ))I(y i =k),k =1,...,L,

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

SZTUCZNA INTELIGENCJA

Metody systemowe i decyzyjne w informatyce

Systemy uczące się wykład 2

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV

Inteligentna analiza danych

Testy popularnych wskaźników - RSI

Obrona rozprawy doktorskiej Neuro-genetyczny system komputerowy do prognozowania zmiany indeksu giełdowego

Aproksymacja funkcji a regresja symboliczna

Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu - metodologia badań

166 Wstęp do statystyki matematycznej

Programowanie celowe #1

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Obliczenia inteligentne Zadanie 4

Zmienność. Co z niej wynika?

Zastosowanie metod eksploracji danych Data Mining w badaniach ekonomicznych SAS Enterprise Miner. rok akademicki 2014/2015

Układy równań i nierówności liniowych

Algorytm grupowania danych typu kwantyzacji wektorów

Sieci Kohonena Grupowanie

Test wskaźnika C/Z (P/E)

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

SAS wybrane elementy. DATA MINING Część III. Seweryn Kowalski 2006

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH

ALGORYTM RANDOM FOREST

Analiza korespondencji

Giełda. Podstawy inwestowania SPIS TREŚCI

komputery? Andrzej Skowron, Hung Son Nguyen Instytut Matematyki, Wydział MIM, UW

Elementy modelowania matematycznego

Strategie VIP. Opis produktu. Tworzymy strategie oparte o systemy transakcyjne wyłącznie dla Ciebie. Strategia stworzona wyłącznie dla Ciebie

Lekcja 5: Sieć Kohonena i sieć ART

PODSTAWY BAZ DANYCH. 19. Perspektywy baz danych. 2009/2010 Notatki do wykładu "Podstawy baz danych"

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Agnieszka Nowak Brzezińska Wykład III

Zarządzanie Kapitałem

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Analiza składowych głównych

Agnieszka Nowak Brzezińska

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

ROC Rate of Charge. gdzie ROC wskaźnik szybkości zmiany w okresie n, x n - cena akcji na n-tej sesji,

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

Eksploracja Danych. wykład 4. Sebastian Zając. 10 maja 2017 WMP.SNŚ UKSW. Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja / 18

METODY INŻYNIERII WIEDZY

Algorytmy metaheurystyczne Wykład 11. Piotr Syga

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie.

Projekt Sieci neuronowe

Biostatystyka, # 3 /Weterynaria I/

Cena do wartości księgowej (C/WK, P/BV)

WYKORZYSTANIE ANALIZY TECHNICZNEJ W PROCESIE PODEJMOWANIA DECYZJI INWESTYCYJNYCH NA PRZYKŁADZIE KGHM POLSKA MIEDŹ S.A.

Day Trading System. Podręcznik Użytkownika

Wycena opcji. Dr inż. Bożena Mielczarek

Metody Sztucznej Inteligencji II

WYKAZ KIERUNKOWYCH EFEKTÓW KSZTAŁCENIA KIERUNEK: MATEMATYKA, SPS WIEDZA

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta

Agnieszka Nowak Brzezińska Wykład III

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Analiza zależności liniowych

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane.

Testowanie modeli predykcyjnych

Budowa sztucznych sieci neuronowych do prognozowania. Przykład jednostek uczestnictwa otwartego funduszu inwestycyjnego

Co oznaczają te poszczególne elementy świecy?

Prace magisterskie 1. Założenia pracy 2. Budowa portfela

Proces badawczy schemat i zasady realizacji

Summary in Polish. Fatimah Mohammed Furaiji. Application of Multi-Agent Based Simulation in Consumer Behaviour Modeling

Algorytm. a programowanie -

Analiza danych. TEMATYKA PRZEDMIOTU

4.1. Wprowadzenie Podstawowe definicje Algorytm określania wartości parametrów w regresji logistycznej...74

EV/EBITDA. Dług netto = Zobowiązania oprocentowane (Środki pieniężne + Ekwiwalenty)

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Proces badawczy schemat i zasady realizacji

Interwały.

Analiza ilościowa w przetwarzaniu równoległym

Proces badawczy schemat i zasady realizacji

Jeśli X jest przestrzenią o nieskończonej liczbie elementów:

AKADEMIA GÓRNICZO-HUTNICZA Wydział Matematyki Stosowanej ROZKŁAD NORMALNY ROZKŁAD GAUSSA

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

Statystyka w pracy badawczej nauczyciela

Uczenie się pojedynczego neuronu. Jeśli zastosowana zostanie funkcja bipolarna s y: y=-1 gdy z<0 y=1 gdy z>=0. Wówczas: W 1 x 1 + w 2 x 2 + = 0

Metody sztucznej inteligencji Zadanie 3: (1) klasteryzacja samoorganizująca się mapa Kohonena, (2) aproksymacja sieć RBF.

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Transkrypt:

Uniwersytet Ekonomiczny we Wrocławiu Wydział Zarządzania, Informatyki i Finansów Krzysztof Drelczuk Wyszukiwanie wzorców kupna-sprzedaży w finansowych szeregach czasowych za pomocą teorii falek i gazów neuronowych Praca magisterska Katedra Teorii Informatyki Promotor: prof. dr hab. Jerzy Korczak Wrocław 2008

2 Wrocław University of Economics, Faculty of Management, Informatics and Finance Krzysztof Drelczuk Discovering buy-sell patterns in financial time series using wavelet theory and neural gas algorithm Master thesis Department of Computer Science Supervisor: prof. dr hab. Jerzy Korczak Wrocław 2008

3 Oświadczam, że pracę niniejszą przygotowałem samodzielnie. Wszystkie dane, istotne myśli i sformułowania pochodzące z literatury (przytoczone dosłownie lub niedosłownie) są opatrzone odpowiednimi odsyłaczami. Praca ta nie była w całości ani w części, która zawierałaby znaczne fragmenty przedstawione w pracy jako oryginalne (wyniki badań empirycznych, obliczenia, spostrzeżenia, oceny, wnioski, propozycje itp.), przez nikogo przedłożona do żadnej oceny i nie była publikowana. Krzysztof Drelczuk

4 PODZIĘKOWANIA Na pierwszych stronach mojej pracy magisterskiej chciałbym bardzo podziękować mojemu promotorowi prof. dr hab. Jerzemu Korczakowi za czas mi poświęcony oraz za bardzo cenne wskazówki, bez których praca ta w takiej formie nigdy by nie powstała. Przede wszystkim jednak jestem wdzięczny za słowa zachęty, wspieranie moich pomysłów oraz za bardzo dużą swobodę pozostawioną mi przy tworzeniu niniejszej pracy. Dziękuję również za wyrozumiałość szczególnie w ostatnim, edycyjnym, etapie tworzenia pracy. Chciałbym również podziękować Katedrze Teorii Informatyki oraz Centrum Inteligentnych Technologii Informacyjnych za udostępnienie mi sali laboratoryjnej, w której mogłem przeprowadzić pierwsze eksperymenty z prototypem systemu. Bez tej pomocy ukończenie badań w terminie byłoby niemożliwe.

5 Podziękowania 4 Wstęp 9 Rozdział 1 Wstępna analiza danych 16 1.1 Strumienie danych 17 1.2 Okna przesuwne 18 1.3. Klasyfikacja obserwacji a priori 19 1.4 Transformacja falkowa 22 1.5 Budowa wektora wejściowego 23 Rozdział 2 Klasteryzacja danych 26 2.1 Klasyfikacja a klasteryzacja danych 26 2.2. Funkcje podobieństwa 28 2.3 Kwantyzacja przestrzeni cech i wieloboki Woronoja 29 2.4 Algorytm gazu neuronowego 31 2.5 Ekstrakcja wiedzy z skwantyzowanej przestrzeni cech 34 Rozdział 3 Prototyp systemu wspomagającego podejmowanie decyzji 36 3.1. Metody podejmowania decyzji finansowych 36 3.2 Idea hybrydowego systemu wspomagającego decyzje 38 3.3 Formalizacja decyzji inwestycyjnej 39 3.4 Budowa systemu wspomagania decyzji. 40 3.5 Wartości początkowe systemu 42 Rozdział 4 Analiza skuteczności sysemu H-Adviser 44 4.1 Metodyka analizy skuteczności 44 4.2 Wybór danych do systemu 46 4.3 Symulacja zastosowania systemu H-adviser 47 4.4 Dyskusja wyników 49 Zakończenie 52 Dodatek A Teoria falek 57 2 A.1 Przestrzeń funkcyjna ( R) L 57 A.2 Definicja falki 58 A.3 Analiza wielorozdzielcza 60 A.4 Falki Daubechies 64 A.5 Dekompozycja sygnału za pomocą falki D4 67 Dodatek B Opis Programu H-Adviser 70 B.1 Ogólna charakterystyka 70

6 B.2 Panel wyboru danych i ustawień dla klasteryzacji 71 B.2 Panel klasteryzacji 73 Dodatek C Aneks statystyczny 76 Literatura 81

7 Acknowledgements 4 Introduction 8 Chapter 1 Data preprocessing 15 1.1 Data streams 16 1.2 Sliding windows 17 1.3 A priori classification 18 1.4 Wavelet transform 21 1.5 Construction of input vector 22 Chapter 2 Data clasterization 25 2.1 Comparizion of classification and clasterization 25 2.2 Similarity function 27 2.3 Space quantization and voronoi diagrams 28 2.4 Neural gas algorithm 30 2.5 Knowledge extraction from quantized space 40 Chapter 3 Prototype of adviser system 35 3.1 Stock market trading rules 35 3.2 Hydrid adviser system 37 3.3 Formality of financial decisions 38 3.4 Construction of advising system 39 3.5 Default setting 41 Chapter 4 Quality of stock market decisions 43 4.1 Methods of quality measure 43 4.2 Choice of data for quality expertise 45 4.3 Simulation of use H-Adviser in real-life situation 46 4.4 Summary 48 Conclusions 50 Appendix A Wavelet theory 55 A.1 Function space 55 A.2 Wavelet definition 56 A.3 Multiresolution analysis 58 A.4 Daubechies wavelets 62 A.5 Signal decompoition with D4 wavelet 65 Appendix B H-Adviser manual 68 B.1 General characteristic 68

8 B.2 Data and clustering algorithm parameters 69 B.3 Clustering panel 71 Appendix C Statistical attachment 74 Bibliography 79

9 WSTĘP Klasyfikacja szeregów czasowych przyciąga uwagę coraz większej rzeszy naukowców i praktyków. Szczególnie widoczne jest to przy przetwarzaniu długich szeregów czasowych, jakie występują na przykład w bioinformatyce czy też w sferze finansowej. Klasteryzacja jest jedną z najczęściej używanych technik pozyskiwania informacji z dużej ilości danych, o których charakterze ze względu na bardzo dużą wielowymiarowość mamy nie wielkie pojęcie. Podstawowym celem klasteryzacji jest transformacja danych źródłowych do postaci bardziej kompaktowej, która jest w stanie w pełni je odzwierciedlić. Polega na podziale zbioru danych na odpowiednie klasy abstrakcji, czyli mniejsze podgrupy, gdzie elementy danego klastra są podobne do siebie a mocno odmienne od innych. Rozwój technologii informatycznej w ostatnich latach spowodował duży postęp w wykorzystywaniu narzędzi sztucznej inteligencji w metodach pozyskiwania wiedzy z dużych wielowymiarowych struktur danych. Tematem niniejszej pracy jest klasteryzacja szeregów czasowych za pomocą algorytmu gazu neuronowego specyficznej sieci neuronowej, zaliczanej do narzędzi sztucznej inteligencji.

10 Klasteryzacja jest dobrze ugruntowaną i opisaną w literaturze tematu metodą analizy struktury populacji, dziale statystyki. Wykładniczy przyrost informacji w czasie, z jakim mamy aktualnie dotyczenia spowodował, iż algorytmy klasteryzacji nabrały jeszcze większego znaczenia. Są one podstawowymi metodami pozyskiwania wiedzy (ang. knowledge discovery) [Fayyad 1996], pozyskiwania danych (ang. data mining) i inteligentnej analizie danych [Liu 2000]. Klasteryzacja jest metodą bardzo często wykorzystywaną w najróżniejszych dziedzinach badań, według [Backer 2000] zastosowanie można podzielić na cztery grupy: 1. Formułowanie hipotez na podstawie pewnych danych źródłowych. Bada zachowanie klastrów na różnych poziomach dokładności (dzieli przestrzeń na coraz mniejsze przestrzenie). Na podstawie obserwacji, w jakich sytuacjach klastry dzielą się na mniejsze lub scalają się możemy stawiać hipotezy, w jaki sposób źródło (na przykład rynek) generuje dane. 2. Tworzenie topologii danych. Zastosowaniem może być na przykład obserwacja zachowania konsumentów. Dzieląc je na reprezentatywne grupy możemy ulepszyć skuteczność działań marketingowych. 3. Prognozowanie danych. Problem predykcji może zostać sprowadzony do identyfikacji wzorców, po których występują stałe zachowania. 4. Optymalizacja procesów. Odpowiednia identyfikacja grup zapytań może zoptymalizować dostęp do danych. Istnieje pięć paradygmatów klasteryzacji. Pierwszy z nich hierarchiczny produkuje drzewiasty opis struktury. Drzewo jest konstruowane rekurencyjnie scalając klastry niższego poziomu (bardzo szczegółowe) w klastry wyższego poziomu (bardziej ogólne). Drzewo jest zakończone jednym głównym klastrem (ang. super-cluster) zawierającym wszystkie elementy populacji. [Bajcsy 1998], [ElSonbaty 1998].

11 Drugi paradygmat grafowy prezentuje obiekty jako graf ważony. Jest on bardzo pomocny w analizowaniu struktur dwu-wymiarowych. Waga pomiędzy jednym węzłem a drugim jest odległością pomiędzy obiektami zgodnie z ustaloną metryką [Brito 1997], [Pacheco 1998], [Shapiro 1995]. Kolejnym paradygmatem są modele mieszanin (ang. mixtere models). Klastry są generowane za pomocą kombinacji rozkładów prawdopodobieństw [McLachlan 1998], [Fraley 1998], [Banfield 1993]. W następnym paradygmacie, grupującym (ang. partional) klastry są rozłączne, a każdy obiekt może należeć tylko i wyłącznie do jednego klastra [Lin, Lin 1996], [AlSultan 1996]. Ostatni paradygmat klasteryzacji rozmytej zakłada, iż elementy należą do odpowiednich klastrów w odpowiednim stopniu. Prowadzi to do możliwości przynależności jednego elementu do wielu klastrów [Bezdek, 1981], [Hoppner, 199]. Problem klasteryzacji jest, biorąc pod uwagę złożoność obliczeniową, równoważny z optymalizacją globalną nieliniowych funkcji wielomodalnych tak, więc zalicza się do problemów NP-trudnych [Weigend 1997]. Pomimo tego metody eksploracji danych finansowych mające na celu predykcje czy też klasyfikacje potrafią osiągać bardzo dużą skuteczność mierzoną tak w wskaźnikach statystycznych jak i realnych korzyściach ekonomicznych. Teoria błądzenia losowego rynków finansowych, która przekreślałaby skuteczność powyższej analizy szeregów czasowych również była i jest szeroko dyskutowana w wielu pracach. Jednakże w większości przypadku nie dało się jednoznacznie dowieść hipotezy o słabej efektywności rynku według Famy [Fama 1970]. W szczególności nie udało się tego ustalić dla polskich rynków kapitałowych [Czekaj 2003]. Problem postawiony w danej pracy brzmi: Czy można tak podzielić szeregi czasowe, aby jeden klaster zawierał te, które w przyszłości wykażą tendencje wzrostowe, a drugi tendencje zniżkowe? Aby trafniej klasyfikować wybrane podzbiory szeregów czasowych przynależność do klastrów zostanie

12 za pomocą funkcji przynależności zbiorów rozmytych [Rutkowski 2005]. Taka konstrukcja klastrów pozwoli również dać użytkownikowi bardzo czytelną odpowiedź w stylu: Ten szereg czasowy wzrośnie z 78 procentowym prawdopodobieństwem. Komunikat taki umożliwi podjęcie decyzji w zależności od skłonności do ryzyka danego inwestora. Jednym z kluczowych problemów podczas procesu klasteryzacji jest wielowymiarowość danych wejściowych. Przestrzeń rozwiązań, którą system będzie dzielić na klastry ma taką wymiarowość jak wektory do niej wprowadzane. W przypadku, gdy będą brane dane z sześćdziesięciu (dane z jednej minuty w odstępach jednosekundowych) ostatnich obserwacji, przestrzeń, jaką będzie musiał podzielić będzie przestrzenią 60-wymiarową. Klasyfikacja polega na przypisywaniu elementów do odpowiednich klastrów za pomocą z góry założonej normy (na przykład Euklidesowej). Przy dużej liczbie wymiarów różnica pomiędzy najbliższym i najdalszym sąsiadem staje się coraz mniej istotna, co znacznie utrudnia podział przestrzeni na znaczące klastry [Beyen 1999]. W literaturze przedmiotu istnieje bardzo wiele dobrze poznanych i bogato opisanych algorytmów redukcji wymiarów takich jak na przykład: neuronowe sieci autoasocjacyjne, dyskretna transformacja Fouriera, czy też dyskretna transformacja falkowa. Istnieje także wiele innych mniej znanych metod jak na przykład: drzewo regresji [Geurts 2001], nieciągłych reprezentacji (z ang. piecewise representation) [Keogh 1998], nieciągłe zagregowane aproksymacje (z ang. piecewise aggregate approximation) [Keogh 2000], [Yi 2000]. W niniejszej pracy problem klasteryzacji zostanie użyty do analizy, a w konsekwencji do predykcji, szeregów finansowych o dużej częstotliwości. Dane takie często nazywane są w literaturze jako szeregi prawie-losowe (ang. near-random walk). Analiza i predykcja takich danych jest niezmiernie trudna a wyniki skuteczności na poziomie 55-60% są uznawane za duże [Lipiński 2005].

13 Istnieje wiele metod, tak teoretycznych jak i obliczeniowych, analizy i predykcji finansowych szeregów czasowych. Często polega ona na zbudowaniu formalnego modelu rynku na podstawie długich obserwacji i wielu zmiennych [Box 1994], [Brockwell 2002], [Karatzas 1998], [Rachev 2004]. Te metody jednakże bywają zawodne w stosunku do danych o wysokiej czy też ultra-wysokiej częstotliwości, czyli o bardzo częstych dyskretnych zmian cen wraz z dużą nieregularnością w domenie czasu [Bień 2005]. Jednym z wielu rozwiązań jest podejście obliczeniowe, które najczęściej polega na narzędziach sztucznej inteligencji takich jak algorytmach genetycznych, sieci neuronowych, stawia sobie na celu, zamiast próby budowania kompletnego modelu, znalezienie pewnych chwilowych własności, które mają istotny wpływ na rynek finansowy [Allen 1999], [Bauer 1994], [Demster 2003], [Kwasnicka 2001], [Tsang 2000]. W niniejszej pracy zostanie zaproponowany system wyszukujący wzorce w szeregach czasowych o wysokiej i ultra-wysokiej częstotliwości. Ich poznanie i identyfikacja pozwoli na przewidywanie przyszłych zachowań szeregów czasowych. Formalnie zostaną teraz sformułowane hipotezy, których prawdziwość zostanie zweryfikowana w niniejszej pracy. 1. Szereg czasowy zawiera pewne wzorce, po których następuje taka sama zmiana wartości tego szeregu. 2. Znalezienie i identyfikacja niniejszych wzorców, jest możliwa do przeprowadzenia w bardzo krótkim czasie za pomocą jednostanowiskowej aplikacji uruchomionej na komputerze domowym. 3. Wykorzystanie znalezionych wzorców w środowisku rynków finansowych pozwoli na osiągnięcie ponadprzeciętnych zysków. Próby weryfikacji powyższych hipotez zastaną przedstawione niniejszym pracy. Do weryfikacji hipotez posłuży autorski program H-Adviser zaimplementowany w C# i działający na platformie uruchomieniowej.net

14 szczegółowo opisany w niniejszej pracy z szczególnym uwzględnieniem rozdziału 3 i dodatku C. Struktura pracy i wybór tematyki jest ściśle związana z procesem budowy systemu wspomagającego decyzje (od wstępnej analizy danych, poprzez problem klasteryzacji do konstrukcji samego systemu) lub też w sposób, w jaki system buduje decyzje (od pobrania i wstępnego przetworzenia danych, poprzez klasteryzację do utworzenia decyzji prezentowanej użytkownikowi). W rozdziale pierwszym zostanie przestawiony model strumieni danych za pomocą, których dane zostaną pozyskane a następnie zostanie opisana ich wstępna obróbka. W tym rozdziale zostanie przedstawiona propozycja rozwiązania problemu wielowymiarowości wektora wejściowego za pomocą dyskretnej transformacji falkowej. Zostanie również tutaj przedstawiony sposób opisu klastrów za pomocą liczb rozmytych. Ostatecznie zostanie zaprezentowany wektor w takiej postaci, w jakiej zostanie wprowadzony do systemu klasteruzującego. Rozdział drugi ma charakter teoretyczny. Zostanie w nim szczegółowo i formalnie opisany problem klasteryzacji oraz sposób jej przeprowadzenia za pomocą algorytmu gazu-neuronowego. Zostanie także zaprezentowana metoda ekstrakcji wiedzy z przestrzeni podzielonej na klastry. W rozdziale trzecim zostanie przedstawiona budowa systemy wspomagającego decyzje inwestycyjne zbudowanego na podstawie założeń przedstawionych w rozdziale pierwszym i drugim. Ostatni rozdział, czwarty, zawierać będzie analizę skuteczności decyzji inwestycyjnych opartych na informacjach wygenerowanych poprzez system. W nim też nastąpi weryfikacja hipotez przedstawionych w niniejszym wstępie. Dodatkowo praca zawiera trzy dodatki. Pierwszy poświęcony jest teorii falek. Z większą dokładnością zostanie opisana w nim dyskretna transformacja falkowa oraz opis i budowa falki Daubechies 4, która została wykorzystana w niniejszej pracy. Znajdują się tam także szczegółowo opisany algorytm

15 redukcji wymiarów oparty na dyskretnej transformacji falkowej. Ostatni dodatek jest opisem programu wspomagającego decyzje H-Adviser, którego prototyp zastał zaprezentowany na łamach niniejszej pracy. W dodatku ostatnim C, zatytułowanym aneks statystyczny, zestawiono wszystkie szeregi czasowe wybrane do weryfikacji hipotez przy użyciu hybrydowego systemu wspomagania decyzji wraz z ich krótkim opisem statystycznym.

16 ROZDZIAŁ 1 WSTĘPNA ANALIZA DANYCH 1.1 Strumienie danych 1.2 Okna przesuwne 1.3 Klasyfikacja obserwacji a priori 1.4 Transformacja falkowa 1.5 Budowa wektora wejściowego W niniejszym rozdziale autor pracy przedstawi w pierwszej kolejności sposób pozyskiwania danych finansowych. Zostaną opisane ograniczenia nałożone na system w związku z traktowaniem wartości szeregów czasowych, jako strumień danych. Następnie zostanie opisany sposób redukcji wymiarów oraz zmniejszania wagi sygnałów odległych za pomocą transformacji falkowej. Na końcu przedstawiona zostanie ostateczna budowa wektora wejściowego, który używany będzie w procesie klasteryzacji jako wektor kodujący odpowiedni wzorzec.

17 1.1 Strumienie danych Strumienie danych (ang. data streams) aktualnie przyciągają uwagę wielu specjalistów w najróżniejszych technologiach między innymi takich jak systemy bazodanowe, biometrii lub też systemy rozproszone. Jak sama nazwa wskazuje o strumieniu danych możemy myśleć, jako o uporządkowanej sekwencji tych samych elementów (tak bitów jak i bardziej złożonych obiektów), które oddziela zmienny interwał czasu [Garofalakis 2002], [Golab 2003]. Wykorzystuje się je między innymi w systemach telekomunikacyjnych, sieciach monitorujących jak też w analizie bieżących danych finansowych. Pomijając problem magazynowania danych i ich analizy, przetwarzanie ciągłego strumienia napływających danych rozmieszczonych nieregularnie w czasie i teoretycznie bez żadnych ograniczeń jest wyzwaniem samym w sobie. Przy takiej ilości danych nie ma miejsca na to aby składować je w na przykład w bazach danych i po osiągnięciu ich odpowiedniej ilości poddać obróbce. Oczywiście strumienie muszą być przetwarzane w czasie rzeczywistym. Celem niniejszej pracy jest klasyfikacja strumieni danych w taki sposób aby te podobne do siebie na bieżąco były klasyfikowane do odpowiadających im grup. Oczywiście surowe dane nie nadają się do analizy chociażby z powody szumów i zbyt dużej wielowymiarowości. Analiza taka nie dość, że nie jest wystarczająco skuteczna, to jeszcze jest bardzo czasochłonna. Rysunek 1 Prosty schemat modelu przetwarzania strumieni danych Źródło: [Beringer 2007]

18 Model strumieni danych zakłada brak możliwości dostępu do danych w sposób asynchroniczny z dowolnego źródła danych (RAM lub dysk) choć dopuszcza możliwość ich buforowania. Komunikacja z serwerem danych jest jednostronna. Sposób odbierania danych w taki sposób wymusza, co następuje: klient nie wysyła żadnych żądań, działa jak odbiornik i reaguje odpowiednimi zdarzeniami na pojawiające się dane; system nie weryfikuje danych, nie odpowiada serwerowi, gdy dane otrzyma; zakłada się, że długość strumienia danych jest nieskończona; nie ma możliwości, aby pobrać dane już wcześniej dostarczone (choć oczywiście mogą być one buforowane); dopuszcza się możliwość bezpowrotnej utraty danych spowodowaną błędami transmisji. Wszelkie operacje związane z pobieraniem i przetwarzaniem danych będą spełniały wyżej wymienione warunki. 1.2 Okna przesuwne Analiza nieskończenie długich strumieni danych jest niemożliwa do wykonania, dlatego też należy wydzielić z niego mniejsze fragmenty. Wielkość wydzielonego fragmentu powinna być na tyle mała, aby strumienie można było szybko sklasyfikować, ale też na tyle duża, aby analiza była wiarygodna i mogła stanowić podstawę do podejmowania skutecznych decyzji inwestycyjnych. Najpopularniejszym sposobem, aby uzyskać taki rezultat jest wykorzystanie okna przesuwnego (ang. sliding-window). Długość okna może być stała lub też zmieniać się w czasie podczas wykonywania klasyfikacji. Rozważając okna przesuwne o założonej długości w, strumień można w formalnie opisać jako w-wymiarowy wektor X ( x x, x, ) R = 0 1 2, x w 1,. Każdą obserwację x traktujemy jako liczbę rzeczywistą. Tak, więc całkowity

strumień X ( x x, x,, ) 19 = 0, 1 2 x dzielimy oknem przesuwnym na wektory składowe w następujący sposób: ( x x, x, x ) 0 = 0, 1 2, w 1 X, X ( x x, x, x ) = X { x } { } 1 = 1 2 3, w 0 0 x w,, ( x x, x, x ) = X { x } { x } X 2 = 2, 3 4, w+ 1 1 1 w+ 1 lub ogólnie zgodnie ze wzorem (1). ( x x, x, x ) = X { x } { x } X n = 0 + n 1+ n 2+ n, w 1+ n n 1 0+ n w 1+ n, (1) Tak skonstruowane wektory za pomocą okien przesuwnych posłużą jako wektory kodowe do wyszukiwania wzorców kupna i sprzedaży. 1.3. Klasyfikacja obserwacji a priori Ustalony tak wektor jest wystarczający do sprawnego działania systemu. Jednakże, aby mógł on się kalibrować ze względu na warunki aktualnie panujące na rynku oraz umożliwić opisanie klastrów w przestrzeni, do każdego wektora zostanie dodana dodatkowa wartość określająca a priori przynależność danego wektora do odpowiedniego klastra. Będzie ona wyrażała procentowo zmianę pierwszej wartości nowego okna przesuwnego względem ostatniej wartości ostatniego okna przesuwnego. Wartość tą będzie wyrażać liczba rzeczywista. Aby zapewnić bardziej precyzyjne opisanie wzorców wartość ta zostanie znormalizowana do przedziału (-1,1). Obserwację taką będzie można uznać wtedy jako matrycę wzorca kupna jeśli wartość ta będzie bliska 1, i odwrotnie jeśli będzie ona bliska -1 będzie wskazywała na wektor który koduje wzorzec sprzedaży. Można potraktować ten przedział jako zbiór rozmyty decyzji inwestycyjnych gdzie na blisko granicy lewostronnej znajdują się decyzje sprzedaży a blisko granicy prawostronnej decyzje kupna.

20 Mając na uwadze powyższe funkcja tworząca taki zbiór rozmyty musi spełniać przy tych założeniach następujące warunki: lim f = 1 x f = f (0) = 0 (2) lim f = 1 x Odpowiednią funkcją spełniającą te warunki jest między innymi tangens hiperboliczny. Z punktu widzenia działania systemu ma ona dodatkowo dwie ciekawe własności. Pierwsza z nich to łatwość obliczenia jej wartość przy zadanym argumencie. Dokładną postać funkcji po przestawia wzór (3). x x e e tanh x = (3) x x e + e Aby dokonań obliczenia wystarczy obliczyć wartość funkcji e dla wartość argumentu x i x (rysunek 2). Rysunek 2. Wykres e x Źródło: opracowanie własne przy użyciu programu Derive Druga własność to łatwa skalowalność funkcji. Operując parametrem x można zmieniać kąt nachylenia pomiędzy funkcją, a osiami współrzędnych. Można potraktować ten parametr jako współczynnik ryzyka. W zależności od

21 niego sygnały kupna lub sprzedaży będą pojawiały się przy mniejszych zmianach bezwzględnych elementów wektora wejściowego. Ilustruje to rysunek 3. Rysunek 3 Skalowanie funkcji tanh(x) Źródło: opracowanie własne przy użyciu programu Derive Parametrem tym można także dostrajać system do zmienności szeregu czasowego. Przy szeregach czasowych o bardzo wysokiej amplitudzie zmian, zmiana jedno-procentowa może być bardzo znacząca natomiast dla innych o mniejszej częstotliwości może być zmianą nic nieznaczącą. Wtedy wzorzec zakodowany jako wzrostowy dla szeregu o mniejszej amplitudzie zmian może w rzeczywistości oznaczać trend boczny, w którym porusza się klasteryzowany walor i prowadzić do błędnych decyzji inwestycyjnych. Użytkownik będzie miał możliwość wyboru tego parametru, co sprawi, że system będzie bardziej elastyczny i lepiej reagował z danych o różnych amplitudach zmian.

22 1.4 Transformacja falkowa Dyskretna transformacja falkowa [Daubechies 1992], [Meyer 1995], [Mallat 1989] jest bardzo częstą techniką wykorzystywaną we wstępnej analizie danych. Dzięki niej można zarówno zredukować ilość wymiarów wektora wejściowego, do docelowego systemu analizującego dane (np. klasyfikującego albo predykcyjnego), jak i usunąć część informacji uznanych przez transformacje jako szum lub redundancje danych, jednakże pozostawiając w sygnale informacje oryginalne (w sensie Shanon a) [Sharon 1948]. Skrótowy opis teorii falek wraz z opisem pozyskania falki Daubechies- 2 (D2), która została wykorzystana w systemie przez autora pracy, oraz kryterium jej wyboru zawiera dodatek A. Istnieje nieskończenie wiele możliwości podziału wektora wejściowego na podciągi. Dodatkowo jest wiele możliwości ustawienia stopnia kompresji danych wejściowych. W niniejszej pracy, przy budowie systemu wspomagania decyzji na drodze eksperymentów został wybrany następujący model: wektor przekazany do systemu zostanie poddany dyskretnej transformacji wejściowej (DTF) za pomocą falki D2 w sposób następujący: 1. pierwsze osiem elementów zostanie zredukowanych do dwóch; 2. kolejne szesnaście elementów zostanie zredukowane do czterech; 3. trzydzieści dwa następne elementy zostanie zredukowane do ośmiu. Uzyskamy w ten sposób redukcję z przestrzeni 56-wymiarowej do 14- wymiarowej: W procesie decyzyjnym najważniejszą wartość mają dane aktualne. Im dalej od ostatniego sygnału tym mniejszą wartość informacyjną przypisujemy danym. Jeśli wektor wejściowy do systemu klasyfikującego ma postać X = x, x, x,..., x ), to największą wagę przypiszemy składowej najmłodszej ( 1 2 3 n (czyli x 1), mniejszą kolejnej ( x 2 ), a najmniejszą ostatniej ( x n ). Taki sposób podzielenia na podciągi wektora wejściowe zapewni właśnie taki rezultat.

23 1.5 Budowa wektora wejściowego Uzyskany przez transformację falkową wektor ze strumienia danych po redukcji wymiarów i dodaniu wartości opisującej wzorzec a priori jest już prawie gotowy do wprowadzenia do systemu klasteryzującego. Jednakże, jeśli pozostawimy w wektorze wartości rzeczywiste może dojść do sytuacji, kiedy dwa identyczne, pod względem kształtu, wektory kodowe zostaną zaklasyfikowane do dwóch oddzielnych klastrów. Problem przedstawia rysunek 4. Problem ten można rozwiązać stosując normalizację danych do odpowiedniego przedziału. Tak przeskalowane wektory kodowe będą już nie rozróżnialne dla systemu i zostaną umieszczone w tym samych klastrach. Formalnie chcemy uzyskać, aby wartości minimalna i maksymalna danego wektora były, z definicji, równe z góry założonym liczbom. Autor pracy arbitralnie wybrał wartości -1 i 1 (równie często spotykanym rozwiązaniem jest wybór wartości 0 i 1). df a max( ) = 1 =, = min( ) = 1 X n X n df b (4) Taką normalizację nazywamy normalizacją mini-max. Wartości składowych znormalizowanego wektora obliczamy za pomocą wzoru 5. X * X min( X ) X min( X ) = = (5) zakres( X ) max( X ) min( X ) Przy tak znormalizowanych wartościach, wszystkie wektory kodowe, zostaną umieszczone w hiperprzestrzeni ograniczonej przez hipersześcian o środku ciężkości w środku układu współrzędnych.

24 Rysunek 4 Nieznormalizowany wektor kodowy w zakresie [3,18] i [30,180] Źródło: Opracowanie własne przy użyciu programu MATLAB

25 Tak przygotowany wektor, o zredukowanej transformacją falkową liczbie wymiarów, składający się z znormalizowanych wartości jest już w pełni gotowy do przekazania go do systemu klasteryzującego opisanego w kolejnych rozdziale.

26 ROZDZIAŁ 2 KLASTERYZACJA DANYCH 2.1 Klasyfikacja a klasteryzacja danych 2.2 Funkcje podobieństwa 2.3 Kwantyzacja przestrzeni cech i wieloboki Woronoja 2.4 Algorytm gazu neuronowego 2.5 Ekstrakcja wiedzy z skwantyzowanej przestrzeni cech W rozdziale tym zostanie teoretycznie nakreślony problem klasteryzacji oraz zostanie zaproponowana metoda jej wykonania za pomocą algorytmu gazu neuronowego. Opisany szczegółowo zostanie także sam proces dzielenia przestrzeni na klastry, czyli kwantyzacja przestrzeni cech. Na samym końcu zostanie przedstawiony problem wizualizacji przynależności wektora do danego klastra i zostanie zaproponowane rozwiązanie tego problemu w sposób intuicyjny i łatwy dla odczytanie przez końcowego użytkownika. 2.1 Klasyfikacja a klasteryzacja danych Klasyfikacja statystyczna to rodzaj procesu przetwarzania danych, który przydziela obserwacje statystyczne do klas, bazując na atrybutach

27 (cechach) tych obserwacji. Formalnie problem ten można przedstawić: dla danego zbioru danych trenujących znaleźć klasyfikator, który przydziela obiektowi klasę [Bobrowski 1986]. W przypadku problemu postawionej w niniejszej pracy x i reprezentować będą wektory kodowe natomiast y określać będą wzorce kupna lub sprzedaży. Klasteryzacja jest natomiast klasyfikacją nie nadzorowaną obiektów na różne podgrupy. Bardziej formalnie jest to partycjonowanie zbioru danych na podzbiory (klastry), takie, że elementy w każdym zbiorze są do siebie podobne (identyczne) ze względu na jakąś cechę, natomiast odmienne od innych elementów zgromadzonych w innych klastrach [Malarska 2005]. Do porównywania elementów używamy z góry zadanej funkcji liczącej odległości od elementów i na jej podstawie ustalamy podobieństwo. Inną bardo ważną cechą klasteryzacji jest to, iż dzielenie elementów, na klastry jest nienadzorowane. Z tego też względu klasteryzacja nie posiada zbioru uczącego. Dane analizowane są dla całego zbioru. Idea polega na tym, ze badamy odległości obiektów od skupisk umieszczonych w przestrzeni metrycznej za pomocą z góry określonej normy. Na potrzeby niniejszej pracy gdzie klasteryzujemy wektory kodowe, które są podciągami szeregu czasowego możemy klasteryzację zdefiniować następująco. Niech V będzie zbiorem wektorów v j gdzie j = 1,2,..., n. Celem klasteryzacji jest przyporządkowanie elementów zbioru V elementom zbioru klastrów K w taki sposób, że zmienne należące go jednego klastra są bardziej do siebie podobne ze względu na z góry założoną miarę (normę). Wynikiem tej procedury jest injekcja (w szczególnych przypadkach bijekcja) V K. Bardzo ważnym elementem przy klasteryzacji jest wybór funkcji podobieństwa, czyli normy mierzącej odległości elementów od siebie. Skrótowe przedstawienie najczęściej wykorzystywanych norm zawiera kolejny podrozdział.

28 2.2. Funkcje podobieństwa Istnieje wiele podziałów funkcji mierzących dystans między elementami umieszczonymi w klasteryzowanej przestrzeni. Jedna najbardziej widocznym podziałem są normy symetryczne i niesymetryczne. W normach symetrycznych odległość (podobieństwo) elementu A do elementu B jest równoważne odległości elementu B do elementu A. W niektórych procesach klasteryzacji jest to poważne ograniczenie, dlatego też używane są normy niesymetryczne na przykład sequence-alignment methods [Prinze 2006]. W niniejszej pracy klasteryzacji podlegają wektory umieszczone w wielowymiarowej przestrzeni euklidesowej, która jest symetryczna, dlatego autor pracy ograniczy się do bardziej szczegółowego opisania norm symetrycznych. Najczęściej używaną normą, która jest zarazem najbardziej intuicyjna, jest norma euklidesowa [Rutkowski 2006]. Dla dwóch wektorów P i Q o składowych odpowiednio p i i q i, gdzie i oznacza naturalny indeks składowej wektora, normę euklidesową definiujemy, jako: (6) Jest to po prostu odległość między dwoma punktami taka jaką znamy z świata rzeczywistego. Prawdziwość (6) można udowodnić stosując rekursywnie twierdzenie pitagorasa, dlatego też kiedyś nazywana była metryką Pitagorejską. Inną metodą mierzenia podobieństwa jest metryka Minkowskiego 1, dla wektorów x i y możemy ją zapisać wzorem (7). Jest ona również nazywana metryką Manhattan, miejską lub taksówkową. (7) 1 Nazwana tak na cześć Hermanna Minkowskiego (ur. 22 czerwiec 1864. zm. 12 styczeń 1909), niemieckiego pochodzenia matematyka i fizyka ur. w Aleksotas (obecnie Kowno w Rosji).