Donnerstag, 18. April 2024, 04:02 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

1

Mittwoch, 21. November 2007, 18:24

WEKA-Fragen

Hallo zuammen,

ich versuche gerade von Hand die Weka-Ergebnisse in Investox zu implementieren - so verstehe ich das am besten. Allerdings komme ich an verschiedenen Stellen nicht weiter :baby:

1. Ich lese in Weka über CSV direkt einige ROC-Variablen ein. Z.B. Ref(ROC(Close, 2,%),-1) usw. Das sind meine Indikatoren. Als das zu lernende Merkmal wird als -1 dargestellt wenn der Wert der Funktion Ref(ROC(Close, 2,%),-1) unter 0 ist (d. h. fallende Kurse werden vorhergesagt) und als 1 dargestellt wenn der Wert entsprechend über 0 ist.


2. nach dem Einlesen gehe ich in WEKA zum Reiter "classify" und wende folgendes an:

weka.classifiers.functions.SVMreg -C 1.0 -N 0 -I "weka.classifiers.functions.supportVector.RegSMOImproved -L 0.0010 -W 1 -P 1.0E-12 -T 0.0010 -V" -K "weka.classifiers.functions.supportVector.PolyKernel -C 250007 -E 1.0"

Ich normalisiere die Daten hier und lasse die SVM rechnen. Getestet werden 200 Perioden als Lernzeitraum, Rest ist für die Vorhersage reserviert.

Das Ergebnis lautet dann z. B.

SVMreg

weights (not support vectors):
+ 0.0021 * (normalized) V1
- 0.0003 * (normalized) V2
+ 0.0071 * (normalized) V3
- 0.0033 * (normalized) V4
+ 0.0026 * (normalized) V5
- 0.0061 * (normalized) V6
- 0.0056 * (normalized) V7
+ 0.005 * (normalized) V8
- 0.0022 * (normalized) V9
+ 0.9986


3. Nun in Inv:
- jede Variable wird nach folgendem Muster normalisiert: V1Normalisiert = (V1Original - V1Original(Minimalwert)) / (V1Original(Maximalwert)-V1(Minimalwert))
- dann rechne ich die von WEKA gegebenen Gewichte mit den so normalisierten Variablen zu einem Vorhersagewert.

4. Gekauft werden soll wenn das Ergebnis >0 und verkauft werden soll wenn das Ergebnis <0 ist.


ALLERDINGS: die Vorhersage des so berechneten Indikators schwankt nicht um 0 sondern irgendwie um etwa 0.99 ?

Entsprechend erhalte ich auch ziemlich unsinnige Ergebnisse.

An welchen Stellen mache ich hier Fehler? Wer kann Helfen?

Danke Euch schon einmal für Eure Hilfe und viele Grüsse
-dubi :D

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

2

Mittwoch, 21. November 2007, 23:15

Hallo dubi,

ein kurzer Hinweis, erhöhe mal den Faktor "weka.classifiers.functions.SVMreg -C 1.0" wesentlich, z.B. auf 200.

Viele Grüße

martin

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

3

Mittwoch, 21. November 2007, 23:57

Hallo Martin,

ich habs einmal ohne Normalisierung und einmal mit Normalisierung versucht. Das scheint den Mittelwert der Funktion ja tatsächlich auf 0 zu setzen. Ganz herzlichen Dank für den Hinweis :thumbsup: .

Allerdings gehen weiterhin alle KK streng nach Süden.

Hat noch jemand Ideen was hier noch machbar ist?

viele Grüsse
-dubi

ulukai

unregistriert

4

Donnerstag, 22. November 2007, 03:12

Hallo!

wie importierst du eigentlich die kursdaten in weka? ich hab z.b. bei mldowbnloader ascii dateien und metastock.....

aber diese arff dateien aus weka sehen ganz anders aus, gibts daf+ür ein konvertierungtool oder so was ähnliches???

und wie läuft das mit dem rückweg??

also ich meine das ergebnis kann man in weka ja als datei mit der endung *.model abspeichern,...

wie kann ich die ergenisse aus weka in investox einlesen??

welche formatierung muss eingesetzt werden und so??

ich hab gelesen dies geht mit berechnungtiteln , aber wie läuft das konkret ab???

hat jemand dafür evtl. eine anleitung oder so???

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

5

Donnerstag, 22. November 2007, 08:09

Hallo Ulukai,

Zitat

wie importierst du eigentlich die kursdaten in weka? ich hab z.b. bei mldowbnloader ascii dateien und metastock.....

Ich verwende hierzu das CSV-Format und stelle so (manuell) diejenigen Datenreihen WEKA zur Verfügung, die in die Berechnung einfliessen sollen. Im CSV-Format schreibe ich in die erste Zeile die Variablennamen und in den folgenden die Inputwerte. Die letzte Variable ist jeweils der vorherzusagende Wert. Durch die Teilung in ein Trainings- und Test-Set (einzustellen in %) kann ich nochmals begrenzen.

Zitat

und wie läuft das mit dem rückweg??

also ich meine das ergebnis kann man in weka ja als datei mit der endung *.model abspeichern,...

wie kann ich die ergenisse aus weka in investox einlesen??


Das ist bei mir aktuell ebenfalls noch manuell: siehe unter punkt 3 meines ersten Posts. Ich erledige das aktuell mit einem VBS-Indikator. Der ist aber noch sehr rudimentär und braucht noch viel manuelle Eingriffe. D. h. ich übertrage die Gewichte manuell in den Indikator und übergebe dorthin die verwendeten Inputs/Features.
Reiners Lösung ist hier viel eleganter: er produziert alles ausserhalb von Inv und liest das Ergebnis in Inv als Berechnungstitel ein. Hierfür muss man aber den Knowledge-Flow von WEKA verstehen - und das tu ich nicht ?( .

Wenn Du dich durch VBS kämpfen möchtest, kann ich dir gerne meinen Indikator zur Berechnung der Ergebnisse in Inv bereitstellen (aber achtung: der ist wirklich rudimentär :huh: ).

Ich hoffe mal, dass das etwas hilft...

Schöne Grüsse
-dubi

PS.: Mich würde interessieren, wie ich die Ergebnisse (bzw. die Modellbeschreibung mit den Gewichten) einfach aus WEKA herausschreiben kann bzw. dort weiterverarbeiten kann - hat jemand einen Tipp?

ulukai

unregistriert

6

Donnerstag, 22. November 2007, 08:58

Tach dubi!

danke erstma für die antwort....

ja das mit der formatierung...

kann ich mir das ungefähr so vorstellen :

(variablennamen?) (ist vielleicht ne simple frage, aber was meinst du genau mit variablennamen..)
ROC(Close,1,%) Inputs()
ROC(Close,2,%)
ROC(Close,3,%)
ROC(Close,4,%)
Ref(ROC(Close,1,%)1) Vorhersage()

aber was ist dann mit den kursdaten?

also close high low open volume ...

wie trage ich die ein??

hast du vielleicht eine beispiel csv-datei mit beispielen fällts mir immer einfacher zu arbeiten...

zu dem vbs indikator

D. h. ich übertrage die Gewichte manuell in den Indikator und übergebe dorthin die verwendeten Inputs/Features.

ich bin ein hziemlicher neuling was weka und svm´s betrifft, finds aber echt interessant, ich hab in dem thread machine learning mehrmals nach einem online-shop für die buchempfehlung gefragt, aber im moment gibts das buch sccheinbar nur auf englisch, und mein abi is auch schon 1 1/2 Jahre her und son komplexes thema in englsich naja ...

aber zum vbs indikator :

was versteht man in weka unter gewichte?
sind das die optiergenisse des svm verfahrens?

aber rich bin gerne bereit mich durch vbs zu kämpfen,

hauptsache ich kann mich mit der materie beschäftigen und ein bisschen experimentieren...

könntest du eine csv-beiipiesldatei und den vbs-indikator beim nächsten post anhängen...

das wär mir echt ne große hilfe....

grüße ausm ruhrpöttchen
stefan

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

7

Donnerstag, 22. November 2007, 09:52

Hallo Stefan,
unten habe ich mein Beispiel CSV beigelegt. Darin sind vom S&P 500 Future folgende Daten in der Reihenfolge des Bildes enthalten.
Ich verstehe unter den Gewichten bei Weka die Modellergebnisse wie z. B. hier dargestellt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
SVMreg

weights (not support vectors):
+ 1.8165 * (normalized) V1
- 0.212 * (normalized) V2
+ 1.0802 * (normalized) V3
+ 2.8615 * (normalized) V4
- 0.7272 * (normalized) V5
- 0.8252 * (normalized) V6
- 0.2461 * (normalized) V7
+ 0.591 * (normalized) V8
- 2.6424 * (normalized) V9
- 0.422

Also die 1.8165 usw.

Diese Werte übertrage ich in den Indi, welcher ebenfalls beiliegt. Ich hoffe, das hilft Dir. Das Verfahren ist allerdings recht aufwändig und eventuell eben eventuell teilweise falsch ...

Viele Grüsse
-dubi
»dubi« hat folgendes Bild angehängt:
  • Inputs.gif
»dubi« hat folgende Dateien angehängt:
  • exp3.rar (12,79 kB - 417 mal heruntergeladen - zuletzt: 23. Februar 2024, 12:48)
  • Stefan.rar (2,65 kB - 432 mal heruntergeladen - zuletzt: 23. Februar 2024, 00:17)

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

8

Donnerstag, 22. November 2007, 10:26

Zitat

ich hab in dem thread machine learning mehrmals nach einem online-shop für die buchempfehlung gefragt, aber im moment gibts das buch sccheinbar nur auf englisch,


Ich habe für mich folgende Alternative zum Thema "Data Mining" gefunden:

Data Mining im praktischen Einsatz

Das Buch vermittelt meiner Ansicht nach ebenfalls einen guten und vor allem auch allgemein verständlichen Einblick in das Thema Data-Mining.
Der praktische Einsatz von Data-Mining Verfahren wird an diversen Fallbeispielen erklärt.
Speziell dieser Brückenschlag von der Theorie zur Praxis ist mir immer besonders wichtig, wenn ich eine Theorie verstehen will.
Wenn Einsatzmöglichkeiten erklärt werden, fällt es mir immer leichter,mir ein erstes Urteil darüber zu bilden, ob der Einsatz einer bestimmten Methode auch für mich sinnvoll sein könnte.

Das Buch ist außerdem nicht so dick - das ist auch ein Pluspunkt, wenn man wie ich unter chronischer Zeitnot leidet....
:)

Zum Thema SVM wird man aber wohl auf die Lektüre des einen oder anderen Werkes in Englisch zurückgreifen müssen. Da habe ich bisher nichts "Vernünftiges" in deutscher Übersetzung gefunden.
Viele Grüße von Anke

http://www.ascunia.de

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

9

Donnerstag, 22. November 2007, 19:38

Daten aus Investox exportieren

Hallo zusammen,

für den freien Export von Zeitreihen aus Investox 5 habe ich meinen Indikator weiter entwickelt. In Investox kann man nun einfach (erstmal) 5 Zeitreihen angeben sowie die weiteren Exportparameter.

Die Dokumentation ist bisher folgende:
Der Indikator "FileOut" wird in Investox eingebunden und erzeugt aus den übergebenen Zeitreihen
Es können bis zu 12 Zeitreihen übergeben werden.
der Indikator schreibt die für Weka spezifischen .arff Files für die Trainings und die Testdaten.
Die Zeitdauer wird über die Angabe der Perioden für Test und Training festgelegt.

Paramerter:
V1 - V5 (größere Zahl vorgesehen): Zeitreihen, per Default mit Close vorbelegt
Ziel: bei der Optimierung in Weka verwendeter Zielwert
gewaehlteHistorien(momentan nicht wählbar, -> "0,-1,-2,-3,-5,-8"): Angabe, welche Historien für alle übergebenen Zeitreihen (V1 - V12)
verwendet werden (erzeugt Ref(Vx, n), wobei Vx die jeweilige Zeitreihe und n ein
Wert aus der Liste der Historien ist. Beispiel ist "0,-1,-2,-3,-5,-8". Durch diese
Angabe wird die aktuelle Periode und die 1, 2, 3, 5 Vorperiode verwendet
varCnt: Angabe welche der 12 Zeitreihen verwendet werden. Min = 1; Max = 12
fileName (momentan fest test): Names des Trainigfiles ohne Ändung, z.B. "test1", die Trainingsdaten werden dann
in die Datei "test1_train.arff" geschrieben
die Testdaten werden in die Datei mit dem abgeleiteten Namen im Bsp. "test1_test.arff abgelegt
die Modelldaten werden in die Datei mit dem abgeleiteten Namen im Bsp. "test1_model.txt abgelegt
die Ergebnisdaten werden in die Datei mit dem abgeleiteten Namen im Bsp. "test1_res.txt abgelegt
dirName (momentan fest c:\weka): Name des Directories auf dem Rechner in dem alle Dateien abgelegt werden
Im Namen wird der absolute Pfad ohne "\" am Ende angegeben, z.B. "c:\investox\test"
trainPerioden: Anzahl der Trainingperioden, die Trainingperioden gehen bis zum Start der testPerioden
testPerioden: Anzahl der Testperioden, die aktuelle Periode wird eingeschlossen

Zu Beachten: Wenn für die Perioden für Training und Test einschließlich der für die Indikatoren erforderlichen
vergangenen Perioden (siehe "gewaehlteHistorien" und Perioden für die in V1-V12 gewählten Zeitreihen)
keine Daten vorliegen kann es zu unübersehbaren Fehlern kommen. Daher bitte immer mit hinreichend langen
Zeitreihen arbeiten

Der Parameter erzeugt die fürs Training und Testen erforderliche arff Files. Über die Periodenangaben lassen sich leicht die Test und die Trainingszeiten steuern.

Morgen komme ich dann hoffentlich dazu das Script für die Anzeige der Ergebnisse - nach dem Weka Training - ebenfalls soweit fertig zu stellen, dass ich es hier veröffentlichen kann.

Der Aufruf des Trainings ist z.Z. noch per Hand aus Windows erforderlich, aber ich baue dann im Anschluss auch dies in die Files ein. Dann kann man hoffentlich auch Parameter für Weka, aus Investox z.B. per Robustheitstest oder über einen Forwardtest steuern.

Für die Übergabe von mehr Zeitreihen und optimale Parameter muss ich noch was machen. Es scheint, dass die maximale Anzahl von Parametern beim Schreiben eines Indi begrenzt ist.
Ebenso möchte ich die Filenamen und das Directory übergeben. Nur leider kann ich keine "Freitexte" in den Parametern des Indis verwenden.

Viele Grüße

Martin
»MartinP« hat folgende Datei angehängt:
  • FileOut.Inn (1,42 kB - 440 mal heruntergeladen - zuletzt: 6. März 2024, 11:25)

halobungie

unregistriert

10

Donnerstag, 22. November 2007, 20:15

Hallo MartinP,

Dein Indikator tönt sehr interessant!!!
Habe ich Dich richtig verstanden, Dein Indikator lässt sich nur in Investox5 verwenden, oder? Dann müsste ich mich beeilen und diese Version sofort ordern. Ist meine Annahme korrekt, dass mit Deinem Indikator nun die bisher fehlende Anbindung von "Investox/WEKA/Investox" gelöst ist?

Besten Dank und viele Grüsse,
halobungie

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

11

Donnerstag, 22. November 2007, 20:44

Hallo Martin,

ich wollte gerade mal Deinen Indikator testen.
Kann es sein, dass Du versehentlich einen falschen Indi angehängt hast ( i.e. den Inv- Beispielindi Script_speichern ???)
Viele Grüße von Anke

http://www.ascunia.de

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

12

Donnerstag, 22. November 2007, 20:48

@Anke,

noch mal

verzeihung, wenns der falsche war.

Grüße

Mrtin
»MartinP« hat folgende Datei angehängt:
  • FileOut.Inn (1,42 kB - 439 mal heruntergeladen - zuletzt: 6. März 2024, 11:24)

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

13

Donnerstag, 22. November 2007, 21:45

Hallo Martin,

danke für die Bereitstellung Deiner Weiterentwicklungen :)

Leider scheint aber auch im zweiten Versuch der falsche Indi in die Selektion gerutscht zu sein. Kannst Du es bitte nochmals versuchen.

Viele Grüsse
-dubi

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

14

Donnerstag, 22. November 2007, 22:20

Hoffentlich Jetzt richtig

Sorry,

hoffentlich ist jetzt alles OK.

Bitte beachtet, dass auf Laufwerk C: der Ordner Weka in der Root existieren muss - also C:\Weka.

Dort landen noch alle Dateien.

Und mir ist klar, dass für einen praktischen Einsatz der Indi zu erweitern ist. Aber für frühe Tests mit Weka ist es gut kleiner zu starten.

Viele Grüße und danke fürs Feed back

Martin
»MartinP« hat folgende Datei angehängt:
  • Weka_FileOut.Inn (7,85 kB - 438 mal heruntergeladen - zuletzt: 22. Februar 2024, 19:55)

ulukai

unregistriert

15

Donnerstag, 22. November 2007, 22:40

Hallo!

Ich bin mir unsicher , wie man den Indi nutzt, wenn ich sage, "chart" indikator einfügen" steht da, diese funktion ist in dieser Programmversion nicht enthalten",

schade habe nicht die xl-version, ist die notwendig den indi zu nutzen, oder muss ich den gar nicht im chart einfügen sondern anders nutzen??

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

16

Donnerstag, 22. November 2007, 22:46

@Stefan
Hast Du schon V5? - Der Indikator nutzt VBS - das gibt's erst bei V5. Ich bin nicht sicher wie das mit den Indikatoren bei ST ist.

Viele Grüsse
-dubi

ulukai

unregistriert

17

Donnerstag, 22. November 2007, 23:39

ups das muss ich übersehen haben,

echt schade.... ;(

anscheinend gibts für mich wohl keine möglichkeit weka zu nutzen, bzw. svm´s

muss wohl hoffen das bald eine implentierung in inv erfolgt, dann bestell ich auch die xl-version...

halobungie

unregistriert

18

Freitag, 23. November 2007, 13:13

Hallo MartinP,

ich frage nochmals nach: ist Dein Indikator der Schlüssel für die Anbindung von WEKA an Investox (Import/Export)?

Wenn ja, werde ich umgehend Investox V5 bestellen.

Also, danke im Voraus für Deine Antwort !

halobungie

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

19

Freitag, 23. November 2007, 16:21

@halobungie

Hallo halubungie,

wenn du deshalb kaufen möchtest würde ich an deiner Stelle noch ein paar Tage warten. Noch ist mein Indi nicht fertig. Und erst wenn er einerseits läuft - und das bei anderen hier in der Gemeinschaft - und andererseits auch den Anschein etwas positiven bringt würde ich es mir selber überlegen.

Das mit dem Laufen will ich zumindest für mich am Wochenende hinkriegen. Hoffentlich klappts.

Das mit den Ergebnissen ist was anderes.

In Machine Learning // Data Mining // z.B. Support Vector Machine habe ich ein erstes HS mal veröffentlicht. Da ist das Ergebnis passabel für den ersten Versuch. Im Folgebeitrag habe ich dann den zweiten Versuch veröffentlich. Und da hätte ich mein ehrlich verdientes Geld nicht verlieren wollen.

Mit dem Indi wird es dann hoffentlich leichter es zu testen :S

Ich werde hier meine "Erfolge" und meine Indis aktuell halten.

Viele Grüße

Martin

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

20

Freitag, 23. November 2007, 17:11

Zitat

PS.: Mich würde interessieren, wie ich die Ergebnisse (bzw. die Modellbeschreibung mit den Gewichten) einfach aus WEKA herausschreiben kann bzw. dort weiterverarbeiten kann - hat jemand einen Tipp?



Hallo zusammen,

weiss zu obenstehendem jemand eine Antwort - es ist recht anstrengend, die Werte jeweils von Hand zu übertragen - das muss doch einfacher gehen.

danke und Grüsse
-dubi