Diskussion zum Artikel "Random-Forest-Vorhersage-Trends" - Seite 11

 
CyberCortex:


Ich beschäftige mich mit sehr spezifischen Dingen, daher bin ich nicht geneigt, über etwas "Allgemeines" zu sprechen.

Also etwas spezifischer.

Es gibt etwa 140 Pakete für maschinelles Lernen in der Caret-Shell - ich verwende bei meiner Arbeit zwei Pakete für Zufallsbaumwälder und ein Paket für Support-Vektor-Maschinen (SVM). Wie Sie sehen, bin ich nicht in der Lage, Verallgemeinerungen für die in R verfügbaren Werkzeuge für maschinelles Lernen zu erstellen.

Außerdem.

Dies ist ein Zweig, der die sehr begrenzte Rattle-Shell verwendet, von der ich in diesem Artikel nur das randomforest-Paket verwendet habe.

Darüber hinaus.

Aus dem besagten Paket verwende ich nur einen Teil der Funktionen in diesem Artikel.

Weiterhin werde ich Ihren Beitrag nur mit diesen Einschränkungen kommentieren, kann aber den Programmcode und die Ergebnisse seiner Verwendung unter meine Worte setzen.

So.

1. "Alle Finanzreihen sind sogenannte Zeitreihen, bei denen die Reihenfolge der Werte wichtig ist." - Niemand bestreitet das, und diese Reihenfolge wird nicht gebrochen, auch wenn es sich um eine Zeitreihe handelt. Nachdem Sie das Modell auf die Preise P1, P2, P3...Pn trainiert haben, ändern Sie deren Reihenfolge nicht, wenn Sie mit Out-of-Samples testen oder sie tatsächlich verwenden.

Dies ist völlig unvereinbar mit den angegebenen Paketen. Es ist möglich, Ihre Bemerkung in anderen Paketen zu implementieren, aber es wäre sehr viel komplexerer Code. Der im Artikel verwendete Code (der bei Algorithmen für maschinelles Lernen am häufigsten verwendet wird) sieht folgendermaßen aus:

Die Ausgangsstichprobe (Datensatz) wird in drei Teile aufgeteilt: train (70%), test(15%), validate(15). Der Aufteilungsalgorithmus sieht folgendermaßen aus: Für train werden beispielsweise 70 % der Zeilen des ursprünglichen Datensatzes zufällig und nicht nacheinander ausgewählt. Von den verbleibenden 30% werden weitere 15% zufällig ausgewählt. Es ist klar, dass die verbleibenden 15 % ebenfalls eine zufällige Folge von Zeilen sind. Von einer Einhaltung der Reihenfolge der Balken kann keine Rede sein.

Aber das ist noch nicht alles.

Für das Training auf der Trainingsmenge wird nur ein Teil der Daten verwendet (etwa 66 %). Der verbleibende Teil der Daten ist die Out of sample (OOS)-Schätzung. Das heißt, die Balken, für die der OOV berechnet wurde, waren anders, aber sie wurden mit den Balken vermischt, für die das Training durchgeführt wurde. Das Papier gibt diese Schätzung an, und sie liefert immer die beste Leistung.

In Rattle können Sie dann eine Schätzung des trainierten Modells auf zwei weiteren Datensätzen erhalten. Durch den Vergleich von DREI Schätzungen können Schlussfolgerungen gezogen werden.

Noch einmal: Es erfordert einen besonderen Aufwand, Modelle auf Zeitreihen zu trainieren. Wenn Sie Rattle verwenden wollen, sollten die Zielvariable und die entsprechenden Prädiktoren eine zufällige Anordnung der Balken in Training und Test zulassen.

2. In einem Punkt stimme ich Ihnen zu: Wenn die Eingabe zu 100 % aus unsinnigen Prädiktoren besteht, erhalten wir auch 100 % Unsinn in der Ausgabe. Das ist offensichtlich und niemand bestreitet das. Ich will damit nur sagen, dass es Algorithmen gibt, bei denen es keine Rolle spielt, die Daten zu bereinigen, weil sie bei Out-of-Samples mit jeder beliebigen Menge an unsauberen Daten außer 100% gute Ergebnisse liefern, weil unsaubere Daten de facto nicht verwendet werden. Es ist auch wichtig, zwischen Algorithmen zu unterscheiden, für die die Reduzierung der Datendimensionalität entscheidend ist, wie z. B. bei der Hauptkomponentenanalyse oder bei Autoencodern, und Algorithmen, die für die Datendimensionalität unempfindlich sind.

Das sind sie nicht. Randomforest verfügt über einen eingebauten Algorithmus zur Bestimmung der Signifikanz von Prädiktoren. Dieser Algorithmus ist völlig nutzlos, wenn sich unter den Prädiktoren Unrat befindet. Das randomforest-Paket selbst verfügt über eine zusätzliche Funktion, um Müll-Prädiktoren herauszufiltern, aber sie ist in rattle nicht verfügbar.

"Auf dem Aktienmarkt ist die Erforschung der Beziehung zwischen wirtschaftlichen Ursachen und der Bewegungsrichtung üblich, aber nichts davon gilt für Intraday-Intervalle." - Doch, und es gilt für Intraday-Intervalle, wie die Veröffentlichung der Non-Farm Payrolls.

Ich weiß es nicht, ich kenne diese Quelle nicht. Aber ich kenne die Wirtschaft gut. Und ich kann getrost behaupten, dass die stündlichen Daten von Gazprom nicht von den Wirtschaftsdaten anderer Unternehmen abhängen. Keine Fragen zu den Ergebnissen des Monats.

3. Natürlich verstehe ich Sie, jeder verdient so, wie er es kann, aber haben Sie schon einmal selbst Algorithmen des maschinellen Lernens implementiert? Ich bin davon überzeugt, dass man einen Algorithmus von Grund auf selbst schreiben muss, um zu verstehen, wie er funktioniert. Glauben Sie mir, in diesem Fall werden Sie Dinge entdecken, die nicht in Büchern beschrieben sind. Und selbst scheinbar offensichtliche Elemente, die vorher einfach erschienen, funktionieren in Wirklichkeit anders, als man dachte:)

Es ist eine Sache, Söldner zu bauen, und eine andere, sie zu fahren. Ich ziehe es vor, zu fahren, aber jeder trifft seine eigene Entscheidung.

PS.

Ich habe ein Buch geschrieben, das ausführlichere Antworten auf die von Ihnen gestellten Fragen enthält.

PSPS

Meine persönliche Erfahrung zeigt, dass die meiste Zeit - bis zu 70% - für die Auswahl von Prädiktoren aufgewendet wird - eine langweilige und mühsame Arbeit. Aus dem Grund, das Buch zu verkaufen, hat sich ein Kollektiv gebildet - niemand schafft es, eine schnelle und effektive Auswahl von Prädiktoren zu treffen, die keine übertrainierten Modelle erzeugt. Und die meisten Leser haben das Buch bereits hinter sich gelassen und verwenden bessere Werkzeuge für diese Aufgabe.

Vielen Dank für Ihr sinnvolles Interesse an diesem Thema.

 
faa1947:


Ich danke Ihnen für Ihre ausführliche Antwort.

Ich möchte Sie jedoch bitten, einige Punkte zu präzisieren.

Erstens haben Sie oben geschrieben, dass das Beispiel meines Programms, das mit medizinischen Daten arbeitet, "illustrativ" ist, und sich darauf bezogen, dass Zeitreihen eine strenge Reihenfolge haben.

"Alle Finanzreihen sind sogenannte Zeitreihen, bei denen die Reihenfolge der Werte wichtig ist.

Und dann schreiben Sie, dass bei Random Forest, den Sie verwenden:"Von einer Einhaltung der Reihenfolge der Balken kann keine Rede sein."

Und ich frage: Wie funktioniert Random Forest dann bei Zeitreihen, wenn der Algorithmus zunächst die Random-Subspace-Methode verwendet und diese Zeitreihen mischt?

"Noch einmal: Das Lernen von Modellen auf Zeitreihen erfordert einen besonderen Aufwand." - dann sind wir wieder am Anfang. Warum also Zeit mit solchen Algorithmen verschwenden, wenn es besonderen Aufwand erfordert, sie auf Zeitreihen anzuwenden? Wir sprechen hier nicht von einem akademischen Gesichtspunkt im Rahmen der universitären Forschung, wo solche Arbeiten gefördert werden, sondern von einem praktischen Gesichtspunkt.

"Ich kann mit Sicherheit sagen, dass die Gazprom-Stimmung unabhängig von allen Wirtschaftsdaten anderer Unternehmen ist." - Bedeutet das, dass die Gazprom-Aktien auf Intraday-Basis in keiner Weise vom RTS-Index beeinflusst werden, der Gazprom und andere Unternehmen umfasst?

"Es ist eine Sache, einen Mercedes zu bauen und eine andere, ihn zu fahren. Ich ziehe es vor, zu fahren, aber jeder trifft seine eigene Wahl. " - in der Spitzfindigkeit nennt man das eine Abschweifung von der ursprünglichen These:) Ich habe über Algorithmen und ihre Umsetzung gesprochen, und Sie haben unmerklich eine These über Autos aufgestellt, die äußerlich mit der ursprünglichen These zusammenhängt, aber nicht mit ihr identisch ist. Ich denke, es gibt eine "kleine" Lücke zwischen Algorithmen und Autos. Nehmen Sie es mir nicht übel, ich bemerke nur gerne solche Eigenheiten:)

Zusammenfassend lässt sich sagen, dass das, was Sie speziell über Rattle und Random Forest schreiben, höchstwahrscheinlich relevant für die Realität ist und Sie sich damit auskennen.

Aber eine Frage ist noch offen: Warum sollte jemand, der die Wahl zwischen zwei gleichwertigen Algorithmen hat (von denen der erste ohne besondere Anstrengungen und Fähigkeiten und der zweite mit ihnen perfekt auf Zeitreihen funktioniert), sich für den letzteren entscheiden? Und wird sie in diesem Fall optimal sein?

 
joo:
Über diesen Satz bin ich nicht hinausgekommen. Respekt!
Danke:)
 
CyberCortex:


Eine Frage ist jedoch noch offen: Warum sollte jemand, der die Wahl zwischen zwei Algorithmen gleicher Klassifizierungsqualität hat (von denen der erste ohne besondere Anstrengungen und Fähigkeiten und der zweite mit solchen perfekt auf Zeitreihen funktioniert), sich für den letzteren entscheiden? Und wird sie in diesem Fall optimal sein?

Verschiedene Werkzeuge lösen unterschiedliche Probleme, die wiederum durch das verfügbare Material bestimmt werden.

Eine Rassel ist ein großartiges Werkzeug, um eine Idee schnell zu testen. Aber es wird ziemlich schwierig sein, damit ein funktionierendes Modell zu bauen.

Sie können tiefer in Rattle eindringen und daraus ein Protokoll der fertigen Zugriffe als Teil des randomforest-Pakets ziehen. Wenn Ihre Zielvariable z. B. eher die Vorhersage von Vermögenszuwächsen als von Trends ist und Sie dafür Prädiktoren gefunden haben, dann ist randomforest sehr nützlich. Wenn Sie Trends vorhersagen wollen, müssen Sie die Stichprobe manuell in Teile aufteilen und dabei die Reihenfolge beibehalten, was in Rattle schwierig (wenn auch möglich) ist, und direkt mit dem randomforest-Paket arbeiten, das keine Einschränkungen für den Algorithmus zur Bildung der Eingangsstichprobe vorsieht. Es gibt einen ziemlich umfangreichen Satz von Werkzeugen zur Erzeugung von Stichproben zum Testen. Diese sind separate Pakete.

Nun, und so weiter. Die allgemeine Schlussfolgerung ist, dass es kein "optimales" Werkzeug gibt.

Jedes der Pakete hat viele Feinheiten, die bestimmte Probleme in den Rohdaten lösen. Im Allgemeinen ist der Prozess nicht einmal sehr einfach.

PS. Als ich über Gazprom schrieb, meinte ich das Verhältnis zwischen den Notierungen und den Werten der Gewinnart. Und der Index ist arithmetisch, derselbe Truthahn..... Aber das ist ein anderes Problem... Obwohl der Einsatz von maschinellem Lernen auf dem Aktienmarkt vielversprechender ist als auf dem Devisenmarkt. Wie es mir scheint.

 
faa1947:

Verschiedene Werkzeuge lösen unterschiedliche Probleme, die wiederum durch das verfügbare Material bestimmt werden.

Rasseln sind ein großartiges Werkzeug, um eine Idee schnell zu testen. Aber es ist schwierig, damit ein funktionierendes Modell zu erstellen.

Sie können tiefer in Rattle eindringen und daraus ein Protokoll der fertigen Zugriffe als Teil des randomforest-Pakets ziehen. Wenn Ihre Zielvariable z. B. eher die Vorhersage von Vermögenszuwächsen als von Trends ist und Sie dafür Prädiktoren gefunden haben, ist randomforest sehr nützlich. Wenn Sie Trends vorhersagen wollen, müssen Sie die Stichprobe manuell in Teile aufteilen und dabei die Reihenfolge beibehalten, was in Rattle schwierig (wenn auch möglich) ist, und direkt mit dem randomforest-Paket arbeiten, das keine Einschränkungen für den Algorithmus zur Bildung der Eingangsstichprobe vorsieht. Es gibt einen ziemlich umfangreichen Satz von Werkzeugen zur Erzeugung von Stichproben zum Testen. Diese sind separate Pakete.

Nun, und so weiter. Die allgemeine Schlussfolgerung ist, dass es kein "optimales" Werkzeug gibt.

Jedes der Pakete hat viele Feinheiten, die bestimmte Probleme in den Rohdaten lösen. Im Allgemeinen ist der Prozess nicht einmal sehr einfach.

PS. Als ich über Gazprom schrieb, meinte ich das Verhältnis zwischen den Notierungen und den Werten der Gewinnart. Und der Index ist arithmetisch, derselbe Truthahn..... Aber das ist ein anderes Problem... Obwohl der Einsatz von maschinellem Lernen auf dem Aktienmarkt vielversprechender ist als auf dem Devisenmarkt. Das scheint mir so.

Vielen Dank, ich habe keine weiteren Fragen.
 
schöner Artikel
 
Großartige Arbeit!
 
Interessanter Artikel, danke. Ich hörte über R zum ersten Mal, es sieht aus wie eine sehr nützliche Sache. Für eine lange Zeit möchte ich ein neuronales Netz, das selbst auf der Grundlage von historischen Daten handeln kann, werde ich versuchen, Geschichte von mt5 (ohlc, Spread, Volumina) zu entladen, übergeben Sie es an Rattle und sehen, was passiert.
 
Dr.Trader:
Interessanter Artikel, danke. Ich hörte über R zum ersten Mal, es sieht aus wie eine sehr nützliche Sache. Seit langem möchte ich ein neuronales Netzwerk erstellen, das auf der Grundlage historischer Daten handeln kann. Ich werde versuchen, die Historie aus mt5 zu entladen (Ohlc, Spread, Volumina), sie an Rattle zu übergeben und zu sehen, was passiert.

Rattle hat sechs Modelle, eines davon ist NS. Ich empfehle Ihnen, die Ergebnisse von NS mit Random Forests, Ada und SVM zu vergleichen. Ich denke, Sie werden von den Ergebnissen sehr überrascht sein.

 
Dr.Trader:
Interessanter Artikel, danke. Ich hörte über R zum ersten Mal, es sieht aus wie eine sehr nützliche Sache. Seit langem möchte ich ein neuronales Netz erstellen, das auf der Grundlage historischer Daten handeln kann. Ich werde versuchen, die Historie von mt5 (ohlc, spread, volumes) zu entladen, sie an rattle zu übergeben und zu sehen, was passiert.

Das ist genau das, wofür Rattle nicht ausgelegt ist. Sie müssen direkt in R arbeiten. Hier ist eine Variante einer solchen Lösung https://www.mql5.com/de/articles/1103.

Viel Erfolg!

Третье поколение нейросетей: "Глубокие нейросети"
Третье поколение нейросетей: "Глубокие нейросети"
  • 2014.11.27
  • Vladimir Perervenko
  • www.mql5.com
Статья посвящена новому и очень перспективному направлению в машинном обучении — так называемому "глубокому обучению" и конкретней "глубоким нейросетям". Сделан краткий обзор нейросетей 2 поколения, их архитектуры связей и основных видов, методов и правил обучения и их основных недостатков. Далее рассмотрена история появления и развития нейросетей 3 поколения, их основные виды, особенности и методы обучения. Проведены практические эксперименты по построению и обучению на реальных данных глубокой нейросети, инициируемой весами накапливающего автоэнкодера. Рассмотрены все этапы от выбора исходных данных до получения метрик. В последней части статьи приведена программная реализация глубокой нейросети в виде индикатора-эксперта на MQL4/R.