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

 
Dr. Trader:

Der beste Weg, dies zu tun, ist die Verwendung eines Waldes, dieses Modell wird eine solche Reihe von Regeln erstellen:


1: DeltaLess350 <= 0,5
2: ZZ_D <= 0
Entscheidung 0

1: DeltaLess350 <= 0,5
2: ZZ_D > 0
3: DeltaMore350 <= 0,5
Entscheidung 0

1: DeltaLess350 <= 0,5
2: ZZ_D > 0
3: DeltaMore350 > 0,5
Entscheidung 1

DeltaLess350 > 0,5
Entscheidung 1


Der Artikel beschreibt, wie man dies in R macht:
https://www.mql5.com/ru/articles/1165

Wählen Sie auf der Registerkarte "Modell" den Wald aus, stellen Sie die Anzahl der Bäume in den Einstellungen auf 1, erstellen Sie ein Modell, und klicken Sie dann auf die Schaltfläche Regeln, um die folgende Liste von Regeln anzuzeigen

Danke für die Antwort, vielleicht lese ich es falsch, aber es scheint, dass das Modell aus der Excel-Formel für die erste (und nachfolgende Zeilen) der Zeile mit den Daten "= WENN(UND(B2=1;D2=1);UND(C2=1;D2=1));1;0)" nicht korrekt ist.

D.h. es ist besser, ein Gerüst für eine klare Logik zu verwenden? Dasselbe wie bei der Merkmalsextraktion, richtig?

Danke für den Artikel - ich werde ihn noch einmal lesen - ich erinnere mich, ihn vor langer Zeit gelesen zu haben, aber jetzt, wo ich etwas mehr weiß, wird er vielleicht klarer.

Hinzugefügt: Das Bild ist interessant, aber die Logik ist offensichtlich nicht erraten... oder doch nicht?
 

Ich habe den Beitrag ein wenig umgeschrieben, indem ich einen Baum statt eines Waldes verwendet habe, damit es praktischer ist. Die Formel sieht in beiden Fällen anders aus, aber die Antwort ist trotzdem richtig.

Wenn die Antwort durch die richtige Kombination von Werten in den Eingabedaten gefunden werden kann, funktioniert der Wald gut, ja. Alle Arten von Operationen wie Addition und Multiplikation funktionieren im Wald nicht.

 
Aleksey Vyazmikin:

es scheint, dass das Modell nicht korrekt ist von Excel solche Formel für die erste (und folgende Zeilen) Zeile mit Daten "=If(OR(AND(B2=1;D2=1);AND(C2=1;D2=1));1;0)"

Ich weiß es nicht. In Excel überprüft - die Waldformel war nur ein paar Mal falsch. Die Baumformel stimmte in allen Fällen überein.

 
Dr. Trader:

Ich habe den Beitrag ein wenig umgeschrieben, indem ich einen Baum statt eines Waldes verwendet habe, damit es praktischer ist. Die Formel sieht in beiden Fällen anders aus, aber die Antwort ist trotzdem richtig.

Wenn die Antwort durch die richtige Kombination von Werten in den Eingabedaten gefunden werden kann, funktioniert der Wald gut, ja. Alle Arten von Operationen wie Addition und Multiplikation funktionieren nicht.

Nun, jetzt hat es sein Ergebnis, aber gibt es eine Möglichkeit, die Bedingungen auf eine Zeile oder eine Funktion zu minimieren, so dass die Korrekturen sofort im Code angewendet werden können? Oder muss ich jede logische Wendung selbst beschreiben und gleichzeitig darauf achten, dass ich bei der Interpretation des Ergebnisses keinen Fehler mache? Gerade wenn die eingehenden Werte in Zehnerschritten gemessen werden, ist das ein sehr zeitaufwändiger Prozess...

 
Dr. Trader:

Ich weiß es nicht. Ich habe es in Excel überprüft - die Waldformel war nur ein paar Mal falsch. Die Baumformel stimmte in allen Fällen überein.

Ja, die Formel aus dem Baum ging durch Ausschluss, nach dem Code zu urteilen, was sich als die richtige Lösung herausstellte.

 

Es ist sogar noch einfacher, da man sich nicht mit Formeln herumschlagen muss. Nach dem Training erhält man ein reguläres R-Modell, mit dem man Vorhersagen für neue Daten machen kann.

Die gesamte Vorhersage wird mit einer Funktion durchgeführt

predict(model, newdata)

model - ein zuvor erstelltes Modell (Baum, Wald, Neuron usw., in R gibt es Hunderte von verschiedenen Modellen). newdata ist eine Tabelle mit neuen Daten für die Vorhersage

 
Dr. Trader:

