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

 
SanSanych Fomenko:

Ho cifre simili per Forest e Ada.

Ora, per tornare ai nostri "arieti" - come faccio a scartare il rumore da una lista arbitraria di predittori? Ho un algoritmo empirico che ha selezionato i miei 27 predittori su 170. L'ho anche usato per analizzare i set di predittori di altre persone e anche con successo. Sulla base di questa esperienza, sostengo che tutti i metodi di R che usano variabili di "importanza" nei loro algoritmi non possono eliminare il set di predittori dal rumore.

Faccio appello a tutti i lettori del thread: sono disposto a fare l'analisi appropriata se i dati grezzi sono presentati come RData o un file Excel che non richiede elaborazione.

A parte questo.

In allegato allego una serie di articoli che presumibilmente risolvono il problema di ripulire l'insieme originale dei predittori dal rumore, e con una qualità molto migliore. Purtroppo non ho tempo di provarlo al momento. Forse qualcuno farà una prova e pubblicherà il risultato?


Ho deciso di leggere prima l'argomento (si scopre che non l'ho fatto). E poi sono sorte una serie di domande, come ad esempio:

1. lo scaffolding è addestrato su un sottoinsieme casuale di caratteristiche, significa che le caratteristiche non selezionate casualmente per l'addestramento saranno etichettate come "non importanti"?

2. cosa fare o capire quando ci sono caratteristiche categoriche e l'impalcatura darà loro meno importanza delle caratteristiche con più categorie?

3. La PCA su ogni nuovo campione non assegnerà componenti "nuove", che saranno molto diverse dalle componenti del campione di allenamento, come affrontare questo?

E un'ultima cosa: un metodo di eliminazione delle caratteristiche ricorsivo leggermente diverso:http://blog.datadive.net/selecting-good-features-part-iv-stability-selection-rfe-and-everything-side-by-side/

L'articolo ha dei link ad articoli precedenti che descrivono anche l'impalcatura.

Selecting good features – Part IV: stability selection, RFE and everything side by side
  • 2014.12.20
  • blog.datadive.net
In this post, I’ll look at two other methods: stability selection and recursive feature elimination (RFE), which can both considered wrapper methods. They both build on top of other (model based) selection methods such as regression or SVM, building models on different subsets of data and extracting the ranking from the aggregates. As a wrap-up...
 
Maxim Dmitrievsky:

deciso di leggere prima l'argomento (si scopre che non l'ho fatto). E poi sono sorte una serie di domande, come ad esempio:

1. la foresta è addestrata su un sottoinsieme casuale di caratteristiche, questo significa che le caratteristiche che non sono casualmente in formazione saranno etichettate come "non importanti"?

2. cosa fare o capire quando ci sono caratteristiche categoriche e l'impalcatura darà loro meno importanza delle caratteristiche con più categorie?

3. La PCA su ogni nuovo campione non assegnerà componenti "nuove", che saranno molto diverse dalle componenti del campione di allenamento, come affrontare questo?

E un'ultima cosa: un metodo di eliminazione delle caratteristiche ricorsivo leggermente diverso:http://blog.datadive.net/selecting-good-features-part-iv-stability-selection-rfe-and-everything-side-by-side/

L'articolo ha dei link a parti precedenti dell'articolo che descrivono anche l'impalcatura.


Sfortunatamente, la mia risposta personale non aggiungerà nulla a ciò che è scritto qui o in altra letteratura sull'argomento.

Ci sono parecchi algoritmi per determinare l'"importanza" delle caratteristiche (regressione o categoria non importa) - tutti in R.

Ho passato molto tempo a padroneggiarli, e alla fine ho scoperto che la cosa PRIMARIA da fare è sbarazzarsi degli attributi rumorosi, irrilevanti per la variabile obiettivo, e poi usare da R, che darà una riduzione dell'errore del 5-7%. Non è stato possibile ottenere un errore inferiore al 20%.

Ancora una volta noto che faccio una selezione di componenti importanti su ogni barra, e sull'insieme risultante riqualifico la foresta.


Le cifre sono le seguenti.

  • Su diverse centinaia di predittori ho selezionato 27 predittori con il criterio del rumore, cioè "rilevanti" per la variabile obiettivo.
  • Ho selezionato da 27 su ogni barra per criterio di importanza (RFE)
  • sugli attributi ottenuti 5-15 imparo la foresta. Questa lista cambia continuamente all'interno dei 27 utilizzati.


Il criterio di qualità di questo approccio: prendo due file, sul primo insegno, addestro, convalida = circa lo stesso errore. Controllo il modello ottenuto sul secondo file = circa lo stesso errore del primo file. Ne concludo che il modello non è sovrallenato e che in futuro, almeno una barra, si comporterà come quando è stato addestrato.

Qualsiasi altro approccio non funziona per me, e la sostituzione di un tipo di modello con un altro non migliora nulla in termini di riqualificazione.



Per quanto riguarda la PCA. Ho ottenuto un risultato negativo, nel senso che usare le componenti principali non ha ridotto l'errore rispetto al set originale. Non capisco perché fosse così, anche se teoricamente dovrebbe ridurre gli errori.

 
SanSanych Fomenko:

La PCA è generalmente inutile quando si utilizza il modello su tratti eterogenei, ad esempio il forex... secondo me. Penso che sia inutile usare un modello per tratti eterogenei, per esempio nel forex.

se torniamo all'impalcatura.

Dovrò andare al codice sorgente, sembra, per capire come vengono valutati i tratti che non ce l'hanno fatta nel campione di allenamento, non è menzionato lì (molto probabilmente valutato come cattivo).

+ il processo di apprendimento dell'impalcatura è randomizzato, con diversi allenamenti consecutivi possiamo ottenere risultati diversi, a volte significativamente diversi... inoltre non è del tutto chiaro come lavorare con questo trucco. Va bene, se abbiamo messo a punto il modello, lo salviamo e lo usiamo più tardi... ma se il modello è auto-addestrato... dobbiamo addestrarlo più volte di seguito, scegliere l'errore minimo, qualcosa del genere... altrimenti le corse multiple nel tester producono risultati diversi, secondo le mie osservazioni fino a 5 o più, poi si ripetono per le corse successive

 
Maxim Dmitrievsky:

La PCA è generalmente inutile quando si utilizza il modello su caratteristiche eterogenee, ad esempio il forex... secondo me. Perché ci siamo allenati su alcuni componenti, e nel test è apparsa un'altra combinazione di componenti, non presa in considerazione dal modello in alcun modo.

Se torniamo all'impalcatura.

Dovrò andare al codice sorgente, sembra, per capire come vengono valutati i tratti che non ce l'hanno fatta nel campione di allenamento, non è menzionato lì (molto probabilmente valutato come cattivo).

+ il processo di apprendimento dell'impalcatura è randomizzato, con diversi allenamenti consecutivi possiamo ottenere risultati diversi, a volte significativamente diversi... inoltre non è del tutto chiaro come lavorare con questo trucco. Va bene, se abbiamo messo a punto il modello, lo salviamo e lo usiamo più tardi... ma se il modello è auto-addestrato... dobbiamo insegnargli più volte di seguito, selezionare l'errore minimo, e così via... altrimenti, quando si eseguono più corse nel tester, si ottengono risultati diversi, secondo le mie osservazioni fino a 5 o più, poi si ripetono nelle corse successive


Non ricordo le passioni che hai descritto. Con lo stesso seme i risultati sono sempre gli stessi.

 
SanSanych Fomenko:

Non ricordo le passioni che descrive. Con lo stesso seme, il risultato è sempre lo stesso.


Cosa fa seed? Non ricordo... il numero di funzioni, giusto? Io uso alglib forest

 
revers45:
Insegnante che non conosce la tabella di moltiplicazione e sviluppatore di NS che non la impone, soluzioni casuali e corrette - niente più versamenti!

Sono d'accordo.

È solo una scossa dell'aria inattiva. Pubblicate un esempio, dati sul soffitto, in modo da poter controllare.

Ci sono tre modi principali di imparare: senza un insegnante (l'obiettivo non è presentato), con un insegnante (l'obiettivo è completamente segnato) e semisupervisionato (non so come tradurre correttamente). Questo è quando al modello viene presentato un obiettivo che non è completamente (parzialmente) marcato. Tutto il resto è del maligno.

Buona fortuna

 
Maxim Dmitrievsky:

Di cosa è responsabile seed? Non ricordo... il numero di funzioni, giusto? Io uso la foresta alglib

Andiamo...

set.seed imposta un generatore di numeri casuali su un certo stato e ha un risultato riproducibile quando il calcolo viene ripetuto.

Imparare la matematica.

 
Vladimir Perervenko:

Andiamo...

set.seed imposta il generatore di numeri casuali su un certo stato e avere un risultato riproducibile quando il calcolo viene ripetuto.

Imparare la matematica.


Non ho una tale impostazione, per questo ho chiesto.

Posso farlo anche in MT5, grazie.

 
Vladimir Perervenko:

Sono d'accordo.

È solo una scossa dell'aria inattiva. Pubblica un esempio, dati sul soffitto, in modo da poter controllare.

Ci sono tre modi principali di imparare: senza un insegnante (l'obiettivo non è presentato), con un insegnante (l'obiettivo è completamente segnato) e semisupervisionato (non so come tradurre correttamente). Questo è quando al modello viene presentato un obiettivo che non è completamente (parzialmente) marcato. Tutto il resto è del maligno.

Buona fortuna

Bene, bene.)) Se conoscete perfettamente l'algoritmo e potete trovare l'obiettivo, allora perché avete bisogno di NS? Si può fare tutto senza).

NS e altri DM sono necessari proprio quando non si sa.

Per quanto riguarda gli algoritmi di apprendimento, sono sviluppati e modificati per ogni compito specifico. Per lo più basato sulle basi.

E quello che dici è solo un'agitazione dell'aria. Leggete qualsiasi cosa oltre l'introduzione. )

Buona fortuna.

 
Yuriy Asaulenko:

Bene, bene.)) Se conoscete perfettamente l'algoritmo e potete trovare l'obiettivo, perché avete bisogno di NS? Si può fare tutto senza).

Ha capito quello che ha scritto? L'obiettivo non viene trovato, è predefinito come qualcosa che il modello deve imparare. Di quale algoritmo sta parlando?

NS e altri DM sono necessari proprio quando non si sa.

Cosa non sappiamo?

Per quanto riguarda gli algoritmi di apprendimento, sono sviluppati e modificati per ogni compito specifico. Sono per lo più basati su quelli di base.

Stiamo parlando di due compiti da risolvere: regressione e classificazione (tralasciando clustering e ranking). Quali altri "compiti specifici" ha in mente?

E quello di cui state parlando è scuotere l'aria. Leggete qualsiasi cosa oltre l'introduzione. )

???

Buona fortuna.