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

 

Unter "interessante Dinge". ))

DTW-Algorithmus

Stellen Sie sich vor, dass Sie einige gleiche Teile des Preises in der Reihe finden müssen, aber da der Preis nicht stationär ist, wird die Größe dieser Teile aufgrund dieser Eigenschaft natürlich unterschiedlich sein, wie geht man mit diesem Fall um?

Ich kenne zwei mögliche Lösungen - Interpolation und dwt-Algorithmus.

про dwt - https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D1%88%D0%BA%D0%B0%D0%BB%D1%8B

Ich werde mich nicht mit Formeln abmühen, da ich sie selbst nicht kenne, ich werde mich auch nicht mit Worten abmühen, ich werde einfach den kommentierten Code angeben, damit ihn jeder nachmachen kann...

Dieser Code wurde also verwendet, um ein Problem zu lösen:

Wir haben ein bestimmtes Muster, nennen wir es "Hauptmuster" von der Größe (Länge) 8 Punkte (die Zahl ist eine willkürliche Schätzung)

Sie sollten Muster finden, die dem Hauptmuster ähnlich sind, aber ihre Dimensionen sind 5 und 13 Punkte (die Zahlen sind zufällig gewählt)

Das Ergebnis ist auf dem Bild zu sehen

ч

wie es verwendet werden kann und ob es überhaupt möglich ist, ist eine offene Frage, ich denke, ich habe es erfolgreich angewendet, aber Sie müssen bedenken, dass all dies nur ein Werkzeug ist, um Ihre Idee umzusetzen, aber nicht die Idee selbst ...

Ich poste den Code unten

Алгоритм динамической трансформации временной шкалы — Википедия
  • ru.wikipedia.org
Алгоритм динамической трансформации временно́й шкалы (DTW-алгоритм, от англ.  ) — алгоритм, позволяющий найти оптимальное соответствие между временными последовательностями. Впервые применен в распознавании речи, где использован для определения того, как два речевых сигнала представляют одну и ту же исходную произнесённую фразу. Впоследствии...
Dateien:
zzz.txt  4 kb
 

Vereinfacht ausgedrückt, geht es bei diesem Code um Folgendes:

library(dtw)

X <- rnorm(10)
Y <- rnorm(20)

my.dtw <- dtw(X ,Y)

my.dtw$distance

wobei

my.dtw$distance
[1] 14.17198

er ist ein Maß für die Nähe (euklidischer Abstand), je kleiner er ist, desto größer ist die Nähe von X und Y

 
mytarmailS:

Vereinfacht ausgedrückt, geht es bei diesem Code um Folgendes:

library(dtw)

X <- rnorm(10)
Y <- rnorm(20)

my.dtw <- dtw(X ,Y)

my.dtw$distance

wobei

my.dtw$distance
[1] 14.17198

er ist ein Maß für die Nähe (euklidischer Abstand), je kleiner er ist, desto größer ist die Nähe von X und Y

Nur für den Fall: Wenn das Proximitätsmaß = 1 ist, wird dann die zweite Reihe durch Verzerrung aus der ersten gewonnen?
 
SanSanych Fomenko:
Nur für den Fall: Wenn das Proximitätsmaß = 1 ist, wird dann die zweite Reihe durch Verzerrung aus der ersten gewonnen?

Wenn Sie den Abstand zwischen zwei Zeilen ändern wollen, müssen diese Zeilen in der Regel gleich lang sein.

dtw kann zwei Reihen mit unterschiedlichen Abmessungen messen, wobei die Reihennatürlich verzerrt werden, um den korrekten Näherungswert zu ermitteln.

 

mytarmailS:

Wir haben ein Muster, nennen wir es "Hauptmuster" mit einer Größe (Länge) von 8 Punkten (die Zahl ist zufällig)

Sie müssen Muster finden, die dem Hauptmuster ähnlich sind, aber 5 und 13 Punkte haben (die Zahlen sind zufällig gewählt)

Es war in demselben Thread, pg. 130.

