L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 56

 
Alexey Burnakov:
Qualche anno. Qui nel thread c'è il suo risultato.
Per favore, datemi il link.
 
Vadim Shishkin:
Puoi darmi un link, per favore?
L'intero argomento è il risultato.
 
Yury Reshetov:

Almeno con una rigorosa separazione in un campione di allenamento e un campione di test per date, invece di mischiare casualmente i campioni con una distribuzione uniforme nel campione generale e poi dividerlo in parti. Può succedere che una parte del campione contenga soprattutto tendenze verticali, mentre l'altra parte contiene tendenze laterali. Se applichiamo il mescolamento casuale, la probabilità di raccogliere modelli simili in diverse parti del campione diminuisce.

A proposito, un tale svantaggio è presente anche nel tester di strategia integrato di MetaTrader, cioè divide il campione di allenamento e il test in avanti rigorosamente per date. A causa di ciò, il cambiamento delle tendenze del mercato vicino alla linea di demarcazione può portare a un sovrallenamento deliberato.

Questo è il punto chiave nella pianificazione dell'esperimento. In realtà c'è una rigida separazione temporale. È così che il modello viene testato sul futuro nel pieno senso della parola.

Ho anche questo: sulla convalida il mercato era prevalentemente in calo e c'è un eccesso di short. Beh, in futuro potrebbe aumentare in modo predominante. Tutto può succedere.
 
Vadim Shishkin:
Così lei, come ogni commerciante che si rispetti, ha pronunciato la risposta.
La risposta dell'universo, se volete.
 
Alexey Burnakov:
Questo è il punto chiave della pianificazione degli esperimenti. In realtà, c'è una rigida separazione nel tempo. È così che il modello viene testato per il futuro nel pieno senso della parola.

Ho anche questo: sulla convalida il mercato era prevalentemente in calo e c'è un eccesso di short. Beh, potrebbe aumentare in modo predominante in futuro. Tutto può succedere.

Si chiama campione sbilanciato ed è un problema di apprendimento automatico.

Per renderlo più chiaro, vi farò un esempio. Supponiamo di avere un campione di allenamento in cui prevalgono le tendenze al ri alzo e quindi le tendenze al ribasso sono meno presenti nel campione rispetto alle tendenze al rialzo, cioè abbiamo uno squilibrio.

Supponiamo di avere 1.000 movimenti al ribasso nel campione e 10.000 movimenti al rialzo. E supponiamo che l'errore di classificazione per i movimenti verso l'alto sia del 10%. Ma quel dieci per cento per 10.000 esempi equivale a 1.000 falsi segnali classificati come predittivi di movimenti al ribasso e noi abbiamo solo 1.000 esempi con movimenti al ribasso nel campione. Ciò significa che non importa quanto sia accurata la classificazione di un movimento verso il basso, per qualsiasi risposta di un classificatore che prevede che un movimento futuro sia potenzialmente verso il basso, il suo errore sarà almeno del 50%. Cioè, più gli esempi nel campione di formazione per una qualsiasi classe sono sbilanciati, maggiore è l'impatto dell'errore di classificazione per quella classe sulla qualità delle risposte del classificatore per un'altra classe.

Per questo motivo è molto difficile prevedere i fenomeni rari: terremoti, eruzioni vulcaniche, crisi economiche, ecc. Perché se il fenomeno è molto raro e poco rappresentativo nel campione, qualsiasi errore per gli esempi di classi opposte diventa eccessivo per i fenomeni rari.

Quindi un campione di allenamento deve essere pre-bilanciato in modo da contenere lo stesso numero di esempi per tutte le classi. Altrimenti, le classi poco rappresentative hanno maggiori probabilità di fallire i test al di fuori del set di allenamento. Inoltre, quando si divide il campione generale in porzioni di allenamento e di test, è necessario mescolare gli esempi utilizzando PRNG con una distribuzione di probabilità uniforme, al fine di evitare l'affollamento di esempi con predittori simili in una porzione e predittori diversi nell'altra. Cioè, per evitare uno squilibrio nei predittori e non solo nelle variabili dipendenti.

 
Yury Reshetov:

Questo è chiamato campionamento sbilanciato ed è un problema di apprendimento automatico.

Per renderlo più chiaro, vi faccio un esempio. Supponiamo di avere un campione di allenamento in cui prevalgono le tendenze al rialzo, il che significa che ci sono meno tendenze al ribasso che al rialzo, cioè abbiamo uno squilibrio.

Supponiamo di avere 1.000 movimenti al ribasso nel campione e 10.000 movimenti al rialzo. E supponiamo che l'errore di classificazione per i movimenti verso l'alto sia del 10%. Ma quel dieci per cento per 10.000 esempi equivale a 1.000 falsi segnali classificati come predittivi di movimenti al ribasso e noi abbiamo solo 1.000 esempi con movimenti al ribasso nel campione. Ciò significa che non importa quanto sia accurata la classificazione di un movimento verso il basso, per qualsiasi risposta di un classificatore che prevede che un movimento futuro sia potenzialmente verso il basso, il suo errore sarà almeno del 50%. Cioè, più gli esempi nel campione di formazione per una qualsiasi classe sono sbilanciati, maggiore è l'impatto dell'errore di classificazione per quella classe sulla qualità delle risposte del classificatore per un'altra classe.

Per questo motivo è molto difficile prevedere i fenomeni rari: terremoti, eruzioni vulcaniche, crisi economiche, ecc. Dopo tutto, se il fenomeno è molto raro e scarsamente rappresentato nel campione, allora qualsiasi errore per esempi di classi opposte diventa eccessivo per fenomeni rari.

Quindi il campione di allenamento deve essere pre-bilanciato in modo che abbia lo stesso numero di esempi per tutte le classi. Altrimenti, le classi poco rappresentative hanno maggiori probabilità di fallire i test al di fuori del set di allenamento. Inoltre, quando si divide il campione generale in porzioni di allenamento e di test, è necessario mescolare gli esempi utilizzando PRNG con una distribuzione di probabilità uniforme, al fine di evitare l'affollamento di esempi con predittori simili in una porzione e predittori diversi nell'altra. Cioè evitare lo squilibrio nei predittori e non solo nelle variabili dipendenti.

Yury, ho capito il punto. Il campionamento può effettivamente essere sbilanciato sia sull'allenamento che sulla convalida. Ma in realtà state negoziando il futuro dove il bias può essere molto forte. E la strategia deve essere resistente a tale risultato.
 
Yury Reshetov:


E quindi il campione di allenamento dovrebbe essere pre-bilanciato, in modo che contenga esempi per tutte le classi in numero uguale. Altrimenti, le classi poco rappresentative hanno maggiori probabilità di fallire i test al di fuori del set di allenamento. Inoltre, quando si divide il campione generale in parti di addestramento e di test, è necessario mescolare gli esempi utilizzando PRGPs con una distribuzione di probabilità uniforme al fine di evitare l'affollamento di esempi con predittori simili in una parte e predittori diversi nell'altra parte. Cioè evitare lo squilibrio nei predittori e non solo nelle variabili dipendenti.

pacchetto caret

Una coppia di funzioni: downSample/upSample - diminuisce/aumenta il numero di osservazioni, ottenendo classi completamente bilanciate. Il downsample/upsample si basa su un semplice algoritmo di campionamento casuale.

PS.

Reshetov!

Iniziare a studiare R. Sempre più spesso si scivola nei luoghi comuni.

 
SanSanych Fomenko:

Reshetov!

Iniziare a studiare R. Stai scivolando sempre più spesso nei luoghi comuni.

Lascerò perdere tutto e diventerò un adepto di R per poter giocare con i numeri con un'espressione seria.
 
Alexey Burnakov:
Yuri, ho capito l'idea. Il campione può effettivamente essere sbilanciato sia nella formazione che nella convalida. Ma in realtà state negoziando il futuro dove il bias può essere molto forte. E la strategia dovrebbe essere resistente a tale risultato.
È necessario prevenire il potenziale sovrallenamento, perché è l'unico modo per raggiungere la stabilità. E un campione di allenamento sbilanciato è una potenziale causa di sovrallenamento per classi non rappresentative. Dopo tutto, l'algoritmo di apprendimento cerca di agire come meglio crede, non come deve per aumentare la generalizzabilità. Se il campione è sbilanciato, minimizzerà gli errori di apprendimento sulle classi meno rappresentative, perché gli esempi per queste classi sono pochi ed è più facile imparare a memoria invece di generalizzare. Dopo un tale apprendimento meccanico, non è sorprendente che al di fuori del campione di allenamento, gli errori dell'algoritmo sono più probabili nelle classi meno rappresentative.
 

ti accechi agli intervalli di date; - separare i dati esattamente per data (prima del giorno X - formazione, dopo - convalida)

Il punto è semplice. Nel mondo reale nessuno vi permetterà di prendere un campione misto contenente osservazioni dal futuro e dal passato per valutare la qualità del trading reale. Tutte le osservazioni andranno dopo il giorno x.

Quindi, prendendo un campione misto nella convalida (senza separazione delle date), state sovrastimando la metrica di qualità sulla convalida. Questo è tutto. Allora ci saranno sorprese spiacevoli.