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

 
Aleksey Nikolayev #:

In generale, una volta addestrato (su train) non c'è un solo modello, ma un insieme di modelli definiti da meta-parametri. Per esempio, un diverso grado del polinomio di interpolazione o diversi coefficienti di regolarizzazione nella regressione lasso, ecc. Poi si determina il miglior valore per il metaparametro (il miglior modello dall'insieme è preso per test). A sua volta, l'ottimizzazione del meta-parametro sul test può anche essere determinata da alcuni parametri (meta-parametri), per l'ottimizzazione dei quali può essere applicato l'esame. Per esempio, in quali proporzioni dividere il campione originale in treno e test.

Ma molto probabilmente non capisco la tua idea).

Il modo migliore per scegliere i meta-parametri non da una sezione di test, ma con diverse sezioni incollate insieme da una validazione incrociata o rolling forward. È stato discusso di recente.
 
elibrarius #:
È meglio selezionare i meta-parametri non su un singolo plot di test, ma su diversi incollati insieme dalla validazione incrociata o dal rollicking forward. È stato discusso di recente.

Sono d'accordo. In realtà, volevo solo dire che la validazione incrociata può anche essere organizzata in modo complicato ed essere impostata con alcuni parametri propri (meta-parametri) che possono anche essere ottimizzati da un campione in più (e non prenderli dal soffitto).

 
Aleksey Nikolayev #:

Sono d'accordo. In realtà, volevo solo esprimere l'idea che la crossvalidazione può anche essere organizzata in modo complicato ed essere impostata con alcuni parametri propri (meta-parametri), che possono anche essere ottimizzati utilizzando un altro campione (piuttosto che prenderli dal soffitto).

Correttamente inteso - eseguire qualsiasi azione per rendere il campione più simile a un campione d'esame.

La questione è come farlo al meglio.

Un'opzione, che è spesso usata, l'enumerazione dei predittori - ma con un grande insieme di loro troppo. E possiamo, diciamo, confrontare le stringhe (insieme di predittori) per la somiglianza e la robustezza del risultato target nei due campioni? Poi possiamo eliminare le stringhe anomale (diciamo, rare o non trovate nel campione) dal campione di allenamento e grazie a questo causare un apprendimento molto migliore, in teoria.

 
Aleksey Vyazmikin #:

Correttamente inteso - effettuare qualsiasi azione per rendere il campione di allenamento più simile a un campione d'esame.

La domanda è come farlo al meglio, allora.

Un'opzione spesso usata è quella di enumerare i predittori - ma con un grande insieme ce ne sono troppi. E possiamo, diciamo, confrontare le stringhe (insieme di predittori) per la somiglianza e la robustezza del risultato target nei due campioni? Quindi possiamo eliminare le stringhe anomale (diciamo, rare o non trovate nel campione) dal campione di allenamento e grazie a questo imparare molto meglio, in teoria.

Vladimir aveva un articolo su questo, non ricordo il nome del pacchetto, ma semplicemente buttava fuori stringhe imprevedibili dal campione
 
mytarmailS #:
Vladimir aveva un articolo su questo, non ricordo il nome di quel pacchetto, ma stava solo facendo cadere stringhe imprevedibili dal campione

Interessante, dovrò cercarlo. Ma voglio scartare non le stringhe prevedibili, ma quelle che non si verificano nel campione al di fuori dell'allenamento. È anche interessante segnarli, naturalmente, e non solo buttarli via - per identificarli.

 
Aleksey Vyazmikin #:

Interessante, dovrò cercarlo. Ma non voglio buttare via quelli che non sono prevedibili, ma quelli che non si verificano nel campione al di fuori dell'allenamento. È anche interessante segnarli in qualche modo, naturalmente, piuttosto che buttarli via - per identificarli.

Forse stiamo parlando di rimuovere gli outlier nelle osservazioni, che possono essere di due tipi - per dimensione della risposta e per dimensione del predittore (entrambi possono essere combinati nella stessa osservazione). Gli outlier propriamente detti sono chiamati i primi, mentre i secondi sono di solito chiamati in altro modo. Questa scienza è ben sviluppata per la regressione lineare. Probabilmente si può controllare ogni osservazione del test per vedere se è un outlier in qualche senso rispetto a un esame.

 
Aleksey Vyazmikin #:

Interessante, dovrò cercarlo. Ma non voglio buttare via quelli che non sono prevedibili, ma quelli che non si verificano nel campione al di fuori dell'allenamento. È anche interessante marcarli, naturalmente, e non solo buttarli via - per identificarli.

Si possono usare modelli di legno...
Decomporre il modello in regole, analizzare le regole per le giuste statistiche (la ripetibilità è un'altra cosa...), vedere se la regola appare sui nuovi dati...

Il pacchetto "intrees" è di 5 righe di codice e va
 
mytarmailS #:
Vladimir aveva un articolo su questo, non ricordo il nome del pacchetto, ma stava solo facendo cadere stringhe imprevedibili dal campione

PacchettoNoiseFiltersR. Date un'occhiata all 'articolo.

 
elibrarius #:
È meglio selezionare i meta-parametri non su un singolo plot di test, ma su diversi incollati insieme dalla validazione incrociata o dal rollio in avanti. Questo è stato discusso di recente.

E come usare correttamente i risultati del CV? Prendere i migliori parametri del modello e insegnarli all'intero set di dati, o usarli solo per selezionare buoni set di dati

Per esempio, l'output è la seguente tabella

        iterations      test-Logloss-mean       test-Logloss-std        train-Logloss-mean      train-Logloss-std
0       0       0.689013        0.005904        0.681549        0.007307
1       1       0.685340        0.011887        0.660894        0.001061
2       2       0.685858        0.012818        0.641069        0.004738
3       3       0.685975        0.023640        0.629656        0.000656
4       4       0.686613        0.024923        0.612977        0.002072
...     ...     ...     ...     ...     ...
95      95      0.863043        0.402531        0.123702        0.028628
96      96      0.866321        0.406193        0.122224        0.028623
97      97      0.869681        0.409679        0.120777        0.028611
98      98      0.873030        0.413121        0.119361        0.028595
99      99      0.874569        0.419064        0.117974        0.028572
 
Vladimir Perervenko #:

PacchettoNoiseFiltersR. Date un'occhiata all 'articolo.

Mentre i predittori di rumore sono più o meno chiari, gli esempi di rumore non lo sono. Mi piacerebbe sapere di più su come definirli (in termini di teoria, non di nomi di pacchetti/funzioni usati, anche se naturalmente R ha sempre dei link ad articoli). È chiaro che ci dovrebbe essere una classe "non fare trading" quando si classifica, poiché sforzarsi di essere sul mercato tutto il tempo è considerato un errore. Ma non è del tutto chiaro come questa classe possa essere descritta correttamente in modo più o meno formale.