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

 
Mihail Marchukajtes:


Darauf bin ich bereit zu wetten. Das kommt aus der Praxis. Das ist es, was ich bei der Verwendung des Optimierers beobachtet habe.


Aber in der Demo auf seiner Website gibt es 5 Spalten und eine große Anzahl von Zeilen
 
Mihail Marchukajtes:


Hier bin ich bereit zu wetten. Das kommt aus der Praxis. Das ist es, was ich bei der Verwendung des Optimierers beobachte.

Wenn es weniger Spalten als Zeilen gibt, wird die Anzahl der Eingänge kleiner als die bedingte Größe des Netzpolynoms.

Wenn die Anzahl der Spalten und Zeilen gleich ist, dann sind die Anzahl der Eingaben und die Größe des Polynoms ungefähr gleich.

Wenn es mehr Spalten als Zeilen gibt, ist die Polynomgröße kleiner als die Anzahl der Eingaben.

Mit anderen Worten: Die Anzahl der Spalten und Zeilen muss ungefähr gleich sein. Dann wird das Polynom mit einer ausreichenden Anzahl von Eingaben erhalten, und seine Größe ist ungefähr gleich der Anzahl der Eingaben.

Mit anderen Worten. Je größer die Datei ist, desto multiparametrischer wird das Modell. Die Anzahl der Eingaben und die Größe des Polynoms nehmen zu, was bedeutet, dass das Modell intelligenter wird. Also weiter.

Auch wenn dieselbe Datei mehrmals ausgeführt wird, sind die Eingabeparameter immer unterschiedlich. Dies ist auf die zufällige Aufteilung der Stichprobe während der Teilung zurückzuführen. Aber wenn wir ein und dieselbe Datei ausführen und völlig unterschiedliche Modelle erhalten, werden sie trotzdem identisch funktionieren, zumindest sollten sie das. Dies ist die Antwort auf die Frage, welche Fische sich in der angegebenen Datei befinden. Wenn sie von einem Lauf zum anderen abweicht, bedeutet das, dass die Daten nichts mit der Ausgabe zu tun haben. So....

Das Polynom ist nur so aufgebaut, dass alles herausgenommen wird und 3 für ein Netz und 3 für ein anderes übrig bleiben.
 
elibrarius:
Das Polynom ist nur so gebaut, dass es alles herausnimmt und 3 für das eine und 3 für das andere Netz übrig lässt.

Sehen Sie sich den Code genau an. Es gibt drei Zustände: 1, 0 und -1. Dies ist also das Ergebnis von zwei Rastern, für die Signale, die an den Handel übertragen werden....
 
Mihail Marchukajtes:


Von welchen Kopplungskoeffizienten sprechen Sie? Hier ist eine Liste der verwendeten Eingaben, aber vor jedem Polynom steht eine Normalisierung, und es sind 8 Eingaben beschrieben, siehe unten in der Datei.

//Variable x0: Del

//Variable x1: Del1

//Variable x2: VDel

//Variable x3: VDel1

//Variable x4: VDel6

//Variable x5: ST5

//Variable x6: VAD11

//Variable x7: VVolum4

Wo sind die drei Eingänge????? Wenn es acht von ihnen sind.
Sie haben x0...x7 = p0...p7 - aus der obigen Formel (nur anders benannt), die Formel stammt aus dem Artikel von Reschetow, der sein Neuron beschreibt. Und nach der Formel gibt es nur 3 Eingaben - A, B und C
 
Maxim Dmitrievsky:

Aber die Demo auf seiner Website hat 5 Spalten und eine große Anzahl von Zeilen

Die Sache ist die, dass ich seine Demodatei ..... herausgefunden habe. Es gibt eine Sache, die Wiederholung von Daten, stellen Sie sich vor, dass es 5 Spalten und jede ihrer Zeilen kann nur einen von drei Werten 1-1il0 aufgezeichnet werden. In diesem Fall gibt es doppelte Zeilen, und ich verdopple jetzt meinen Datensatz. Kopieren Sie einfach Zeilen und Verallgemeinerung Ebene wird deutlich wachsen, bis zu 90%, aber leider wird es ein REBUILDING sein. Ich weiß... Ich habe es mehr als einmal getestet, also.....
 
