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

 

Le cours sur le boosting - il y en avait un plus récent (en python avec catbust en option) avec le même conférencier - je ne le trouve pas.


 
Aleksey Vyazmikin:

Catbust est plus personnalisable et est une extension de l'idée de XGBoost, le principal avantage et inconvénient est qu'il a des arbres à dimension fixe qui empêchent le recyclage si le nombre d'arbres n'est pas grand.

....

C'est une question purement technique. Supposons que nous ayons 3 prédicteurs - x1, x2, x3. Nous savons également que x1-x2, x1-x3, x2-x3 sont également des prédicteurs et génèrent des conditions. D'après ce que je sais des arbres, ces prédicteurs supplémentaires devraient également être introduits dans le modèle.

Mais le cas est un peu plus grave, les prédicteurs sont des a11*x1-b2*x2, a12*x1-a3*x2, etc, générant quelque chose comme des systèmes d'équations. Les coefficients, je ne les connais pas, bien sûr. Des combinaisons plus complexes de prédicteurs sont également possibles, elles ne sont données qu'à titre d'exemple.

NS peut gérer ce genre de choses (combinaisons linéaires de prédicteurs et même non linéaires) et je n'ai pas besoin d'être sophistiqué, donc je me contente d'entrer x1, x2 et x3 sans m'en soucier.

Que faire des arbres dans de tels cas ? Je n'ai rien trouvé d'assez vague sur ce sujet. Ou les arbres le feront-ils d'eux-mêmes ?

 

CatBoost masterclass - il y a des liens pour télécharger le code par vidéo pour travailler en python


 
Yuriy Asaulenko:

Une question purement technique. Supposons que nous ayons 3 prédicteurs - x1, x2, x3. Nous savons également que x1-x2, x1-x3, x2-x3 sont également des prédicteurs. D'après ce que je sais des arbres, ces prédicteurs supplémentaires devraient également être introduits dans le modèle.

Mais le cas est légèrement pire, les prédicteurs sont des a11*x1-b2*x2, a12*x1-a3*x2, etc. Je ne connais pas les coefficients, bien sûr. Des combinaisons plus complexes de prédicteurs sont possibles, celles-ci ne sont données qu'à titre d'exemple.

NS s'occupe de ce genre de choses (combinaisons linéaires de prédicteurs) et je n'ai pas besoin d'être fantaisiste, et nous alimentons seulement x1, x2 et x3 aux entrées, sans nous en soucier.

Que faire des arbres dans de tels cas ? Je n'ai rien trouvé de bien vivant sur ce sujet. Ou les arbres peuvent-ils le faire eux-mêmes ?

Théoriquement, un arbre peut décrire une fonction, mais il obtiendra une section avec des coefficients (x), si vous les changez, mais en gardant la fonction elle-même, l'arbre ne sera pas si efficace, car il se souvient du champ d'événements avec des constantes. Ce sont mes pensées, peut-être ai-je tort. Pour de tels problèmes, il est préférable d'utiliser NS et de donner à l'arbre une réponse toute prête de la fonction, qui ne changera pas de logique d'interprétation en fonction des arguments changeants de la fonction. Il est donc préférable de donner à l'arbre un ensemble limité d'arguments.

Il suffit de modifier ces x pour que le modèle doive être réentraîné.

En général, si les arguments de la fonction se trouvent dans une plage connue, représentée par l'échantillon d'entraînement, l'arbre devrait faire l'affaire. Mais il s'agit d'une tâche de régression et non de classification.
 
Aleksey Vyazmikin:

Théoriquement, l'arbre pourrait décrire une fonction, mais il s'agirait d'un graphe avec des coefficients (x), qui, s'il est modifié mais que la fonction elle-même est préservée, ne serait plus aussi efficace, car il se souvient du champ d'événements avec des constantes. Ce sont mes pensées, peut-être ai-je tort. Pour de tels problèmes, il est préférable d'utiliser NS et de donner à l'arbre une réponse toute prête de la fonction, qui ne changera pas de logique d'interprétation en fonction des arguments changeants de la fonction. Il est donc préférable de donner à l'arbre un ensemble limité d'arguments.

Un simple changement dans ces x entraînera la nécessité de réentraîner le modèle.

Avec NS je travaille, ils sont compréhensibles. Ce qui est bien avec les arbres, c'est qu'ils génèrent une logique, comme if...then..... ce qui, en général, est nécessaire - la sortie doit être une décision oui/non. Mais il semble que les arbres ne puissent même pas gérer ce type de logique, même si nous leur donnons tous ces éléments en entrée.

Сs11=PredTraid==[] and Stoch[0][i] > Stoch[1][i]+0.3 and Stoch[0][i-1] <= Stoch[1][i-1]
 
Yuriy Asaulenko:

Je travaille avec les NS, je les comprends. L'intérêt des arbres est qu'ils génèrent une logique du type "si...alors". .... ce qui, en général, est ce dont on a besoin - la sortie doit être une décision oui/non. Mais il semble que les arbres ne puissent plus faire face à une telle logique, même si nous leur donnons tout cela en entrée.

Nous devrions les saisir et voir - faire des échantillons et vérifier.

 
Aleksey Vyazmikin:

Nous devons soumettre et voir - faire un échantillonnage et vérifier.

Nan, exemple malheureux. Celui-ci fera l'affaire).

 
Yuriy Asaulenko:

Nan, exemple malheureux. Il peut être traité).

Bien sûr, ils y parviendront, mais la NS utilise les neurones pour obtenir des formules, tandis que les arbres n'obtiennent que l'interprétation des résultats des calculs. Je pense que si nous dessinons une primitive, qui est difficile à décrire avec une fonction, par exemple une maison à partir d'un dessin d'enfant, il faudrait beaucoup de temps à NS pour la trouver, alors que l'arbre déterminerait rapidement les coordonnées de cet objet et les transformerait simplement en vecteurs. Mais si vous changez l'échelle, l'arbre ne sera pas capable d'identifier cette maison, mais le NS devrait pouvoir le faire.

 
Aleksey Vyazmikin:

CatBoost masterclass - il y a des liens pour télécharger le code par vidéo pour travailler en python


bon, bien expliqué.

 
Maxim Dmitrievsky:

bon, bien expliqué

Oui, les paramètres de base sont bien donnés, surtout si vous commencez tout de suite en python. Mais cela ne me suffit pas.