L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 253

 

Sous "choses intéressantes". ))

Algorithme DTW

Imaginez que vous ayez besoin de trouver des parties égales du prix dans la série, mais comme le prix n'est pas stationnaire, bien sûr, à cause de cette propriété, la taille de ces parties sera différente, comment traiter ce cas ?

Je connais deux solutions possibles : l'interpolation et l'algorithme dwt.

про 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

Je ne m'embêterai pas avec les formules car je ne les connais pas moi-même, je ne m'embêterai pas non plus avec les mots, je me contenterai de donner le code commenté pour que chacun puisse le reproduire....

Ce code a donc été utilisé pour résoudre un problème :

Nous avons un certain motif, appelons-le "motif principal", de taille (longueur) 8 points (le nombre est une estimation arbitraire).

Vous devriez trouver des motifs similaires au motif principal, mais leur dimension est de 5 et 13 points (les chiffres sont pris au hasard).

le résultat est sur la photo

ч

comment l'utiliser et est-ce même possible est une question ouverte, je pense l'avoir appliqué avec succès, mais vous devez vous rappeler que tout cela n'est qu'un outil pour mettre en œuvre votre idée, mais pas l'idée elle-même ...

Je vais poster le code ci-dessous

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

En termes simples, le but de ce code est le suivant :

library(dtw)

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

my.dtw <- dtw(X ,Y)

my.dtw$distance


my.dtw$distance
[1] 14.17198

c'est une mesure de la proximité (distance euclidienne), plus elle est petite, plus la proximité de X et Y est grande.

 
mytarmailS:

En termes simples, le but de ce code est le suivant :

library(dtw)

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

my.dtw <- dtw(X ,Y)

my.dtw$distance


my.dtw$distance
[1] 14.17198

c'est une mesure de la proximité (distance euclidienne), plus elle est petite, plus la proximité de X et Y est grande.

Au cas où : si la mesure de proximité = 1, alors la deuxième ligne est obtenue à partir de la première par distorsion ?
 
SanSanych Fomenko:
Au cas où : si la mesure de proximité = 1, alors la deuxième ligne est obtenue à partir de la première par distorsion ?

Habituellement, lorsque vous souhaitez modifier la proximité entre deux lignes, la règle est que ces lignes doivent être de la même longueur.

dtw peut mesurer la proximité de deux lignes avec des dimensions différentes, bien sûr, il déformera les lignes pour trouver la valeur de proximité correcte.

 

mytarmailS:

Nous avons un motif, appelons-le "motif principal" dont la taille (longueur) est de 8 points (le chiffre est aléatoire).

vous devez trouver des patrons similaires au patron principal mais qui ont 5 et 13 points (les chiffres sont tirés du bric-à-brac)

C'était dans le même fil, pg. 130.

En bref, l'algorithme classique DTW compare deux segments de longueur fixe n et m respectivement, remplit le tableau [1..n, 1..m] et prend le résultat dans la cellule [n, m]. Si vous voulez que certains segments aient une longueur aléatoire, par exemple n=8 et m prend des valeurs de 5 à 13, vous remplissez le tableau 8*13 et prenez le résultat minimal des cellules [8,5] à [8,13] divisé par la longueur du chemin.

Il s'avère que la wikipedia russe a réécrit l'ensemble de l'article pendant ce temps, et je n'étais pas au courant. Dans l'article anglais, rien n'a changé et le pseudo-code demeure, ce qui permet de mieux comprendre le principe de l'algorithme.

 
Vizard_:

Approche #4) Mais n'a pas réussi à entrer dans le club des "cent premiers"(133) (0.68705), se faisant frapper au visage par les nerd-assholes))))


Wow ! Génial ! !!
 
L'écrivain Awl:

C'était dans le même fil, pg. 130.

En bref, dans l'algorithme DTW classique, ....................

Ou vous pouvez le faire d'une autre manière, en interpolant carrément toutes les sections arbitraires à une taille unique, et en mesurant simplement la corrélation ou l'Euclidienne...

 

Bonjour à tous !

Je demande de l'aide et propose d'unir nos efforts pour créer un algorithme appelé "approximation polyharmonique" - il s'agit d'une approximation de fonction très profonde et intelligente dans le contexte de la famille d'algorithmes "MSUA" - pourquoi je pense cela, je le dirai plus tard avec des explications et éventuellement des images.

ссылка 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

extrait du lien

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

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

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

Vous trouverez également un lien vers l'un des nombreux ouvrages consacrés à cette merveilleuse méthode par les "MSUA".

Le livre a des idées très fortes et est facile à lire (jusqu'à ce que les formules commencent). LectureTRÈS fortement recommandéehttps://www.gmdh.net/articles/theory/bookNoiseIm.pdf

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

également quelques commentaires confirmant que l'approximation polyharmonique est la bonne façon de prétraiter les données pour le MO

extrait de commentaire

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

lien vers la source originalehttp://www.kamynin.ru/archives/4917

 
mytarmailS:

Cela semble compliqué et il n'y a aucune certitude quant au résultat, je passe mon tour.
R possède un paquet GMDH ("MGUA" en anglais).

Au fait, dans Numerai, j'ai également finalisé le modèle à logloss <0,69.
0.68930
Mais de quelque part est sortie une centaine de personnes avec des résultats de 0.4-0.5, certains enfer, maintenant aux prix est comme la lune.

Raison: