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

 
elibrario:

Ho capito questo metodo in modo diverso.
Per il predittore in studio, non volete alimentare valori casuali con una distribuzione normale, ma semplicemente mischiare le righe di quella colonna.

Comunque, i risultati dell'articolo sono impressionanti. È necessario provarlo nella pratica.

mischiarlo, che differenza fa?

 
elibrario:
Alglib esamina tutti i predittori rimanenti al 50%, li divide in 4 parti per quartili e sceglie la divisione con il miglior errore tra tutte le scelte.

Gli split casuali non sono in linea di principio difficili da ottenere.
Non ho visto alberi singoli con buoni risultati nei test (45-50%), ma una foresta di essi è più interessante).


Capisco, è quello che pensavo, quindi c'è una buona probabilità che la divisione delle radici nella maggior parte degli alberi sia la stessa, il che esclude altre opzioni.

Suppongo che qualsiasi foglia sia solo un tentativo di descrivere un modello, e non possiamo sapere a priori se la descrizione sarà corretta o se si tratta di una coincidenza casuale nel campione. Ecco perché sto reclutando foglie diverse e uniche (non ripetute) e le controllo separatamente, piuttosto che l'intero albero.

Alglib ha una ramificazione eccessiva, quindi non è imparare, ma ricordare. Penso che lo scaffolding sia una buona idea, ma funzionerà correttamente se ogni albero contiene regole uniche (foglie) e il numero di suddivisioni non è molto grande - 4-10.


elibrario:
In termini di importanza dei predittori esaminati:
I pacchetti xgboost, lightGBM avevano metodi integrati per stimare l'importanza delle caratteristiche per i "modelli di legno":

  1. Guadagnare
    Questa misura mostra il contributo relativo di ogni caratteristica al modello. Per calcolarla, andiamo ad ogni nodo dell'albero, guardiamo quale caratteristica porta alla divisione del nodo e quanto si riduce l'incertezza del modello secondo la metrica (impurità Gini, guadagno di informazione).
    Per ogni caratteristica, il suo contributo è sommato su tutti gli alberi.
  2. Copertina
    Mostra il numero di osservazioni per ogni caratteristica. Per esempio, avete 4 caratteristiche, 3 alberi. Supponiamo che la fich 1 abbia 10, 5 e 2 osservazioni nei nodi dell'albero 1, 2 e 3. Allora l'importanza per questa fich sarebbe 17 (10 + 5 + 2).
  3. Frequenza
    Mostra quanto spesso una data caratteristica si trova nei nodi dell'albero, cioè viene contato il numero totale di nodi dell'albero divisi per ogni caratteristica in ogni albero.
Non dividono correttamente l'importanza.
Ho una foresta addestrata per 5 barre dà risultati migliori nel test che a 100. Ma quando si allenano da 100 i primi 5 non sono segnati importanti, ma alcuni lontani.
Quando ci si allena a 100, l'errore dei singoli alberi e delle foreste è più basso - ovviamente a causa del sovrallenamento e dando importanza a 30-100 barre. Ma ovviamente non sono importanti per la logica convenzionale, ma per il fatto che la foresta a 5 barre dà risultati migliori.

Sì, con la stima dell'importanza gli approcci standard non sono molto efficaci. Voglio provare una sorta di punteggio di unicità, cioè quando ci sono già foglie pronte, e proviamo a cambiare ogni predittore a turno con qualsiasi altro (tenendo conto della divisione della griglia), raccogliere le statistiche, e confrontare la migliore variante di sostituzione con la variante di default, considerare la precisione o altro punteggio (il concetto è importante), e quindi raccogliere i punteggi per ogni predittore per l'intero modello.

elibrario:
Dopo un'occhiata sommaria al codice, ho visto una selezione genetica di funzioni per costruire un albero dal pacchetto rpart. Cioè, ad ogni albero è stato offerto un diverso insieme di caratteristiche per l'apprendimento. A causa della genetica tale set di caratteristiche è più veloce della forza bruta completa.
Ma l'albero non è magico, è quello offerto da rpart. Credo che lì sia uno standard.

L'albero stesso è completamente standard, l'idea originale dello script è di trovare i predittori più significativi, e la genetica sembra contribuire a questo.

Non capisco come si possa cambiare l'entropia con qualsiasi altro indicatore (precisione o completezza o altro) per creare una nuova generazione.

 

Stavo guardando una lezione su ME non molto tempo fa, e c'era una situazione in cui un modello gira in un range stretto di probabilità, ma per i modelli boosting questa è considerata quasi la norma, poiché il modello non sta essenzialmente emettendo pura probabilità, e a causa di questo fatto c'è il concetto di calibrare un tale modello per interpretazioni corrette delle previsioni. E ho avuto proprio una situazione del genere l'anno scorso, quando i modelli davano i loro risultati tra il 40 e il 60, e mi hanno assicurato che era una variante molto cattiva... Avevo dei dubbi perché i modelli erano stabili e davano buoni risultati finanziari.

 
Aleksey Vyazmikin:

Stavo guardando una conferenza su ME non molto tempo fa, e c'era una situazione in cui un modello opera in una gamma ristretta di probabilità, ma per i modelli boosting questa è considerata quasi la norma, poiché il modello non sta essenzialmente emettendo pura probabilità, e per questo c'è un concetto di calibrazione di un tale modello per previsioni corrette. E ho avuto proprio una situazione del genere l'anno scorso, quando i modelli davano i loro risultati tra il 40 e il 60 e mi avevano assicurato che era una variante molto cattiva... Avevo dei dubbi, perché i modelli erano stabili e davano buoni risultati finanziari.

Alexei, diciamo che il tasso di errore è del 99% - è un bene o un male?

Capisco che il restante uno per cento è la probabilità di successo.

Non molto, ma va bene, perché sappiamo già dov'è l'errore e come evitarlo.

Detto questo, il rapporto è 99k1
 
Renat Akhtyamov:

Alexei, diciamo che la probabilità di errore è del 99% - è un bene o un male?

Suppongo che il restante uno per cento sia la probabilità di successo.

È piccolo, ma bello, perché sappiamo già dov'è l'errore e come evitarlo.

Una probabilità di errore così alta ci dice che non sappiamo molto di quello che succede.

È abbastanza preciso e questo è un bene, ma è lontano dal successo - l'1% potrebbe essere solo un colpo di fortuna.

E questo se parliamo specificamente di probabilità.

 
Aleksey Vyazmikin:

Capisco, è quello che pensavo, quindi c'è una buona probabilità che la divisione delle radici nella maggior parte degli alberi sia la stessa, il che scarta le altre opzioni.

Circa il 50%. Ma questo parametro può essere cambiato, in qualsiasi momento desiderato, in altri fiioni di chiamate forestali.

Aleksey Vyazmikin:
Voglio provare come valutazione di un qualche tipo di indicatore di unicità, cioè quando ci sono già foglie pronte e proviamo a cambiare ogni predittore uno per uno a qualsiasi altro (tenendo conto della divisione della griglia), raccogliere statistiche, e confrontare la migliore variante di sostituzione con la variante di default, considerare la precisione o un altro indicatore (il concetto è importante), e quindi raccogliere punti per ogni predittore per tutto il modello.

Qualcosa di simile alla permutazione trovata da Maxim. Ma ha senso sostituire un predittore con variazione da 0,1 a 0,2 con una variazione da 800 a 300000 invece di un predittore con variazione da 0,1 a 0,2? No!
Ma mischiare le sue linee sì. La gamma di numeri e la distribuzione di probabilità rimarranno, ma i valori in ogni esempio diventeranno casuali.

Aleksey Vyazmikin:

Quello che non capisco è come si possa cambiare l'entropia in qualche altro valore (precisione o completezza o altro) per creare una nuova generazione.

Alcuni pacchetti R permettono di usare la loro funzione di errore. Xgboost può, ma lì devi trovare una formula per la derivata del tuo f-fi e alimentarla insieme ad essa. Per me, la derivazione è un problema. Guarda la descrizione del pacchetto rpart, forse puoi usare le tue funzioni anche lì, o anche senza derivati.

 
elibrario:

Qualcosa di simile con la permutazione che ha trovato Maxim. Ma ha senso sostituire un predittore con un cambiamento da 0,1 a 0,2 con un predittore con un cambiamento da 800 a 300000? No!
Ma mischiare le sue file sì. La gamma di numeri e la distribuzione delle probabilità rimarranno, ma i valori in ogni esempio diventeranno casuali.

Ho scritto:"diciamon. spread". Trova la media e la varianza e vai avanti. È meglio randomizzare con i rumori che mischiare e basta.

Ci sono un sacco di sciocchi qui che amano distorcere le parole e fare screenshot, cercando di dimostrare se stessi dopo

 
Maxim Dmitrievsky:

Ho scritto:"assumiamouna distribuzione n.". Naturalmente ha senso con tratti normalizzati. Trova la media e la varianza e vai avanti.

Ci sono un sacco di sciocchi qui che amano torcere le parole e fare screenshot, cercando di affermare se stessi con questo dopo
La normalizzazione aiuterà con la gamma - proprio così.
Ma la distribuzione di probabilità di una distribuzione normale sarà nel mezzo (circa 0,5), mentre il predittore reale può essere spostato lateralmente, per esempio circa 0,8. O una specie di sella intorno a 0,2 e 0,8, o qualcos'altro...
Mescolando si preserva anche la distribuzione.
 
elibrario:
La normalizzazione aiuterà con la gamma - questo è un sì.
Ma la distribuzione di probabilità di una distribuzione normale sarà nel mezzo (circa 0,5), e il predittore reale può essere spostato lateralmente, per esempio circa 0,8. O una specie di sella intorno a 0,2 e 0,8, o qualcos'altro...
Mescolando si preserva anche la distribuzione.

Prendi la media e la varianza, lol, e non preoccuparti.

 
Maxim Dmitrievsky:

Prendi la media e la varianza, lol, e non preoccuparti.

è più facile da mescolare)

E per il link al metodo interessante (permutazione) - grazie!