Praktikumsaufgabe 2

Werbung
Natural Computation
Prof. H. Gläser
Praktikumsaufgabe 2
Wir wollen eine Verlaufsprognose für den Deutschen Aktienindex (DAX) erstellen. Diese
Prognose verteilt sich auf zwei Praktikumsaufgaben. In dieser Aufgabe werden zunächst nur
die Trainingsdaten für das Netz aufbereitet. Sie sollten für die Datenaufbereitung ein kleines
Programm schreiben (beliebige Programmiersprache). In der nächsten Praktikumsaufgabe
werden Sie dann ein Netz aufbauen, trainieren und analysieren.
Die zu verwendenden Daten finden Sie unter dem Verzeichnis
www.computer-networking.de\~glaeser
unter dem Link Natural Computation ein zip File Aktiendaten.zip. Hier sind die Kurswerte
vom DAX, vom Dow Jones (amerikanischer Aktienindex), vom der deutschen Umlaufrendite
und der Rendite von US Treasury Bonds enthalten. Diese Daten liefern das Trainingsmaterial
für ein neuronales Netz. Diese Daten müssen aufbereitet werden.
Datenaufbereitung:
1. Beseitigung von Trendeinflüssen
2. Festlegung von Wertebereichen
3. Normalisieren der Daten
1. Beseitigung von Trendeinflüssen:
damit der Wertebereich der Eingangsneuronen optimal genutzt wird, müssen Trendeinflüsse
beseitigt werden. Trends sind in diesem Zusammenhang langfristige Bewegungen der Werte,
deren Zeitraum über dem Zeitraum der Prognose liegt. Es sollen Prognosen im Zeitraum von
2 Monaten getroffen werden. Hier kommt ein gleitender Durchschnitt (avg) von 4 Monaten in
Betracht. An die Eingangsneuron werden also nicht direkt die Kurswerte x selbst angelegt,
sondern der Abstand zum gleitenden Mittel:
x – avg(x, 4Monate) = x_delta
2. Festlegung von Wertebereichen
Jetzt muss delta_x noch normalisiert werden. Dazu wird der Wertebereich ermittelt, in dem
95% der Werte von x_delta liegen. obergrenze ist der Wert der Obergrenze dieses Bereichs
und untergrenze ist der Wert der Untergrenze des Bereichs. 5% der Werte sind also entweder
kleiner als untergrenze oder größer als obergrenze. Diese Werte werden entsprechend durch
untergrenze oder obergrenze ersetzt.
3. Normalisierung der Daten
Schließlich werden die Werte auf einen Bereich zwischen 0 und 1 transformiert:
x _ delta  untergrenze
x _ input 
obergrenze  untergrenze
Auf diese Art behandeln wir die Werte von dax, dowJones, umlaufrendite und t-bonds. Damit
haben wir für jeden Monat ein Eingabemuster für 4 Eingangsneuronen. Dabei ist darauf zu
achten, dass alle Werte eines Musters auch tatsächlich denselben Monat haben: also z.B. der
dax Wert und der dow Jones Wert denselben Monat haben.
Natural Computation
Prof. H. Gläser
4. Einfluss von längerfristigen Veränderungen
Der Dax könnte jedoch auch durch längerfristige Veränderungen dieser Werte beeinflusst sein
(diese Information ist durch die Bereinigung der Trendeinflüsse aus den Daten
verschwunden). Daher erzeugen wir jeweils für dax, dowJones, umlaufrendite und t-bonds 3
zusätzliche Datenreihen. Diese Datenreihen sind die Veränderungen des jeweiligen Kurses
bezogen auf den letzen Monat, die letzten 3 Monaten und die letzten 6 Monate. Sei t z.B. der
Zeitpunkt des aktuellen Musters, dann gilt für die Veränderung der letzten 6 Monate:
x_aenderung_6Monate = x(t) – x(t-6Monate)
Alle zwölf x_aenderung Datenreihen müssen wie die Kurse selbst mit den obigen Schritten 2
bis 3 aufbereitet werden (Schritt 1 ist nicht nötig, da hier nur Änderungen nicht Absolutwerte
betrachtet werden).
Insgesamt haben wir also 16 Eingangsneuronen. Jeder Monat entspricht dabei einem
Eingabemuster als Trainingsmuster. Doch was ist das zum Trainingsmuster gehörige SollAusgabemuster?
5. Ausgabewert
Im Gegensatz zur Vorlesung soll hier die Ausgabe nicht binär kodiert werden. Stattdessen
wollen wir den kontinuierlichen Wertebereich eines einzigen Ausgabeneurons nutzen. Dieses
Ausgabeneuron soll uns für einen Zeitpunkt t+2Monate in der Zukunft vorhersagen, um
welchen Bruchteil sich der Kurs des DAX verändern wird, wenn wir annehmen, dass der Kurs
des DAX zum Zeitpunkt t genau eins ist. Dies entspricht der prozentualen Änderung des DAX
innerhalb von 2 Monaten. Um also die Ausgabewerte zu den Eingabemustern des
Trainingsmaterials zu bestimmen, müssen wir für alle Zeitpunkte t des Trainingsmaterials
folgenden Wert als Soll Output Wert des Ausgabeneurons berechnen:
dax(t  2Monate)  dax(t )
output 
dax(t )
Auch diese Datenreihe muss wieder nach Punkt 2 und 3 aufbereitet werden.
6. Konvertierung in .pat Eingabeformat für den SNNS
Wir werden den SNNS aus der letzten Praktikumsaufgabe benutzen. Daher müssen wir ein
Konvertierungsprogramm schreiben, welches unsere Eingabemuster und Ausgabemuster in
das Format einer .pat Datei transformiert.
Herunterladen