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

 
elibrarius:

Qualcosa di simile alla permutazione trovata da Maxim. Ma ha senso sostituire un predittore con una variazione da 0,1 a 0,2 con una variazione da 800 a 300000 invece di un predittore con una variazione da 0,1 a 0,2? No!

Ma mischiare le sue file sì. La gamma di numeri e la distribuzione di probabilità rimarranno, ma i valori in ogni esempio diventeranno casuali.

Sì, in effetti qualcosa di simile, è probabilmente quando l'idea è venuta fuori. Non ho capito qual è il problema di cambiare il predittore, perché ogni predittore ha i suoi valori sulla linea, inoltre è necessario mantenere la ripartizione della griglia di questi valori (può essere passo uniforme 0,1 0,2 0,3 o qualsiasi altro - le varianti sono disponibili da diversi sviluppatori di modellatori) tale, come era quando l'algoritmo ad albero funzionava, se è possibile.

E ciò che è anche importante è che è necessario controllare non su tutto il campione, ma esattamente su quelle file in cui è stata attivata la foglia precedente, in modo che i dati fossero comparabili nella precisione, cioè è necessario pre-filtrare il campione (per la valutazione su diverse foglie, rispettivamente, diversa filtrazione).

 
Aleksey Vyazmikin:

Sì, sembra simile, probabilmente l'idea è nata da lì. Non capisco quale sia il problema di cambiare il predittore, perché ogni predittore ha i suoi valori sulla linea, inoltre è necessario mantenere la ripartizione della griglia di questi valori (può essere passo uniforme 0.1 0.2 0.3 o qualsiasi altro - ci sono opzioni per diversi sviluppatori di modellatori) come era quando l'algoritmo ad albero funzionava, se è possibile.

Bene, invece del predittore il cui massimo era 0,2 sostituire il valore dell'altro predittore con un valore da 800 a 300000? E si scoprirà che andrà sempre verso i rami di destra. E dobbiamo controllare sia il ramo destro che quello sinistro.
La normalizzazione aiuterà a rientrare nell'intervallo, ma la distribuzione di probabilità può essere diversa, di conseguenza i rami di destra saranno attivati più spesso di quelli di sinistra o viceversa.
Oppure sto fraintendendo la tua idea e stiamo parlando di cose diverse.

Aleksey Vyazmikin:

Un'altra cosa importante è che non dovremmo controllare l'intero campione, ma precisamente quelle righe in cui la foglia precedente è stata attivata, in modo che i dati siano comparabili in accuratezza, cioè dovremmo pre-filtrare il campione (per la valutazione su diverse foglie, rispettivamente, diversi filtraggi).

Scartando il predittore, eliminiamo i nodi che separano i suoi dati (perché una foglia separata?). Scartando ogni nodo dobbiamo controllare 2 rami. Se scartiamo 10 nodi, otteniamo 11 opzioni (sottoalberi) con 11 foglie come risposta. Questo ha bisogno di essere mediato, eseguendo l'intero campione con una colonna rimescolata lo mostrerà approssimativamente nel cambiamento dell'errore finale dell'albero/foresta.
Leggi l'articolo sulla pemutazione - tutto è descritto lì in dettaglio.

 
elibrario:

Basta sostituire il valore del predittore con un massimo di 0,2 con il valore dell'altro predittore con valori tra 800 e 300000. E si scoprirà che andrà sempre verso i rami di destra. E dobbiamo controllare sia il ramo destro che quello sinistro.
La normalizzazione aiuterà a rientrare nell'intervallo, ma la distribuzione di probabilità può essere diversa, di conseguenza i rami di destra saranno attivati più spesso di quelli di sinistra o viceversa.
Oppure non capisco la tua idea e stiamo parlando di cose diverse.

Scartando il predittore stiamo scartando i nodi che condividono i dati su di esso (perché il foglio separato?). Scartando ogni nodo dobbiamo controllare 2 rami. Se scartiamo 10 nodi, otteniamo 11 opzioni con 11 foglie come risposta. Questo deve essere mediato, l'esecuzione dell'intero campione con una colonna rimescolata mostrerà approssimativamente questo nel cambiamento dell'errore finale dell'albero/foresta.
Leggi l'articolo sulla pemutazione - lì descrive tutto in dettaglio.

Il mio metodo non è la pemutazione, quindi non posso riprodurlo.

Procedo da un altro, che una foglia è una regola già completata - una caratteristica di qualche osservazione, e può benissimo esistere già senza una struttura ad albero. Un albero è uno strumento per generare regole dalle osservazioni.

Naturalmente, sono d'accordo che alcuni predittori renderanno una regola della foglia modificata completamente non funzionale sulla stessa parte del campione, ma questo non è un problema, dal momento che l'obiettivo è quello di trovare un analogo migliore e confrontare solo con esso - è normale che alcuni predittori che dividono il campione per divisione saranno persi, ma di solito questo riguarda solo la serie di valori per un singolo predittatore. Per esempio abbiamo un foglio con tre predittori A>3 && B<1 && C>=20, ci sono predittori D ed E che non sono inclusi nelle regole della lista, rispettivamente abbiamo bisogno di rimuovere uno per uno ogni predittatore, A per cominciare e sostituirlo con D ed E con passi di griglia di partizione del valore del predittatore e con diversi segni di disuguaglianza, in questo caso controllare ogni nuova regola sulle stesse parti di campione dove l'originale è stato attivato e ottenere statistiche di precisione di classificazione per ogni regola. E, di conseguenza, l'opzione migliore è confrontarlo con l'originale e dare un punteggio a questo confronto. Per fare questa procedura per tutte le foglie. Escludendo le foglie che sono duplicate. È importante valutare non il risultato dell'albero come un insieme di regole, e ogni regola dichiarata nella foglia separatamente dalle altre.

Non sto cercando di determinare l'importanza del predittore per l'albero greed, ma l'importanza del predittore per la stabilità della regola (foglia) proposta dal modello.
 
Aleksey Vyazmikin:

Il mio metodo non è la pemutazione, quindi non posso riprodurlo.

Procedo da un altro, che una foglia è una regola già completata - una caratteristica di qualche osservazione, e può benissimo esistere già senza una struttura ad albero. Un albero è uno strumento per generare regole dalle osservazioni.

Naturalmente, sono d'accordo che alcuni predittori renderanno una regola della foglia modificata completamente non funzionale sulla stessa parte del campione, ma questo non è un problema, poiché l'obiettivo è quello di trovare il miglior analogo e confrontare solo con esso - è normale che alcuni predittori che dividono il campione per spaccature saranno persi, ma di solito questo riguarda solo la serie di valori per un singolo predittatore. Per esempio abbiamo un foglio con tre predittori A>3 && B<1 && C>=20, ci sono predittori D ed E che non sono inclusi nelle regole della lista, rispettivamente abbiamo bisogno di rimuovere uno per uno ogni predittatore, A per cominciare e sostituirlo con D ed E con passi di griglia di partizione del valore del predittatore e con diversi segni di disuguaglianza, in questo caso controllare ogni nuova regola sulle stesse parti di campione dove l'originale è stato attivato e ottenere statistiche di precisione di classificazione per ogni regola. E, di conseguenza, l'opzione migliore è confrontarlo con l'originale e dare un punteggio a questo confronto. Per fare questa procedura per tutte le foglie. Escludendo le foglie che sono duplicate. È importante valutare non il risultato dell'albero come insieme di regole, ma ogni regola dichiarata nella foglia separatamente dalle altre.

Non sto cercando di determinare l'importanza del predittore per l'albero greed, ma l'importanza del predittore per la stabilità della regola (foglia) proposta dal modello.
Finora ho fatto l'impalcatura. Così nella tua direzione MO - sai cosa fare)
 
elibrario:
Per ora sto facendo un'impalcatura. Quindi nella tua direzione MO - sai cosa fare)

Così si scopre che ognuno sta parlando della propria cosa :)

Ditemi, è realistico implementare sullo stesso Alglib la possibilità di costruire una foresta solo con valori predittori unici, o almeno con split unici? Gli alberi saranno di meno, naturalmente, ma non duplicheranno i loro errori/risposte giuste, il che dovrebbe dare più plausibilità al di fuori della formazione del campione.

 
Aleksey Vyazmikin:

Dimmi, è realistico implementare sullo stesso Alglib per costruire una foresta solo con valori predittori unici, o almeno con spaccature uniche? Questo sarà meno alberi, naturalmente, ma non duplicheranno i loro errori/risposte giuste, il che dovrebbe dare più plausibilità al di fuori del campione di allenamento.

Naturalmente. MQL permette di programmare qualsiasi cosa, come qualsiasi altro linguaggio. E Alglib può essere riscritto al di là del riconoscimento secondo le vostre idee.

 
Elibrarius:

Naturalmente. MQL permette di programmare qualsiasi cosa, proprio come qualsiasi altro linguaggio. E Alglib può essere riscritto oltre il riconoscimento per adattarsi alle vostre idee.

Nella parola 'realisticamente' ho messo 'così semplice'...

Ma dalla risposta ho l'atteggiamento: grazie, non mi disturberò.

 
Aleksey Vyazmikin:

Nella parola 'realisticamente' ho messo 'così semplice'...

Ma dalla risposta capisco l'atteggiamento, grazie, non mi disturberò.

Complicato, naturalmente.
Ma c'è una base sotto forma di funzione ad albero. Questo è quello che si può modificare come si vuole.
 
elibrario:
Difficile, naturalmente.
Ma c'è una base sotto forma di funzione ad albero. Questo è quello che si può modificare come si vuole.

Grazie per la vostra risposta. Hai una buona comprensione del codice, stai pianificando un rilascio pubblico con miglioramenti all'algoritmo di costruzione degli alberi? Anche cose come la profondità dell'albero o il pruning incorporato ad una regola definibile di osservazione del numero sarebbero molto utili. Io non ho iniziato a usare Alglib, ma c'è chi potrebbe trovarlo molto utile.

 
Aleksey Vyazmikin:

Grazie per la vostra risposta. Hai una buona comprensione del codice, stai pianificando un rilascio pubblico con miglioramenti all'algoritmo di costruzione degli alberi? Anche cose come la profondità dell'albero o il pruning incorporato ad una regola definibile di osservazione del numero sarebbero molto utili. Io non ho usato Alglib, ma c'è chi potrebbe trovarlo molto utile.

Capire e fare dei rilasci sono cose diverse. Ora sto sperimentando. Ora sto mischiando i predittori. Potrei abbandonarlo, come ho abbandonato NS a causa della mia incapacità di affrontare il rumore.

Capirlo è abbastanza facile. Basta guardare il codice per qualche ora e tutto diventerà chiaro.