Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 1830

 
Evgeny Dyuka:

Das Traurige ist, dass Sie von Regelmäßigkeiten sprechen, aber wenn man Sie fragt, was genau den Markt antreibt, werden Sie es nicht sagen... denn Ihr Verständnis einer Regelmäßigkeit endet mit der Antwort eines Netzwerks in Form einer Wahrscheinlichkeit.

Ihre Lösung besteht darin, Hunderte von Netzwerken auf verschiedenen Daten aufzubauen und ihre Ergebnisse in Form von Wahrscheinlichkeitsrechnungen zu analysieren...

Was wäre, wenn Sie den Markt und seine Gesetze verstehen würden?

Dann kann eine einzige Protokollregel beschreiben, was Sie mit Hunderten von Netzen beschreiben...


Hier ist zum Beispiel eine Regel mit nur drei Elementen, die genauso gut funktioniert wie hundert Ihrer Netze.



Was ist also, wenn ich 1000 solcher Regeln finde und daraus eine Art Zufallswald oder ein Ensemble von Regeln erstelle? Wird sich die Qualität verbessern?

Was ist, wenn man versucht, ein Ensemble von 1000 Neuronen mit jeweils 100 Neuronen zu erstellen? Man erhält 100k Neuronen, erstens kann man keinen eindeutigen Datensatz für 100k Neuronen finden, zweitens muss man lange auf die Antwort warten -....

