L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 1277

[Supprimé]  
elibrarius:

J'ai compris cette méthode différemment.
Pour le prédicteur étudié, vous ne voulez pas introduire des valeurs aléatoires avec une distribution normale, mais simplement mélanger les lignes de cette colonne.

Quoi qu'il en soit, les résultats de l'article sont impressionnants. Il est nécessaire de l'essayer en pratique.

mélangez-les, quelle différence cela fait-il ?

 
elibrarius:
Alglib passe en revue tous les prédicteurs restants de 50%, les divise en 4 parties par quartiles, et choisit la division avec la meilleure erreur parmi tous les choix.

Les splits aléatoires ne sont en principe pas difficiles à trouver.
Je n'ai pas vu d'arbres individuels avec de bons résultats (45-50%), mais une forêt d'arbres est plus intéressante).


Je vois, c'est ce que je pensais, il y a donc de fortes chances que la division des racines soit la même dans la plupart des arbres, ce qui écarte d'autres options.

Je pars du principe que toute feuille n'est qu'une tentative de description d'un modèle, et que nous ne pouvons pas savoir à l'avance si la description sera correcte ou s'il s'agit d'une coïncidence aléatoire dans l'échantillon. C'est pourquoi je recrute des feuilles différentes et uniques (non répétitives) et les vérifie séparément, plutôt que l'arbre entier.

Alglib a une ramification excessive, donc il ne s'agit pas d'apprendre, mais de se souvenir. Je pense que l'échafaudage est une bonne idée, mais il fonctionnera correctement si chaque arbre contient des règles uniques (feuilles) et si le nombre de divisions n'est pas très grand - 4-10.


elibrarius:
En termes d'importance des prédicteurs examinés :
Les paquets xgboost, lightGBM avaient des méthodes intégrées pour estimer l'importance des caractéristiques pour les "modèles en bois" :

  1. Gain
    Cette mesure montre la contribution relative de chaque caractéristique au modèle. Pour la calculer, nous allons à chaque nœud de l'arbre, regardons quelle caractéristique conduit à la séparation des nœuds et de combien l'incertitude du modèle est réduite selon la métrique (impureté de Gini, gain d'information).
    Pour chaque caractéristique, sa contribution est additionnée sur tous les arbres.
  2. Couverture
    Indique le nombre d'observations pour chaque caractéristique. Par exemple, vous avez 4 éléments, 3 arbres. Supposons que le fichier 1 comporte 10, 5 et 2 observations dans les nœuds 1, 2 et 3 de l'arbre respectivement, l'importance de ce fichier serait de 17 (10 + 5 + 2).
  3. Fréquence
    Indique la fréquence à laquelle une caractéristique donnée est trouvée dans les nœuds de l'arbre, c'est-à-dire que le nombre total de nœuds d'arbre divisés pour chaque caractéristique dans chaque arbre est compté.
Ils ne répartissent pas vraiment l'importance correctement.
J'ai une forêt entraînée pour 5 barres donne de meilleurs résultats dans le test qu'à 100. Mais lorsqu'ils sont formés par 100, les 5 premiers ne sont pas marqués comme importants, mais comme lointains.
Lors de l'entraînement à 100, l'erreur des arbres individuels et des forêts est plus faible - manifestement en raison du surentraînement et de l'importance accordée aux barres 30-100. Mais il est évident qu'ils ne sont pas importants selon la logique conventionnelle, mais par le fait que la forêt à 5 barres donne de meilleurs résultats.

Oui, avec une estimation importante, les approches standard ne sont pas très efficaces. Je veux essayer une sorte de score d'unicité, c'est-à-dire quand il y a déjà des feuilles prêtes, et que nous essayons de changer chaque prédicteur à tour de rôle par n'importe quel autre (en tenant compte du fractionnement de la grille), collecter les statistiques, et comparer la meilleure variante de remplacement avec la variante par défaut, considérer la précision ou un autre score (le concept est important), et ainsi collecter les scores pour chaque prédicteur pour l'ensemble du modèle.

elibrarius:
Après un regard rapide sur le code, j'ai vu une sélection génétique de fonctionnalités pour construire un arbre à partir du paquet rpart. En d'autres termes, chaque arbre s'est vu offrir un ensemble différent de caractéristiques pour l'apprentissage. En raison de la génétique, cet ensemble de caractéristiques est plus rapide que la force brute complète.
Mais l'arbre n'est pas magique, c'est celui proposé par rpart. Je pense que c'est la norme là-bas.

L'arbre lui-même est complètement standard, l'idée originale du script est de trouver les prédicteurs les plus significatifs, et la génétique semble y contribuer.

Je ne comprends pas comment vous pouvez changer l'entropie en un autre indicateur (précision ou exhaustivité ou autre) pour créer une nouvelle génération.

 

J'ai regardé une conférence sur la ME il n'y a pas si longtemps, et il y avait une situation où un modèle fonctionne dans une gamme étroite de probabilité, mais pour les modèles de boosting, cela est considéré comme presque la norme, car le modèle ne sort pas essentiellement une probabilité pure, et en raison de ce fait, il y a le concept de calibrer un tel modèle pour des interprétations correctes des prédictions. Et j'ai connu une telle situation l'année dernière, lorsque des modèles donnaient leurs résultats dans la fourchette de 40 à 60, et on m'a assuré qu'il s'agissait d'une très mauvaise variante... J'avais des doutes car les modèles étaient stables et donnaient de bons résultats financiers.

 
Aleksey Vyazmikin:

J'ai regardé une conférence sur la ME il n'y a pas si longtemps, et il y avait une situation où un modèle fonctionne dans une gamme étroite de probabilité, mais pour les modèles de boosting, cela est considéré comme presque la norme, car le modèle ne sort pas essentiellement de la probabilité pure, et pour cette raison, il y a un concept de calibrage d'un tel modèle pour des prédictions correctes. Et j'ai connu une telle situation l'année dernière, lorsque les modèles donnaient leurs résultats dans la fourchette de 40 à 60 et qu'on m'assurait qu'il s'agissait d'une très mauvaise variante... J'avais des doutes, car les modèles étaient stables et donnaient de bons résultats financiers.

Alexei, disons que le taux d'erreur est de 99% - est-ce bon ou mauvais ?

Je comprends que le 1 % restant est la probabilité de réussite.

Pas beaucoup, mais c'est cool, car nous savons déjà où se trouve l'erreur et comment l'éviter.

Cela dit, le rapport est de 99k1
 
Renat Akhtyamov:

Alexei, disons que la probabilité d'erreur est de 99 % - est-ce bon ou mauvais ?

Je suppose que les 1 % restants représentent la probabilité de succès.

C'est petit, mais cool, car nous savons déjà où se trouve l'erreur et comment l'éviter.

Une probabilité d'erreur aussi élevée nous indique que nous ne savons pas grand-chose sur ce qui se passe.

Il est assez précis et c'est une bonne chose, mais il est loin d'être un succès - 1% pourrait n'être qu'un coup de chance.

Et ça, c'est si on parle spécifiquement de probabilité.

 
Aleksey Vyazmikin:

Je vois, c'est ce que je pensais, il y a donc de fortes chances que la division des racines soit la même dans la plupart des arbres, ce qui écarte d'office les autres options.

Environ 50%. Mais ce paramètre peut être modifié, à n'importe quel moment, dans le cadre d'un autre appel de forêt.

Aleksey Vyazmikin:
Je veux essayer comme une évaluation d'une sorte d'indicateur d'unicité, c'est-à-dire quand il y a déjà des feuilles prêtes et que nous essayons de changer chaque prédicteur un par un à n'importe quel autre (en tenant compte de la division de la grille), recueillir des statistiques, et comparer la meilleure variante de remplacement avec la variante par défaut, considérer la précision ou un autre indicateur (le concept est important), et ainsi recueillir des points pour chaque prédicteur pour l'ensemble du modèle.

Quelque chose de similaire à la permutation que Maxim a trouvé. Mais cela a-t-il un sens de substituer un prédicteur avec une variation de 0,1 à 0,2 avec une variation de 800 à 300000 au lieu d'un prédicteur avec une variation de 0,1 à 0,2 ? Non !
Mais le brassage de ses lignes le fait. La gamme de nombres et la distribution de probabilité resteront inchangées, mais les valeurs de chaque exemple deviendront aléatoires.

Aleksey Vyazmikin:

Ce que je ne comprends pas, c'est comment on peut changer l'entropie en une autre valeur (précision ou exhaustivité ou autre) pour créer une nouvelle génération.

Certains packages R permettent d'utiliser leur fonction d'erreur. Xgboost le peut, mais là vous devez trouver une formule pour la dérivée de votre f-fi et l'alimenter avec. Pour moi, la dérivation est un problème. Regardez la description du paquet rpart, peut-être pouvez-vous utiliser vos fonctions là aussi, ou même sans dérivé.

[Supprimé]  
elibrarius:

Quelque chose de similaire avec 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 gamme de nombres et la distribution de probabilité resteront inchangées, mais les valeurs de chaque exemple deviendront aléatoires.

J'ai écrit,"disonsn. spread". Trouvez la moyenne et la variance et allez-y. Il est préférable de randomiser par Bruit plutôt que de simplement mélanger.

Il y a beaucoup d'idiots ici qui aiment déformer les mots et faire des captures d'écran, pour essayer de s'imposer par la suite.

 
Maxim Dmitrievsky:

J'ai écrit,"supposonsune distribution n.". Naturellement, cela a du sens avec des traits normalisés. Trouvez la moyenne et la variance et allez-y.

Il y a beaucoup d'idiots ici qui aiment déformer les mots et en faire des captures d'écran, en essayant de s'affirmer par la suite.
La normalisation va aider avec la gamme - c'est vrai.
Mais la distribution de probabilité d'une distribution normale se situera au milieu (environ 0,5), alors que le véritable prédicteur peut être décalé latéralement, par exemple d'environ 0,8. Ou une sorte de selle entre 0,2 et 0,8, ou autre chose...
En remuant, vous préserverez également la distribution.
[Supprimé]  
elibrarius:
La normalisation aidera la gamme - c'est un oui.
Mais la distribution de probabilité d'une distribution normale se situera au milieu (environ 0,5), et le véritable prédicteur peut être décalé latéralement, par exemple d'environ 0,8. Ou une sorte de selle entre 0,2 et 0,8, ou autre chose...
En remuant, vous préserverez également la distribution.

Prenez la moyenne et la variance, lol, et ne vous inquiétez pas pour ça.

 
Maxim Dmitrievsky:

Prenez la moyenne et la variance, lol, et ne vous inquiétez pas pour ça.

c'est plus facile à mélanger)

Et pour le lien vers la méthode intéressante (permutation) - merci !