Es ist sogar noch einfacher, da man sich nicht mit Formeln herumschlagen muss. Nach dem Training erhält man ein reguläres R-Modell, mit dem man Vorhersagen für neue Daten machen kann.

Die gesamte Vorhersage wird mit einer Funktion durchgeführt

model - ein zuvor erstelltes Modell (Baum, Wald, Neuron usw., in R gibt es Hunderte von verschiedenen Modellen). newdata - Tabelle mit neuen Daten für die Vorhersage

Es ist interessant, aber noch nicht ganz klar - ich habe noch nie mit R gearbeitet... Ich sollte es tun, damit ich der Sache auf den Grund gehen kann.

Eine weitere Frage: Wenn die Eingabedaten fehlerhafte Daten enthalten, die rein zufällig sind, kann der Wald/Baum diese dann erkennen? Ist es möglich, die automatische spaltenweise Deaktivierung von Eingabedaten in Bezug auf ihre Aufzählung zu organisieren, einschließlich der Suche nach linkshändigen Daten, um sie auszuschließen?

 

Bei den meisten Wäldern wird einfach ein Mindestdatensatz gefunden, mit dem ein Ziel definiert werden kann. Rauschen und Fehler werden jedoch nicht analysiert, selbst wenn sie zur Verbesserung der Vorhersagegenauigkeit beitragen. Deshalb können wir zum Beispiel nicht einfach eine Reihe von Forex-Indikatoren nehmen und versuchen, Trends vorherzusagen.

Es gibt verschiedene fortgeschrittene Modifikationen des Waldes, sie haben versucht, Rauschen und Fehler und alles, was Sie geschrieben haben, auszusortieren. Die Pakete gbm und xgboost in R zum Beispiel. Sie funktionieren im Allgemeinen gut, sind aber für den Devisenhandel ungeeignet, da man andere Tricks braucht.

 
Aleksey Vyazmikin:

Können Sie mir sagen, welcher Algorithmus für neuronale Netze verwendet werden kann, um die Logik (Neuron) der Spalte "Calc" herauszufinden? Tipp Nummer eins: Wenn Sie auf maschinelles Lernen verzichten können, dann tun Sie es :)

1: Entscheiden Sie sich für den Stichprobenumfang, Ihre Stichprobe ist sehr klein

2. Wählen Sie einfache (lineare) Klassifizierungs-/Regressionsmodelle, die wahrscheinlich für Sie funktionieren werden. Wenn Sie einen großen Fehler erhalten, können Sie versuchen, komplexere (nicht lineare) Modelle zu verwenden. Diese sind in der Alglib-Bibliothek verfügbar (Entscheidungsbäume und -wälder sind ebenfalls verfügbar).

3) Nehmen Sie niemals Ratschläge an, vor allem nicht zur Verwendung von R :))) Es ist an der Zeit, sie aus diesem Forum zu verbannen.

4. Wenn das Problem ohne maschinelles Lernen lösbar ist, sollten Sie es besser nicht verwenden.

 
Dr. Trader:

Bei den meisten Wäldern wird einfach ein Mindestdatensatz gefunden, mit dem ein Ziel definiert werden kann. Rauschen und Fehler werden jedoch nicht analysiert, selbst wenn sie zur Verbesserung der Vorhersagegenauigkeit beitragen. Deshalb können wir zum Beispiel nicht einfach eine Reihe von Forex-Indikatoren nehmen und versuchen, Trends vorherzusagen.

Es gibt verschiedene fortgeschrittene Modifikationen des Waldes, die versuchen, Rauschen und Fehler und alles, was Sie geschrieben haben, herauszufiltern. Die Pakete gbm und xgboost in R zum Beispiel. Sie funktionieren gut als Ganzes, aber sie sind schwach für Forex, man braucht andere Tricks.

Ich will nicht Indikatoren Werte geben, mein Ziel ist es, eine logisch beschriebene Beobachtungen geben (es kann Nachrichten und Verhältnisse der verschiedenen Indikatoren im Raum relativ zueinander sein - in der Regel verwende ich in realen Handel, um Entscheidungen zu treffen), die zuvor mit diesen Indikatoren gebaut und versuchen, falsch zu beseitigen, dh Eingangsdaten werden 0 und 1, oder etwas mehr Ziffern auf einer Eingabe (hier ist die Frage, wenn ich die Wirkung von Wochentagen sehen wollen, dann würde ich besser machen verschiedene Eingangspaare

Und hat schon einmal jemand einen Vergleich verschiedener Algorithmen hinsichtlich ihrer Effizienz angestellt, wenn die Antwort bekannt ist, wie in meinem Beispiel, aber für komplexere Aufgaben?