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

 
Maxim Dmitrievsky #:
Wir brauchen diese Art von Entwicklung nicht, wir brauchen eine Garage mit Lexus.

ohne den Markt zu verstehen, wird es nicht einmal ein Paket Nudeln geben.

 
mytarmailS #:

Wenn man den Markt nicht versteht, gibt es nicht einmal eine Packung Nudeln.

Der FF ist eine Garage mit Lexus, ich weiß nicht, wie ich es sonst erklären soll.
 
Maxim Dmitrievsky #:
Der FF ist eine Garage mit einem Lexus, ich weiß nicht, wie ich es sonst erklären soll.

Ich muss es Ihnen nicht erklären, ich bin ein großer Junge.

Sie haben eine Meinung, ich habe eine andere.

Meine Meinung ist meine Erfahrung, die kann man nicht mit Worten ändern.

 
mytarmailS #:

Ich muss es nicht erklären, ich bin ein großer Junge.

Du hast eine Meinung, ich habe eine andere.

Meine Meinung ist meine Erfahrung, Worte können sie nicht ändern.

Das Traurige daran ist, dass es keine Meinung ist, sondern eine Tatsache.
Du kannst einen glatzköpfigen Teufel anstelle von FF malen und es passt.
 
Maxim Dmitrievsky #:
Das Traurige daran ist, dass es keine Meinung ist, sondern eine Tatsache.
Man kann einen kahlen Teufel anstelle eines FF zeichnen und ihn entsprechend anpassen

Du merkst gar nicht, was für einen Scheiß du da gerade sagst))))

Als ob der Optimierer in mt, kein Optimierer ist und nicht FF optimiert

 
mytarmailS #:

du merkst gar nicht, was für einen Scheiß du gerade sagst.)

Als ob der Optimierer in mt, kein Optimierer ist und nicht FF optimiert.

Was hat das mit mt zu tun? Haben Sie schon einmal etwas von Produktionsoptimierung gehört? Wenn Sie wirklich voneinander abhängige Prozesse haben, aber die Effizienz verbessern müssen.

Das Gleiche gilt für die sl/tp-Optimierung für ein fertiges Modell.

Und mit FF machen Sie aus einem Müllhaufen einen glatzköpfigen Teufel.

Wirklich, lassen Sie uns aufhören, das ist Unsinn, als ob ich mit einem Schuljungen reden würde.
 

Das TORCH-Buch für R ist endlich erschienen.

Wenn es irgendwelche zukünftigen DL-Zauberer gibt, dann greifen Sie zu.

 
Rorschach #:

Haben Sie diesen Ansatz ausprobiert? (suchen Sie den Abschnitt "Modellinterpretation" etwa in der Mitte der Seite)

Danke für den Link - er wird sehr nützlich sein, wenn ich endlich anfange, in Python zu experimentieren!

Ich nehme an, dies ist eine neue Art der Präsentation des Buches? Gibt es noch anderes Material?

Um die Frage zu beantworten - bei der Blattauslese habe ich nichts direkt verwendet.

Ich habe nicht mit einem Wald von Entscheidungsbäumen gearbeitet, also habe ich eine Reihe von Techniken im Prinzip nicht verwendet, wie vorgeschlagen. Ich habe jedoch etwas Ähnliches verwendet, z. B. wurde die Schätzung der Fehlervarianz eines bestimmten Blattes verwendet, um das Gewicht eines Blattes im Ensemble zu bestimmen.

Die Bedeutung der Prädiktoren für die Split-Schätzung ist auch in CatBoost vorhanden, aber beim Gradient Bousting muss man sein Verständnis der Indikatoren anpassen, da die Bäume abhängig und sequentiell sind. Die Metrik selbst ist recht umstritten, da sie die Baumkonstruktion bewertet und das Greedy-Prinzip nicht für alle Daten gut funktioniert. Ich habe jedoch die Durchschnittswerte von hundert Modellen über 8 Stichprobenintervalle verwendet, um Prädiktoren für CatBoost-Modelle auszuwählen - im Durchschnitt verbesserte diese Methode die Trainingsergebnisse. Das Experiment wurde im Detail in diesem Thread veröffentlicht.

Ich habe die Frequenzkorrelation in der vorgeschlagenen Version nicht ausprobiert - ich habe meine eigene Methode zur Gruppierung von binären Prädiktoren und Blättern erfunden, die es auch erlaubt, zu ähnliche binäre Prädiktoren und Blätter zu verwerfen. Ich denke, dass die Python-Implementierung schneller laufen sollte, da mein Algorithmus nicht optimal ist - sollte zum Verständnis verglichen werden.

Die Idee, stark veränderte Prädiktoren auszuwählen, scheint mich zu beschäftigen, ich sollte es ausprobieren. Aber in dem oben beschriebenen Experiment habe ich es einfach so gemacht, dass ich solche Prädiktoren nicht für das endgültige Training genommen habe. Es wäre besser zu verstehen, wie man die Tendenz einer Variable, sich zu verändern, auf der Grundlage ihres historischen Verhaltens erkennen kann, sowie den Moment, in dem Schwankungen irreversibel zu einer Veränderung im durchschnittlichen Bereich der Wahrscheinlichkeitsverteilung des Prädiktors verschoben wurden. Wir haben Ideen auf dem Papier - wir müssen sie codieren.

Die Bewertung des Beitrags jedes Prädiktors zur Lösung einer bestimmten Zeile in Form einer Visualisierung macht zwar Spaß, ist aber bei einer großen Anzahl von Modellprädiktoren wenig hilfreich. Ich habe jedoch etwas Ähnliches gemacht - ich habe ein Cluster davon hier im Thread gepostet - wo ich die Bedeutung der Lith-Antwort nach Farbe hervorgehoben habe und wie viele Blätter im Modell verwendet wurden, um jede Zeile vorherzusagen. Es stellte sich heraus, dass die meisten Blätter in dem Modell nicht mehr aktiviert werden, d. h. es treten überhaupt keine Muster mehr auf - die wenigsten denken überhaupt darüber nach.

Habe ich eine der dort geäußerten Ideen übersehen? Wenn ja, schreiben Sie bitte genau - ich werde sie beschreiben oder nicht.

Ich habe die Idee der Kodierung kategorischer Merkmale für die Verwendung in neuronalen Netzen nicht verstanden - es gibt einen Verweis auf das frühere Material.

 
Slava #:

Ich habe es verstanden. Verlustfunktionen funktionieren mit Matrizen wie mit Vektoren. An dieser Stelle sind wir noch nicht fertig (wir haben den Achsenparameter nicht hinzugefügt)

Das heißt, in Ihrem Beispiel müssen Sie die Aufgabe Zeile für Zeile lösen.

Vielen Dank für Ihre Aufmerksamkeit

Okay, ich habe verstanden. Aber es gibt ein Problem mit Vektoren, insbesondere mit LOSS_BCE:

double bce(const vector &truth, vector &pred)
{
   double sum = 0;
   pred.Clip(DBL_EPSILON, 1 - DBL_EPSILON);
   const int n = (int)truth.Size();
   for(int i = 0; i < n; ++i)
   {
      sum += truth[i] * MathLog(pred[i]) + (1 - truth[i]) * MathLog(1 - pred[i]);
   }
   return sum / -n;
}

void OnStart()
{
   vector actual_values = {0, 1, 0, 0, 0, 0};
   vector predicted_values = {.5, .7, .2, .3, .5, .6};     // 0.53984624 - keras (correct answer)
   Print(actual_values.Loss(predicted_values, LOSS_BCE));  // 0.6798329317196582 - mql5 API
   Print(bce(actual_values, predicted_values));            // 0.5398464220309535 - custom
}

Auch hier stimmt das API-Ergebnis nicht mit dem erwarteten Ergebnis überein.

 
Aleksey Vyazmikin #:

Danke für den Link - wird sehr nützlich sein, wenn ich endlich anfange, in Python zu experimentieren!

Ich nehme an, dies ist eine neue Art der Präsentation des Buches? Gibt es noch anderes Material?

Um die Frage zu beantworten - bei der Blattauswahl wurde nichts direkt verwendet.

Ich habe nicht mit einem Wald von Entscheidungsbäumen gearbeitet, also habe ich eine Reihe von Techniken im Prinzip nicht verwendet, wie vorgeschlagen. Ich habe jedoch etwas Ähnliches verwendet, z. B. die Schätzung der Fehlervarianz eines bestimmten Blattes, um das Gewicht eines Blattes im Ensemble zu bestimmen.

Die Bedeutung der Prädiktoren für die Split-Schätzung ist auch in CatBoost vorhanden, aber beim Gradient Bousting muss man sein Verständnis der Indikatoren anpassen, da die Bäume abhängig und sequentiell sind. Die Metrik selbst ist recht umstritten, da sie die Baumkonstruktion bewertet und das Greedy-Prinzip nicht für alle Daten gut funktioniert. Ich habe jedoch die Durchschnittswerte von hundert Modellen über 8 Stichprobenintervalle verwendet, um Prädiktoren für CatBoost-Modelle auszuwählen - im Durchschnitt verbesserte diese Methode die Trainingsergebnisse. Das Experiment wurde im Detail in diesem Thread veröffentlicht.

Ich habe die Frequenzkorrelation in der vorgeschlagenen Version nicht ausprobiert - ich habe meine eigene Methode zur Gruppierung von binären Prädiktoren und Blättern erfunden, die es auch erlaubt, zu ähnliche binäre Prädiktoren und Blätter zu verwerfen. Ich denke, dass die Python-Implementierung schneller laufen sollte, da mein Algorithmus nicht optimal ist - sollte zum Verständnis verglichen werden.

Die Idee, stark veränderte Prädiktoren auszuwählen, scheint mich zu beschäftigen, ich sollte es ausprobieren. Aber in dem oben beschriebenen Experiment habe ich es einfach so gemacht, dass ich solche Prädiktoren nicht für das endgültige Training genommen habe. Es wäre besser zu verstehen, wie man die Tendenz einer Variable, sich zu verändern, auf der Grundlage ihres historischen Verhaltens erkennen kann, sowie den Moment, in dem Schwankungen irreversibel zu einer Veränderung im durchschnittlichen Bereich der Wahrscheinlichkeitsverteilung des Prädiktors verschoben wurden. Ich habe Ideen auf dem Papier - ich muss sie codieren.

Die Bewertung des Beitrags der einzelnen Prädiktoren zur Lösung einer bestimmten Zeile in Form einer Visualisierung macht Spaß, ist aber bei einer großen Anzahl von Modellprädiktoren wenig hilfreich. Ich habe jedoch etwas Ähnliches gemacht - ich habe ein Cluster davon hier im Thread gepostet - wo ich die Bedeutung der Lith-Antwort nach Farbe hervorgehoben habe und wie viele Blätter im Modell verwendet wurden, um jede Zeile vorherzusagen. Es stellte sich heraus, dass die meisten Blätter im Modell aufhören, sich zu aktivieren, d. h., es treten überhaupt keine Muster mehr auf - nur wenige Leute denken überhaupt darüber nach.

Habe ich eine der dort geäußerten Ideen übersehen? Wenn ja, schreiben Sie bitte konkret - ich werde sie beschreiben oder nicht.

Ich habe die Idee der Kodierung kategorischer Merkmale für die Verwendung in neuronalen Netzen nicht verstanden - es gibt einen Verweis auf das frühere Material.

Dies ist leicht zu automatisieren und funktioniert ohne menschliches Zutun.

Im letzten Artikel habe ich einen ähnlichen Algorithmus vorgestellt.

Im Wesentlichen geht es darum, Modellfehler herauszufiltern und sie in eine separate Klasse "nicht handeln" zu stecken, besser durch das zweite Modell, das lernt, die Spreu vom Weizen zu trennen.

und nur die Körner bleiben im ersten Modell.

Das ist dasselbe wie mit Baumregeln, nur von der Seite. Aber die Regeln sollten geraubt und miteinander verglichen werden, und da ist das Ergebnis ein verfeinertes TC.

Zum Beispiel die erste Iteration der Auswahl von Körnern aus der Spreu (links von der vertikalen gestrichelten Linie - OOS):

Und hier ist die 10:


Grund der Beschwerde: