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

 

Si potrebbe prendere la strada di buttare fuori gli stessi input. Per ogni colonna da ogni altra, calcola la deviazione media. In questo modo si possono trovare le due colonne più simili, una delle quali può essere scartata. Quale dei due, può essere contato dalla deviazione media di tutte le colonne, ecc.

 
Ildottor Trader:

Visivamente, tutti i pesi sono divisi in due gruppi. Se volete dividerli secondo la significatività/non significatività, allora 5,11,7,1,3,9 spiccano chiaramente, questo insieme penso sia sufficiente.

È la decisione giusta!

Non sapevo che la NS potesse farlo. È una rivelazione per me.

Si scopre che NS può simulare le interazioni.

Ti devo un premio. Grazie!

 

È vero che i NS non danno un'idea del tipo di modello. Cioè, l'interpretabilità del modello è in discussione.

Più tardi posterò la logica per la creazione del dataset e parlerò del tipo di dipendenza.

 
Dr.Trader:

Visivamente, tutti i pesi sono divisi in due gruppi. Se volete dividerli secondo la significatività/non significatività, 5,11,7,1,3,9 spiccano chiaramente, questo set è sufficiente credo.

Se siete interessati, provate a rimuovere qualsiasi predittore significativo dal set di dati e ri-addestrate il NS e mostrate l'immagine con i pesi. Penso che ci sarà una sorpresa.

Questo è già fuori dall'incarico. Per far crescere l'argomento.

 
Alexey Burnakov:

Se siete interessati, provate a rimuovere un qualsiasi predittore significativo dal set di dati e ad addestrare nuovamente il NS e a visualizzare un'immagine dei pesi. Credo che ci sarà una sorpresa.

Questo è già fuori questione. Per far crescere l'argomento.

La stufa è una parte molto importante dell'interno, nel senso che si dovrebbe sempre ballare per non farlo.

Dr.Trader

Il tuo esempio con NS dice solo che a NS piacevano di più i predittori che hai menzionato e non gli altri. Gli algoritmi che fanno queste cose sono a buon mercato.

Tutto questo andrebbe bene se tale selezione fosse fatta tra i predittori che sono rilevanti, hanno potere predittivo, capacità predittiva per la variabile obiettivo.

Nella mia pratica, ci sono sempre predittori tra un insieme arbitrario di predittori che non hanno alcuna relazione (o molto debole) con la variabile obiettivo. Quindi l'insidia è che, dato un certo numero di predittori di rumore o una selezione casuale dei loro valori, la maggior parte degli algoritmi, incluso NS, non riesce a distinguere i predittori informativi tra i predittori di rumore.

Pertanto, lo "stove-piping" è definito come un'azione che prima ripulisce l'insieme iniziale di predittori dai predittori senza speranza e rumorosi e poi...

PS.

Non ho lavorato con NS, ma le foreste casuali, con una certa quantità di predittori di rumore, tendono a scartare i predittori informativi secondo il loro algoritmo integrato. Di conseguenza, sul rumore, danno prestazioni straordinarie con un errore inferiore al 5%!

SARP

La presenza di predittori di rumore porta necessariamente al retraining del modello con tutto ciò che implica per il mondo reale

 
SanSanych Fomenko:

La stufa è una parte molto importante dell'interno, nel senso che si dovrebbe sempre ballare intorno ad essa.

Dr.Trader

Il tuo esempio con NS dice solo che a NS piacevano di più i predittori che hai menzionato e non gli altri. Gli algoritmi che fanno queste cose sono a buon mercato.

Tutto questo andrebbe bene se tale selezione fosse fatta tra i predittori che sono rilevanti, hanno potere predittivo, capacità predittiva per la variabile obiettivo.

Nella mia pratica, ci sono sempre predittori tra un insieme arbitrario di predittori che non hanno alcuna relazione (o molto debole) con la variabile obiettivo. Quindi l'insidia è che, dato un certo numero di predittori di rumore o una selezione casuale dei loro valori, la maggior parte degli algoritmi, incluso NS, non riesce a distinguere i predittori informativi tra i predittori di rumore.

Pertanto, lo "stove-piping" è definito come un'azione che prima ripulisce l'insieme iniziale di predittori dai predittori senza speranza e rumorosi e poi...

PS.

Non ho lavorato con NS, ma le foreste casuali, con una certa quantità di predittori di rumore, tendono a scartare i predittori informativi secondo il loro algoritmo integrato. Di conseguenza, sul rumore, danno prestazioni straordinarie con un errore inferiore al 5%!

SARP

La presenza di predittori di rumore porta necessariamente a riqualificare il modello con tutto ciò che comporta per il reale

NS ha fatto molto bene.

Random Forest non potrebbe gestire un tale compito con l'interazione di un insieme di variabili. E la significatività individuale di ogni predittore era intenzionalmente zero.

 

Sono contento che abbia funzionato :) Grazie per il premio.

Ho provato a rimuovere un ingresso (4 casi) - se rimuovo input_5 o input_9 allora non funziona nient'altro, la neuronica con la stessa configurazione non impara nemmeno ad un errore inferiore al 50%, inizia a dare solo 0 o 1 in un caso più grande.

Se rimuovo input_20 allora tutto va bene, il risultato è corretto. Ma la cosa divertente è l'input_15, se lo rimuovo allora il neurone non si allena nemmeno correttamente, i problemi sono gli stessi di quando rimuovo input_5 o input_9. Non l'ho testato ulteriormente.

Ho allegato il file con il codice R per l'addestramento dei neuroni, se siete interessati. Fondamentalmente è solo un codice leggermente modificato dal registro di Rattle.

File:
r_nnet.zip  3 kb
 
Dr.Trader:

Sono contento che abbia funzionato :) Grazie per il premio.

Ho provato a rimuovere un ingresso (4 casi) - se rimuovo input_5 o input_9 allora non funziona nient'altro, la neuronica con la stessa configurazione non impara nemmeno ad un errore inferiore al 50%, inizia a dare solo 0 o 1 in un caso più grande.

Se rimuovo input_20 allora tutto va bene, il risultato è corretto. Ma la cosa divertente è l'input_15, se lo rimuovo allora il neurone non si allena nemmeno correttamente, i problemi sono gli stessi di quando rimuovo input_5 o input_9. Non l'ho testato ulteriormente.

Ho allegato il file con il codice R per l'addestramento dei neuroni, se siete interessati. Fondamentalmente è solo un codice leggermente modificato dal registro di Rattle.

Mandami un messaggio con il numero della tua carta o il numero del portafoglio elettronico
 

Bene, in generale il processo è chiaro, il neurone cerca semplicemente di adattare i dati disponibili in una certa logica, e se alcuni degli ingressi non portano nuove informazioni, minimizza il loro impatto in modo che non facciano male. È improbabile trovare interrelazioni complesse di input, sono d'accordo.

Inoltre, il pacchetto nnet in R non è esattamente una rete neurale convenzionale. Dalla descrizione, dovrebbe usare l'apprendimento di secondo ordine. Di solito nei neuroni i pesi cambiano in base alle derivate, ma qui cambiano in base alle derivate delle derivate. E durante l'addestramento viene costruita una sorta di matrice "hessian" che memorizza dati importanti su tutti i pesi per tutti gli esempi di addestramento in una sola volta. Dicono che è molto figo, questo pacchetto deve essere forte.https://ru.wikipedia.org/wiki/Алгоритм_Бройдена_-_Флетчера_-_Гольдфарба_-_Шанно - Non l'ho capito, ma questo è se qualcuno è un matematico allora capirlo.

Алгоритм Бройдена — Флетчера — Гольдфарба — Шанно — Википедия
  • ru.wikipedia.org
Алгоритм Бройдена — Флетчера — Гольдфарба — Шанно (BFGS) (англ. Broyden — Fletcher — Goldfarb — Shanno algorithm) — итерационный метод численной оптимизации, предназначенный для нахождения локального максимума/минимума нелинейного функционала без ограничений. BFGS — один из наиболее широко применяемых квазиньютоновских методов. В...
 
A proposito di strani risultati:
Se si rimuove qualsiasi predittore significativo, niente funzionerà. Questa è l'interazione.

Ognuno dei predittori non dice nulla sullo stato dell'output. Quindi gli algoritmi che considerano il significato individuale non funzionano. Anche gli alberi decisionali e le foreste casuali quasi certamente non funzioneranno, poiché guardano anche i predittori individualmente. Ma un'enorme foresta di decine di migliaia di alberi può accidentalmente fondere predittori significativi in un ramo e tutto funzionerà. Ma è improbabile.

Perché no?

L'interazione è l'informazione che scorre da molti predittori insieme all'uscita. L'algoritmo di dipendenza è tale che la somma dei predittori significativi può essere 50/50 pari o dispari. Se è pari l'output è 1. Altrimenti è 0. Ecco perché la rimozione di almeno uno dei predittori significativi rompe la dipendenza. E l'aggiunta di predittori extra può rendere il tutto rumoroso, così che il test statistico non mostra alcuna significatività.

Sono davvero sorpreso che la NS convenzionale sia stata in grado di rilevare una tale relazione. Ora comincio a credere nella capacità di MLP di rilevare input significativi. Evviva.

Tutto sommato, hai colpito nel segno. Se provate ad addestrare una foresta casuale, quasi certamente non funzionerà.

Sono anche abbastanza sicuro che la regressione logistica fallirà.

In breve, avete bisogno di un'enumerazione stocastica di diversi sottoinsiemi di predittori con la giusta funzione di fitness per questo problema. O NS )))

Più tardi posterò il mio metodo.

Forse qualcun altro proverà un altro modo di selezionare i predittori e allora saremo in grado di confrontare i risultati.