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

 
elibrarius:

Quelque chose de similaire à la permutation que Maxim a trouvé. Mais cela a-t-il un sens de remplacer un prédicteur avec une variation de 0,1 à 0,2 par une variation de 800 à 300000 au lieu d'un prédicteur avec une variation de 0,1 à 0,2 ? Non !

Mais remanier ses rangs le fait. La plage de nombres et la distribution de probabilité resteront inchangées, mais les valeurs de chaque exemple deviendront aléatoires.

Oui, en effet, quelque chose de similaire, c'est probablement là que l'idée est venue. Je n'ai pas compris quel est le problème de changer le prédicteur, parce que chaque prédicteur a ses propres valeurs sur la ligne, en outre il est nécessaire de garder la grille de ventilation de ces valeurs (il peut être pas uniforme 0,1 0,2 0,3 ou tout autre - des variantes sont disponibles auprès de différents développeurs de modélisateurs) tel, comme il était quand l'algorithme de l'arbre a fonctionné, si c'est possible.

Et ce qui est également important, c'est qu'il est nécessaire de vérifier non pas sur tous les échantillons, mais exactement sur les rangées où la feuille précédente a été activée, afin que les données soient comparables en précision, c'est-à-dire qu'il est nécessaire de pré-filtrer l'échantillon (pour l'évaluation sur différentes feuilles, respectivement, une filtration différente).

 
Aleksey Vyazmikin:

Oui, ça se ressemble, c'est probablement là que l'idée est venue. Je ne comprends pas quel est le problème de changer le prédicteur, parce que chaque prédicteur a ses propres valeurs sur la ligne, d'ailleurs il est nécessaire de garder la grille de ventilation de ces valeurs (il peut être pas uniforme 0,1 0,2 0,3 ou tout autre - il ya des options pour les différents développeurs de modélisateurs) comme il était quand l'algorithme de l'arbre a fonctionné, si c'est possible.

Au lieu du prédicteur dont le maximum était 0,2, remplacez la valeur de l'autre prédicteur par une valeur comprise entre 800 et 300000 ? Et il s'avérera qu'elle ira toujours vers les branches de droite. Et nous devons vérifier les deux branches, droite et gauche.
La normalisation permettra d'entrer dans la fourchette, mais la distribution de probabilité peut être différente, ce qui fait que les branches de droite seront déclenchées plus souvent que celles de gauche ou vice versa.
Ou bien je comprends mal votre idée et nous parlons de choses différentes.

Aleksey Vyazmikin:

Une autre chose importante est que nous ne devrions pas vérifier l'ensemble de l'échantillon, mais précisément les lignes où la feuille précédente a été activée, afin que les données soient comparables en termes de précision, c'est-à-dire que nous devrions pré-filtrer l'échantillon (pour l'évaluation sur différentes feuilles, respectivement, un filtrage différent).

En éliminant le prédicteur, nous laissons tomber les nœuds qui séparent ses données (pourquoi une feuille séparée ?). En éliminant chaque nœud, nous devons vérifier 2 branches. Si nous écartons 10 nœuds, nous obtenons 11 options (sous-arbres) avec 11 feuilles comme réponse. Il faut en faire la moyenne, l'exécution de l'ensemble de l'échantillon avec une colonne mélangée le montrera approximativement dans le changement de l'erreur finale arbre/forêt.
Lisez l'article sur la pemutation - tout y est décrit en détail.

 
elibrarius:

Il suffit de substituer la valeur du prédicteur avec un maximum de 0,2 à la valeur de l'autre prédicteur avec des valeurs comprises entre 800 et 300000. Et il s'avérera qu'elle ira toujours vers les branches de droite. Et nous devons vérifier les deux branches, droite et gauche.
La normalisation permettra d'entrer dans la fourchette, mais la distribution de probabilité peut être différente, ce qui fait que les branches de droite seront déclenchées plus souvent que celles de gauche ou vice versa.
Ou je ne comprends pas votre idée et nous parlons de choses différentes.

En éliminant le prédicteur, nous éliminons les nœuds qui partagent des données avec lui (quel est le rapport avec une feuille séparée ?). En éliminant chaque nœud, nous devons vérifier 2 branches. Si nous écartons 10 nœuds, nous obtenons 11 choix avec 11 feuilles comme réponse. Il faut en faire la moyenne, l'exécution de l'échantillon complet avec une colonne mélangée le montrera approximativement dans le changement de l'erreur finale arbre/forêt.
Lisez l'article sur la pemutation - tout y est décrit en détail.

Ma méthode n'est pas la pemutation, donc je ne peux pas la reproduire.

Je pars d'une autre, à savoir qu'une feuille est une règle déjà achevée - une caractéristique d'une certaine observation, et qu'elle peut très bien déjà exister sans arborescence. Un arbre est un outil permettant de générer des règles à partir d'observations.

Bien sûr, je suis d'accord sur le fait que certains prédicteurs rendront une règle à feuilles modifiée complètement non fonctionnelle sur la même partie de l'échantillon, mais ce n'est pas un problème, puisque le but est de trouver un meilleur analogue et de ne comparer qu'avec lui - il est normal que certains prédicteurs qui divisent l'échantillon par division soient perdus, mais généralement cela ne concerne que la série de valeurs pour un prédicteur individuel. Par exemple, nous avons une feuille de trois prédicteurs A>3 && B<1 && C>.=20, il y a des prédicteurs D et E qui ne sont pas inclus dans les règles de la liste, respectivement nous devons supprimer un par un chaque prédicteur, A pour commencer et le remplacer par D et E avec des étapes de la grille de partition de la valeur du prédicteur et avec différents signes d'inégalité, dans ce cas vérifier chaque nouvelle règle sur les mêmes parties de l'échantillon où l'original a été activé et obtenir des statistiques de précision de classification pour chaque règle. Et, par conséquent, la meilleure option est de le comparer avec l'original et de donner une note à cette comparaison. Pour faire cette procédure pour toutes les feuilles. Excluant les feuilles qui sont dupliquées. Il est important de ne pas évaluer le résultat de l'arbre comme un ensemble de règles, et chaque règle énoncée dans la feuille séparément des autres.

Je ne cherche pas à déterminer l'importance du prédicteur pour l'arbre cupide, mais l'importance du prédicteur pour la stabilité de la règle (feuille) proposée par le modèle.
 
Aleksey Vyazmikin:

Ma méthode n'est pas la pemutation, donc je ne peux pas la reproduire.

Je pars d'une autre, à savoir qu'une feuille est une règle déjà achevée - une caractéristique d'une certaine observation, et qu'elle peut très bien déjà exister sans arborescence. Un arbre est un outil permettant de générer des règles à partir d'observations.

Bien sûr, je suis d'accord sur le fait que certains prédicteurs rendront une règle à feuilles modifiée complètement non fonctionnelle sur la même partie de l'échantillon, mais ce n'est pas un problème, puisque le but est de trouver le meilleur analogue et de ne comparer qu'avec lui - il est normal que certains prédicteurs qui divisent l'échantillon par des splits soient perdus, mais généralement cela ne concerne que la série de valeurs pour un prédicteur individuel. Par exemple, nous avons une feuille de trois prédicteurs A>3 && B<1 && C>.=20, il y a des prédicteurs D et E qui ne sont pas inclus dans les règles de la liste, respectivement nous devons supprimer un par un chaque prédicteur, A pour commencer et le remplacer par D et E avec des étapes de la grille de partition de la valeur du prédicteur et avec différents signes d'inégalité, dans ce cas vérifier chaque nouvelle règle sur les mêmes parties de l'échantillon où l'original a été activé et obtenir des statistiques de précision de classification pour chaque règle. Et, par conséquent, la meilleure option est de le comparer avec l'original et de donner une note à cette comparaison. Pour faire cette procédure pour toutes les feuilles. Excluant les feuilles qui sont dupliquées. Il est important d'évaluer non pas le résultat de l'arbre comme un ensemble de règles, mais chaque règle énoncée dans la feuille séparément des autres.

Je n'essaie pas de déterminer l'importance du prédicteur pour l'arbre gourmand, mais l'importance du prédicteur pour la stabilité de la règle (feuille) proposée par le modèle.
Je me suis occupé de l'échafaudage jusqu'à présent. Donc dans votre direction MO - vous savez quoi faire)
 
elibrarius:
Je fais l'échafaudage pour l'instant. Donc dans votre direction MO - vous savez quoi faire)

Il s'avère donc que chacun parle de son propre truc :)

Dites-moi, est-il réaliste d'implémenter sur la même Alglib la possibilité de construire une forêt uniquement avec des valeurs prédicteurs uniques, ou au moins avec des splits uniques ? Les arbres seront moins nombreux bien sûr, mais ils ne reproduiront pas leurs erreurs/réponses correctes, ce qui devrait donner plus de plausibilité à la formation hors échantillon.

 
Aleksey Vyazmikin:

Dites-moi, est-il réaliste d'implémenter sur la même Alglib pour construire une forêt uniquement avec des valeurs prédicteurs uniques, ou au moins avec des splits uniques ? Il y aura moins d'arbres, bien sûr, mais ils ne reproduiront pas leurs erreurs/réponses correctes, ce qui devrait donner plus de plausibilité en dehors de l'échantillon d'entraînement.

Bien sûr. MQL vous permet de programmer n'importe quoi, comme n'importe quel autre langage. Et Alglib peut être réécrit au-delà de toute reconnaissance en fonction de vos idées.

 
Elibrarius:

Bien sûr. MQL vous permet de programmer n'importe quoi, comme n'importe quel autre langage. Et Alglib peut être réécrit au-delà de toute reconnaissance pour correspondre à vos idées.

Dans le mot "réaliste", j'ai mis "aussi simple que cela"...

Mais d'après la réponse, j'ai l'impression que, merci, je ne me donnerai pas la peine.

 
Aleksey Vyazmikin:

Dans le mot "réaliste", j'ai mis "aussi simple que cela"...

Mais d'après la réponse, je comprends l'attitude, merci, je ne me dérangerai pas.

Compliqué, bien sûr.
Mais il existe une base sous la forme d'une fonction arbre. C'est ce que vous pouvez modifier comme vous le souhaitez.
 
elibrarius:
Difficile bien sûr.
Mais il existe une base sous la forme d'une fonction arborescente. C'est ce que vous pouvez modifier comme vous le souhaitez.

Merci de votre réponse. Vous avez une bonne compréhension du code, envisagez-vous une version publique avec des améliorations de l'algorithme de construction des arbres ? Même des choses comme la profondeur de l'arbre ou l'élagage intégré à une taille de nombre d'observation de règle définissable seraient très utiles ici. Je n'ai pas commencé à utiliser Alglib moi-même, mais certains pourraient le trouver très utile.

 
Aleksey Vyazmikin:

Merci de votre réponse. Vous avez une bonne compréhension du code, envisagez-vous une version publique avec des améliorations de l'algorithme de construction des arbres ? Même des choses comme la profondeur de l'arbre ou l'élagage intégré à une taille de nombre d'observation de règle définissable seraient très utiles ici. Je n'ai pas utilisé Alglib moi-même, mais certains pourraient le trouver très utile.

Comprendre et faire des communiqués sont des choses différentes. Je suis en train d'expérimenter. Je mélange les prédicteurs maintenant. Je risque de l'abandonner, comme j'ai abandonné la NS à cause de mon incapacité à supporter le bruit.

C'est assez facile à comprendre. Il suffit de regarder le code pendant quelques heures pour que tout devienne clair.