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

 

Au début, lorsqu'ils n'avaient que quelques centaines de personnes proposant leur pronostic, tout allait bien, j'étais même payé pour les places. Il y avait au moins deux autres personnes sur le forum qui ont également obtenu d'excellents résultats avec les prix.

J'ai eu au moins deux autres personnes qui ont montré d'excellents résultats sur le forum, également. Puis ils ont commencé à leur envoyer toutes sortes de déchets à la place des modèles et toutes sortes de tricheurs sont apparus avec des centaines de comptes qui ont stupidement brutalisé les prévisions. Les administrateurs en ont eu assez de ce cirque et ont rendu les choses très simples : "Si vous voulez un prix en espèces, laissez un dépôt. Si le modèle est bidon, le dépôt disparaîtra, et les bénéfices ne le seront pas.
À mon avis, les administrateurs ont pris le chemin le plus facile pour eux. Ils n'ont pas appris à identifier les modèles potentiellement bons, ni même à préparer les caractéristiques, et ont tout transformé en loterie. Je ferais les choses différemment si j'étais eux.

 
Dr. Trader:

Au début, lorsqu'ils n'avaient que quelques centaines de personnes proposant leur pronostic, tout allait bien, j'étais même payé pour les places. Il y a au moins deux autres personnes sur le forum qui ont également obtenu de bons résultats avec les prix.

Il était assez facile pour les administrateurs du numéraire de sélectionner les meilleurs résultats et de faire du commerce avec eux. Ils ne sont pas satisfaits de la façon dont ils sont lorsqu'ils achètent une entrée, ou lorsqu'ils ne veulent pas donner une entrée. Les administrateurs en avaient assez de tout ce cirque et ont simplifié les choses : "Si vous voulez un prix en espèces, laissez un dépôt. Si le modèle est bidon, le dépôt disparaîtra, et les bénéfices ne le seront pas.
À mon avis, les administrateurs ont pris le chemin le plus facile pour eux. Ils n'ont pas appris à identifier les modèles potentiellement bons, ni même à préparer les caractéristiques, et ont tout transformé en loterie. Je ferais les choses différemment si j'étais eux.

Peut-être que vous avez raison, mais maintenant IMHO il tout trop arbitraire, le changement de logos comme étrange, puis ont été plus de la moitié en dessous (mieux) que le hasard (0,96315) sur la vie, maintenant soudainement presque tous deviennent votre (pire) aléatoire ... bref arbitraire IMHO, je ne leur fais pas confiance pour "prendre des risques" quand on ne peut rien vérifier, et l'idée entière est stupide, la classification en elle-même n'est pas un sujet pour les chelenges, il n'y a aucun sens à la déléguer, une autre chose est de faire des puces et des cibles à partir de données brutes....

 

Je ne laisserai pas cette branche tomber en dehors de l'échelon supérieur.

Messieurs du réseau neuronal - les gens du peuple attendent le Graal de votre part. Ne gâche pas tout.

 

Expérimenté avec randomUniformForest - je n'ai pas aimé.

L'importance des prédicteurs ne cesse de monter et descendre dans la liste.

Voici un exemple reproductible sur les données de l'article https://www.mql5.com/ru/articles/4227 :
Lancez RStudio, téléchargez le fichier Cotir.RData depuis GitHub/Part_I, avec les citations obtenues à partir du terminal, et le fichier FunPrepareData.R avec les fonctions de préparation des données depuisGitHub/Part_IV.
Ensuite :

evalq({
  dt <- PrepareData(Data, Open, High, Low, Close, Volume)
}, env)

 prep <- caret::preProcess(x = env$dt[, -c(1,ncol(env$dt))], method = c("spatialSign"))
 x.train <- predict(prep, env$dt[, -c(1,ncol(env$dt))])#удалить время и класс
 x.train <- as.matrix(x.train,ncol=(ncol(env$dt)-1))
 
 y.train <- as.matrix(env$dt[, ncol(env$dt)],ncol=1)
 require(randomUniformForest)

ruf <- randomUniformForest( X = x.train,Y = y.train,mtry = 1, ntree = 300,threads = 2, nodesize = 2,  regression = FALSE)
ruf$forest$variableImportance

ruf <- randomUniformForest( X = x.train,Y = y.train,mtry = 1, ntree = 300,threads = 2, nodesize = 2,  regression = FALSE)
ruf$forest$variableImportance

ruf <- randomUniformForest( X = x.train,Y = y.train,mtry = 1, ntree = 300,threads = 2, nodesize = 2,  regression = FALSE)
ruf$forest$variableImportance

ruf <- randomUniformForest( X = x.train,Y = y.train,mtry = 1, ntree = 300,threads = 2, nodesize = 2,  regression = FALSE)
ruf$forest$variableImportance

Ici, l'importance globale des prédicteurs est calculée 4 fois sur les mêmes données. Le résultat est presque aléatoire :

----------------------------------------------------------------------------------------------
1 ftlm 9204 2 0.52 100.00 8
2 rbci 9197 2 0.52 99.92 8
3 stlm 9150 2 0.52 99.41 8
4 v.fatl 9147 2 0.51 99.38 8
5 v.rftl 9122 2 0.52 99.11 8
6 v.satl 9110 2 0.51 98.98 8
7 v.stlm 9096 2 0.51 98.82 8
8 v.rbci 9084 2 0.51 98.69 8
9 pcci 9082 2 0.52 98.68 8
10 v.rstl 9049 2 0.52 98.31 8
11 v.pcci 8980 2 0.51 97.57 8
12 v.ftlm 8953 2 0.52 97.28 8
----------------------------------------------------------------------------------------------

1 v.fatl 9130 2 0.51 100.00 8
2 ftlm 9079 2 0.52 99.45 8
3 v.rbci 9071 2 0.52 99.35 8
4 v.rftl 9066 2 0.52 99.30 8
5 stlm 9058 2 0.51 99.21 8
6 v.satl 9033 2 0.51 98.94 8
7 pcci 9033 2 0.51 98.94 8
8 v.stlm 9019 2 0.51 98.78 8
9 v.rstl 8977 2 0.51 98.33 8
10 rbci 8915 2 0.52 97.64 8
11 v.pcci 8898 2 0.51 97.46 8
12 v.ftlm 8860 2 0.51 97.04 8
----------------------------------------------------------------------------------------------

1 v.fatl 9287 2 0.51 100.00 9
2 stlm 9191 2 0.52 98.96 8
3 v.rbci 9172 2 0.52 98.76 8
4 v.rftl 9134 2 0.51 98.35 8
5 v.satl 9115 2 0.51 98.14 8
6 ftlm 9109 2 0.51 98.08 8
7 v.stlm 9072 2 0.51 97.69 8
8 v.rstl 9072 2 0.51 97.68 8
9 v.ftlm 9036 2 0.51 97.30 8
10 pcci 9014 2 0.52 97.05 8
11 rbci 9002 2 0.52 96.93 8
12 v.pcci 8914 2 0.51 95.98 8
----------------------------------------------------------------------------------------------

1 v.satl 9413 2 0.51 100.00 8
2 ftlm 9389 2 0.52 99.75 8
3 v.stlm 9371 2 0.51 99.55 8
4 v.rftl 9370 2 0.51 99.54 8
5 v.rbci 9337 2 0.51 99.19 8
6 v.pcci 9314 2 0.51 98.95 8
7 v.fatl 9311 2 0.52 98.91 8
8 stlm 9295 2 0.52 98.75 8
9 pcci 9281 2 0.51 98.60 8
10 v.rstl 9261 2 0.51 98.39 8
11 v.ftlm 9257 2 0.51 98.35 8
12 rbci 9238 2 0.52 98.14 8

Pour les 2 autres paquets testés, l'importance des prédicteurs est déterminée de la même manière sur les pré-exécutions.

Глубокие нейросети (Часть VI). Ансамбль нейросетевых классификаторов: bagging
Глубокие нейросети (Часть VI). Ансамбль нейросетевых классификаторов: bagging
  • 2018.03.01
  • Vladimir Perervenko
  • www.mql5.com
В предыдущей статье этой серии мы оптимизировали гиперпараметры модели DNN, обучили ее несколькими вариантами и протестировали. Качество полученной модели оказалось довольно высоким. Также мы обсудили возможности того, как можно улучшить качество классификации. Одна из них — использовать ансамбль нейросетей. Этот вариант усиления мы и...
 
elibrarius:

J'ai expérimenté avec randomUniformForest - je n'ai pas aimé.

L'importance des prédicteurs ne cesse de grimper et de descendre dans la liste.

Je ne le vois pas.

Mais là n'est pas la question, la question est ce principe.

L'importance des prédicteurs, qui est définie dans ce modèle et dans d'autres modèles, est une caractéristique de l'utilisation d'un prédicteur particulier dans un modèle particulier.

Et vous pouvez poser le problème comme l'importance du prédicteur pour la variable cible, et non dans un modèle particulier.

Ce sont les fonctions de caret qui sont exactement cela. Vous pouvez les utiliser pour générer un ensemble général de prédicteurs qui sont "utiles" pour la variable cible. Cela dit, il y a une nuance très intéressante : si nous déplaçons la fenêtre et re-sélectionnons dans les prédicteurs déjà sélectionnés, par exemple liés à un algorithme particulier, cet ensemble changera constamment.

D'une manière générale, il faut répondre à la question : pourquoi avez-vous besoin de l'importance des prédicteurs ? Pour une sélection dans un algorithme particulier ? L'algorithme a déjà exprimé son opinion à ce sujet et vous en a informé. Les chiffres que vous montrez ne sont donc rien du tout, qu'ils changent ou non n'a aucune importance. Ce qui compte, c'est la prédiction par le modèle en dehors de l'échantillon de formation et la relation entre la liste des prédicteurs et le succès de la prédiction en dehors de l'échantillon.

 
elibrarius:

J'ai expérimenté avec randomUniformForest - je n'ai pas aimé.

Essayez de télécharger vos prédicteurs ici

https://www.mql5.com/ru/articles/3856

et ensuite voir leurs importations sur une matrice générée automatiquement, après la formation des agents

J'ai des résultats positifs sur le mien jusqu'à présent, mais il y a encore de la place pour l'amélioration.

je pense qu'il est inutile d'ajuster les cibles aux prédicteurs sur un marché non stationnaire, l'importance change aussi de façon stochastique.

Random Decision Forest в обучении с подкреплением
Random Decision Forest в обучении с подкреплением
  • 2018.04.12
  • Maxim Dmitrievsky
  • www.mql5.com
Random Forest (RF) с применением бэггинга — один из самых сильных методов машинного обучения, который немного уступает градиентному бустингу.  Случайный лес состоит из комитета деревьев решений (которые также называются деревьями классификации или регрессионными деревьями "CART" и решают одноименные задачи). Они применяются в статистике...
 
SanSanych Fomenko:

Je ne le vois pas.

Mais là n'est pas la question, la question est ce principe.

L'importance des prédicteurs, qui est définie dans ce modèle et dans d'autres modèles, est une caractéristique de l'utilisation d'un prédicteur particulier dans un modèle particulier.

Et vous pouvez poser le problème comme l'importance du prédicteur pour la variable cible, et non dans un modèle particulier.

Ce sont les fonctions de caret qui sont exactement cela. Vous pouvez les utiliser pour générer un ensemble général de prédicteurs qui sont "utiles" pour la variable cible. Cela dit, il y a une nuance très intéressante : si nous déplaçons la fenêtre et re-sélectionnons dans les prédicteurs déjà sélectionnés, par exemple liés à un algorithme particulier, cet ensemble changera constamment.

D'une manière générale, il faut répondre à la question : pourquoi avez-vous besoin de l'importance des prédicteurs ? Pour une sélection dans un algorithme particulier ? L'algorithme a déjà exprimé son opinion à ce sujet et vous en a informé. Les chiffres que vous montrez ne sont donc rien du tout, qu'ils changent ou non n'a aucune importance. Ce qui compte, c'est la prédiction par le modèle en dehors de l'échantillon de formation et la relation entre la liste des prédicteurs et le succès de la prédiction en dehors de l'échantillon.

seed - fixerait simplement l'un de ces ensembles aléatoires. Mais ce serait toujours aléatoire, bien que reproductible. Je pense que le point est que les poids d'importance (3ème colonne) ne diffèrent que de 3% entre le minimum et le maximum, donc avec de petits changements dans la forêt ils sautent facilement sur la liste. Dans d'autres paquets, ces poids diffèrent d'un temps ou d'un ordre de grandeur.

L'importance des prédicteurs est nécessaire pour éliminer ceux qui sont sans importance et bruyants, et pour les utiliser en NS ou en ensemble.

Dans ce jeu de données, stlm dégrade beaucoup le résultat de l'apprentissage. Je l'utilise comme un marqueur : s'il ne disparaît pas, c'est que le paquet de sélection des prédicteurs a échoué.

 
Maxim Dmitrievsky:

Essayez de télécharger vos prédicteurs ici

https://www.mql5.com/ru/articles/3856

et ensuite voir leurs importations sur la matrice déjà générée automatiquement, après la formation de l'agent

J'ai des résultats positifs sur les miens jusqu'à présent sur l'OOS, mais il y a encore de la place pour l'amélioration.

Je pense qu'il est inutile de relever les cibles des prédicteurs sur un marché non stationnaire car les impatterns changent de manière stochastique.

Oh - nouvel article. Intéressant...
 
elibrarius:
Oh - nouvel article. Intéressant...

Oui, le problème de la sélection des cibles est éliminé avec cette approche, mais vous devez apprendre à apporter des révisions significatives à l'agent.

cela fonctionne bien sur n'importe quel prédicteur, mais pour que cela fonctionne sur les OOS, vous devez faire un désordre dans leur sélection.

 
Alexander_K2:

Je ne laisserai pas cette branche tomber en dehors de l'échelon supérieur.

Messieurs du réseau neuronal - les gens du peuple attendent le Graal de votre part. Ne gâche pas tout.

J'étais moi-même inquiet quand je l'ai perdue :-)