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

 
Ich habe eine Frage an Yuri. Wenn ich bei der Berechnung der Ergebnisse eines trinären Modells die Daten manuell eingebe, zeigen die Ergebnisse manchmal ein Bindestrichsymbol an. D.h. ich habe 0, 1 und einen Bindestrich. Was bedeutet also ein Gedankenstrich?
 

Ich habe versucht, den Zickzackkurs zu klassifizieren, ja, aber nicht den Pivot-Punkt, sondern den gesamten Trend, den der Zickzackkurs zeigt. Das Ergebnis ist 0, wenn der aktuelle Zickzackkurs nach unten geht, und 1, wenn der Trend nach oben geht. Die zz-Trends sehen ziemlich unausgewogen aus, aber das ist nicht der Grund, warum ich sie aufgegeben habe. Was mir nicht gefällt, ist, dass das Modell eine sehr hohe Präzision erfordert. Wenn das Modell den einen oder anderen Fehler im Trend macht und einen Handel zum falschen Zeitpunkt umkehrt, und sei es auch nur um einen Balken, führt dies in der Regel zu zusätzlichen Verlusten und dazu, dass jedes Mal eine Provision für den Spread zu zahlen ist. Das Modell ist nur dann profitabel, wenn es den Handel eröffnet, das Ende des Trends abwartet und dann umkehrt. Ohne einen einzigen Fehler innerhalb jedes Trends.

Wenn er den nächsten Balken und nicht den Trend vorhersagt, bedeutet jeder Fehler einen geringeren Geldverlust.


Ich mache kein Balancing, bei der Vorhersage des nächsten Balkens ist die Streuung der Klassen ohnehin minimal, ich denke nicht, dass +-10% einer Klasse die Ergebnisse stark beeinflussen werden.

In dem Artikel heißt es, dass der Ausgleich durch eine korrekte Modellschätzung (F-Maß oder R-Präzision) ersetzt werden kann. Dies ist das russische Pendant zu dem Artikel, den SanSanych vorhin verlinkt hat.

http://bazhenov.me/blog/2012/07/21/classification-performance-evaluation.html

...

Diese Metrik [Präzision] weist jedoch eine Besonderheit auf, die es zu berücksichtigen gilt. Es gibt allen Dokumenten das gleiche Gewicht, was falsch sein könnte, wenn die Verteilung der Dokumente in der Trainingsmenge zu einer oder mehreren Klassen verschoben ist. In diesem Fall verfügt der Klassifikator über mehr Informationen über diese Klassen und wird folglich innerhalb dieser Klassen angemessenere Entscheidungen treffen. In der Praxis führt dies zu einer Situation, in der Sie z. B. eine Genauigkeit von 80 % haben, aber innerhalb einer bestimmten Klasse arbeitet der Klassifikator überproportional und definiert nicht einmal ein Drittel der Dokumente richtig.

Ein Ausweg aus dieser Situation besteht darin, den Klassifikator auf einem speziell trainierten, ausgewogenen Korpus von Dokumenten zu trainieren. Der Nachteil dieser Lösung ist, dass Sie dem Klassifikator Informationen über die relative Häufigkeit der Dokumente entziehen. Diese Informationen können, wenn alle anderen Dinge gleich sind, sehr nützlich sein, um die richtige Entscheidung zu treffen.

Eine andere Lösung besteht darin, den Ansatz für die formale Qualitätsbewertung zu ändern.

Genauigkeit und Vollständigkeit

Precision und Recall sind Metriken, die bei der Bewertung der meisten Informationsextraktionsalgorithmen verwendet werden. Manchmal werden sie selbst verwendet, manchmal dienen sie als Grundlage für abgeleitete Metriken wie das F-Maß oder die R-Präzision. Das Wesen von Genauigkeit und Vollständigkeit ist sehr einfach.

Die Genauigkeit eines Systems innerhalb einer Klasse ist der Anteil der Dokumente, die tatsächlich zu dieser Klasse gehören, bezogen auf alle Dokumente, die das System dieser Klasse zugeordnet hat. Vollständigkeit ist der Anteil der Dokumente, die zu der vom Klassifikator gefundenen Klasse gehören, im Verhältnis zu allen Dokumenten dieser Klasse in der Teststichprobe.

....

F-Maßnahme

Es liegt auf der Hand, dass es umso besser ist, je höher die Genauigkeit und Vollständigkeit ist. Aber im wirklichen Leben sind maximale Genauigkeit und Vollständigkeit nicht gleichzeitig zu erreichen, und wir müssen ein Gleichgewicht finden. Deshalb würden wir gerne eine Art Metrik haben, die Informationen über die Genauigkeit und die Vollständigkeit unseres Algorithmus kombiniert. In diesem Fall ist es für uns einfacher zu entscheiden, welche Implementierung in die Produktion aufgenommen werden soll (diejenige, die mehr hat, ist besser). Dies ist genau eine solche Metrik - F-Maß1.

DasF-Maß istein harmonisches Mittelzwischen Genauigkeit und Vollständigkeit. Sie tendiert gegen Null, wenn die Genauigkeit oder Vollständigkeit gegen Null tendiert.


usw. Der Artikel enthält eine Reihe schöner Grafiken.

 
Dr. Trader:

Ich habe versucht, den Zickzackkurs zu klassifizieren, ja, aber nicht den Pivot-Punkt, sondern den gesamten Trend, den der Zickzackkurs zeigt. Das Ergebnis ist 0, wenn der aktuelle Zickzackkurs nach unten geht, und 1, wenn der Trend nach oben geht. Die zz-Trends sehen ziemlich unausgewogen aus, aber das ist nicht der Grund, warum ich sie aufgegeben habe. Was mir nicht gefällt, ist, dass das Modell eine sehr hohe Präzision erfordert. Wenn das Modell den einen oder anderen Fehler im Trend macht und einen Handel zum falschen Zeitpunkt umkehrt, und sei es auch nur um einen Balken, führt dies in der Regel zu zusätzlichen Verlusten und der Zahlung einer Provision für den Spread. Das Modell ist nur dann profitabel, wenn es den Handel eröffnet, das Ende des Trends abwartet und dann umkehrt. Ohne einen einzigen Fehler innerhalb jedes Trends.

Wenn er den nächsten Balken und nicht den Trend vorhersagt, bedeutet jeder Fehler einen geringeren Geldverlust.


Ich mache kein Balancing, für die nächste Balkenvorhersage ist die Streuung der Klassen minimal und ich denke nicht, dass +-10% einer Klasse das Ergebnis stark beeinflussen werden.

In dem Artikel heißt es, dass der Ausgleich durch eine korrekte Modellschätzung (F-Maß oder R-Präzision) ersetzt werden kann. Dies ist das russische Pendant zu dem Artikel, den SanSanych vorhin verlinkt hat.

http://bazhenov.me/blog/2012/07/21/classification-performance-evaluation.html

usw., in dem Artikel finden sich mehrere schöne Grafiken

Ein kleiner Ratschlag. Jedes System führt zu einem einzigen Phänomen. Es ist ein Signal!!! Die Gesamtheit aller Bedingungen führt zu einer vollendeten Tatsache, die den Entscheidungspunkt darstellt. Jedes System, egal wie komplex es ist, führt also zu Kauf- oder Verkaufssignalen. Es wird daher empfohlen, sie zu klassifizieren. Kreuzung der Waggons. Die Kreuzung erfolgte, es gibt ein Kaufsignal, die Kreuzung in der Gegenrichtung, es gibt ein Verkaufssignal, und es gibt kein drittes. Um eine korrekte Klassifizierung zu erreichen, sollten wir sie also getrennt für Verkauf und Kauf durchführen. So können wir ein Trainingsintervall verdoppeln und das Generalisierungsniveau beibehalten. Am Anfang kamen meine Modelle selten über 40-50% Generalisierung hinaus, aber nachdem ich verstanden hatte, was ich mit den Daten machen sollte. Welchen Sinn hat das nach der Klassifizierung erhaltene Modell? Mit denselben Daten erhalte ich jetzt Modelle, die nicht unter 70 % liegen, im Durchschnitt 80-90 %, und in Zukunft liegen die Fehler bei unbekannten Daten bei etwa 1-2 von 10-12. Das reicht völlig aus, um Geld zu verdienen. Aber ich nehme 30% des Trainingsintervalls als Konfidenzintervall. D.h. ich nehme 100 Kaufsignale und 100 Verkaufssignale und innerhalb von 30 oder 50 Signalen können Sie arbeiten, ohne das Modell neu zu trainieren. In den ersten Versionen des Prädiktors wurden 6 Eingaben in etwa 40 Minuten optimiert, was nicht sehr bequem war, und jetzt schafft er 9 Eingaben in 10 Minuten. Und das hat die Qualität des Modells nur erhöht. Das Problem ist nun, wo man so viele Eingänge findet. Aber wir tappen nicht im Dunkeln. Wir haben dem Prädiktor noch etwas zu bieten :-)
 
Mihail Marchukajtes:
Ich habe eine Frage an Yuri. Wenn ich bei der Berechnung der Ergebnisse eines trinären Modells die Daten manuell eingebe, zeigen die Ergebnisse manchmal ein Bindestrichsymbol an. D.h. ich habe 0, 1 und einen Bindestrich. Bedeutet das ein Bindestrich?

Dies entspricht dem berühmten sokratischen Satz "Ich weiß, was ich nicht weiß". Der ternäre Klassifikator, der mit einem Minus antwortet, sagt, dass es in der Trainingsmenge keine Beispiele gab, die dem zu klassifizierenden Muster ähnlich sind, und er es daher keiner Klasse eindeutig zuordnen kann, d.h. er kann keine positive Antwort auf das vorgelegte Muster geben. Er gibt ehrlich zu, dass es ihm in einigen Wissensbereichen an Kompetenz mangelt, anstatt mit selbstgefälliger Miene zu versuchen, auf Fragen, auf die er keine Antwort weiß, positiv zu antworten.

 
Yury Reshetov:

Es ist dasselbe wie der berühmte sokratische Satz "Ich weiß, was ich nicht weiß". Ein ternärer Klassifikator, der mit einem Minus antwortet, sagt uns, dass es in der Trainingsstichprobe keine Beispiele gab, die dem zu klassifizierenden Muster ähnlich sind, so dass er es nicht eindeutig klassifizieren kann, d.h. er kann keine bejahende Antwort auf das vorgelegte Muster geben.

Hm. Sagen Sie mir, ob es in absehbarer Zeit eine Möglichkeit gibt, ein ternäres Modell in eine Datei zu entladen, um es später in MKUL zu verwenden? So gut wie binär, aber wenn man es von Hand eingibt, besteht die Möglichkeit, dass man einen Fehler macht und so weiter.....
 
Mihail Marchukajtes:
Hm. Nun, ich verstehe... Gibt es in absehbarer Zeit eine Möglichkeit, ein ternäres Modell in eine Datei hochzuladen, damit man es später in MKUL verwenden kann? Und wenn Sie die Daten von Hand eingeben, besteht die Möglichkeit, dass Sie einen Fehler machen und so weiter.....
Ich arbeite gerade daran. D.h. der Codegenerator ist noch nicht fertig und gibt im Moment nur die Quellen eines der binären Klassifikatoren und nicht des gesamten ternären Klassifikators aus.
 
Yury Reshetov:

Dasselbe, was der berühmte Satz von Sokrates "Ich weiß, was ich nicht weiß" bedeutet. Der ternäre Klassifikator, der mit einem Minus antwortet, sagt, dass es in der Trainingsstichprobe keine Beispiele gab, die dem zu klassifizierenden Muster ähnlich sind, so dass er es keiner Klasse eindeutig zuordnen kann, d.h. er kann das vorgelegte Muster nicht bejahen. Ehrlich zuzugeben, dass er in einigen Wissensbereichen nicht richtig kompetent ist, anstatt mit selbstgefälliger Miene zu versuchen, auf Fragen, auf die er keine Antwort weiß, positiv zu antworten.

Verstehe ich das auf dem beigefügten Bild richtig? Links ist ein binärer Klassifikator, rechts ein ternärer Klassifikator (der weiße Bereich ist "minus")

Wenn ja, ich denke, die Idee ist gut, aus irgendeinem Grund habe ich nicht gesehen, es vor, können Sie bitte empfehlen einige Artikel über die ternäre Klassifikator?



Ich habe das später fertiggestellt:

Intuitiv ist diese Aufgabe recht einfach. Angenommen, es gibt 2 Prädiktoren (X und Y), das bedeutet, dass wir im 2-dimensionalen Raum arbeiten müssen (wie auf den Abbildungen oben). Dann müssen wir einen solchen 2-dimensionalen Raum umschließen, der alle Klassen "kaufen" (blaue Füllung) umfasst. Umschließen Sie dann ein zweites Feld, das alle "Verkaufsklassen" (rot) enthält. Die beiden eingezäunten Flächen dürfen sich nicht überschneiden. Um neue Daten zu klassifizieren, schauen Sie einfach, in welchen umzäunten Bereich der gewünschte Punkt fällt. Wenn es nirgendwo hinkommt (weiß auf dem rechten Bild) - dann ist es klar, dass das Modell nichts über diesen Punkt aussagen kann und der Handel im Moment nicht ausgeführt werden sollte.

Bei 3 Prädiktoren ergibt sich ein dreidimensionaler Raum, in dem die Klassen von einigen dreidimensionalen volumetrischen Formen umschlossen werden. Je mehr Prädiktoren, desto mehrdimensionaler die Formen.

Gibt es solche Modelle? Normalerweise finden Klassifizierer eine Art Hyperebene im Raum, die die Klassen trennt. Aber hier brauchen wir zwei geschlossene Hyperfiguren.

 

Mihail Marchukajtes:

...

In den ersten Versionen des Prädiktors wurden 6 Eingaben in etwa 40 Minuten optimiert, was extrem unbequem war, aber jetzt schaffen es 9 Eingaben in 10 Minuten. Und das hat die Qualität des Modells nur erhöht. Das Problem ist nun, wo man so viele Eingänge findet. Aber wir tappen nicht im Dunkeln. Wir haben dem Prognostiker noch etwas zu bieten :-)
Ja, auch ich versuche, Kauf/Verkauf streng zu klassifizieren. Aber woher haben Sie die ursprünglichen 6 Eingänge, haben Sie sie einfach von einer bekannten Strategie übernommen? Ein angemessener Input ist eines der wichtigsten Dinge. Im Gegenteil, ich habe Tausende von Einträgen (Preise und Indikatoren über hundert Balken) und muss sie aussieben und ein paar Dutzend übrig lassen, weil jedes Modell bei so vielen Eingaben überfordert ist.
 
Dr. Trader:

Nach dem beigefügten Bild zu urteilen, habe ich den Punkt richtig verstanden?


Binärer Klassifikator auf der linken Seite; ternärer Klassifikator auf der rechten Seite (der weiße Bereich ist "minus")

Wenn es primitiv für Dummies ist, reicht es als visuelle Hilfe.

Dr. Trader:
Wenn ja, ich denke, es ist eine gute Idee, aus irgendeinem Grund habe ich nicht über sie vor, können Sie bitte empfehlen einige Artikel über die ternäre Klassifikator?

Wenn Google nicht gesperrt ist, können Sie nach dem Begriff "ternary classifier machine learning" suchen.

 
Yury Reshetov:

Wenn Sie nicht von Google gebannt sind, können Sie nach "ternary classifier machine learning" suchen.

Mit anderen Worten: "Suchen Sie den ersten Google-Link, der zu meiner Website führt" :)

Ich habe es gefunden, Sie haben einen Ausschuss von zwei Modellen, es ist nicht das, was ich verstanden und oben geschrieben habe.