Unterm Strich ist mein Ansatz sauberer, schneller und skalierbarer + er lässt sich erklären, Ihr Ansatz ist unmöglich zu entwickeln ((

Traurig

 
mytarmailS:

Unterm Strich ist mein Ansatz "sauberer", schneller und skalierbarer, Ihr Ansatz ist unmöglich zu entwickeln ((

Um ehrlich zu sein, ist Ihr Ansatz auch nicht sehr klar, aber vielleicht liegt es nur an mir....

 
Evgeny Dyuka:

Hier ist ein lebendiges Beispiel dafür, wie man Informationen komprimieren kann. Das ist nicht das, was ich tue, aber ich bemühe mich um dieses Konzept

Bei den Daten handelt es sich um Fishers Schwertlilien.

iris[sample(100,100),] 
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
51           7.0         3.2          4.7         1.4 versicolor
31           4.8         3.1          1.6         0.2     setosa
79           6.0         2.9          4.5         1.5 versicolor
33           5.2         4.1          1.5         0.1     setosa
73           6.3         2.5          4.9         1.5 versicolor
80           5.7         2.6          3.5         1.0 versicolor
16           5.7         4.4          1.5         0.4     setosa
74           6.1         2.8          4.7         1.2 versicolor
30           4.7         3.2          1.6         0.2     setosa
17           5.4         3.9          1.3         0.4     setosa
25           4.8         3.4          1.9         0.2     setosa
75           6.4         2.9          4.3         1.3 versicolor
57           6.3         3.3          4.7         1.6 versicolor
65           5.6         2.9          3.6         1.3 versicolor
96           5.7         3.0          4.2         1.2 versicolor
.........
......
...
..
..


Der Übersichtlichkeit halber trainieren wir einen Zufallswald, aber nehmen wir an, es handelt sich um ein Ensemble Ihrer neuronalen Netze.

Ausgebildet....

Wir erhalten die prädiktiven Regeln, von denen es etwa 700 gibt.

condition                                              pred        
  [1,] "X[,3]<=2.45"                                          "setosa"    
  [2,] "X[,3]>2.45 & X[,3]<=4.85"                             "versicolor"
  [3,] "X[,3]>2.45 & X[,3]<=4.85 & X[,4]<=1.6"                "versicolor"
  [4,] "X[,4]>1.6"                                            "virginica" 
  [5,] "X[,3]>2.45 & X[,3]<=4.95 & X[,4]<=1.75"               "versicolor"
  [6,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
  [7,] "X[,3]>4.85 & X[,3]<=5.15 & X[,4]<=1.75 & X[,4]>1.55"  "versicolor"
  [8,] "X[,4]>1.75"                                           "virginica" 
  [9,] "X[,3]>5.15"                                           "virginica" 
 [10,] "X[,3]<=2.45"                                          "setosa"    
 [11,] "X[,3]<=4.95 & X[,3]>2.45 & X[,4]<=1.65"               "versicolor"
 [12,] "X[,4]>1.65"                                           "virginica" 
 [13,] "X[,3]>4.85 & X[,4]>1.65"                              "virginica" 
 [14,] "X[,4]>1.9"                                            "virginica" 
 [15,] "X[,3]>4.95 & X[,4]<=1.65"                             "virginica" 
 [16,] "X[,3]>4.95 & X[,4]<=1.75 & X[,4]>1.65"                "versicolor"
 [17,] "X[,3]>4.95"                                           "virginica" 
 [18,] "X[,4]<=0.8"                                           "setosa"    
 [19,] "X[,3]<=4.75 & X[,4]>0.8"                              "versicolor"
 [20,] "X[,3]>4.75 & X[,3]<=5 & X[,4]<=1.7"                   "versicolor"
 [21,] "X[,3]>5 & X[,4]<=1.55"                                "virginica" 
 [22,] "X[,3]>4.75 & X[,3]<=5.45 & X[,4]<=1.7 & X[,4]>1.55"   "versicolor"
 [23,] "X[,3]>5.45"                                           "virginica" 
 [24,] "X[,4]>1.7"                                            "virginica" 
 [25,] "X[,3]<=5.05 & X[,4]>0.8 & X[,4]<=1.75"                "versicolor"
 [26,] "X[,3]>4.95"                                           "virginica" 
 [27,] "X[,2]>2.6 & X[,3]<=5.05 & X[,3]>4.95"                 "versicolor"
 [28,] "X[,4]>1.75"                                           "virginica" 
 [29,] "X[,2]>3.1 & X[,3]<=5.05 & X[,4]>0.8"                  "versicolor"
 [30,] "X[,3]>5.05 & X[,4]<=1.55"                             "virginica" 
 [31,] "X[,2]<=2.85 & X[,3]>5.05 & X[,4]<=1.7 & X[,4]>1.55"   "versicolor"
 [32,] "X[,3]>5.05"                                           "virginica" 
 [33,] "X[,3]>5.05"                                           "virginica" 
 [34,] "X[,4]<=0.75"                                          "setosa"    
 [35,] "X[,3]<=4.95 & X[,4]>0.75 & X[,4]<=1.7"                "versicolor"
 [36,] "X[,4]>1.7"                                            "virginica" 
 [37,] "X[,2]>3.1 & X[,3]<=4.95 & X[,4]>0.75"                 "versicolor"
 [38,] "X[,3]>4.95"                                           "virginica" 
 [39,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.7"                 "versicolor"
 [40,] "X[,4]>1.7"                                            "virginica" 
 [41,] "X[,3]>4.95"                                           "virginica" 
 [42,] "X[,4]<=0.7"                                           "setosa"    
 [43,] "X[,2]<=2.25 & X[,4]<=1.25"                            "versicolor"
 [44,] "X[,2]<=2.25"                                          "versicolor"
 [45,] "X[,2]>2.25 & X[,4]>0.7 & X[,4]<=1.75"                 "versicolor"
 [46,] "X[,3]>5.3"                                            "virginica" 
 [47,] "X[,4]>1.75"                                           "virginica" 
 [48,] "X[,3]>2.45 & X[,3]<=4.95 & X[,4]<=1.75"               "versicolor"
 [49,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
 [50,] "X[,3]>4.95 & X[,3]<=5.45 & X[,4]<=1.75 & X[,4]>1.55"  "versicolor"
 [51,] "X[,3]>4.95"                                           "virginica" 
 [52,] "X[,4]>1.75"                                           "virginica" 
 [53,] "X[,2]>3 & X[,3]>2.45 & X[,3]<=4.85"                   "versicolor"
 [54,] "X[,4]>1.75"                                           "virginica" 
 [55,] "X[,3]<=4.85 & X[,4]>0.8 & X[,4]<=1.65"                "versicolor"
 [56,] "X[,3]<=4.65 & X[,4]>1.65"                             "virginica" 
 [57,] "X[,4]>1.65"                                           "virginica" 
 [58,] "X[,3]<=5.3 & X[,4]<=1.75"                             "versicolor"
 [59,] "X[,2]>2.6 & X[,3]>4.85 & X[,3]<=5.3 & X[,4]<=1.75"    "versicolor"
 [60,] "X[,3]>5.3"                                            "virginica" 
 [61,] "X[,4]>1.75"                                           "virginica" 
 [62,] "X[,3]<=2.5"                                           "setosa"    
 [63,] "X[,3]>2.5 & X[,3]<=4.95 & X[,4]<=1.75"                "versicolor"
 [64,] "X[,3]>4.95 & X[,3]<=5.05 & X[,4]<=1.65"               "virginica" 
 [65,] "X[,4]<=1.75"                                          "versicolor"
 [66,] "X[,3]<=4.75 & X[,4]>1.65"                             "virginica" 
 [67,] "X[,3]>4.75 & X[,4]<=1.75 & X[,4]>1.65"                "versicolor"
 [68,] "X[,3]>5.35"                                           "virginica" 
 [69,] "X[,4]>1.75"                                           "virginica" 
 [70,] "X[,3]<=4.75 & X[,4]>0.7"                              "versicolor"
 [71,] "X[,4]>1.65"                                           "virginica" 
 [72,] "X[,3]>4.75 & X[,3]<=4.95 & X[,4]<=1.7"                "versicolor"
 [73,] "X[,2]<=2.65 & X[,3]>4.95"                             "virginica" 
 [74,] "X[,2]<=2.75 & X[,2]>2.65 & X[,4]<=1.7"                "versicolor"
 [75,] "X[,3]>4.75"                                           "virginica" 
 [76,] "X[,4]>1.7"                                            "virginica" 
 [77,] "X[,2]>3.1 & X[,3]>4.75 & X[,3]<=4.85"                 "versicolor"
 [78,] "X[,4]>1.7"                                            "virginica" 
 [79,] "X[,3]>2.45 & X[,3]<=5 & X[,4]<=1.65"                  "versicolor"
 [80,] "X[,4]<=1.65"                                          "versicolor"
 [81,] "X[,3]>5"                                              "virginica" 
 [82,] "X[,4]>1.65"                                           "virginica" 
 [83,] "X[,3]>2.45 & X[,3]<=5.05 & X[,4]<=1.75"               "versicolor"
 [84,] "X[,4]>1.75"                                           "virginica" 
 [85,] "X[,2]>3.1 & X[,3]>2.45 & X[,3]<=5.05"                 "versicolor"
 [86,] "X[,3]>5.05"                                           "virginica" 
 [87,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.65"                "versicolor"
 [88,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
 [89,] "X[,3]<=5.45 & X[,4]<=1.65 & X[,4]>1.55"               "versicolor"
 [90,] "X[,3]>4.95"                                           "virginica" 
 [91,] "X[,4]>1.65"                                           "virginica" 
 [92,] "X[,4]>0.75 & X[,4]<=1.65"                             "versicolor"
 [93,] "X[,4]>1.65"                                           "virginica" 
 [94,] "X[,2]>3.1 & X[,3]<=4.85 & X[,4]>0.75"                 "versicolor"
 [95,] "X[,4]>1.65"                                           "virginica" 
 [96,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.75"                "versicolor"
 [97,] "X[,3]<=4.95 & X[,4]<=1.75 & X[,4]>1.65"               "virginica" 
 [98,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
 [99,] "X[,3]>4.95 & X[,3]<=5.45 & X[,4]<=1.75 & X[,4]>1.55"  "versicolor"
..........................
..............
.......
....
..

Der Clou ist nun, dass es einen Algorithmus gibt, der 7 dieser 700 Regeln mit minimalem Qualitätsverlust erstellen kann.

learner[,-c(1:3)]
     condition                                pred        
[1,] "X[,3]<=2.45"                            "setosa"    
[2,] "X[,3]<=4.95 & X[,3]>2.45 & X[,4]<=1.65" "versicolor"
[3,] "X[,3]>4.95 & X[,4]>1.7"                 "virginica" 
[4,] "X[,2]<=3.1 & X[,3]<=4.95 & X[,4]>1.65"  "virginica" 
[5,] "X[,3]>4.95 & X[,4]<=1.55"               "virginica" 
[6,] "X[,3]<=5.3 & X[,4]<=1.75"               "versicolor"
[7,] "X[,1]==X[,1]"                           "versicolor"

Das ist also unser gesamter 700 Regeln umfassender Zufallswald.

nicht schlecht? :)

 
mytarmailS:

Das Traurige ist, dass Sie von Regelmäßigkeiten sprechen, aber wenn man Sie fragt, was genau den Markt antreibt, werden Sie es nicht sagen... weil Ihr Verständnis von Regelmäßigkeit mit der Antwort eines Netzwerks in Form von Wahrscheinlichkeit endet.

Ihre gesamte Lösung besteht darin, Hunderte von Netzen auf verschiedenen Daten aufzubauen und ihre Ergebnisse in Form von Wahrscheinlichkeitsrechnungen zu analysieren...

Ja, das ist richtig, für ein wirklich praktisches Ergebnis.

was, wenn man den Markt und seine Gesetze versteht?

Warum? Vielleicht ist das gar nicht möglich.

Dann kann eine einzige Protokollregel das beschreiben, was Sie mit Hunderten von Netzen beschreiben.

Es ist alles Fantasie, die in den Wolken fliegt.

oben geantwortet...

 
Evgeny Dyuka:

oben im Text geantwortet...

Sie schreiben:

Evgeny Dyuka:

2. In der Praxis können Sie mit meiner Methode nur bei etwa 1 % der gestellten Fragen eine akzeptable Antwort erhalten. Einfach ausgedrückt: Wenn Sie das Netz fragen, "wo der Preis in 5 Minuten nach oben oder unten sein wird", wird das Netz Ihnen nur 1 von 100 Malen die Antwort geben.

Glauben Sie nicht, dass der Grund dafür darin liegt, dass 99 % Ihrer Daten Müll sind und 1 % nützlich ist? Glauben Sie nicht, dass dieses 1 % durch 1-3 Protokollierungsregeln beschrieben werden kann?

 
mytarmailS:

Sie schreiben:

Evgeny Dyuka:

2. In der Praxis können Sie mit meiner Methode nur bei etwa 1 % der gestellten Fragen eine akzeptabel genaue Antwort erhalten. Einfach gesagt, wenn Sie das Netz fragen, "wo der Preis in 5 Minuten oben oder unten sein wird", werden Sie die Antwort nur 1 Mal von 100 erhalten.

Glauben Sie nicht, dass der Grund dafür darin liegt, dass es in Ihren Daten 99% Müll und 1% nützliche Informationen gibt? Glauben Sie nicht, dass dieses 1% durch 1-3 Protokollierungsregeln beschrieben werden kann?

Leider ist dies nicht der Fall.

99 % des Mülls ist eine inhärente Eigenschaft des untersuchten Objekts. Das ist seine Natur.
Wir alle möchten hoffen, dass es im Inneren Harmonie und einfache, verständliche Regeln gibt, die wir noch nicht gefunden haben, aber finden werden. Solche Regeln gibt es nicht. Philosophisch gesehen mag es sie natürlich geben, alles hat einen Grund, aber sie liegen jenseits unserer derzeitigen und zukünftigen Möglichkeiten.

Das 1 % wird auch nicht durch einfache Regeln beschrieben, das Netz wurde auf 500.000 Beispiele trainiert, um es zu erreichen - das sind eindeutig keine einfachen Regeln.

 
mytarmailS:

Hier ist ein lebendiges Beispiel dafür, wie man Informationen komprimiert. Das ist nicht das, was ich mache, aber ich bemühe mich um das Konzept

Bei den Daten handelt es sich um Fishers Schwertlilien.


Training eines Random Forest, der Klarheit halber, aber nehmen wir an, es ist ein Ensemble Ihrer neuronalen Netze

Ausgebildet....

Wir erhalten die prädiktiven Regeln, von denen es etwa 700 gibt.

Der Clou ist nun, dass es einen Algorithmus gibt, der 7 dieser 700 Regeln mit minimalem Qualitätsverlust erstellen kann.

Das ist also unser gesamter 700 Regeln umfassender Zufallswald.

nicht schlecht? :)

Zur Beschreibung von 150 Datenzeilen (es gibt 150 in den Iris-Daten) benötigen wir höchstens 150 Regeln (wenn alle Zeilen eindeutig sind).
Woher haben Sie 700?

 
elibrarius:

Um 150 Datenzeilen zu beschreiben (Irisdaten haben 150 Zeilen), braucht man höchstens 150 Regeln (wenn alle Zeilen eindeutig sind).
Woher haben Sie 700?

Ich weiß nicht genau, wie das Forrest-Paket funktioniert, aber bei 100 Bäumen erzeugt es 400-700 Regeln, wobei wahrscheinlich jeder Zweig als eine Regel gezählt wird

Evgeny Dyuka:
Das ist leider nicht wahr.

99 % des Mülls ist eine inhärente Eigenschaft des untersuchten Objekts. So ist sie aufgebaut, so ist sie beschaffen.
Wir alle würden gerne hoffen, dass es im Inneren Harmonie und klare, einfache Regeln gibt, die wir noch nicht gefunden haben, aber wir werden sie finden. Es gibt keine solchen Regeln. Philosophisch gesehen mag es sie natürlich geben, alles hat einen Grund, aber sie liegen jenseits unserer derzeitigen und zukünftigen Möglichkeiten.

Dieses 1 % wird auch nicht durch einfache Regeln beschrieben, sondern das Netz wurde anhand von 500 000 Beispielen trainiert, um dieses Ergebnis zu erreichen - das sind eindeutig keine einfachen Regeln.

Hmmm...

 
mytarmailS:

Das ist also unser gesamter 700 Regeln umfassender Zufalls-Wald

nicht schlecht? :)

Was ist das Prinzip der Blattverkleinerung? Gruppierung nach Ähnlichkeit und Auswahl der besten Option aus der Gruppe ?

 
mytarmailS:

Ich weiß nicht genau, wie das Forrest-Paket funktioniert, aber wenn es auf 100 Bäume eingestellt ist, generiert es 400-700 Regeln, wahrscheinlich zählt jeder Zweig als Regel

Ich weiß es nicht...

Die Gesamtzahl für 100 Bäume beläuft sich auf 700.

Wenn Sie einen Baum bauen, erhalten Sie die gleichen 7 Regeln, die Sie denken, ist Magie))

Hier ist, was 1 Baum gab mir für Iris (Genauigkeit 96% oder 6 Fehler von 150 Beispielen)


 if(x[3]<1.800000){
  if(x[3]<1.000000){v[0]=1.000000;v[1]=0.000000;v[2]=0.000000;s=50;}
  else{
   if(x[2]<4.700000){
    if(x[2]<4.500000){v[0]=0.000000;v[1]=1.000000;v[2]=0.000000;s=29;}
    else{v[0]=0.000000;v[1]=0.909091;v[2]=0.090909;s=11;}}
   else{v[0]=0.000000;v[1]=0.714286;v[2]=0.285714;s=14;}}}
 else{
  if(x[0]<6.300000){v[0]=0.000000;v[1]=0.090909;v[2]=0.909091;s=11;}
  else{v[0]=0.000000;v[1]=0.000000;v[2]=1.000000;s=35;}}