elibrarius:
Sie haben x0...x7 = p0...p7 - aus der obigen Formel (nur anders benannt), die Formel ist aus Reshetovs Artikel, der sein Neuron beschreibt. Und nach der Formel gibt es nur 3 Eingaben - A, B und C

Ja, der Artikel über RNN hat nichts mit diesem Optimierer zu tun, das ist eine ganz andere Arbeit, verstehst du nicht? Obwohl innerhalb des Optimierers etwas aus diesem Artikel verwendet werden kann, aber sie sind völlig unterschiedliche Arbeiten, wenn etwas.....
 
Mihail Marchukajtes:

Die Sache ist die, dass ich seine Demo-Datei herausgefunden habe..... Das Problem ist, dass es einige sich wiederholende Daten gibt. Stellen Sie sich vor, es gibt 5 Spalten und jede Zeile kann nur einen von drei Werten 1-1il0 enthalten. In diesem Fall gibt es doppelte Zeilen, und ich verdopple jetzt meinen Datensatz. Kopieren Sie einfach die Zeilen und der Verallgemeinerungsgrad wird sich deutlich erhöhen, bis zu 90%, aber leider wird es ein WIEDERAUFBAU sein. Ich weiß... Ich habe es mehr als einmal getestet, also.....

Es ist eine 50/50 geteilte Probe, nicht wahr? Ich vergleiche sie jetzt mit anderen Modellen.
 
Eh, wo bekommt man die Macht.... mehr Leistung :-)
 
Maxim Dmitrievsky:

Ist es eine 50/50 Aufteilung? Ich vergleiche es mit anderen Modellen


Die Aufteilung einer Trainingsmenge in zwei Stichproben ist sehr schwierig... Es gibt kein Konzept der Zeit, von der Vergangenheit bis zur Zukunft. Es ist nicht notwendig für die Klassifizierung, sondern für die Annäherung.

Aber die Teilung geschieht auch auf eine sehr heikle Weise. Hier ist ein Hinweis. Es ist wichtig, dass die Anzahl der Nullen und Einsen in der Ausgangsvariablen gleich ist. Dann erfolgt die Division auf eindeutige Weise, wenn die Zahl nicht gleich ist, gibt es eine Addition. Im Allgemeinen eine kluge Art und Weise zu unterteilen, wenn in...

 
Mihail Marchukajtes:

Sehen Sie sich den Code genau an. Es gibt drei Zustände: 1, 0 und -1. Es ist also das Ergebnis von zwei Gittern, um Signale an den Handel zu übermitteln.....

Ich bin dabei herauszufinden, wie jedes Netz separat funktioniert. Und was man von ihren Ergebnissen bekommt, ist eine Frage des Geschmacks.)

Übrigens, wenn ich mir den Code aus Ihrer Datei ansehe - es gibt eine andere Formel, nicht wie im Artikel, d.h. nicht

double RNN(double p1,double p2,double p3)
  {
//--- вероятности для правил из базы знаний экспертной системы
   double y0 = x0; // Вероятность правила №0 в процентах
   double y1 = x1; // Вероятность правила №1 в процентах
   double y2 = x2; // Вероятность правила №2 в процентах
   double y3 = x3; // Вероятность правила №3 в процентах
   double y4 = x4; // Вероятность правила №4 в процентах
   double y5 = x5; // Вероятность правила №5 в процентах
   double y6 = x6; // Вероятность правила №6 в процентах
   double y7 = x7; // Вероятность правила №7 в процентах

//--- база знаний, состоящая из набора взаимоисключающих правил
   double probability=
                      (1.0 - p1) * (1.0 - p2) * (1.0 - p3) * y0 + // Правило №0
                      (1.0 - p1) * (1.0 - p2) * p3 * y1 +         // Правило №1
                      (1.0 - p1) * p2 * (1.0 - p3) * y2 +         // Правило №2
                      (1.0 - p1) * p2 * p3 * y3 +                 // Правило №3
                      p1 * (1.0 - p2) * (1.0 - p3) * y4 +         // Правило №4
                      p1 * (1.0 - p2) * p3 * y5 +                 // Правило №5
                      p1 * p2 * (1.0 - p3) * y6 +                 // Правило №6
                      p1 * p2 * p3 * y7;                          // Правило №7

//--- конвертируем проценты в вероятности
   probability=probability/100.0;

//--- возвращаем результат в виде вероятности
   return(probability);
  }

а

double getBinaryClassificator1(double v0, double v1, double v2, double v3, double v4, double v5, double v6, double v7) {
   double x0 = 2.0 * (v0 + 1189.0) / 2047.0 - 1.0;
   double x1 = 2.0 * (v1 + 810.0) / 2247.0 - 1.0;
   double x2 = 2.0 * (v2 + 1636.0) / 2155.0 - 1.0;
   double x3 = 2.0 * (v3 + 558.0) / 1252.0 - 1.0;
   double x4 = 2.0 * (v4 + 139.0) / 494.0 - 1.0;
   double x5 = 2.0 * (v5 + 74.97643) / 144.15451 - 1.0;
   double x6 = 2.0 * (v6 + 1026.56016) / 1938.48639 - 1.0;
   double x7 = 2.0 * (v7 + 4167.0) / 7074.0 - 1.0;
   double decision = 3.162907268170426 * sigmoid(x0)
  -1.0554004772410066 * sigmoid(x1 + x2 + x3)
  + 3.8921930574940347 * sigmoid(x0 + x1 + x4)
  -1.3775531643479957 * sigmoid(x1 + x2 + x3 + x4)
  -0.44704575810784447 * sigmoid(x0 + x5)
  -0.012703915477316044 * sigmoid(x0 + x1 + x5)
  -7.231026668467576 * sigmoid(x2 + x5)
  -0.059339966683175004 * sigmoid(x2 + x4 + x5)
  -2.786314588867378 * sigmoid(x0 + x1 + x2 + x4 + x5)
  + 2.1339726561913768 * sigmoid(x0 + x1 + x6)
  -0.49562529077183975 * sigmoid(x0 + x4 + x6)
  + 5.2147434454399475 * sigmoid(x0 + x3 + x4 + x6)
  -2.890797352663095 * sigmoid(x5 + x6)
  + 0.10933021175693726 * sigmoid(x0 + x5 + x6)
  -1.6844056248405446 * sigmoid(x1 + x2 + x5 + x6)
  -0.18093137034202272 * sigmoid(x1 + x3 + x5 + x6)
  + 0.6607987033451893 * sigmoid(x1 + x7)
  -1.8854921735476415 * sigmoid(x0 + x1 + x3 + x7)
  -1.1169615655906233 * sigmoid(x2 + x5 + x7)
  -0.6844731589452674 * sigmoid(x4 + x6 + x7)
  -0.4231236774571158 * sigmoid(x1 + x2 + x3 + x4 + x6 + x7)
  + 5.763615625891075 * sigmoid(1.0 + x1 + x2 + x3 + x5)
  -0.3138985187519697 * sigmoid(1.0 + x0 + x1 + x4 + x5)
  -1.8910224663455044 * sigmoid(1.0 + x1 + x3 + x4 + x5)
  + 2.1204658352467995 * sigmoid(1.0 + x2 + x3 + x4 + x5)
  + 6.219005597826903 * sigmoid(1.0 + x2 + x3 + x4 + x6)
  -3.740916662914772 * sigmoid(1.0 + x0 + x1 + x3 + x4 + x5 + x6);
   return decision;
}

Offenbar hat der Autor die Formel geändert

Also vielleicht nicht 3 Eingänge (wie in der ursprünglichen Formel), aber immer noch 8... Ich habe das Wesen der neuen Formel noch nicht verstanden.