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

 
Maxim Dmitrievsky #:
Nous n'avons pas besoin de ce type de développement, nous avons besoin d'un garage avec des Lexus.

Sans compréhension du marché, il n'y aura même pas de paquet de pâtes.

 
mytarmailS #:

sans comprendre le marché, il n'y aura même pas de paquet de pâtes.

Le FF est un garage avec des Lexus, je ne sais pas comment l'expliquer autrement.
 
Maxim Dmitrievsky #:
Le FF est un garage avec une Lexus, je ne sais pas comment l'expliquer autrement.

Je n'ai pas à te l'expliquer, je suis un grand garçon.

Vous avez une opinion, j'en ai une autre.

Mon opinion est mon expérience, tu ne peux pas la changer avec des mots.

 
mytarmailS #:

Je n'ai pas à m'expliquer, je suis un grand garçon.

Tu as une opinion, j'en ai une autre.

Mon opinion est mon expérience, les mots ne peuvent pas la changer.

Ce qui est triste, c'est que ce n'est pas une opinion, c'est un fait.
Vous pouvez dessiner un diable chauve à la place de FF et faire en sorte que ça colle.
 
Maxim Dmitrievsky #:
Ce qui est triste, c'est que ce n'est pas une opinion, c'est un fait.
Vous pouvez dessiner un diable chauve à la place d'un FF et l'ajuster pour qu'il s'y adapte.

vous ne vous rendez même pas compte du genre de conneries que vous êtes en train de dire))))

Comme si l'optimiseur de mt , n'était pas un optimiseur et n'optimisait pas les FF.

 
mytarmailS #:

vous ne vous rendez même pas compte des conneries que vous êtes en train de dire).

Comme si l'optimiseur de mt n'était pas un optimiseur et n'optimisait pas FF.

Quel est le rapport avec mt ? Avez-vous déjà entendu parler de l'optimisation de la production ? Lorsque vous avez des processus interdépendants réels, mais que vous devez améliorer l'efficacité.

C'est la même chose avec l'optimisation sl/tp pour un modèle fini.

Et vous créez un diable chauve à partir d'un tas d'ordures en utilisant FF.

Vraiment, finissons-en, c'est n'importe quoi, comme si je parlais à un écolier.
 

Le livre TORCH pour R est enfin sorti.

S'il y a des futurs magiciens de la DL, foncez.

 
Rorschach #:

Avez-vous essayé cette approche ? (voir la section Interprétation du modèle à peu près au milieu de la page)

Merci pour le lien - il sera très utile lorsque je commencerai enfin à expérimenter en Python !

Je suppose qu'il s'agit d'un nouveau style de présentation du livre ? Y a-t-il d'autres documents ?

Pour répondre à la question - lors de l'abattage des feuilles, rien n'a été utilisé directement.

Je n'ai pas travaillé avec une forêt d'arbres de décision, et je n'ai donc pas utilisé un certain nombre de techniques en principe comme suggéré. Cependant, j'ai utilisé quelque chose de similaire, par exemple l'estimation de la variance d'erreur d'une feuille particulière a été utilisée pour déterminer le poids d'une feuille dans l'ensemble.

L'importance des prédicteurs sur l'estimation de la division est également présente dans CatBoost, mais dans le gradient bousting, vous devez ajuster votre compréhension des indicateurs car les arbres sont dépendants et séquentiels. La métrique elle-même est assez controversée car elle évalue la construction des arbres et le principe d'avidité ne fonctionne pas bien pour toutes les données. Cependant, j'ai utilisé la moyenne des scores d'une centaine de modèles sur 8 intervalles d'échantillonnage pour sélectionner les prédicteurs des modèles CatBoost - en moyenne, cette méthode a amélioré les résultats de l'apprentissage. L'expérience a été publiée en détail dans ce fil de discussion.

Je n'ai pas essayé la corrélation de fréquence dans la version proposée - j'ai inventé ma propre méthode de regroupement des prédicteurs binaires et des feuilles, qui permet également d'écarter les prédicteurs binaires et les feuilles trop similaires. Je pense que l'implémentation en python devrait fonctionner plus rapidement, car mon algorithme n'est pas optimal - il faudrait le comparer pour mieux le comprendre.

L'idée de sélectionner des prédicteurs fortement modifiés semble intéressante, je devrais l'essayer. Mais en fait, dans l'expérience que j'ai décrite ci-dessus, je l'ai fait simplement en ne prenant pas de tels prédicteurs pour l'entraînement final. Il serait préférable de comprendre comment détecter la tendance d'une variable à changer sur la base de son comportement historique, ainsi que le moment où les fluctuations sont devenues irréversiblement décalées vers un changement de la plage moyenne de la distribution de probabilité du prédicteur. Nous avons des idées sur le papier, nous devons les coder.

Évaluer la contribution de chaque prédicteur à la solution pour une ligne particulière sous la forme d'une visualisation est amusant, mais pour un grand nombre de prédicteurs de modèle, c'est peu utile. Cependant, j'ai fait une chose similaire - j'ai posté une grappe ici dans le fil de discussion - où j'ai mis en évidence l'importance de la réponse lith par couleur et combien de feuilles dans le modèle ont été utilisées pour prédire chaque rangée. Il s'est avéré que la plupart des feuilles cessent d'être activées dans le modèle, c'est-à-dire que les motifs ne se produisent plus du tout - peu de gens y pensent.

Ai-je manqué des idées exprimées ici ? Si oui, écrivez précisément - je les décrirai ou non.

Je n'ai pas compris l'idée de coder les caractéristiques catégorielles pour les utiliser dans les réseaux neuronaux - il y a une référence au matériel antérieur.

 
Slava #:

J'ai compris. Les fonctions de perte fonctionnent avec les matrices comme avec les vecteurs. À cet endroit, nous n'avons pas terminé (nous n'avons pas ajouté le paramètre de l'axe).

C'est-à-dire que dans votre exemple, vous devez le résoudre ligne par ligne.

Je vous remercie de votre attention.

D'accord, je comprends. Mais il y a un problème avec les vecteurs, en particulier avec LOSS_BCE :

double bce(const vector &truth, vector &pred)
{
   double sum = 0;
   pred.Clip(DBL_EPSILON, 1 - DBL_EPSILON);
   const int n = (int)truth.Size();
   for(int i = 0; i < n; ++i)
   {
      sum += truth[i] * MathLog(pred[i]) + (1 - truth[i]) * MathLog(1 - pred[i]);
   }
   return sum / -n;
}

void OnStart()
{
   vector actual_values = {0, 1, 0, 0, 0, 0};
   vector predicted_values = {.5, .7, .2, .3, .5, .6};     // 0.53984624 - keras (correct answer)
   Print(actual_values.Loss(predicted_values, LOSS_BCE));  // 0.6798329317196582 - mql5 API
   Print(bce(actual_values, predicted_values));            // 0.5398464220309535 - custom
}

Une fois de plus, le résultat de l'API ne correspond pas au résultat attendu.

 
Aleksey Vyazmikin #:

Merci pour le lien - il me sera très utile lorsque je commencerai enfin à expérimenter en python !

Je suppose qu'il s'agit d'un nouveau style de présentation du livre ? Y a-t-il d'autres documents ?

Pour répondre à la question - lors de la sélection des feuilles, rien n'a été utilisé directement.

Je n'ai pas travaillé avec une forêt d'arbres de décision, et je n'ai donc pas utilisé un certain nombre de techniques en principe comme suggéré. Cependant, j'ai utilisé quelque chose de similaire, par exemple, j'ai utilisé l'estimation de la variance d'erreur d'une feuille particulière pour déterminer le poids d'une feuille dans l'ensemble.

L'importance des prédicteurs sur l'estimation de la division est également présente dans CatBoost, mais dans le gradient bousting, vous devez ajuster votre compréhension des indicateurs car les arbres sont dépendants et séquentiels. La métrique elle-même est assez controversée car elle évalue la construction des arbres et le principe d'avidité ne fonctionne pas bien pour toutes les données. Cependant, j'ai utilisé la moyenne des scores d'une centaine de modèles sur 8 intervalles d'échantillonnage pour sélectionner les prédicteurs des modèles CatBoost - en moyenne, cette méthode a amélioré les résultats de la formation. L'expérience a été publiée en détail dans ce fil de discussion.

Je n'ai pas essayé la corrélation de fréquence dans la version proposée - j'ai inventé ma propre méthode de regroupement des prédicteurs binaires et des feuilles, qui permet également d'écarter les prédicteurs binaires et les feuilles trop similaires. Je pense que l'implémentation en python devrait fonctionner plus rapidement, car mon algorithme n'est pas optimal - il faudrait le comparer pour mieux le comprendre.

L'idée de sélectionner des prédicteurs fortement modifiés semble intéressante, je devrais l'essayer. Mais en fait, dans l'expérience que j'ai décrite ci-dessus, je l'ai fait simplement en ne prenant pas de tels prédicteurs pour l'entraînement final. Il serait préférable de comprendre comment détecter la tendance d'une variable à changer sur la base de son comportement historique, ainsi que le moment où les fluctuations sont devenues irréversiblement décalées vers un changement de la plage moyenne de la distribution de probabilité du prédicteur. J'ai des idées sur le papier - je dois les coder.

Évaluer la contribution de chaque prédicteur à la solution pour une ligne particulière sous la forme d'une visualisation est amusant, mais pour un grand nombre de prédicteurs de modèle, c'est peu utile. Cependant, j'ai fait une chose similaire - j'en ai posté une partie ici dans le fil de discussion - où j'ai mis en évidence l'importance de la réponse lith par couleur et combien de feuilles dans le modèle ont été utilisées pour prédire chaque rangée. Il s'est avéré que la plupart des feuilles cessent de s'activer dans le modèle, c'est-à-dire que les motifs ne se produisent plus du tout - peu de gens y pensent.

Ai-je manqué des idées exprimées ici ? Si oui, écrivez-moi précisément - je les décrirai ou non.

Je n'ai pas compris l'idée de coder les caractéristiques catégorielles pour les utiliser dans les réseaux neuronaux - il y a une référence au matériel antérieur.

Cette méthode est facilement automatisée et fonctionne sans intervention humaine

J'ai présenté un algorithme similaire dans le dernier article.

En substance, il s'agit de filtrer les erreurs de modèle et de les placer dans une classe distincte "ne pas négocier", mieux par le biais du second modèle, qui apprend à séparer les grains de l'ivraie.

Et seuls les grains restent dans le premier modèle.

C'est la même chose qu'avec les règles de l'arbre, mais sur le côté. Cependant, les règles doivent être pillées et comparées les unes aux autres, ce qui permet d'obtenir un CT affiné.

Par exemple, la première itération de sélection des grains à partir de l'ivraie (à gauche de la ligne verticale pointillée - OOS) :

Et voici la 10e :