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

 
Mihail Marchukajtes:
Bonjour à tous !!!! Je suis heureux que ce fil ne soit pas mort et qu'il soit toujours vivant, alors j'ai une question pour le public. J'ai un ensemble de données pour la formation, mais malheureusement, il est devenu si grand que la formation prend trop de temps. Quelqu'un peut-il construire un modèle à partir de sa propre expérience et nous verrons ensuite comment cela fonctionne ensemble !!!!!.

Essayez de laisser les entrées (dans l'ordre à partir de 0, 0 est la 1ère colonne)

0,4,50,53,59,61,64,92,98,101,104,

Dossiers :
 

J'ai pu calculer la partie tronquée de l'ensemble de données, c'est le résultat du réseau hors échantillon, mais j'ai dû refléter complètement le modèle.

C'est le travail de 05.29 et je pense que c'est assez bon.


 
elibrarius:

Essayez de laisser les entrées (dans l'ordre à partir de 0, 0 est la 1ère colonne)

0,4,50,53,59,61,64,92,98,101,104,


L'avantage de l'optimiseur est qu'il supprime les colonnes inutiles. C'est pour ça que c'est si long. Mais maintenant je vais essayer d'optimiser l'ensemble des données, mais avec vos recommandations et ensuite voir quel sera le résultat hors échantillon. ok ?
 
Mihail Marchukajtes:

L'avantage de l'optimiseur est qu'il supprime les colonnes inutiles. C'est pourquoi le calcul est si long. Mais je vais maintenant essayer d'optimiser l'ensemble des données, en tenant compte de vos recommandations, et voir ensuite quel sera le résultat hors échantillon, ok ?


Bien joué ! !! J'ai commencé l'entraînement, vu qu'il y a beaucoup moins de colonnes, je pense que ça va compter rapidement, je posterai le résultat :-)

C'est vrai, la première formation a donné lieu à une généralisation de 55%.

 

Étrangement, avec ces entrées, le modèle doit également être inversé et alors, dans la même zone, on peut obtenir l'équité suivante

C'est un peu moins bien, mais on peut quand même l'appliquer.

J'aimerais qu'on puisse faire tourner l'ensemble des données sur l'optimiseur. Je pense qu'alors plus de colonnes auraient été sélectionnées et que le niveau de généralisation aurait été plus élevé, d'où la qualité du réseau dans la zone non échantillonnée...

 
Mihail Marchukajtes:


Bien joué ! !! J'ai commencé à m'entraîner, comme le nombre de colonnes a été considérablement réduit, je pense que ça va compter rapidement, je posterai le résultat :-)

C'est vrai, la première formation a donné lieu à une généralisation de 55%.

C'est quoi les 55% de généralisabilité ?
Le MLP normal donne 11-5-1 :
Erreur moyenne sur la formation (60,0 %) plot =0,057 (5,7 %) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
Erreur moyenne sur la validation (20,0 %) parcelle =0,038 (3,8 %) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
Erreur moyenne dans le test (20,0%) plot =0,023 (2,3%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
 
elibrarius:
Quel est le taux de généralisation de 55% ?
Le MLP conventionnel 11-5-1 donne :
Erreur moyenne sur l'apprentissage (60.0%) plot =0.057 (5.7%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
Erreur moyenne sur la validation (20.0%) section =0,038 (3,8%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
Erreur moyenne au test (20,0%) section =0,023 (2,3%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2


Je ne sais même pas quoi répondre. Le seul moyen est de citer un exemple tiré du rapport. Les résultats de l'optimisation peuvent ressembler à ceci : la manière de l'interpréter est laissée à l'appréciation de chacun, mais lorsque l'optimisation est terminée, le résultat ressemble à ceci.

* Sensibilité de la capacité de généralisation : 55.12820512820513%.

* Spécificité de la capacité de généralisation : 55,5045871559633%.

* Capacité de généralisation : 55,309734513274336%.

* TruePositives : 129

* Faux positifs : 105

* TrueNegatives : 121

* Faux négatifs : 97

* Total des motifs dans les échantillons avec statistiques : 452

En rouge, j'ai mis en évidence le résultat global de la capacité de généralisation. Le premier est le pourcentage de personnes qui devinent des uns, le deuxième le pourcentage de personnes qui devinent des zéros, et le troisième le total.


 
Mihail Marchukajtes:


Je ne sais pas quoi dire. Sauf pour donner un exemple tiré du rapport. Les résultats de l'optimisation ressemblent à ceci et vous pouvez les interpréter comme vous le souhaitez, mais lorsque l'optimisation se termine, le résultat ressemble à ceci.

* Sensibilité de la capacité de généralisation : 55.12820512820513%.

* Spécificité de la capacité de généralisation : 55,5045871559633%.

* Capacité de généralisation : 55,309734513274336%.

* TruePositives : 129

* Faux positifs : 105

* TrueNegatives : 121

* Faux négatifs : 97

* Total des motifs dans les échantillons avec statistiques : 452

En rouge, j'ai mis en évidence le résultat global de la capacité de généralisation. Le premier est le pourcentage de personnes ayant deviné des singles, le deuxième est le pourcentage de personnes ayant deviné des zéros, et le troisième est le total.


MLP devine 95% du temps... Je pense que vous faites le mauvais vélo) Sans vouloir vous offenser.
Je suis également en train de fabriquer mon propre vélo, mais en me basant sur des décennies de MLP éprouvée (qui, comme on dit, est dépassée et a besoin de quelque chose de plus cool pour travailler). Je suis donc tout à fait pour les vélos, peut-être que votre code a une logique défectueuse quelque part ? J'en ai déjà trouvé quelques-uns dans le mien en testant différentes variantes. Y compris la résolution du problème du premier message de ce fil. Mais ces mêmes filtres, qui coupent le superflu dans votre problème - coupent le nécessaire dans ce ((. Je pense donc que je devrais utiliser les poids des entrées pour faire une coupure, le champ s'exécute sur les données complètes.
 
elibrarius:
MLP devine 95% du temps... Je pense que vous faites le mauvais vélo) Sans vouloir vous offenser.
Je fabrique aussi mon propre vélo, mais en me basant sur des décennies de MLP éprouvée (qui, selon eux, est dépassée et a besoin de quelque chose de plus cool pour travailler). Je suis donc tout à fait favorable aux vélos, mais peut-être avez-vous une erreur de logique quelque part dans votre code ? J'en ai déjà trouvé quelques-uns dans le mien, en testant différentes variantes.


Le fait est que je ne suis pas un programmeur. Cet optimiseur n'a pas été écrit par moi, je l'utilise simplement, de toute façon les entrées que vous avez spécifiées donnent 55 pour cent de généralisation, ce qui est mieux que de deviner, d'où nous voyons le résultat en dehors de l'échantillon avec un bénéfice positif. La seule chose qui m'arrête maintenant est que le modèle doit être reflété, alors il gagnera, et si le modèle est droit, alors il perdra...

Mais si nous exécutons l'optimiseur sur toutes les entrées, je pense que le modèle sera beaucoup plus complexe et qu'il sélectionnera davantage d'entrées. Et en théorie, un tel modèle devrait fonctionner mieux et plus longtemps. Mais je ne peux pas exécuter l'optimiseur sur un ensemble complet de données - je pense qu'il faudra un mois pour le lire. J'espère donc faire fonctionner l'optimiseur sur le GPU, et nous verrons.

 
Mihail Marchukajtes:


Le fait est que je ne programme pas. Cet optimiseur n'a pas été écrit par moi, je ne fais que l'utiliser, de toute façon les entrées que vous avez spécifiées donnent 55 pourcents de généralisation, ce qui est mieux que de deviner, donc nous voyons le résultat en dehors de l'échantillon avec un bénéfice positif. La seule chose qui m'arrête maintenant est que le modèle doit être en miroir, alors il augmente, et si le modèle est droit, alors il perd.

Mais si nous exécutons l'optimiseur sur toutes les entrées, je pense que le modèle sera beaucoup plus complexe et qu'il sélectionnera davantage d'entrées. Et en théorie, un tel modèle devrait fonctionner mieux et plus longtemps. Mais je ne peux pas exécuter l'optimiseur sur un ensemble complet de données - je pense qu'il faudra un mois pour le lire. J'espère donc faire fonctionner l'optimiseur sur le GPU, et nous verrons.

Si vous allez démarrer quelque chose pendant un mois, utilisez une alimentation électrique ininterrompue, j'ai fait couper les lumières en 2 semaines de calcul)).
Et n'attendez pas le GPU, cela peut prendre plus de temps de réécrire le code et si l'auteur ne l'a pas fait, personne ne le fera.
Raison: