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

 
Aleksey Vyazmikin:

valutazione di oob (out of bag)

 
Maxim Dmitrievsky:

stima oob (fuori borsa)

Ho letto di questo metodo quihttps://habr.com/company/ods/blog/324402/ ma non sono riuscito a capire come la stima possa influenzare la ricerca di un modello nei dati che vengono modificati. Forse non mi sto esprimendo correttamente, ma ecco un semplice esempio in un campione che abbiamo, diciamo, un modello come questo

"

1+2=3

...

1+2=3,5

...

1+2=3,8

...

1+2=3,5

...

1+2=3

"

"..." - non è un periodo di tempo definito dopo il quale una regola cambia. Anche se idealmente c'è un modello di cambiamento delle regole. Come possono trovare questa regolarità che dice che una regola sarà cambiata in n linee di campionamento e poi n*x regole torneranno al loro stato originale? E cosa succede se la natura del cambiamento della regola non è solo un intervallo di tempo, ma l'influenza di altre circostanze i cui dati sono nel campione, ma la regolarità della loro influenza può essere stimata solo dalla sequenza degli eventi (cioè dall'ordine in cui ogni riga di dati è presentata)? Le foreste tirano i pezzi con metodi diversi, come possono vedere non solo la regolarità orizzontale (insieme di predittori), ma anche verticale (cambiamento dei predittori rispetto al passato n)?

 
Aleksey Vyazmikin:

Risponderò più tardi in serata... un'improvvisa voglia di pizza e blondie

 
Maxim Dmitrievsky:

Risponderò più tardi stasera... Ho improvvisamente voglia di pizza e di bionda

Primavera - potrebbe spiegare l'improvviso :)

Aspetterò una risposta, grazie per aver dedicato del tempo alle mie domande probabilmente stupide.

 
Aleksey Vyazmikin:

Primavera - può spiegare l'improvviso :)

Non vedo l'ora di avere tue notizie, grazie per aver trovato il tempo di fare le mie domande, probabilmente stupide.

Al contrario, buone domande logiche, me le sono poste di recente.

 
Aleksey Vyazmikin:

"..." - non è un periodo di tempo definito dopo il quale una regola cambia. Anche se idealmente c'è un modello di cambiamento delle regole. Come può lo scaffolding trovare questa regolarità che dice che una regola sarà cambiata in n linee di esempio e poi in n*x linee la regola tornerà al suo stato iniziale? E cosa succede se la natura del cambiamento della regola non è solo un intervallo di tempo, ma l'influenza di altre circostanze i cui dati sono nel campione, ma la regolarità della loro influenza può essere stimata solo dalla sequenza degli eventi (cioè dalla sequenza di archiviazione di ogni riga con i dati)? Le foreste tirano i pezzi con tecniche diverse, come possono vedere non solo il modello orizzontale (insieme di predittori) ma anche quello verticale (cambiamento nei predittori rispetto al passato n)?

Beh, non esattamente un cambiamento nel modello. Più che altro un'approssimazione più grossolana. Se il campione è abbastanza grande, per esempio, allora l'impalcatura viene addestrata su sottoinsiemi casuali, si estraggono pezzi da essa, sì, e su oob (i pezzi rimanenti) si convalida il modello, e si confrontano gli errori. Se gli errori sono +- gli stessi, allora l'impalcatura non è sovrallenata, quindi c'è una maggiore probabilità di previsioni corrette in futuro. Se l'errore su oob non è soddisfacente, possiamo giocare un po' con le impostazioni, ad esempio ridurre il sottoinsieme di allenamento (aggiungere più rumore al modello) e aumentare il sottoinsieme di validazione. Così facendo, il modello approssimerà già peggio i campioni di allenamento, l'errore sarà maggiore, ma sui nuovi dati c'è la possibilità di ottenere esattamente lo stesso errore, cioè il modello sarà stabile su entrambi i sottocampioni. E poiché i sottocampioni stessi sono scelti in modo casuale, un gran numero di incognite nel sottocampione di formazione è coperto. Ovviamente, questa non è una panacea, ma dà più flessibilità al lavoro rispetto ai semplici alberi. Lo stesso vale per gli ensemble NS.

 
Maxim Dmitrievsky:

Beh, non esattamente un cambiamento nel modello. Più che altro un'approssimazione più grossolana. Se il campione è abbastanza grande, per esempio, allora l'impalcatura viene addestrata su sottoinsiemi casuali, tirando fuori pezzi, sì, e su oob (i pezzi rimanenti) il modello viene validato, e gli errori vengono confrontati. Se gli errori sono +- gli stessi, allora l'impalcatura non è sovrallenata, quindi c'è una maggiore probabilità di previsioni corrette in futuro. Se l'errore su oob non è soddisfacente, possiamo giocare un po' con le impostazioni, per esempio ridurre il sottoinsieme di allenamento (aggiungere più rumore al modello) e aumentare il sottoinsieme di validazione. Così facendo, il modello approssimerà già peggio i campioni di allenamento, l'errore sarà maggiore, ma sui nuovi dati c'è la possibilità di ottenere esattamente lo stesso errore, cioè il modello sarà stabile su entrambi i sottocampioni. E poiché i sottocampioni stessi sono scelti in modo casuale, un gran numero di incognite nel sottocampione di formazione è coperto. Ovviamente, questa non è una panacea, ma dà più flessibilità al lavoro rispetto ai soli alberi. Lo stesso vale per i gruppi NS.

Bene, all'incirca così pensavo, se primitivamente, allora c'è semplicemente il controllo delle regole, sul campione di ogni albero condizionatamente indipendente, e a causa dell'errore di incrocio viene comprato, sovrallenamento, ma allo stesso modo vengono tagliate tutte le regolarità temporali, la cui causalità non poteva essere stabilita (e stabilire questa causalità era possibile solo casualmente, se l'albero controllava il suo risultato con quel campione, dove la regolarità era conservata).

E se tagliamo il campione e ci alleniamo su pezzi più piccoli (diciamo che tagliamo un anno in 12 mesi e prendiamo 2-3 anni), e poi, nel caso dell'albero, raccogliamo tutte le regole di ogni albero con maggior peso e le abbiniamo a 24 campioni (se una regola funziona per meno del x% del campione, la buttiamo via), non possiamo vedere che regole diverse funzioneranno per periodi diversi? Poi possiamo fare l'ipotesi della ciclicità, che deve essere il caso dei mercati finanziari, a causa della tempistica (rapporti finanziari).

Per esempio molte persone scrivono dell'analisi di correlazione come metodo preliminare per stimare i predittori, ma quando guardo la tabella non riesco a capire, la correlazione è piccola, ma l'albero dà più valore a questo elemento dopo che è stato costruito. Perché succede questo?


Se prendiamo un predittore chiamato "arr_TimeH" e ci pensiamo, è ovvio che possiamo aspettarci un comportamento diverso del mercato in tempi diversi, per esempio alle 10 del mattino all'apertura della borsa ci sarà un forte movimento, in quanto le informazioni (eventi accumulati) dal momento dell'assenza di trading vengono elaborate, e in altri momenti la situazione può essere diversa, la stessa notizia prevista può essere rilasciata, dopo di che un forte movimento di mercato è molto probabile, d'altra parte c'è una sessione serale, dove il movimento cambia spesso rispetto al giorno precedente, può essere meno amplitudinale, quindi il tempo ovviamente influenzato. Ecco perché penso che i metodi MO dovrebbero essere usati per il trading invece di fidarsi delle tradizioni già consolidate, inclusa la pre-elaborazione dei dati.


P. S. Ho disegnato le tabelle in Photoshop, le ho spuntate a piacimento, per mostrare i colori, e sono rimasto scioccato quando ho visto che il colore delle caselle di spunta coincideva con il colore delle scale di significato - salire di tono! Come può essere? Si è scoperto che ci ho fatto caso inconsciamente e questo ha influenzato la mia scelta. Forse la gente fa trading intuitivamente allo stesso modo, cioè usa un sistema di cui non si rende conto.

 
Aleksey Vyazmikin:

Per esempio, molte persone scrivono sull'analisi di correlazione come metodo preliminare per valutare i predittori, ma quando guardo la tabella non riesco a capire che la correlazione è piccola, ma l'albero dà più significato a questo elemento dopo che è stato costruito. Perché succede questo?

Forse in base alla combinazione dei tuoi predittori temporali (mese, settimana, giorno, ora...) l'albero sta semplicemente andando verso una certa barra BUY/SELL.

È come memorizzare il tempo delle grandi barre e usarle per fare trading con profitto sulla storia, anche se la correlazione di questo attributo al movimento del prezzo sarà quasi zero.

 
Ivan Negreshniy:

Forse per combinazione dei tuoi predittori temporali (mese, settimana, giorno, ora...) l'albero va solo ad una particolare barra di ACQUISTO/ VENDITA.

È come memorizzare le barre del tempo e usarle per fare trading sulla storia, anche se la correlazione di questo attributo con il movimento del prezzo sarà quasi zero.

Forse, lo fa, ma ci sono solo due predittori - giorno della settimana e ora, cioè possiamo ottenere 5*14=70 gruppi con tale attributo, mentre il campione contiene 403933 linee, cioè 5770 linee cadono in questo gruppo, d'altra parte, il target 33000 linee, cioè 471 linee target cadono in ogni gruppo. E se consideriamo anche che ci sono altri predittori, avremo già molti gruppi. È come tagliare una mela a fette, segnare le fette e mettere in una tabella le fette con più di un tratto rispetto alle altre, ma poiché ci sono tante fette, ci saranno fette con un solo tratto. Quindi la domanda sorge spontanea: quanti predittori dovrebbero esserci per una data dimensione del campione? Quanto devono essere grandi le fette di mela?

Beh, c'è un modello in sé nei giorni e nelle ore, ed è influenzato da fattori cronometrici - apertura della sessione di trading, periodo delle sessioni di trading, notizie (economiche/statistiche, che sono per lo più rilasciate alla stessa ora e giorno della settimana).

 
Aleksey Vyazmikin:

Forse sì, ma ci sono solo due predittori - giorno della settimana e ora, quindi possiamo ottenere 5*14=70 gruppi con questo criterio, e il campione ha 403933 linee, quindi il gruppo ottiene 5770 linee, d'altra parte il target 33000, quindi otteniamo 471 linee target per ogni gruppo. E se consideriamo anche che ci sono altri predittori, avremo già molti gruppi. È come tagliare una mela a fette, segnare le fette e mettere in una tabella le fette con più di un tratto rispetto alle altre, ma poiché ci sono tante fette, ci saranno fette con un solo tratto. Quindi la domanda sorge spontanea: quanti predittori dovrebbero esserci per una data dimensione del campione? Quanto devono essere grandi le fette di mela?

Ma c'è un modello in sé, ed è influenzato da fattori cronometrici - apertura di una sessione di trading, periodo di sessioni di trading, notizie (economiche/statistiche, che sono per lo più rilasciate alla stessa ora e giorno della settimana).

Maxim Dmitrievsky, come si risolve questo problema?

In generale, quali sono le opzioni? I pezzi della mela possono essere diversi.
Per ogni ns dell'insieme aggiungere qualche contesto e usare questi contesti in qualche ns di controllo?
Per contesto intendo, per esempio, un link a qualche definizione di base, concetto, predittore e più qualche dato...