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

 
Bien. J'ai commencé la semaine avant l'ouverture du marché, en testant activement la version 14. Je voudrais dire ce qui suit. Plus l'entraînement est long, plus le nombre d'entrées dans le TS est important. Plus de prédicats. J'ai eu jusqu'à 8-9 entrées maximum. Cependant, la capacité de généralisation n'est généralement pas élevée. Et ces TS ne fonctionnent guère. C'est-à-dire qu'ils peuvent à peine atteindre la barre des 3. Mais les prédicats avec 4-6 entrées fonctionnent de manière satisfaisante dans l'ensemble. J'ai augmenté le nombre d'entrées de 50 à 150. Il en est maintenant à sa troisième heure d'entraînement. Mais je pense que le nombre d'entrées cette fois-ci ne sera pas négligeable non plus. Alors voyons voir......
 
Eh bien, j'ai encore remarqué cette chose. Le truc c'est que j'ai un ensemble de données, perdicts 12 et puis vont leur même lag, lag1 et lag2. Auparavant, les entrées se situaient surtout au début de l'ensemble, c'est-à-dire qu'il y avait peu de décalages, puis pas plus que le décalage 1, rarement le décalage 2. Je peux comprendre que l'échantillon soit surchargé de données, mais le fait est qu'avant la généralisation, on utilisait plus souvent lag1 et lag2. Mais c'est un fait qu'avant la généralisation se faisait surtout dans les colonnes initiales, maintenant elle se fait dans les colonnes finales..... pratiquement, alors tirons quelques conclusions....
 
Mihail Marchukajtes:
Eh bien, j'ai encore remarqué cette chose. Le problème, c'est que j'ai un ensemble de données, perdicts 12, puis leurs décalages, lag1 et lag2. Auparavant, les entrées étaient surtout au début de l'ensemble, c'est-à-dire que les lags étaient peu nombreux et ne dépassaient pas le lag1, rarement le lag2. Je peux comprendre que l'échantillon soit surchargé de données, mais le fait est qu'avant la généralisation, les lag1 et lag2 étaient plus fréquents. Mais c'est un fait qu'avant la généralisation se faisait surtout dans les colonnes initiales, maintenant elle se fait dans les colonnes finales..... presque, donc des déductions sont faites....

Vous devez donc revenir aux versions précédentes.

Mon vol se passe bien. Peut-être parce qu'il n'y a pas de décalage dans l'échantillon ?

 
Dr. Trader:

Ça a l'air bien en général, je me demande ce qui va se passer à la fin.

À propos du comité - j'ai publié quelques exemples, mais il existe des modèles qui utilisent la régression avec arrondi pour classer, et ce n'est pas aussi clair. J'ai essayé deux façons différentes de combiner les votes :

1) Arrondissez tout aux classes, prenez la classe pour laquelle il y aura le plus de votes.
C'est-à-dire avoir une prévision à 4 barres à partir de trois modèles.
c(0,1, 0,5, 0,4, 0,4) c(0,6, 0,5, 0,7, 0,1) c(0,1, 0,2, 0,5, 0,7) Je l'arrondis ensuite aux classes
c(0, 1, 0, 0) c(1,1,1,0) c(0,0,1,1) , et le vecteur final avec les prédictions serait c(0, 1, 1, 0) par nombre de votes.

2) une autre option consiste à trouver tout de suite le résultat moyen, et seulement ensuite à l'arrondir aux classes supérieures
le résultat serait c((0.1+0.6+0.1)/3, (0.5+0.5+0.2)/3, (0.4+0.7+0.5)/3, (0.4+0.1+0.7)/3)
soit (0,2666667, 0,4000000, 0,5333333, 0,4000000), soit
c(0, 0, 1, 0)

Vous pouvez voir que le résultat est différent, et cela dépend de l'étape à arrondir. Je ne sais pas laquelle est la plus standard, mais je pense que la seconde méthode fonctionne mieux avec les nouvelles données.

Paquet tsDyn Fonction SETAR

Il s'avère que la valeur du seuil (il peut y avoir deux seuils comme dans le RSI) est variable. Donne des résultats étonnants.

N'oublions pas non plus les algorithmes de calibration dans la classification. Le fait est que la prédiction de classe en réalité n'est pas une valeur nominale, l'algorithme calcule la probabilité de classe, qui est un nombre réel. Ensuite, cette probabilité est divisée, par exemple, par la moitié et vous obtenez deux classes. Et si la probabilité est de 0,49 et 051, ça fait deux classes ? Que diriez-vous de 0,48 et 052 ? S'agit-il d'une division en classes ? C'est ici que SETAR se diviserait en deux classes, entre lesquelles se trouveraient les Reshetovskie "on the fence".

 
Dr. Trader:

Ça a l'air bien en général, je me demande ce qui va se passer à la fin.

À propos du comité - j'ai publié quelques exemples, mais il existe des modèles qui utilisent la régression avec arrondi pour classer, et ce n'est pas aussi clair. J'ai essayé deux façons différentes de combiner les votes :

1) arrondir tout à des classes, prendre la classe qui obtient le plus de votes.
C'est-à-dire avoir une prévision à 4 barres à partir de trois modèles
c(0,1, 0,5, 0,4, 0,4) c(0,6, 0,5, 0,7, 0,1) c(0,1, 0,2, 0,5, 0.7) J'arrondirais ensuite à des classes
c(0, 1, 0, 0) c(1,1,1,0) c(0,0,1,1) , et le vecteur final avec les prédictions serait c(0, 1, 1, 0) par nombre de votes.

2) l'autre option consiste à trouver directement le résultat moyen, puis à l'arrondir aux classes supérieures
le résultat serait c((0.1+0.6+0.1)/3, (0.5+0.5+0.2)/3, (0.4+0.7+0.5)/3, (0.4+0.1+0.7)/3)
ou (0.2666667, 0.533333, c(0, 0, 1) ou
)

Comme vous pouvez le constater, le résultat est différent selon l'étape à arrondir. Je ne sais pas laquelle des deux est la plus standard, mais je crois que la deuxième méthode fonctionne mieux avec les nouvelles données.
Il s'agit de la paire gbpusd. Ce qui signifie que le modèle attend d'être testé par le Brexit. Je n'ai même pas encore traité les données de l'année dernière..... Ça pourrait être une prune...

En fonction du résultat du test final, je donnerai le ton de l'article. C'est toujours un peu une surprise de voir que le modèle fonctionne et la norme de voir qu'il se vide.

Je vais réunir le comité comme suit :

Je construis n vecteurs de prédiction de type numérique sur le nombre de modèles sur les données d'entraînement (régression de l'augmentation des prix).

Je fais la moyenne de la réponse sur les modèles sélectionnés.

Je compte les quantiles 0,05 et 0,95.

Lors de la validation, je répète les étapes 1 et 2.

Je ne retiens que les exemples où la moyenne est en dehors des limites du quantile.

Je multiplie la réponse par le signe de prédiction et je soustrais l'écart.

Sur le vecteur obtenu, je construis m sous-échantillons avec inclusion aléatoire au rythme de 1 à 4 transactions par jour selon l'horizon de prévision.

Le comité a déjà démontré que la MO est multipliée par trois par rapport aux modèles simples. Parce que les modèles sont divers...

 
Как из данных вычленить некие группы данных по условию
Как из данных вычленить некие группы данных по условию
  • ru.stackoverflow.com
нужно найти такие строчки которые повторяются не менее 10 раз в всей выборке и в каждой из найденных одинаковых групок которые повторялись, количество "1" в target.label должно превышать 70% по отношению к "0" вот найденные одинаковые строчки единичек больше чем нулей...
 

Je vais donc répondre ici.

#пара строк из той таблицы, не буду я всё текстом копировать, потом первая строка повторена ещё дважды
dat <- data.frame(cluster1=c(24,2,13,23,6), cluster2=c(5,15,13,28,12), cluster3=c(18,12,16,22,20), cluster4=c(21,7,29,10,25), cluster5=c(16,22,24,4,11), target.label=c(1,1,0,1,0))
dat <- rbind(dat, dat[1,], dat[1,])
#результат последней строки поменян на 0 для эксперимента
dat[7,"target.label"]=0

library(sqldf)
#для sqldf точек в названиях колонок быть не должно
colnames(dat)[6] <- "target"

dat1 <- sqldf( "select cluster1, cluster2, cluster3, cluster4, cluster5, avg(target) as target_avg, count(target) as target_count from dat group by cluster1, cluster2, cluster3, cluster4, cluster5" )
dat1
dat1[ dat1$target_count>=10 & dat1$target_avg>0.63 , ]
dat1[ dat1$target_count>=10 & ( dat1$target_avg<0.37 | dat1$target_avg>0.63 ), ] #на случай если оба "0" или "1" встречаются чаще 70%
 
SanSanych Fomenko:

Le paquet tsDyn est une fonction de SETAR

SETAR fait spécifiquement référence à la calibration des comités, ou s'agit-il d'un sujet distinct pour la création de modèles financiers ?

J'ai feuilleté le manuel de l'emballage, je n'ai pas vu ce dont j'ai besoin... Je suis dans une situation où j'ai un tableau d'apprentissage avec 10000 exemples. Et il y a 100 modèles formés sur ces exemples. Pour tester les modèles, vous pouvez les utiliser pour prédire les mêmes données d'entrée et obtenir 100 vecteurs ayant chacun 10000 prédictions. SETAR pourrait être utilisé pour fusionner ces 100 vecteurs en un seul ?
Et ensuite, pour une prévision avec de nouvelles données, il y aurait à nouveau 100 prévisions et nous devrions les fusionner en une seule (il n'y aurait pas 100 vecteurs mais 100 prévisions individuelles). SETAR sera-t-il capable de le faire aussi, en utilisant les paramètres du comité obtenus à partir des données d'entraînement ?

 
Dr. Trader:

SETAR fait spécifiquement référence à la calibration des comités, ou s'agit-il d'un sujet distinct pour la création de modèles financiers ?

J'ai feuilleté le manuel du paquet, je ne vois pas ce dont j'ai besoin... Voici la situation : j'ai un tableau d'entraînement avec 10000 exemples. J'ai 100 modèles formés sur ces exemples. Pour tester les modèles, vous pouvez les utiliser pour prédire les mêmes données d'entrée et obtenir 100 vecteurs ayant chacun 10000 prédictions. SETAR pourrait être utilisé pour fusionner ces 100 vecteurs en un seul ?
Et ensuite, pour une prévision avec de nouvelles données, il y aurait à nouveau 100 prévisions et nous devrions les fusionner en une seule (il n'y aurait pas 100 vecteurs mais seulement 100 prévisions individuelles). SETAR sera-t-il capable de faire cela aussi, en utilisant les paramètres du comité dérivés des données d'entraînement ?

Si j'ai bien compris, cela n'a rien à voir avec les comités.
 
Yury Reshetov:

Vous devez alors revenir aux versions précédentes.

Je fonctionne bien. Peut-être parce qu'il n'y a pas de décalage dans l'échantillon ?

Eh bien, oui, je faisais des décalages parce que dans les versions précédentes, ils augmentaient la capacité de comptage, mais maintenant, avec l'algorithme de préextraction amélioré, ce n'est plus nécessaire, donc j'essaie de m'entraîner sans eux. J'essaie de m'entraîner sans eux. Je ferai un rapport plus tard sur les résultats de l'exercice d'aujourd'hui...