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

 
Maxim Dmitrievsky:

Non capisco bene cosa ci sia nelle cifre e quale sia il problema

Le figure mostrano il risultato finanziario (asse y) del modello quando si scelgono diverse probabilità per la classificazione binaria (asse x). Utilizzando un campione di prova, ho capito che si dovrebbe sempre entrare nel mercato quando appare un segnale di attivazione (la formazione decide se entrare o meno). Il paradosso è che l'apprendimento provoca solo un deterioramento del segnale di attivazione di base e non l'avrei visto, se non avessi deciso di vedere come il risultato finanziario cambia a seconda dello spostamento del punto di classificazione sul segmento di probabilità.

Maxim Dmitrievsky:

Ho fatto un sacco di varianti di modelli io stesso, ora sto cercando di capire quale scegliere per il monitoraggio :D o per migliorarlo ulteriormente

in breve... questi approcci non alimentano affatto l'output in modo corretto, sia che si tratti di zigzag o di qualche altra assurdità

perché per ogni dimensione della finestra scorrevole ci dovrebbe essere una diversa distribuzione da cui vengono fatti gli scambi. Poi il modello si adatta meglio, anche al campione di prova. (mentre gli zigzag o altre uscite sono molto deterministiche di per sé, ci sono pochi gradi di libertà per l'adattamento) Quest'ultimo è fatto e cioè, l'enumerazione delle uscite è più completa, e poi non c'è davvero nient'altro da fare

agli ingressi di incrementi con diversi ritardi, nel vecchio modo, con auto-selezione attraverso importans e forse attraverso PCA per sbarazzarsi di correlazione, tali varianti di bot anche fatto. Ma in generale, usare la PCA è un'idea sbagliata (anche se, di nuovo, su Internet si scrive il contrario). Non solo i campioni devono essere centrati, ma con i nuovi dati questi componenti si trasformano lentamente in scorie

Abbiamo un approccio molto diverso al problema. Sono estraneo a una descrizione puramente matematica del prezzo senza alcuna giustificazione reale (modelli visivamente osservabili). Al contrario, io applico ZZ e ne vedo l'efficienza (i pedicatori su ZZ sono sempre in cima alla lista in tutti i pacchetti MO). Penso che combinare i due approcci potrebbe migliorare il risultato.

Selezionare i modelli attraverso la significatività non ha senso - ho dimostrato prima che rimuovere diversi predittori significativi sullo stesso modello può migliorare i risultati di apprendimento e formare nuove relazioni più produttive e stabili nelle foglie degli alberi. Tutta questa "importanza" è un principio avido nella costruzione degli alberi, che non è corretto a priori, quindi ho bisogno di metodi di valutazione dei predittori significativi separati - non li ho ancora.

 

Maxim Dmitrievsky:

Tutto questo dà qualcosa del genere, praticamente senza problemi, basta aspettare 10 minuti:

la possibilità di ulteriori miglioramenti sembra dubbia in realtà, quando il modello funziona già oltre il 100% dei treni

forse con un buon pezzo di grafica/strumento si può spremere di più.

Sembra buono, ma il periodo del modello è troppo breve, come si comporta sui dati di un anno fa?

 
Aleksey Vyazmikin:

Le figure mostrano il risultato finanziario (asse y) del modello quando si scelgono diverse probabilità per la classificazione binaria (asse x). Sul campione di prova, ho ottenuto la conclusione che si dovrebbe sempre entrare nel mercato quando appare il segnale di attivazione (la formazione decide se entrare nel mercato o no). Il paradosso risultante è che l'apprendimento provoca solo il deterioramento del segnale di attivazione di base e non l'avrei visto, se non avessi deciso di vedere come il risultato finanziario cambia a seconda dello spostamento del punto di classificazione sul segmento di probabilità.

Abbiamo un approccio molto diverso al problema. Sono estraneo a una descrizione puramente matematica del prezzo senza alcuna giustificazione reale (modelli visivamente osservabili). Al contrario, io applico ZZ e ne vedo l'efficienza (i pedicatori su ZZ sono sempre in cima alla lista in tutti i pacchetti MO). Penso che combinare i due approcci potrebbe migliorare il risultato.

Selezionare i modelli attraverso la significatività non ha senso - ho dimostrato in precedenza che la rimozione di diversi predittori significativi sullo stesso modello può migliorare i risultati di apprendimento e formare nuove relazioni più produttive e stabili nelle foglie degli alberi. L'intera cosa dell'"importanza" è un principio di avidità nella costruzione degli alberi, che non è corretto a priori, quindi abbiamo bisogno di metodi di stima dei predittori significativi separati - non li ho ancora.

come, l'importanza dovrebbe essere guardata sul campione di prova, e finita sul campione di allenamento. Le importazioni classicamente incorporate come gini mentono sempre, dobbiamo fare la permutazione (randomizzare ciascuno dei predittori uno per uno e guardare l'errore del modello), poi buttare via i peggiori. Bisogna sbarazzarsi prima delle caratteristiche correlate, altrimenti le importazioni attraverso la permutazione mentiranno anche. Niente sciocchezze, si ottiene il miglior modello possibile. Perché cercare di reinventare la ruota se finora non è stato inventato niente di meglio.

 
Aleksey Vyazmikin:

Non sembra male, ma il periodo del modello è troppo breve, come si comporta su dati vecchi di un anno?

15 minuti, non insegno più a lungo perché ci vuole più tempo per aspettare.

Per quanto riguarda il grafico a 15 minuti, solo fxsaber è abbastanza buono per farlo anche per qualche anno :)

Ho una leva senza azione, cioè nessuna strategia è incorporata nel modello dall'inizio
 
Aleksey Vyazmikin:

Sto guardando un grafico del profitto rispetto al numero di alberi in un modello (512 modelli)

e sembra che i modelli con più alberi sopra i 60 siano meno probabili o il campione è piccolo...

Ecco altri grafici con diversi numeri di alberi.

Campione 7400 per tutti, algoritmo rf

Numero di alberi 50


L'errore diminuisce al crescere del numero di alberi. Sembra aumentare, improvvisamente a zero.

Numero di alberi = 150


Con 150 la precisione sale, ma abbastanza modestamente, di un paio di centesimi.

Aumentare il numero di alberi




Conclusione: fino a 50 alberi ha senso aumentare il numero di alberi, ma oltre i 100 non ha senso.

Sono troppo pigro per farlo ora, ma stavo cambiando la dimensione del campione.

La dimensione del campione fino a 1000 osservazioni influenza fortemente la precisione del modello. Ma dopo 5000 la dimensione del campione NON influenza l'accuratezza del modello.


Quindi concludo: l'errore non è determinato dal modello o dai suoi parametri, ma dalla combinazione "predittori-bersaglio".

 
SanSanych Fomenko:

Aumentiamo il numero di alberi

Quindi concludo: l'errore non è determinato dal modello o dai suoi parametri, ma dal legame "predittori-bersaglio".

50-100 alberi sono raccomandati inizialmente, non ha senso allevare così tanti classificatori deboli, non ho visto nemmeno un miglioramento.

monte carlo e simili per aiutare, sanSanSanych... costruire fasci non è una cosa da mente umana, è solo un f... cervelli
 
Maxim Dmitrievsky:

Beh, bisogna guardare le importazioni sul campione di prova, e adattarle al campione di allenamento. Le importazioni classicamente incorporate come gini mentono sempre, dovremmo fare una permutazione (randomizzare ciascuno dei predittori uno per uno e controllare l'errore del modello), poi scartare i peggiori. Bisogna sbarazzarsi prima delle caratteristiche correlate, altrimenti le importazioni attraverso la permutazione mentiranno anche. Niente sciocchezze, si ottiene il miglior modello possibile. Perché inventare una bicicletta se finora non è stato inventato niente di meglio.

Onestamente non capisco il metodo - stiamo parlando di spegnere i predittori dall'allenamento passo dopo passo e confrontare i risultati con e senza questo predittatore? Allora cosa significa randomizzare? Come fai a decidere se fa schifo o no - se il predittore ti permette di dividere correttamente l'1% del campione ed è nella media profondità dell'albero - è buono o cattivo? Forse è necessario considerare la qualità della costruzione dell'albero con il predittore della radice, come taglia il campione ad ogni livello - forse è necessaria una caduta morbida del gradiente... La bicicletta deve inventare, perché ciò che è di dominio pubblico non è il meglio di ciò che esiste, per esempio, forse dovremmo dividere il campione non per massimo ma per media o per x-sigma o altro - forse le regole saranno più complesse, ma più stabili. A proposito, non capisco perché non c'è un metodo di addestramento che utilizzi non solo i contatori numerici per le suddivisioni, ma anche i predittori logici e comparativi?

MaximDmitrievsky:

15 minuti, non mi alleno più a lungo perché l'attesa è più lunga.

Non so... penso che solo fxsaber sia stato in grado di fare un grafico a 15 minuti così liscio per alcuni anni :)

Ho un leerning no-action, cioè nessuna strategia è incorporata nel modello fin dall'inizio

Avete mai provato a creare una strategia primitiva e a formare dei filtri per essa, che dessero o rifiutassero di entrare nel mercato?

 
Aleksey Vyazmikin:

Onestamente non capisco il metodo - stiamo parlando di rimuovere i predittori dal training passo dopo passo e confrontare i risultati con e senza questo predittatore? Allora cosa significa randomizzare? Come fai a decidere se fa schifo o no - se il predittore ti permette di dividere correttamente l'1% del campione ed è nella media profondità dell'albero - è buono o cattivo? Forse è necessario considerare la qualità della costruzione dell'albero con il predittore della radice, come taglia il campione ad ogni livello - forse è necessaria una caduta morbida del gradiente... La bicicletta deve inventare, perché ciò che è di dominio pubblico non è il meglio di ciò che esiste, per esempio, forse dovremmo dividere il campione non per massimo ma per media o per x-sigma o altro - forse le regole saranno più complesse, ma più stabili. A proposito, non capisco perché non esiste un metodo di allenamento che utilizzi non solo i contatori numerici per gli split, ma anche quelli logici, confrontando i predittori?

