Bayes'sche Regression - Hat jemand einen EA mit diesem Algorithmus erstellt? - Seite 26

 
СанСаныч Фоменко:

Ja, das habe ich... Ich weiß es nicht mehr...

Wenn es um den Prüfer geht, ist das meiner Meinung nach das Problem.

Wir nehmen eine Probe und verwenden den Tester, um zum Beispiel den Gewinnfaktor zu berechnen. Dann nehmen wir eine weitere Stichprobe und erhalten einen neuen Gewinnfaktorwert. Insgesamt erhalten wir zwei Zahlen. Sind diese beiden Zahlen die Grundlage für statistische Schlussfolgerungen? Diese Zahlen haben überhaupt keine Bedeutung.

Sie muss gelöst werden und wird anders gelöst.

Es wird eine Probe genommen. Aus dieser Stichprobe wird eine Teilmenge nach dem Zufallsprinzip ausgewählt und als Gewinnfaktor auf sie angerechnet. Dann wird wieder eine Zufallsstichprobe genommen und so weiter, zum Beispiel 1000 Mal. Sie erhalten 1000 Gewinnfaktoren. Dieser Satz kann bereits als Grundlage für statistische Schlussfolgerungen dienen.

Übrigens schließt diese Methode den Einsatz eines Testers, einer Demo...

SS, guten Tag!

Eine Probe wovon? Deals?

Ich verstehe, worauf Sie hinauswollen - Schätzung der Quantile von Stichprobenstatistiken nach Bootstrap-Typ.

Aber die Frage bleibt, wenn die TS auf die gesamte verfügbare Stichprobe angepasst wird, dann wird diese Methode zeigen, was wir bereits wissen, nämlich dass der Gewinnfaktor ach so gut ist.

In meinem Blog werde ich die Frage ein wenig anders angehen. Erstens, Training mit k-facher Kreuzvalidierung; nehmen Sie 5 Teilmengen (in meinem Fall werden es Daten von 5 Währungspaaren sein) und Sie erhalten ein interessantes Experiment: Training des Modells auf 4 Paaren und Test auf dem 5. Ich möchte dieses Experiment 5 Mal wiederholen. Aber das ist noch nicht alles. Ursprünglich ging es mir nur darum zu zeigen, dass Devisen prädiktiv sind. Die m-besten Modelle (auf dem Kreuzvalidierungs-Cutoff) bestehen also die Validierung einer großen Stichprobe, die die Maschine noch nicht gesehen hat. Eine weitere Eigenschaft der Validierungsstichprobe besteht darin, dass sie die Preise zeitlich getrennt in der Zukunft aggregiert. Ich erwarte eine Matrix von 100 * 18 mit Validierungsergebnissen für die 100 besten Modelle für 18 vorhergesagte Ausgangsvariablen (von 2 bis 724 Minuten in die Zukunft), z. B. nach dem R^2-Kriterium. Dadurch wird sofort deutlich, ob meine "Boxen" eine bessere Vorhersage als der Durchschnitt liefern.

Und wenn es einen Sponsor für meine Selbstentdeckung gäbe, könnte man eine Amazon-Cloud mieten und das Experiment 1.000 Mal wiederholen, wobei jedes Mal ein anderer Trainings- und Validierungssatz erzeugt wird. Und dann gäbe es eine dreidimensionale 1000 * 100 * 18-Matrix, die es Ihnen ermöglichen würde, den Standardfehler der R^2-Metrik für die besten Modelle und für verschiedene Ziele zu schätzen. Aber das ist schon dick aufgetragen.

Ich will damit sagen, dass wir mit zukünftigen Daten testen sollten (oder mit Daten aus der Vergangenheit, aber zeitlich deutlich getrennt), und alles wird gut sein.

 
Alexey Burnakov:

CC, guten Tag!

Eine Auswahl von was? Transaktionen?

Ich verstehe, worauf Sie hinauswollen - Schätzung der Quantile von Stichprobenstatistiken nach Bootstrap-Typ.

Aber die Frage bleibt, wenn die TS auf die gesamte verfügbare Stichprobe angepasst wird , dann wird diese Methode zeigen, was wir bereits wissen, nämlich dass der Gewinnfaktor ach so gut ist.

In meinem Blog werde ich die Frage ein wenig anders angehen. Erstens, Training mit k-facher Kreuzvalidierung; nehmen Sie 5 Teilmengen (in meinem Fall werden es Daten von 5 Währungspaaren sein) und Sie erhalten ein interessantes Experiment: Training des Modells auf 4 Paaren und Test auf dem 5. Ich möchte dieses Experiment 5 Mal wiederholen. Aber das ist noch nicht alles. Ursprünglich ging es mir nur darum zu zeigen, dass Devisen prädiktiv sind. Die m-besten Modelle (auf dem Kreuzvalidierungs-Cutoff) bestehen also die Validierung einer großen Stichprobe, die die Maschine noch nicht gesehen hat. Eine weitere Eigenschaft der Validierungsstichprobe besteht darin, dass sie die Preise zeitlich getrennt in der Zukunft aggregiert. Ich erwarte eine Matrix von 100 * 18 mit Validierungsergebnissen für die 100 besten Modelle für 18 vorhergesagte Ausgangsvariablen (von 2 bis 724 Minuten in die Zukunft), z. B. nach dem R^2-Kriterium. Dadurch wird sofort ersichtlich, ob meine "Boxen" bessere Vorhersagen als der Durchschnitt machen.

Und wenn es einen Sponsor für meine Selbstentdeckung gäbe, könnte man eine Amazon-Cloud mieten und das Experiment 1.000 Mal wiederholen, wobei jedes Mal ein anderer Trainings- und Validierungssatz erzeugt wird. Und dann gäbe es eine dreidimensionale 1000 * 100 * 18-Matrix, die es Ihnen ermöglichen würde, den Standardfehler der R^2-Metrik für die besten Modelle und für verschiedene Ziele zu schätzen. Aber das ist schon dick aufgetragen.

Ich will damit sagen, dass Sie mit Daten aus der Zukunft (oder aus der Vergangenheit, aber zeitlich deutlich getrennt) testen müssen, und das wird schon klappen.

Das Schlüsselwort Ihres Beitrags ist rot hervorgehoben.

Die Überanpassung (Overfitting) eines Modells ist ein methodisches Problem der gesamten Wissenschaft: Ein überangepasstes Modell (egal in welchem Wissenszweig) berücksichtigt einige Besonderheiten in den Trainingsdaten, die außerhalb der Trainingsdaten nicht gefunden werden. Dabei versäumt es das Modell, bestimmte Muster zu erfassen, die in der Allgemeinbevölkerung üblich sind.

Meines Erachtens wird dieses Problem weder durch die Modelle selbst noch durch statistische Testverfahren gelöst: Sie stellen richtig fest, dass übertrainierte Ergebnisse gerechtfertigt sind. Der Versuch, in meinen Händen Modell-"Vergröberungstechniken" anzuwenden, hat zu keinen Ergebnissen geführt.

Meines Erachtens wird das Problem des Übertrainings ausschließlich durch den Eingabedatensatz verursacht. Auf einer intuitiven Ebene: Stehen die Rohdaten (Prädiktoren) im Zusammenhang mit der Variablen oder nicht? Der Extremfall - überhaupt keine zu haben - kommt für mich nicht in Frage. Zwischendurch: Manche tun es, manche nicht. Aus persönlicher Erfahrung ist es durchaus möglich, dass Prädiktoren, die für die Zielvariable nicht relevant sind, Prädiktoren, die für die Zielvariable relevant sind, "zum Schweigen bringen". Wenn es Ihnen gelungen ist, die unangenehmsten verrauschten Prädiktoren manuell auszusortieren, dann beginnen die Algorithmen zur Prädiktorenerkennung irgendwann zu funktionieren.

Die Zahlen lauten wie folgt. Ich habe etwa 30 Prädiktoren aus der anfänglichen Menge von 50-200 nach meinen eigenen Methoden ausgewählt. Diese 30 Items erzeugen keine übertrainierten Modelle, d.h. die Effektivität auf die Stichprobe von Training, AOVA, Test und Validierung ist ungefähr gleich. Dann wähle ich mit Hilfe von Paketen (ich verwende varSelRF, andere sind auch möglich) Prädiktoren mit einem gleitenden Fenster aus, etwa 300-500 Balken. Ich erhalte eine Arbeitsgruppe von 10-15 Prädiktoren. Während sich das Fenster bewegt, ändert sich die Zusammensetzung der Prädiktoren. Jeder der resultierenden Sätze von Prädiktoren führt auch nicht zu Übertraining, sondern erhöht die Leistung von 5 % auf 10 %. Bei Klassifizierungsaufgaben liegt der Fehler bei etwa 20 %.

 
СанСаныч Фоменко:


Meines Erachtens wird das Problem des Überlernens ausschließlich durch den Eingabedatensatz verursacht. Auf einer intuitiven Ebene: ob die Rohdaten (Prädiktoren) für die Variable relevant sind oder nicht. Den Extremfall - gar keine zu haben - ziehe ich nicht in Betracht. Dazwischen: Manche tun es, manche nicht. Aus persönlicher Erfahrung ist es durchaus möglich, dass Prädiktoren, die für die Zielvariable nicht relevant sind, Prädiktoren, die für die Zielvariable relevant sind , "zum Schweigen bringen". Wenn es Ihnen gelungen ist, die unangenehmsten verrauschten Prädiktoren manuell auszusortieren, dann beginnen die Algorithmen zur Prädiktorenerkennung irgendwann zu funktionieren.

Die Zahlen lauten wie folgt. Ich habe etwa 30 Prädiktoren aus der anfänglichen Menge von 50-200 nach meinen eigenen Methoden ausgewählt. Diese 30 Items erzeugen keine übertrainierten Modelle, d.h. die Effektivität bei den Trainings-, AOVA-, Test- und Validierungsstichproben ist ungefähr gleich. Dann wähle ich mit Hilfe von Paketen (ich verwende varSelRF, andere sind auch möglich) Prädiktoren mit einem gleitenden Fenster aus, etwa 300-500 Balken. Ich erhalte eine Arbeitsgruppe von 10-15 Prädiktoren. Während sich das Fenster bewegt, ändert sich die Zusammensetzung der Prädiktoren. Jeder der resultierenden Sätze von Prädiktoren führt auch nicht zu Übertraining, sondern erhöht die Leistung von 5 % auf 10 %. Bei Klassifizierungsaufgaben liegt der Fehler bei etwa 20 %.

Wie Sie sagten, können Sie das Rauschen durch die Auswahl von Variablen bekämpfen. Aber liege ich richtig, wenn ich sage, dass verrauschte Daten die Auswahl guter Variablen verhindern und diese im Voraus durch eine Euristik gefunden und entfernt werden müssen?

Und noch eine Frage. Sie verwenden eine Art Entscheidungswald, wie ich aus dieser Abkürzung entnommen habe (ich selbst habe eine solche Methode nicht verwendet).

Jeder Entscheidungswaldbaum ist ein gieriger Variablenauswahlalgorithmus + Metrik, der es Ihnen ermöglicht, eine Trennlinie (Cutoff-Grenze) im Bereich der Werte dieser Variable zu ziehen. Auf der Grundlage der "gierigen" Bäume sollten sie also die individuell signifikantesten Variablen auf den obersten Ebenen der Zweige auswählen. Auf den unteren Ebenen des Baums (und zwar bereits ab der zweiten Ebene) erfolgt die Auswahl der nächstwichtigen Variablen bereits auf einer Teilstichprobe von Beobachtungen, die durch die dazwischen liegenden Cut-offs erzeugt wurden. Und in dieser Teilstichprobe suchen wir auch nach der nächstwichtigen Variable (für jede Variable gehen wir alle möglichen Abschneidegrenzen durch und wählen die beste aus, für die die Metrik der Relevanz der Variable berechnet wird). Da hier aber bereits mit einer Teilstichprobe von Beobachtungen gearbeitet wird, stellt sich heraus, dass im Allgemeinen die bedingte Verteilung zum Tragen kommt: Variable Nr. 18 ist in Teilstichprobe Nr. 4 am besten, wenn zuvor Variable Nr. 2 verwendet wurde. Die Bedeutung der Variablen hängt also mit zunehmender Tiefe des Baumes immer stärker von den oben verwendeten Variablen ab.

Nach den Vorstellungen der Autoren sollten die Rauschvariablen weggelassen werden. ABER: Der gierige Charakter des Ansatzes führt dazu, dass z.B. Variablen, die auf Ebene 1 abgelehnt werden, in Verbindung mit anderen möglichen Variablen auf einer anderen möglichen Ebene 2 ebenfalls einen signifikanten Gewinn in der Zielmetrik ergeben können, was an sich schon überzogen ist. Im Extremfall kann es auch vorkommen, dass zwei unabhängige Variablen, von denen jede in Bezug auf die Zielvariable ein Rauschen darstellt, eine solche gemeinsame Verteilung mit der Zielvariable ergeben, dass sie zu einer signifikanten Interaktion werden. Ein gieriges Modell wird dies nachschlagen, aber es kommt selten vor, ich meine diese Konfiguration von Daten.

Was meinen Sie dazu?

 
Ich habe bereits 5 Jahre meines Lebens und über eine Million Rubel investiert, und bis heute ist nichts dabei herausgekommen.
 
Alexey Burnakov:

Sie können das Rauschen durch die Auswahl von Variablen bekämpfen, wie Sie sagten. Aber liege ich richtig, wenn ich sage, dass verrauschte Daten uns daran hindern, gute Variablen auszuwählen, und wir sie vorher mit Hilfe von Euristiken finden und entfernen müssen?

Ganz genau.

Und noch eine Frage. Sie verwenden eine Art Entscheidungswald, wie ich diesem Akronym entnehme (ich selbst habe eine solche Methode nicht verwendet).

Der Wald als Beispiel, aber das gewählte Modell des Problems, wenn verrauschte Variablen normale Variablen "zum Schweigen bringen", löst das Problem nicht: Variablenauswahl ist ein unabhängiges Problem.

 
Mikhail Gorenberg:
Ich habe bereits 5 Jahre meines Lebens und über eine Million Rubel investiert, und bis heute ist nichts dabei herausgekommen.
Beginnen Sie mit Signalen und lernen Sie, wie Sie profitable Signale auswählen...
 
Mikhail Gorenberg:
Ich habe bereits 5 Jahre meines Lebens und über eine Million Rubel investiert, und bis heute ist nichts dabei herausgekommen.
Kein Wunder, dass Sie kein Botaniker in Sachen Quantile, Kreuzbewertungen und Bootstraps sind.
 
Mikhail Gorenberg:
Bitte beantworten Sie mir eine Frage: Wer von Ihnen verdient Geld mit Forex? Ich habe bereits 5 Jahre meines Lebens und mehr als eine Million Rubel investiert, und bisher ist nichts dabei herausgekommen.

Am Ende hatte ich ungefähr Null (vielleicht ein kleines Plus). Alle meine Unternehmungen sind durch Gier ruiniert worden.

Selbst wenn Sie einen profitablen Handelsroboter haben (ich habe einen) - ich meine wirklich profitabel und beständig - wenn er funktioniert und Sie monatelang auf Ergebnisse warten, sieht es so aus, als ob 30% Wachstum nicht genug sind. Und dann geht es noch weiter. Das heißt, selbst beim vollautomatischen Handel, bei dem die Risiken berechnet werden und der maximale Drawdown kontrolliert wird, fühle ich mich psychologisch nicht wohl.

Ich habe mich daher für die Verwendung von Quantilen entschieden.

PS: Wenn ich ein gutes automatisiertes Handelssystem entwickle, werde ich es für alle zugänglich machen. Und ich werde es an jemanden mit Geld vermieten.

 
СанСаныч Фоменко:

Sie können das Rauschen durch die Auswahl von Variablen bekämpfen, wie Sie sagten. Aber liege ich richtig, wenn ich sage, dass verrauschte Daten uns daran hindern, gute Variablen auszuwählen, und wir sie vorher mit Hilfe von Euristiken finden und entfernen müssen?

Ganz genau.

Und noch eine Frage. Sie verwenden eine Art Entscheidungswald, wie ich aus diesem Akronym schließe (ich selbst habe eine solche Methode nicht verwendet).

Wald als Beispiel, aber das gewählte Modell des obigen Problems, bei dem die Rauschvariablen die normalen Variablen "übertönen", löst das Problem nicht: Die Variablenauswahl ist ein unabhängiges Problem.

Warum übertönt das Rauschen das Signal? Das ist mir nicht ganz klar.

Wenn nämlich das Modell selbst eine Merkmalsregulierung enthält, werden alle Rauschdaten nach dem Vergleich ihrer Auswirkungen auf die Zielvariable ignoriert. Wenn das Modell keinen Schutz vor Übertraining bietet (z. B. wurde keine untere Schwelle für die Anzahl der Beobachtungen im Endknoten des Baums festgelegt), wird das gesamte Rauschen verwendet. Aber auch im Random Forest ist das Problem gelöst.

Vielleicht können Sie Ihre Idee etwas genauer erläutern?

 
Alexey Burnakov:

Warum stört das Rauschen das Signal? Das ist für mich nicht ganz klar.

Wenn das Modell selbst eine Merkmalsregulierung enthält, werden alle Rauschdaten nach dem Vergleich ihrer Auswirkungen auf die Zielvariable ignoriert. Wenn das Modell keinen Schutz vor Übertraining bietet (z. B. wurde keine untere Schwelle für die Anzahl der Beobachtungen im Endknoten des Baums festgelegt), wird das gesamte Rauschen verwendet. Aber auch im Random Forest ist das Problem gelöst.

Vielleicht könnten Sie Ihre Idee etwas genauer erläutern?

Warum stört das Rauschen das Signal? Das ist mir nicht ganz klar.

Ich weiß es nicht.

Ich habe ein Programm, das ein Maß für das Verhältnis zwischen dem Prädiktor und der Zielvariablen berechnet. Es ist ein abstrakter Wert.

Wenn er < 1 ist, handelt es sich um Rauschen.

1-2 - besser nicht damit herumspielen.

über 3 - gut.

über 5 - viel Glück, aber selten.

Wenn es also zu viele Prädiktoren mit einer Punktzahl von weniger als 2 gibt, kann ich keine nützlichen Prädiktoren mit anderen Mitteln als meinen eigenen unterscheiden. Ich weiß nicht, wie das zu interpretieren ist. Wir dürfen nicht vergessen, dass sich die Prädiktoren nicht nur auf die Zielvariable, sondern auch untereinander auswirken. Sehr oft ist nicht nur die Liste der zu löschenden Prädiktoren wichtig, sondern auch die Reihenfolge, in der sie gelöscht werden.

Worauf will ich hinaus?

Das Grundproblem des Handels ist das Problem des Übertrainings (Overfitting), das ein eigenständiges Problem darstellt und nicht von den verwendeten Modellen und Methoden abhängt.