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

 
Maxim Dmitrievsky #:
Dividere il treno principale in 5-10 sottotreni, ognuno dei quali è suddiviso in una traccia e in un albero. Si addestra su ciascuno di essi per tipo di cv, quindi si predice sull'intero maintrain. Si confrontano le etichette originali di tutti i modelli con quelle previste. Quelli che non hanno indovinato vengono inseriti nella lista nera. Quindi si rimuovono tutti gli esempi negativi durante l'addestramento del modello finale, calcolando l'aspirazione media per ogni campione. Opzionalmente, si può insegnare al secondo modello a separare i campioni bianchi da quelli neri, attraverso la terza classe.
.

3 righe di codice, risultati a livello di... beh, non ho nulla con cui confrontarmi... beh, a un certo livello.

Qui si parla di cv, cioè di determinare statisticamente quali campioni sono cattivi e quali sono buoni, utilizzando modelli multipli, ciascuno addestrato su pezzi diversi di storia. Questo si chiama propensity score, cioè la propensione di ciascun campione a svolgere un ruolo nell'addestramento.

Naturalmente, le etichette possono essere molto scadenti e questo approccio può eliminare quasi tutto. Per questo motivo, all'inizio ho utilizzato un campionamento casuale delle transazioni per aggiungere diverse varianti di markup. Dato che non vogliamo o non sappiamo come pensare a come marcare un grafico.

Questo è più o meno l'aspetto di un AMO con elementi di Kozol che cerca da solo i TC.

Le etichette (docente, variabile target) NON possono essere spazzatura per definizione. La citazione è segnata da alcune considerazioni esterne ai predittori. Una volta decise le etichette, c'è il problema dei predittori che sono rilevanti per l'insieme delle etichette trovate. È facile avere il problema che un insieme di etichette è bello, ma non riusciamo a trovare predittori per esse e dobbiamo cercare un altro insieme di etichette. Ad esempio, i segni sono inversioni ZZ. Segni bellissimi. E come trovare predittori per queste etichette?

Non appena iniziamo a filtrare le etichette in base ai predittori - questo è un super adattamento, che è ciò che tutto ciò che mostrate qui, compreso il mercato - non funziona su un file esterno, nuovo, in una modalità naturale passo dopo passo.

 
mytarmailS #:
Sì, interessante.

Vi informo che su un campione separato di test - 7467, e sull'esame - 7177, ma non c'è un piccolo numero di foglie senza alcuna attivazione - non le ho contate tutte insieme.

0

Questa è la distribuzione delle foglie che hanno cambiato classe in base al loro valore per il campione di prova.

1

e questo è l'esame.

E questa è la suddivisione in classi - ce ne sono tre, la terza è "-1" - nessuna attivazione.


Per il campione del treno.


Per il campione di prova


Per il campione d'esame.

In generale, si può notare che i pesi delle foglie non corrispondono più alla logica delle classi - di seguito è riportato il grafico del campione d'esame - non c'è un vettore chiaro.


In generale, questo metodo di addestramento approssima tutto, ma non garantisce la qualità dei predittori.

In generale, ammetto che le "barre" distinte sul grafico qui sopra sono foglie molto simili per luogo e frequenza di attivazione.


mytarmailS #:

In effetti, ho trovato un modo per trovare tali segni che non si spostano rispetto al target né sulla traccia né sul test... Ma il problema è che tali segni sono catastroficamente pochi e il metodo di screening è selvaggiamente costoso in termini di potenza e in generale il metodo è implementato dall'addestramento senza insegnante, solo in questo modo sono riuscito a evitare l'adattamento.

È difficile discutere di ciò che non si conosce. Pertanto, non posso che essere felice per il suo successo. Se avessi un metodo simile, lo userei :)

Il mio metodo, per ora, non dà risultati così qualitativi, ma è abbastanza simile.

 
Maxim Dmitrievsky #:
E che ruolo ha avuto la quantizzazione in tutto questo? Su una scala di 10 punti

È difficile isolare completamente i processi di pensiero.

Ci sono problemi su vari fronti, quindi si cerca di capire cosa si può migliorare con meno sforzo e più risultati. Passare periodicamente dai "dati" al "processo di apprendimento" e sperimentare.

L'idea originale è quella di stimare la correlazione, ma non ho trovato metodi già pronti e sto modernizzando il mio. Penso che se le foglie sono simili, distorcono la stima.

Maxim Dmitrievsky #:
Ho superato Starfield e lì è iniziata la singolarità. Sono entrato nel multiverso e ho incontrato una copia di me stesso. Ora sto girando in diverse versioni di universi. E non c'è modo di uscirne. Ora devo trovare nuovi significati.

Quando il cervello o la rete neurale raggiungono i limiti della ragionevolezza, inizia la singolarità.

È un'idea interessante. Questo gioco, forse lo giocherò più avanti, lo tratto come creatività, i giochi sono molto più lenti a diventare obsoleti graficamente ora.

Ho fatto girare God of War (2018) su una vecchia scheda grafica HD7950 (l'ho messa in un computer separato, che serve solo per i calcoli) sotto i dieci anni, ho messo la grafica al minimo e sono rimasto scioccato dall'immagine. Ma l'interesse principale è l'elaborazione del rapporto tra padre e figlio - è difficile trovare analoghi nell'industria informatica, dove questo argomento viene sollevato.

Maxim Dmitrievsky #:
Dividere la pista principale in 5-10 sottotracce, ognuna delle quali è suddivisa in una pista e in un albero. Su ciascuno di essi si esegue l'addestramento sul tipo cv, quindi si esegue la previsione sull'intero tracciato principale. Si confrontano le etichette originali di tutti i modelli con quelle previste. Quelli che non hanno indovinato vengono inseriti nella lista nera. Quindi si rimuovono tutti gli esempi negativi durante l'addestramento del modello finale, calcolando l'aspirazione media per ogni campione. Opzionalmente, si può insegnare al secondo modello a separare i campioni bianchi da quelli neri, tramite la terza classe.
.

3 righe di codice, risultati a livello di... beh, non ho nulla con cui confrontarmi... beh, a un certo livello.

L'obiettivo è quello di determinare statisticamente quali campioni sono cattivi e quali sono buoni, utilizzando modelli multipli, ciascuno addestrato su pezzi diversi di storia. Questo si chiama propensity score, cioè la propensione di ciascun campione a svolgere un ruolo nell'addestramento.

Naturalmente, le etichette possono essere molto scadenti e questo approccio può eliminare quasi tutto. Ecco perché all'inizio ho utilizzato un campionamento casuale delle transazioni per aggiungere diverse varianti di markup. Dato che non vogliamo o non sappiamo come pensare a come marcare un grafico.

Questo è più o meno l'aspetto di un AMO con elementi di Kozol che cerca da solo i TC.

Ma qui lavoriamo anche con i dati attraverso i modelli. O vedete qualche differenza?

 
Aleksey Vyazmikin #:

Ma è anche lavorare con i dati attraverso i modelli. O vedete qualche differenza?

È un po' automatico, non devi pensare e (soprattutto) fare nulla :)
 
Maxim Dmitrievsky #:
Beh, come in automatico, non è necessario pensare e (cosa importante) fare qualcosa :)

Tenendo conto dell'eccessiva casualità di CatBoost nel metodo di addestramento - è difficile valutare l'approccio stesso. Lì interferiscono con le stringhe quando costruiscono un albero, e alimentano i dati con bachami, beh, se non è vietato tutto ...

È interessante valutare quanti fogli cambiano classe su nuovi dati, per analogia, come ho scritto sopra nel ramo. Questa potrebbe essere una metrica della qualità dell'approccio/modello.

 
Aleksey Vyazmikin #:

Tenendo conto dell'eccessiva casualità di CatBoost nel metodo di addestramento stesso, è difficile valutare l'approccio stesso. Lì interferiscono con le stringhe durante la costruzione di un albero e alimentano i dati con bacham, beh, se non è vietato...

È interessante valutare quanti fogli cambiano classe su nuovi dati, per analogia, come ho scritto sopra nel ramo. Questa potrebbe essere una metrica per la qualità dell'approccio/modello.

Idealmente, questa casualità non è così negativa come la casualità del set di dati.
 
Maxim Dmitrievsky #:
Idealmente, questa casualità non è così negativa come la casualità del set di dati.

È possibile ottenere per caso un bel modello dalla casualità - questo è il problema, ma se fosse impossibile, non avrebbe importanza.

Non è un problema addestrare un modello: il problema è scegliere quello che ha più potenzialità di funzionare correttamente su nuovi dati.

Questo è l'approccio interessante che permette di aumentare questo potenziale. E per valutare l'efficacia del modello, abbiamo bisogno di un qualche tipo di metrica, non solo una statistica dell'accuratezza della classificazione, ma qualcosa di diverso, ad esempio la valutazione delle foglie singolarmente. È chiaro che gli indicatori nei predittori cambiano - ecco perché le foglie sono così rumorose, "cambiando" le classi effettive. Per questo è un compito complesso: servono buone etichette e predittori stabili, e le loro combinazioni non devono creare foglie con valori rari nel modello.

In produzione, è già richiesto di monitorare i cambiamenti nella distribuzione dei valori dei predittori utilizzati nel modello e di frenare il modello se i cambiamenti sono significativi ed estesi. Tuttavia, questo approccio richiede l'accumulo di statistiche, che per noi equivale all'accumulo di perdite, e questo non va bene. Abbiamo bisogno di un metodo più rapido per escludere il modello, ma ragionevole, non puramente basato sul drawdown.

Ci sono molti problemi e, senza risolverli, non vogliamo dare soldi al modello per la gestione.

 
Aleksey Vyazmikin #:

Sì, il sistema binario è più complicato. Ma non capisco come il razionamento possa essere utile in questo caso.

Il segno binario con 0 e 1 è già normalizzato, e anche il resto dovrebbe esserlo.

 
Forester #:

La caratteristica binaria con 0e1 è già normalizzata e anche le altre devono essere normalizzate.

Spero di aver capito il tuo pensiero.

Ma, con una quantizzazione uniforme per gli stessi 32 segmenti, possiamo considerare che il segmento "1" è 0 e il segmento "32" è 1. E così è per qualsiasi altra cifra. E così è per qualsiasi altra cifra. Ecco perché non capisco quale sia la differenza fondamentale.

 
Aleksey Vyazmikin #:

Ho capito il tuo ragionamento, spero.

Ma, con una quantizzazione uniforme sugli stessi 32 segmenti, è possibile considerare che il segmento "1" è 0 e il segmento "32" è 1. E così è per qualsiasi altra cifra. E così è per qualsiasi altra cifra. Ecco perché non capisco quale sia la differenza fondamentale.


Se si riduce a 32, allora si allunga il binario 0 e 1 a 0 e 32 (e altri, per esempio, con 5 quanti da 0...5 a 0...32). Per rendere tutto proporzionale. Oppure comprimere classicamente tutto in un unico ipercubo (come per le reti neurali, che richiedono una normalizzazione). L'essenza è la stessa: in entrambe le varianti si ottiene la stessa scala.

Motivazione: