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

 
elibrarius:
Je pense que SanSanych voulait dire ne pas s'embêter à écrire son propre code, mais utiliser des fonctions prêtes à l'emploi de R

Il ne s'agit pas seulement du code. Le code prêt à l'emploi consiste à mettre en œuvre certaines idées.

Voir

gafs - sélection de prédicteurs par algorithme génétique
et le modèle final est basé sur un sous-ensemble du prédicteur, qui est attaché au nombre optimal de générations déterminé par le rééchantillonnage


rfe - sélection rétrograde des prédicteurs

met en œuvre une sélection à rebours des prédicteurs basée sur le classement de l'importance des prédicteurs.

Les prédicteurs sont ordonnés, et les moins importants sont éliminés séquentiellement avant la modélisation.

L'objectif est de trouver un sous-ensemble de prédicteurs qui peuvent être utilisés par un modèle plus précis.

safs - - robustesse de la sélection des prédicteurs simulés (recuit des prédicteurs)

Au cours d'une recherche, une mesure de la fitness (c'est-à-dire la valeur énergétique de SA) est nécessaire pour la recherche. Il s'agit d'une mesure interne de la performance. Pendant la recherche, les données disponibles sont les instances sélectionnées par le rééchantillonnage de haut niveau (par exemple, les parties de neuf dixièmes mentionnées ci-dessus). L'approche générale doit effectuer une procédure de rééchantillonnage différente. L'autre option doit utiliser de multiples hors-échantillons pour déterminer l'évaluation interne des performances .


Ce faisant, rappelez-vous toujours : " rubbish in, rubbish out ".

 
SanSanych Fomenko:

Il ne s'agit pas seulement du code. Le code prêt à l'emploi consiste à mettre en œuvre certaines idées.

Voir

gafs - sélection de prédicteurs par algorithme génétique
et le modèle final est basé sur un sous-ensemble du prédicteur, qui est attaché avec le nombre optimal de générations déterminé par le rééchantillonnage


rfe - sélection rétrograde des prédicteurs

met en œuvre une sélection à rebours des prédicteurs basée sur le classement de l'importance des prédicteurs.

Les prédicteurs sont ordonnés, et les moins importants sont éliminés séquentiellement avant la modélisation.

L'objectif est de trouver un sous-ensemble de prédicteurs qui peuvent être utilisés par un modèle plus précis.

safs - - robustesse de la sélection des prédicteurs simulés (recuit des prédicteurs)

Au cours d'une recherche, une mesure de la fitness (c'est-à-dire la valeur énergétique de SA) est nécessaire pour la recherche. Il s'agit d'une mesure interne de la performance. Pendant la recherche, les données disponibles sont les instances sélectionnées par le rééchantillonnage de haut niveau (par exemple, les neuf dixièmes mentionnés ci-dessus). L'approche générale doit effectuer une procédure de rééchantillonnage différente. L'autre option doit utiliser plusieurs hors-échantillons pour déterminer l'évaluation interne des performances .


Ce faisant, rappelez-vous toujours : " rubbish in, rubbish out ".

Des idées intéressantes. Vous ne pouvez pas écrire une telle chose vous-même...

J'ai fait un dépistage de corrélation. Pour commencer.
Je trie les prédicteurs par corrélation totale, puis je vais du moins corrélé, et j'enlève ceux qui sont corrélés avec lui. Puis je répète cela avec les prédicteurs restants.

Pearson Corr M
1.00,0.97,0.86,0.88,0.84,0.80,
0.97,1.00,0.92,0.84,0.79,0.75,
0.86,0.92,1.00,0.73,0.67,0.63,
0.88,0.84,0.73,1.00,0.99,0.98,
0.84,0.79,0.67,0.99,1.00,1.00,
0.80,0.75,0.63,0.98,1.00,1.00,
Corr + Kfull - somme des colonnes
5.35,5.26,4.80,5.42,5.30,5.16,

Kfull trié
4.80(2),5.16(5),5.26(1),5.30(4),5.35(0),5.42(3),
Entrées à supprimer : 1,3,4,
Entrées à conserver : 0,2,5,

 
SanSanych Fomenko:

Il ne s'agit pas seulement du code. Le code prêt à l'emploi consiste à mettre en œuvre certaines idées.

Voir

gafs - sélection de prédicteurs par algorithme génétique
et le modèle final est basé sur un sous-ensemble du prédicteur qui est attaché au nombre optimal de générations déterminé par le rééchantillonnage


rfe - sélection rétrograde des prédicteurs

met en œuvre une sélection à rebours des prédicteurs basée sur le classement de l'importance des prédicteurs.

Les prédicteurs sont ordonnés, et les moins importants sont éliminés séquentiellement avant la modélisation.

L'objectif est de trouver un sous-ensemble de prédicteurs qui peuvent être utilisés par un modèle plus précis.

safs - - robustesse de la sélection des prédicteurs simulés (recuit des prédicteurs)

Au cours d'une recherche, une mesure de la fitness (c'est-à-dire la valeur énergétique de SA) est nécessaire pour la recherche. Il s'agit d'une mesure interne de la performance. Pendant la recherche, les données disponibles sont les instances sélectionnées par le rééchantillonnage de haut niveau (par exemple, les neuf dixièmes mentionnés ci-dessus). L'approche générale doit effectuer une procédure de rééchantillonnage différente. L'autre option doit utiliser plusieurs hors-échantillons pour déterminer l'évaluation interne des performances .


Ce faisant, rappelez-vous toujours le principe "rubbish in, rubbish out".

Des idées intéressantes, bien sûr, vous ne pouvez pas écrire cela vous-même, ni trouver l'idée vous-même ;)

La question reste de savoir si des idées aussi complexes sont nécessaires à des fins commerciales. Pour l'instant, je vais essayer d'éliminer ceux qui sont fortement corrélés, si le résultat est inacceptable, je devrai passer à R
 
elibrarius:

Des idées intéressantes, bien sûr vous ne pouvez pas les écrire vous-même, et vous ne pouvez pas en avoir l'idée).

La question reste de savoir si des idées aussi complexes sont nécessaires à des fins commerciales. Je vais essayer d'enlever ceux qui sont fortement corrélés pour le moment, si le résultat est inacceptable, je devrai passer à R

Vous êtes coincé avec alglib dans le sens où il est extrêmement peu utile dans le travail de recherche. L'interprète R et essayer n'importe quoi est un jeu d'enfant.

L'élimination des prédicteurs fortement corrélés - (multicollinéaires) est indispensable.

Corrélation entre le prédicteur et la cible - certainement intéressant. Je peux proposer une idée pour ce type de corrélation. Construisez une régression linéaire (il en existe des plus sophistiquées) et éliminez les prédicteurs qui n'ont PAS de coefficients significatifs. Ça n'a pas marché pour moi. Peut-être que tu peux le faire.

Mais la sélection des prédicteurs est une nécessité en MO

 

L'article https://www.mql5.com/ru/articles/497 suggérait de modifier la pente de la fonction d'activation en fonction du nombre d'entrées.

Dans Algli et dans R, la pente est-elle standard ou s'auto-optimise-t-elle en fonction du nombre d'entrées ? Ou est-ce parce que presque personne ne sait ce que contiennent ces boîtes noires ?

Нейронные сети - от теории к практике
Нейронные сети - от теории к практике
  • 2012.10.06
  • Dmitriy Parfenovich
  • www.mql5.com
В наше время, наверное, каждый трейдер слышал о нейронных сетях и знает, как это круто. В представлении большинства те, которые в них разбираются, это какие-то чуть ли не сверхчеловеки. В этой статье я постараюсь рассказать, как устроена нейросеть, что с ней можно делать и покажу практические примеры её использования.
 
elibrarius:

L'article https://www.mql5.com/ru/articles/497 suggérait de modifier la pente de la fonction d'activation en fonction du nombre d'entrées.

Dans Algli et dans R, la pente est-elle standard ou s'auto-optimise-t-elle en fonction du nombre d'entrées ? Ou qu'y a-t-il dans ces boîtes noires que personne ne connaît ?


Certaines bibliothèques de réseaux neuronaux offrent à l'utilisateur de nombreuses possibilités de personnaliser le réseau neuronal créé, jusqu'à la configuration de fonctions permettant d'activer des neurones individuels ou d'ajouter/supprimer des connexions individuelles. Cependant, la pratique montre qu'une fonctionnalité étendue n'est souvent pas nécessaire - certaines architectures génériques ne peuvent pas être améliorées de manière significative par un réglage fin, et la situation est similaire avec les méthodes de formation des réseaux neuronaux. Enfin, il existe une autre raison de ne pas donner à l'utilisateur une boîte à outils trop riche : si un réseau neuronal nécessite un réglage fin, ce réglage n'est pas difficile pour l'auteur d'un logiciel, mais peut souvent déconcerter l'utilisateur final. D'où la conclusion : un bon logiciel de réseau neuronal ne doit pas nécessiter de personnalisation complexe. Suivant ce principe, le paquet ALGLIB tente de résoudre automatiquement le plus grand nombre de problèmes possible, ne laissant à l'utilisateur que les décisions vraiment importantes.

Architectures disponibles
Le package ALGLIB permet de créer des réseaux neuronaux sans couche cachée, avec une couche cachée et avec deux couches cachées. Les connexions vont de la couche d'entrée à la première couche cachée (si elle existe), puis à la deuxième, puis à la couche de sortie. Il n'y a pas de connexions "courtes" entre la couche d'entrée et la couche de sortie. Les couches cachées ont l'une des fonctions d'activation compressive standard, mais une plus grande variété est possible pour la couche de sortie du réseau neuronal. La couche de sortie peut être linéaire (de tels réseaux sont utilisés dans les problèmes d'approximation), peut avoir une fonction d'activation compressive (dans le cas où les sorties du réseau sont limitées à une certaine plage). Des réseaux avec une fonction d'activation bornée par le haut (ou par le bas) sont également disponibles. Dans le cas le plus simple (borné par zéro), cette fonction tend vers x lorsque x tend vers +∞, et tend exponentiellement vers zéro lorsque x tend vers -∞.
Les réseaux neuronaux avec couche de sortie linéaire et normalisation SOFTMAX des sorties constituent un cas particulier. Ils sont utilisés pour les problèmes de classification, dans lesquels les sorties du réseau doivent être non négatives et leur somme doit être strictement égale à un, ce qui permet de les utiliser comme probabilités d'affectation du vecteur d'entrée à l'une des classes (dans le cas limite, les sorties du réseau entraîné convergent vers ces probabilités). Le nombre de sorties d'un tel réseau est toujours au moins deux (limitation dictée par la logique élémentaire).
Un tel ensemble d'architectures, malgré son caractère minimaliste, est suffisant pour résoudre la plupart des problèmes pratiques. L'absence de détails superflus permet de se concentrer sur le problème (classification ou approximation) sans accorder une attention excessive à des détails sans importance (par exemple, le choix d'une fonction d'activation particulière pour une couche non linéaire a généralement peu d'effet sur le résultat).

http://alglib.sources.ru/dataanalysis/neuralnetworks.php

 
Lu précédemment, mais cela ne répond pas à la question(
"Les couches cachées ont une des fonctions d'activation compressive standard" - laquelle ? Ajuste-t-il ses coefficients en fonction du nombre de connexions entrantes ? Le fait que le nombre d'entrées affecte le résultat a été montré dans l'article. Sinon, on fait exploser 100 neurones dans une couche cachée (ou même dans une couche d'entrée), et les neurones suivants peuvent bien fonctionner avec seulement 5 entrées...
 
elibrarius:
Lu précédemment, mais cela ne répond pas à la question(
"Les couches cachées ont une des fonctions d'activation compressive standard" - laquelle ? Ajuste-t-il ses coefficients en fonction du nombre de connexions entrantes ? Le fait que le nombre d'entrées affecte le résultat a été montré dans l'article. Sinon, nous alimentons 100 neurones dans une couche cachée (ou même dans la couche d'entrée) et les neurones suivants peuvent bien fonctionner avec seulement 5 entrées...


seulement si vous fouillez dans le code ou si vous leur demandez ... s'il y a 2 types de grille, probablement une sigmoïde et une autre sur la sortie, qui varie selon qu'elle est linéaire ou dans la gamme.

et l'architecture en grille est un peu compliquée... Je vais devoir me donner beaucoup de mal, mais heureusement il n'y a que 2 couches cachées, donc c'est déjà plus facile :) J'ai lu quelque part que la couche cachée, en général, devrait être 2 fois moins importante que l'entrée... ou plus, j'ai oublié ;)

 

Au fait, j'ai vérifié la corrélation avec des périodes de 10 à 60 (6 pièces) sur le graphique EURUSD M1, vers la sortie (je n'ai pas de zigzag, mais quelque chose de proche).

-0.00,0.01,0.00,0.01,0.01,-0.01

La corrélation est comprise entre -0,01 et 0,01, c'est-à-dire qu'il n'y a pas de corrélation du tout.

Cependant, votre conseiller expert affiche un bénéfice. Je pense qu'il est beaucoup plus facile d'écrire un conseiller expert ordinaire qui fonctionnera selon ces règles.

 
Maxim Dmitrievsky:


J'ai lu quelque part que la couche cachée, en général, devrait avoir la moitié de la taille de la couche d'entrée... ou plus, j'ai oublié).

Une des règles "Nombre optimal de neurones dans la couche cachée (# de neurones cachés) = (# d'entrées + # de sorties)/2 , ou SQRT(# d'entrées * # de sorties)".

Et dans le réseau Reshetov que vous avez utilisé, 2nEntrées

Raison: