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

 
Alexey Burnakov:

NS hat sehr gut abgeschnitten.

Random Forest konnte eine solche Aufgabe, bei der es um die Interaktion einer Reihe von Variablen geht, nicht bewältigen. Und die individuelle Signifikanz der einzelnen Prädiktoren war absichtlich null.

Ich sehe keine Anzeichen dafür, dass NS irgendetwas gemeistert hat.

Übermäßiges Lernen ist ein weltweites Übel in der Wissenschaft und insbesondere im Modellbau.

Daher wird ein Fehler für drei Sätze benötigt:

  • Lernsets. Die Art und Weise, wie Rattle es versteht (OOB, Test, Validierung), reicht völlig aus.
  • eine Menge, die in Bezug auf die Daten außerhalb der Trainingsmenge liegt.
  • Eine weitere Menge, die im Sinne von Daten außerhalb der Trainingsmenge liegt.

Die letzten beiden Sets werden bei ihrer Ankunft im Terminal nicht gemischt, die Basen befinden sich hinter der Theke.

Der Fehler sollte bei allen drei Sätzen etwa gleich groß sein. Gleichzeitig müssen Sie die Menge der Prädiktoren festlegen, die Sie beim Training des Modells verwenden.

 
Alexey Burnakov:


Random Forest konnte ein solches Problem, bei dem es um die Interaktion einer Reihe von Variablen geht, nicht lösen. Und die individuelle Signifikanz der einzelnen Prädiktoren war absichtlich null.

Ihre Idee, die Wechselwirkung zwischen den Prädiktoren zu berücksichtigen, ist eine Revolution in der Statistik. Bisher dachte ich, die Interaktion zwischen den Prädiktoren sei schlecht. Nicht nur die Prädiktoren selbst sind in der Regel nicht stationär, sondern wir versuchen auch, die Beziehungen zwischen diesen nicht-stationären Zufallsprozessen zu berücksichtigen.

Beim maschinellen Lernen wird es als obligatorisch angesehen, interagierende Variablen loszuwerden. Darüber hinaus stehen sehr effektive Algorithmen zur Verfügung, z. B. die Hauptkomponentenmethode, die es ermöglicht, Wechselwirkungen zu beseitigen und interagierende Prädiktoren in unabhängige Prädiktoren umzuwandeln.

 
SanSanych Fomenko:

Ich sehe keinen Beweis dafür, dass die NS irgendetwas bewältigt hat.

Übermäßiges Lernen ist ein weltweites Übel in der Wissenschaft und insbesondere im Modellbau.

Daher wird ein Fehler für drei Sätze benötigt:

  • Lernsets. Die Art und Weise, wie Rattle es versteht (OOB, Test, Validierung), reicht völlig aus.
  • eine Menge, die in Bezug auf die Daten außerhalb der Trainingsmenge liegt.
  • Eine weitere Menge, die im Sinne von Daten außerhalb der Trainingsmenge liegt.

Die letzten beiden Sätze werden bei ihrer Ankunft im Terminal nicht gemischt, sondern befinden sich hinter der Theke.

Der Fehler sollte bei allen drei Sätzen etwa gleich groß sein. Allerdings müssen Sie die Menge der Prädiktoren festlegen, die Sie beim Training des Modells verwenden.

Sagen wir es mal so. Auch wenn dies nicht Teil des Auftrags ist. Ich werde eine Validierungsstichprobe erstellen, auf die das trainierte Modell angewendet wird, um die Genauigkeit der Vorhersage zu messen.

Aber auch dies ist nicht notwendig. Beachten Sie, dass ich die Validierung erneut auf der Grundlage des abgeleiteten Musters geschrieben habe.

Dateien:
 

Ein in die Daten eingebettetes Muster:

Количество по полю input_19 output
input_1 input_3 input_5 input_7 input_9 input_11 0 1 сумма предикторов четность
1 1 1 1 1 1 143 6 ИСТИНА
1 1 1 1 1 2 100 7 ЛОЖЬ
1 1 1 1 2 1 121 7 ЛОЖЬ
1 1 1 1 2 2 119 8 ИСТИНА
1 1 1 2 1 1 114 7 ЛОЖЬ
1 1 1 2 1 2 124 8 ИСТИНА
1 1 1 2 2 1 105 8 ИСТИНА
1 1 1 2 2 2 102 9 ЛОЖЬ
1 1 2 1 1 1 101 7 ЛОЖЬ
1 1 2 1 1 2 131 8 ИСТИНА
1 1 2 1 2 1 122 8 ИСТИНА
1 1 2 1 2 2 114 9 ЛОЖЬ
1 1 2 2 1 1 111 8 ИСТИНА
1 1 2 2 1 2 98 9 ЛОЖЬ
1 1 2 2 2 1 123 9 ЛОЖЬ
1 1 2 2 2 2 112 10 ИСТИНА
1 2 1 1 1 1 128 7 ЛОЖЬ
1 2 1 1 1 2 114 8 ИСТИНА
1 2 1 1 2 1 111 8 ИСТИНА
1 2 1 1 2 2 126 9 ЛОЖЬ
1 2 1 2 1 1 143 8 ИСТИНА
1 2 1 2 1 2 95 9 ЛОЖЬ
1 2 1 2 2 1 108 9 ЛОЖЬ
1 2 1 2 2 2 117 10 ИСТИНА
1 2 2 1 1 1 112 8 ИСТИНА
1 2 2 1 1 2 132 9 ЛОЖЬ
1 2 2 1 2 1 92 9 ЛОЖЬ
1 2 2 1 2 2 134 10 ИСТИНА
1 2 2 2 1 1 110 9 ЛОЖЬ
1 2 2 2 1 2 114 10 ИСТИНА
1 2 2 2 2 1 120 10 ИСТИНА
1 2 2 2 2 2 108 11 ЛОЖЬ
2 1 1 1 1 1 109 7 ЛОЖЬ
2 1 1 1 1 2 133 8 ИСТИНА
2 1 1 1 2 1 99 8 ИСТИНА
2 1 1 1 2 2 115 9 ЛОЖЬ
2 1 1 2 1 1 123 8 ИСТИНА
2 1 1 2 1 2 116 9 ЛОЖЬ
2 1 1 2 2 1 131 9 ЛОЖЬ
2 1 1 2 2 2 119 10 ИСТИНА
2 1 2 1 1 1 96 8 ИСТИНА
2 1 2 1 1 2 120 9 ЛОЖЬ
2 1 2 1 2 1 111 9 ЛОЖЬ
2 1 2 1 2 2 99 10 ИСТИНА
2 1 2 2 1 1 132 9 ЛОЖЬ
2 1 2 2 1 2 110 10 ИСТИНА
2 1 2 2 2 1 93 10 ИСТИНА
2 1 2 2 2 2 106 11 ЛОЖЬ
2 2 1 1 1 1 100 8 ИСТИНА
2 2 1 1 1 2 127 9 ЛОЖЬ
2 2 1 1 2 1 127 9 ЛОЖЬ
2 2 1 1 2 2 101 10 ИСТИНА
2 2 1 2 1 1 119 9 ЛОЖЬ
2 2 1 2 1 2 120 10 ИСТИНА
2 2 1 2 2 1 99 10 ИСТИНА
2 2 1 2 2 2 106 11 ЛОЖЬ
2 2 2 1 1 1 133 9 ЛОЖЬ
2 2 2 1 1 2 97 10 ИСТИНА
2 2 2 1 2 1 100 10 ИСТИНА
2 2 2 1 2 2 116 11 ЛОЖЬ
2 2 2 2 1 1 119 10 ИСТИНА
2 2 2 2 1 2 118 11 ЛОЖЬ
2 2 2 2 2 1 102 11 ЛОЖЬ
2 2 2 2 2 2 128 12 ИСТИНА
 
SanSanych Fomenko:

Ich sehe keinen Beweis dafür, dass NS etwas bewältigt hat.

Neuronka löste dieses Problem, indem es das Protokoll mit dem Code von Rattle anfügte. Es gibt einige Änderungen im Code beim Aufruf von Neuron - ich habe die maximale Anzahl der Iterationen erhöht und die Verbindungen entfernt, die von der Ausgabe der Eingabe direkt zur Ausgabe führen und dabei die mittlere Schicht umgehen (skip=TRUE). Denn diese beiden Einschränkungen verderben alles.

Ich habe Validierung auf neue Datei, Fehler in beiden Fällen sind fast 0% (es gibt nur einen Fehler bei der Validierung von zweiten Datei).

Da der NS aber wie eine Blackbox ist, gibt es keine Möglichkeit, die Logik der Lösung zu erkennen. Sie können sich die Gewichte ansehen, den durchschnittlichen absoluten Wert für jede Eingabe bestimmen und ein Diagramm zeichnen. Und man wird wissen, dass 1, 3, 5, 7, 9, 11 wichtiger sind als der Rest. Die übrigen Eingaben werden jedoch aus irgendeinem Grund ebenfalls verwendet; Nullgewichte sind nirgends zu finden. Mit anderen Worten, es stellt sich heraus, dass zunächst gelernt wird, und dann können wir die wichtigen Inputs bestimmen.

Dateien:
 
Dr. Trader:

Neuronka löste dieses Problem, indem es das Protokoll mit dem Code von Rattle anfügte. Es gibt ein paar Änderungen im Code beim Aufruf von Neuron - ich habe die maximale Anzahl der Iterationen erhöht und Verbindungen entfernt, die direkt von der Eingabe zur Ausgabe gehen und die mittlere Schicht umgehen (skip=TRUE). Denn diese beiden Einschränkungen verderben alles.

Ich habe Validierung auf neue Datei, Fehler in beiden Fällen sind fast 0% (es gibt nur einen Fehler bei der Validierung von zweiten Datei).

Da der NS aber wie eine Blackbox ist, gibt es keine Möglichkeit, die Logik der Lösung zu erkennen. Sie können sich die Gewichte ansehen, den durchschnittlichen absoluten Wert für jede Eingabe bestimmen und ein Diagramm zeichnen. Und man wird wissen, dass 1, 3, 5, 7, 9, 11 wichtiger sind als der Rest. Die übrigen Eingaben werden jedoch aus irgendeinem Grund ebenfalls verwendet; Nullgewichte sind nirgends zu finden. Mit anderen Worten, es ist genau andersherum - zuerst lernen wir, und dann identifizieren wir die wichtigen Inputs.

Das ist richtig. Der Rest der Eingänge ist Rauschen. Das ist der Nachteil vieler Methoden - die Rauschvariablen werden nicht vollständig entfernt.

Vielleicht ist es notwendig, länger und in kleineren Schritten zu unterrichten.

Aber im Großen und Ganzen, bravo. NS hat ein schwieriges Problem gelöst.
 
SanSanych Fomenko:

Ich sehe keinen Beweis dafür, dass die NS irgendetwas bewältigt hat.

Übermäßiges Lernen ist ein weltweites Übel in der Wissenschaft und insbesondere im Modellbau.

Daher wird ein Fehler für drei Sätze benötigt:

  • Lernsets. Die Art und Weise, wie Rattle es versteht (OOB, Test, Validierung), ist genau richtig.
  • eine Menge, die in Bezug auf die Daten außerhalb der Trainingsmenge liegt.
  • Eine weitere Menge, die im Sinne von Daten außerhalb der Trainingsmenge liegt.

Die letzten beiden Sets werden bei ihrer Ankunft im Terminal nicht gemischt, die Basen befinden sich hinter der Theke.

Der Fehler sollte bei allen drei Sätzen etwa gleich groß sein. Dabei müssen Sie die Menge der Prädiktoren festlegen, die Sie beim Training des Modells verwenden.

Muss das Offensichtliche bewiesen werden? Während des Trainings verringerten sich die Gewichte der Eingänge, die widersprüchliche Daten enthielten, d.h. wir können sagen, dass die eingehenden widersprüchlichen Daten blockiert werden.

In diesem Fall gibt es kein Problem der Umschulung, da das trainierte Netz nicht für andere Zwecke verwendet wird.

Die Frage ist, ob eine solche Methode sinnvoll ist. Ist das nicht ein bisschen schwere Artillerie?

 
Dmitry Fedoseev:

Die Frage ist, ob eine solche Methode angemessen ist. Ist die Artillerie nicht ein bisschen schwer?

Sie können eine andere Methode versuchen. Aber ich denke, das Mittel passt zum Problem.
 
Alexey Burnakov:
Sie können einen anderen Weg versuchen. Aber ich denke, das Mittel passt zum Problem.
Es erfüllt seine Aufgabe, und zwar gut. Aber ich frage mich immer, ob es nicht etwas Effektiveres und Einfacheres gibt.
 
Dmitry Fedoseev:
Es erfüllt seine Aufgabe, und zwar gut. Aber ich frage mich immer, ob es nicht etwas Effektiveres und Einfacheres gibt.
Bevor Sie es nicht ausprobiert haben, werden Sie es nicht verstehen. Die üblichen Einschlüsse und Ausnahmen werden nicht funktionieren. Was gibt es sonst noch?