Kurz gesagt, der klassische DTW-Algorithmus vergleicht zwei Segmente mit fester Länge n bzw. m, füllt das Array [1..n, 1..m] und entnimmt das Ergebnis der Zelle [n, m]. Wenn Sie wollen, dass ein Segment eine zufällige Länge hat, z.B. n=8 und m nimmt Werte von 5 bis 13 an, füllen Sie das Feld 8*13 und nehmen das minimale Ergebnis der Zellen [8,5] bis [8,13] geteilt durch die Pfadlänge.

Es hat sich herausgestellt, dass die russische Wikipedia den gesamten Artikel in dieser Zeit umgeschrieben hat, ohne dass ich davon wusste. Im englischen Artikel hat sich nichts geändert und der Pseudocode bleibt erhalten, wodurch das Prinzip des Algorithmus leichter zu verstehen ist.

 
Eidechse_:

Ansatz #4), hat es aber nicht in den Club der "ersten Hundert" geschafft(133) (0,68705) und wurde von den Nerd-Arschlöchern ins Gesicht geschlagen)))


Wow! Fantastisch!!!
 
Awl-Schreiber:

Es war in demselben Thread, pg. 130.

Kurz gesagt, im klassischen DTW-Algorithmus ....................

Oder man kann es auch anders machen, einfach alle beliebigen Abschnitte auf eine einzige Größe interpolieren und dort die Korrelation oder den euklidischen Wert messen...

 

Hallo zusammen!

Ich bitte um Hilfe und schlage vor, gemeinsame Anstrengungen zu unternehmen, um einen Algorithmus namens "polyharmonische Annäherung" zu entwickeln - dies ist eine sehr tiefe und clevere Funktionsannäherung im Rahmen der "MSUA"-Familie von Algorithmen , warum ich so denke, werde ich später mit Erklärungen und möglicherweise Bildern äußern

ссылка https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D1%83%D1%87%D1%91%D1%82%D0%B0_%D0%B0%D1%80%D0%B3%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2

Auszug aus dem Link

Обычно степень полинома опорной функции выбирается не выше {\displaystyle N-1} N-1, где {\displaystyle N} N - количество точек выборки. Часто бывает достаточно использовать в качестве опорных функции полиномы второй степени. В таком случае на каждом шаге итерации степень результирующего полинома удваивается.

Вместо полинома Колмогорова-Габора можно использовать ряды Фурье. Их имеет смысл применять, если в исходных данных наблюдается периодичность (например, уровень воды в реках, температура воздуха, объём осадков). Полученная в таком случае модель будет полигармонической [1].

===================================================

Auch ein Link zu einem der vielen Bücher über diese wunderbare Methode von den "MSUA".

Das Buch hat sehr starke Ideen und ist leicht zu lesen (bis die Formeln anfangen)SEHR empfehlenswerte Lektürehttps://www.gmdh.net/articles/theory/bookNoiseIm.pdf

===================================================

auch einige Kommentare, die bestätigen, dass die polyharmonische Annäherung der richtige Weg ist, um Daten für MO vorzuverarbeiten

Auszug aus einem Kommentar

...................................…Следующим шагом была новая модель: к цене закрытия применяем фильтр низких частот (я использовал фильтр Батерворта 2-го порядка), применяем полиномиально-гармоническую аппроксимацию, преобразуем A*cos(wx)+B*sin(wx) к виду M*sin(wx+f) и в качестве вторичных признаков берем M и f.
…. И вот с такой моделью мне удалось построить сеть, которая имела очень хорошие обобщающие свойства: новые данные почти все правильно распознавала........................

Link zur Originalquellehttp://www.kamynin.ru/archives/4917

 
mytarmailS:

Es sieht kompliziert aus und das Ergebnis ist ungewiss, ich verzichte.
R verfügt über ein GMDH-Paket ("MGUA" auf Englisch).

Übrigens habe ich in Numerai auch das Modell auf logloss <0,69 finalisiert
0,68930
Aber von irgendwoher kamen hundert Menschen mit Ergebnissen 0,4-0,5, einige Hölle, jetzt bis zu Preisen im Allgemeinen als der Mond.

Grund der Beschwerde: