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

 

1) Est-ce que je comprends correctement la signification de la division de l'ensemble de données en formation, validation et test ?

a) nous l'enseignons sur un formateur
b) vérifier l'erreur dans la validation, si elle est beaucoup plus grande que dans l'entraîneur, retourner à 1, jusqu'à ce que l'erreur soit la même (combien est la même - 5% de l'erreur totale ? Par exemple, 15 % sur le tutoriel et 20 % sur la validation.)
c) Vérifier sur un test, si l'erreur est la même avec les deux premiers ensembles (combien de fois la même ?) alors le modèle est stable et peut être exécuté, sinon on peut l'oublier. Et recherchez d'autres prédicteurs, modifiez le filtrage, etc.

2) Au fait, quel est le taux d'erreur à viser pour la formation/validation/test ? 15/20/20% ou peut-être 5/10/15% ? ou autre ?

3) Je ne comprends pas bien pourquoi il est recommandé de mélanger les exemples de formation ? Nous traiterons chaque exemple de toute façon.

 
elibrarius:

À propos, quel est le niveau d'erreur à viser en matière de formation/validation/testing ? 15/20/20% ou peut-être 5/10/15% ou autre ?

Auparavant, oui, quelque chose comme ça.

Quant à l'erreur, elle dépend des spécificités. Si, par exemple, le MO ou le NS détermine l'entrée dans une transaction, alors une erreur de 50 % peut être suffisante. Par exemple, dans une transaction réussie, vous obtenez en moyenne un bénéfice de 2 à 3 pence, et dans une transaction ratée, une perte de 1 pence. Dans ce cas, 0,5 n'est pas une mauvaise probabilité.

 
Yuriy Asaulenko:

Le précédent, oui, en quelque sorte.

Quant à l'erreur, elle dépend des spécificités. Si, par exemple, le MO ou le NS détermine l'entrée dans une transaction, alors une erreur de 50 % peut être suffisante. Par exemple, dans une transaction réussie, vous obtenez en moyenne un bénéfice de 2 à 3 pence, et dans une transaction ratée, une perte de 1 pence. Dans ce cas, 0,5 n'est pas une mauvaise probabilité.

0,5 semble être trop petit... Quelles valeurs devez-vous essayer d'atteindre dans la pratique (pas pour d'autres problèmes de NS, mais pour le commerce) ?
Parce que je veux apprendre jusqu'à 10 %, mais si ce chiffre est irréaliste, je perdrai mon temps et mon processeur. Disons - quelle est la meilleure erreur que vous ayez réalisée et à quel niveau est-il possible de s'arrêter et de ne pas chercher à s'améliorer ?
 
elibrarius:
0,5 est peut-être un peu trop petit... Et quelles sont les valeurs que je dois m'efforcer d'atteindre ? Lesquelles puis-je réellement atteindre dans la pratique (pas dans d'autres tâches NS, mais pour le commerce) ?
Parce que je veux apprendre jusqu'à 10 %, mais si ce chiffre est irréaliste, je perdrai mon temps et mon processeur. Disons - quelle est la meilleure erreur que vous ayez réalisée et à quel niveau est-il possible de s'arrêter et de ne pas chercher à s'améliorer ?

0,5 n'est pas suffisant ? Tu te moques de moi.) J'ai déjà donné cet exemple : un joueur de poker a une probabilité de 1/9-1/6 de gagner, et les bons joueurs sont toujours dans le noir.

Et tous mes systèmes ont fonctionné à une probabilité de ~0,5, et ont toujours été dans le plus. Pour autant que je sache, de nombreux TS fonctionnent avec une probabilité proche de 0,5 - cela a été mentionné lors de la conférence sur le trading automatique, notamment.

"Sinon, je veux m'entraîner jusqu'à 10%, mais si c'est un chiffre irréaliste" - que ce soit réel ou irréaliste dépend de la tâche spécifique. Par exemple, j'ai appris à NS à croiser les MAs - donc c'est presque 100% fiable)).

 
Yuriy Asaulenko:

0,5 n'est pas suffisant ? Tu te moques de moi.) J'ai déjà donné cet exemple : un joueur de poker a une probabilité de 1/9-1/6 de gagner, et les bons joueurs sont toujours dans le noir.

Et tous mes systèmes ont fonctionné à une probabilité de ~0,5, et ont toujours été dans le plus. Pour autant que je sache, de nombreux TS fonctionnent avec une probabilité proche de 0,5 - cela a été mentionné lors de la conférence sur le trading automatique, notamment.

"Sinon, je veux m'entraîner jusqu'à 10%, mais si c'est un chiffre irréaliste" - que ce soit réel ou irréaliste dépend de la tâche spécifique. Par exemple, j'ai appris à NS à croiser les MAs - donc c'est presque 100% fiable)).

C'est vrai, vous pouvez le faire sans aucune prédiction (50%), vous avez juste besoin de prendre le profit plus que le stop. En fait, vous ne pouvez rien prédire, personne ne sait où le prix va aller dans le Forex, seuls les initiés, les marionnettistes le savent.

 
Vasily Perepelkin:

En fait, il est impossible de prédire quoi que ce soit, personne ne sait où le prix va aller sur le marché du forex, seuls les initiés, les marionnettistes le savent.

En fait, c'est possible. Je ne pense pas qu'il soit possible d'utiliser 0,5 avec une prévision et un takeaway supérieur au stop, ce n'est pas la même chose que 50/50 et si Dieu le veut). - c'est-à-dire sans prévision. Nous jouons à pile ou face, c'est complètement différent.))
 
elibrarius:

1) Est-ce que je comprends correctement la signification de la division de l'ensemble de données en formation, validation et test ?

a) apprendre sur un formateur
b) vérifiez l'erreur sur la validation, si elle est beaucoup plus grande que sur la formation, passez à l'étape 1 jusqu'à ce que l'erreur soit la même (de combien est la même - 5% de l'erreur totale ? Par exemple, 15 % sur le tutoriel et 20 % sur la validation.)
c) Vérifier sur un test, si l'erreur est la même avec les deux premiers ensembles (combien de fois la même ?) alors le modèle est stable et peut être exécuté, sinon, nous pouvons l'oublier. Et recherchez d'autres prédicteurs, modifiez le filtrage, etc.

2) Au fait, quel est le taux d'erreur à viser pour la formation/validation/test ? 15/20/20% ou peut-être 5/10/15% ? ou autre ?

3) Je ne comprends pas bien pourquoi il est recommandé de mélanger les exemples de formation ? Nous allons quand même traiter chaque exemple.


1) Pas tous et c'est fondamental.

On prend un gros dossier. Divisez-le en deux parties inégales.

La plus grande partie est divisée comme vous l'avez décrit. Nous obtenons les erreurs qui devraient être approximativement égales.

Après cela, nous vérifions le modèle dans la deuxième partie du fichier. L'erreur dans cette partie ne devrait pas être très différente.

Il s'agit de la preuve la plus importante de l'absence de perobuchness (surajustement).


L'ampleur de l'erreur ? Il s'agit d'une sorte de constante qui est dérivée de l'ensemble des prédicteurs qui peuvent être réduits par l'ajustement du type du modèle.


Par exemple.

Si les quatre erreurs se situent autour de 35 %, en sélectionnant un modèle, Dieu vous garde de réduire l'erreur à 30 %.


PS.

Une erreur de moins de 10 % est un signe évident de surentraînement. Si vous rencontrez une telle erreur, vous devez vérifier une centaine de fois.

 

J'ai trouvé un arrêt précoce avec la section de validation dans ALGLIB :

Formation du réseau neuronal en utilisant l'arrêt précoce (algorithme de base - L-BFGS avec régularisation).
...
L'algorithme s'arrête si l'erreur de validation augmente pendant une longue période.
ou la taille de l'étape est suffisamment petite (il y a des tâches pour lesquelles
l'ensemble de validation peut diminuer pour l'éternité). Dans tous les cas, la solution
retourné correspond au minimum de l'erreur de l'ensemble de validation.

A en juger par le code, il ne compare pas les erreurs dans les sections d'entraînement et de validation, mais recherche une erreur minimale dans la section de validation. Et elle s'arrête si elle n'en trouve pas une meilleure après 30 itérations, ou si toutes les itérations sont passées.

Mais je ne suis pas sûr que cette méthode soit meilleure/plus précise que d'habitude... A moins que le nombre de cycles d'entraînement ne soit multiplié par plusieurs fois...

Voici ce qui en est ressorti :

Erreur moyenne en formation (80%) =0.535 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Erreur moyenne sur la validation (20%) section =0.298 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Tracé complet (tracé de formation + validation) :
Erreur d'apprentissage moyenne=0.497 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Erreur moyenne sur le test (20%) section =0.132 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6

On a l'impression qu'il y avait un ajustement de l'intrigue de validation. Le test est généralement réussi, mais il n'était pas en formation et n'a pas été comparé, probablement juste une coïncidence.
Ce f compte les ensembles, et il y a un partage 2/3 et tout est mélangé entre les deux parcelles, je vais essayer de faire de même....
Je l'ai mélangé :

Erreur moyenne dans la zone de formation (60%) =0,477 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Erreur moyenne sur la validation (40%) section =0.472 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Tracé complet (tracé de formation + validation) :
Erreur d'apprentissage moyenne=0.475 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Erreur moyenne sur le test (20%) section =0.279 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6

Grâce au mélange, l'erreur est égalisée sur les sections de formation et de validation.

Il me semble qu'il y a quelque chose qui ne va pas, car dans une négociation réelle, les barres sont placées dans leur propre ordre, et ne sont pas mélangées avec celles d'il y a une heure et un jour.
Et si la "nature" du marché change, cela signifie que nous devons réapprendre ou chercher de nouveaux modèles NS.

 
Yuriy Asaulenko:
C'est en fait possible. 0.5 avec prédiction et prise n'est pas la même chose que 50/50 avec la volonté de Dieu)) - c'est-à-dire sans prévision. Nous jouons à pile ou face une pièce complètement différente.))
Si nous ouvrons au hasard et que nous prenons un stop loss 2 fois supérieur à, par exemple, et c'est tout, nous aurons un bénéfice statistique, par exemple 100 trades avec 10 points de bénéfice et 100 avec 5 points de perte, comme résultat nous avons 500 points de bénéfice, nous n'avons pas besoin de prévision.
 
SanSanych Fomenko:


1) Pas tous et c'est fondamental.

On prend un gros dossier. Divisez-le en deux parties inégales.

Divisez la plus grande partie de la manière que vous avez décrite. Nous obtenons les erreurs, qui devraient être à peu près égales.

Ensuite, le modèle est vérifié sur la deuxième partie du fichier. L'erreur dans cette partie ne devrait pas être très différente.

C'est la preuve la plus importante de l'absence de plumage (overfitting).

4 parcelles s'avèrent ? Formation/validation/test1/test2 ?

Combien de cycles de formation/validation devez-vous faire ? Je n'ai vu aucune information à ce sujet nulle part... 1 cycle au total ? - et juste après, nous approuvons ou modifions quelque chose dans l'ensemble des prédicteurs ou dans le schéma du réseau ? Plus précisément, pour N cycles d'entraînement, on nous montrera le meilleur.