Avete mai provato a creare una strategia primitiva e a formare dei filtri per essa che permettono o proibiscono l'entrata nel mercato?

prima allenare il modello con tutte le caratteristiche, salvare gli errori

poi randomizzare ciascuno dei predittori, diciamo con una distribuzione normale, e controllare di nuovo l'errore su tutte le caratteristiche, compreso questo randomizzato (cambiato) e confrontarlo con quello iniziale. Non c'è bisogno di riaddestrare il modello. E quindi controllare ciascuno dei predittori. Se il predittore era buono, l'errore sull'intero campione (compresi tutti gli altri predittori originali) aumenterà drammaticamente rispetto all'originale. Salvare le differenze di errore, vagliare le migliori schede in base ad esse. Poi, alla fine, allenarsi solo sui migliori e modellare in produzione. I cattivi predittori sono rumore per il modello, non hanno bisogno di loro con il loro 1%. Quelli buoni di solito rimangono 5-10, l'importanza del resto diminuisce esponenzialmente (legge di Zipf).

Ho provato a insegnare i filtri, ma non molto, non vedo molto senso, è meglio mettere tutto in un modello in una volta sola

Se è possibile, solo circa la selezione dei predittori MOLTO competente(già gettato prima)

Beware Default Random Forest Importances
Beware Default Random Forest Importances
  • explained.ai
0.995 worst radius 0.995 mean perimeter 0.994 mean area 0.984 worst perimeter 0.983 worst area 0.978 radius error 0.953 mean concave points 0.944 mean concavity 0.936 worst concave points 0.927 mean compactness 0.916 worst concavity 0.901 perimeter error 0.898 worst compactness 0.894 worst texture 0.889 compactness...
 
SanSanych Fomenko:

Ecco gli altri grafici con diversi numeri di alberi.

Campione 7400 per tutti, algoritmo rf

Numero di alberi 50


L'errore diminuisce al crescere del numero di alberi. Sembra aumentare, improvvisamente a zero.

Numero di alberi = 150


Con 150 la precisione sale, ma abbastanza modestamente, di un paio di centesimi.

Aumentare il numero di alberi




Conclusione: fino a 50 alberi ha senso aumentare il numero di alberi, ma oltre i 100 non ha senso.

Sono troppo pigro per farlo ora, ma stavo cambiando la dimensione del campione.

La dimensione del campione fino a 1000 osservazioni influenza notevolmente la precisione del modello. Ma dopo 5000 la dimensione del campione NON influenza l'accuratezza del modello.


Da qui la mia conclusione: l'errore NON è determinato dal modello o dai suoi parametri, ma dalla relazione predittore-bersaglio.


Penso che ci possa essere un numero diverso di alberi per le foreste casuali e diversi tipi di boosting, e il numero dipende dalla qualità dei predittori e dalle situazioni, che possono essere diverse per lo stesso obiettivo (come esempio - obiettivo 100 punti di profitto da qualsiasi punto). È interessante vedere quali combinazioni di foglie e quanto spesso sono usate per prendere decisioni - penso che sia il tipo di informazione che può stimare meglio il modello. E, un altro problema è che è impossibile presentare un modello stazionario del mercato per i test e l'addestramento, il che significa che solo una parte del modello addestrato sarà usato nei test e il modello deve essere stimato da questa parte, mentre l'altra parte può rivelarsi molto migliore. E se l'errore di classificazione non è uguale al modulo di classificazione corretto (usiamo una rete a strascico e diminuiamo il costo dell'errore), la stima del modello diventa ancora più complicata.

 
Maxim Dmitrievsky:

prima addestrare il modello su tutte le caratteristiche, salvare gli errori

Poi, uno per uno, randomizzate ciascuno dei predittori, diciamo con una distribuzione normale, e controllate di nuovo l'errore su tutte le caratteristiche, compresa questa randomizzata (modificata), e confrontatela con quella iniziale. Non c'è bisogno di riaddestrare il modello. E quindi controllare ciascuno dei predittori. Se il predittore era buono, l'errore sull'intero campione (compresi tutti gli altri predittori originali) aumenterà drammaticamente rispetto all'originale. Salvare le differenze di errore, vagliare le migliori schede in base ad esse. Poi, alla fine, allenarsi solo sui migliori e modellare in produzione. I cattivi predittori sono rumore per il modello, non hanno bisogno di loro con il loro 1%. Quelli buoni di solito rimangono 5-10, l'importanza del resto diminuisce esponenzialmente (legge di Zipf).

Ho provato a insegnare i filtri, ma non molto, non vedo molto senso, è meglio mettere tutto in un modello in una volta sola

Se è possibile, solo circa la selezione dei predittori MOLTO competente(già gettato prima)

Grazie. La randomizzazione dovrebbe avere gli stessi valori del predittore nel campione, giusto?

Nel complesso capisco l'approccio, grazie, devo pensare a come implementarlo e provarlo.

Purtroppo non riesco a padroneggiarlo, quindi ascolterò la tua parafrasi di tanto in tanto.

Ma di nuovo, non credo che questo sia del tutto corretto, poiché dipenderà da quanto vicino alla radice il predittore è nell'albero...