Regressione bayesiana - Qualcuno ha fatto un EA usando questo algoritmo? - pagina 51

 
Дмитрий:
E come si determina la "migliore" combinazione?
Validazione incrociata con 5 iterazioni. Ma non il solito che seleziona casualmente gli esempi, ma uno adattato alle serie temporali - con l'isolamento degli esempi per tempo. Il blog descrive tutto.

Il valore medio della metrica obiettivo sui 5 falli di prova indica la migliore combinazione di parametri di allenamento.

Il modello viene poi addestrato sull'intero campione di allenamento e convalidato su un altro campione.
 
  • Mi sto chiedendo cos'altro dovrei cambiare nell'esperimento. Ho provato a cambiare la logica di indicizzazione dei casi per la convalida incrociata, nessun miglioramento.
  • Pensando di portare gli input in una forma discreta.
  • Un'altra opzione è quella di scendere da un modello complesso a uno più semplice. Un modello complesso è una foresta decisionale accelerata. Il più semplice è quello dei modelli di regressione lineare accelerata, dove i parametri di regolarizzazione possono anche essere regolati.
  • Ma il punto è che migliorare il 55% di precisione al 60% solo cambiando qualcosa in termini di design è difficile.
  • Anche i modelli del comitato di costruzione, nel migliore dei casi, daranno una frazione di miglioramento percentuale. Ci vuole più tempo per sviluppare e formare l'architettura.
  • C'è l'idea di guardare i predittori importanti e se sono spesso al limite della finestra (724 minuti), allora si potrebbe estendere la finestra a 1440 minuti al giorno. Ma allora il numero di campioni sarà dimezzato, perché li prenderò in 1440 +- incrementi di termini casuali.
  • Anche un altro obiettivo, per esempio la rottura del livello di prezzo (Take Profit / Stop Loss) o la "direzione" generale, per esempio il coefficiente di regressione lineare, può essere previsto.
Tutto richiede tempo. Ma dedicherò sicuramente un altro paio di mesi all'esperimento. Forse verrà fuori qualcosa.
 
Il problema di base è quello della lista dei predittori. Avendo giustificato la lista dei predittori, possiamo passare al resto.
 
СанСаныч Фоменко:
Il problema di base è quello della lista dei predittori. Avendo giustificato la lista dei predittori possiamo passare al resto.
Grazie. Anch'io sono propenso ad aggiungere altri predittori.
 
Alexey Burnakov:
Grazie. Anch'io sono propenso ad aggiungere altri predittori.
Pensi che il numero di predittori che usi non sia sufficiente?
 
Алексей Тарабанов:
Pensi che il numero di predittori che usi sia insufficiente?
Non lo so per certo.

Oppure i predittori disponibili non portano abbastanza informazioni,
O le relazioni cambiano molto nel tempo e la generalizzabilità diminuisce
O i predittori stessi cambiano i parametri di distribuzione nel tempo.

Per il primo punto, se ne possono aggiungere altri, e selezionare i migliori è sempre possibile.
Sugli altri punti l'elaborazione dei dati può aiutare, ma non al cento per cento.

Io propendo per una combinazione di tutti questi fattori. Il punto è che ancora su crossvalidazione l'accuratezza è del 55-60% e scende all'aumentare dell'orizzonte di previsione. Quindi anche i predittori non danno molte informazioni sul campione di allenamento.

Questo è se dovessi vedere un'alta precisione nel test e cade bruscamente nella convalida, con l'esperimento costruito correttamente, quindi le dipendenze non sono stazionarie.
 
Alexey Burnakov:
Non lo so per certo.

O i predittori disponibili non portano abbastanza informazioni,
O le relazioni cambiano molto nel tempo e la generalizzabilità diminuisce
O i predittori stessi cambiano i parametri di distribuzione nel tempo.

Per il primo punto, se ne possono aggiungere altri, e selezionare i migliori è sempre possibile.
Sugli altri punti l'elaborazione dei dati può aiutare, ma non al cento per cento.

Sono incline a una combinazione di tutti questi fattori. Il punto è che ancora su crossvalidazione l'accuratezza è del 55-60% e scende all'aumentare dell'orizzonte di previsione. Quindi anche i predittori non danno molte informazioni sul campione di allenamento.

Cioè se dovessi vedere un'alta accuratezza nel test e cade bruscamente nella validazione, con l'esperimento costruito correttamente, allora le dipendenze non sono stazionarie.
Molto probabilmente lo fanno.
 
Alexey Burnakov:
Non lo so con certezza.

O i predittori disponibili non portano abbastanza informazioni,
O le relazioni cambiano molto nel tempo e la generalizzabilità diminuisce
O i predittori stessi cambiano i parametri di distribuzione nel tempo.

Per il primo punto, se ne possono aggiungere altri, e selezionare i migliori è sempre possibile.
Sugli altri punti l'elaborazione dei dati può aiutare, ma non al cento per cento.

Io propendo per una combinazione di tutti questi fattori. Il punto è che ancora su crossvalidazione l'accuratezza è del 55-60% e scende all'aumentare dell'orizzonte di previsione. Quindi anche i predittori non danno molte informazioni sul campione di allenamento.

Questo è se dovessi vedere che c'è un'alta precisione sul test e scende drammaticamente sulla convalida, mentre l'esperimento è costruito correttamente, quindi le dipendenze non sono stazionarie.

L'ho già scritto, lo dirò di nuovo.

Ho eseguito il lavoro di selezione dei predittori diverse volte, anche su richiesta. I risultati sono riportati di seguito

Quindi.

Prendiamo una serie di predittori, non meno di 50 e meglio di cento.

Tutti gli insiemi di predittori che ho trattato (cioè non pretendo di generalizzare) possono essere divisi in due parti:

  • la parte di predittori che sono rilevanti per la variabile obiettivo
  • la parte dei predittori che non hanno nulla a che fare con la variabile obiettivo - il rumore

Scrivo "relazione" con molta attenzione e volutamente non uso alcun termine.

Esempio di predittori:

  • sventolando - NON si riferisce alla variabile obiettivo ZZ
  • la deviazione del prezzo da raspka è rilevante per la variabile obiettivo ZZ

Notate che sto specificando la variabile di destinazione. Per l'altra variabile di destinazione, può essere il contrario

Il problema di avere questi due gruppi di predittori nell'insieme originale di predittori è che gli strumenti standard per determinare l'IMPORTANZA non funzionano. Pertanto, alcuni strumenti sono necessari, e io li ho sviluppati e li uso, che permettono il vaglio grossolano dei predittori di rumore. Va notato che qui non c'è ambiguità. L'algoritmo quantifica separatamente per i predittori validi e nominali. Meno di 2 (qualche valore relativo) è sicuramente rumore. Tra 2 e 3: può essere usato, ma meglio non ....

Il problema con il rumore è che i predittori rilevanti per il rumore bloccano i predittori non rilevanti per loro. Per esempio, gli algoritmi randomforest, ada, svm per qualche motivo costruiscono il modello più su questi predittori di rumore.

Avendo eliminato i predittori rumorosi, e nei miei set ce n'erano circa l'80%(!), prendiamo il resto della lista di predittori e iniziamo ad applicare gli strumenti di R per determinare l'importanza delle variabili. Il numero effettivo di predittori usati per addestrare il modello è circa la metà dei predittori NOT noise, cioè circa il 10% del set originale.

Determino l'importanza dei predittori nella finestra. Mentre la finestra si muove, la lista dei predittori del 20% di base cambia continuamente. Cioè 12-15 predittori sono usati per costruire il modello, ma sono diversi man mano che la finestra si sposta seguendo la citazione.

Qual è la ragione?

Bene, il punto è che liberare l'insieme dei predittori da quelli di rumore porta alla creazione di modelli che NON vengono riqualificati.

In numeri.

Su un set completo di predittori è possibile costruire modelli con un errore di previsione del 3%-5%! E tutti gli algoritmi che dividono il campione in parti, i cosiddetti "out-of-sample" - OOV, confermano questo risultato. Questo si vede molto bene in raatle, che divide sempre il campione originale in parti ed è molto soddisfatto dei risultati.

Ma.

Se il campione iniziale contiene predittori di rumore, allora se prendiamo un vero "fuori campione", cioè per esempio il campione per l'addestramento dal 01.06.2015 al 01.01.2016, e poi calcoliamo sul campione dopo il 1° gennaio, possiamo facilmente ottenere un errore del 50% e 70% invece del 3%-5%! Inoltre, più ci si allontana dal 1° gennaio, peggiore è il risultato.

IL MODELLO VIENE RIQUALIFICATO

Se pulisco il set originale di predittori di rumore, i risultati sono i seguenti e lo stesso per randomforest, ada SVM così come diversi altri modelli - cioè il modello non ha risolto nulla nei miei casi, i risultati sono i seguenti: l'errore di predizione è circa il 30% su qualsiasi set. Applicando gli strumenti di importanza dei predittori di R possiamo ridurre ulteriormente l'errore a circa il 25%. Non è stato possibile migliorare questo risultato per la variabile obiettivo ZZ.

 
СанСаныч Фоменко:

L'ho già scritto, lo dirò di nuovo.

Ho fatto il lavoro di selezione dei predittori diverse volte, anche su commissione. I risultati sono riportati di seguito

Quindi.

Prendiamo una serie di predittori, non meno di 50, e preferibilmente più di cento.

Tutti gli insiemi di predittori che ho trattato (cioè non pretendo di generalizzare) possono essere divisi in due parti:

  • la parte di predittori che sono rilevanti per la variabile obiettivo
  • la parte dei predittori che non hanno nulla a che fare con la variabile obiettivo - il rumore

Scrivo "relazione" con molta attenzione e volutamente non uso alcun termine.

Esempio di predittori:

  • sventolando - NON si riferisce alla variabile obiettivo ZZ
  • la deviazione del prezzo da raspka è rilevante per la variabile obiettivo ZZ

Notate che sto specificando la variabile di destinazione. Per l'altra variabile di destinazione, può essere il contrario

Il problema di avere questi due gruppi di predittori nell'insieme originale di predittori è che gli strumenti standard per determinare l'IMPORTANZA non funzionano. Pertanto, alcuni strumenti sono necessari, e io li ho sviluppati e li uso, che permettono il vaglio grossolano dei predittori di rumore. Va notato che qui non c'è ambiguità. L'algoritmo quantifica separatamente per i predittori validi e nominali. Meno di 2 (qualche valore relativo) è sicuramente rumore. Tra 2 e 3: può essere usato, ma meglio non ....

Il problema con il rumore è che i predittori rilevanti per il rumore bloccano i predittori non rilevanti per loro. Per esempio, gli algoritmi randomforest, ada e svm per qualche motivo costruiscono il modello più su questi predittori di rumore.

Avendo eliminato i predittori rumorosi, e nei miei set ce n'erano circa l'80%(!), prendiamo il resto della lista di predittori e iniziamo ad applicare gli strumenti di R per determinare l'importanza delle variabili. Il numero effettivo di predittori usati per addestrare il modello è circa la metà dei predittori NOT noise, cioè circa il 10% del set originale.

Determino l'importanza dei predittori nella finestra. Mentre la finestra si muove, la lista dei predittori del 20% di base cambia continuamente. Cioè 12-15 predittori sono usati per costruire il modello, ma sono diversi man mano che la finestra si sposta seguendo la citazione.

Qual è la ragione?

Bene, il punto è che liberare l'insieme dei predittori da quelli di rumore porta alla creazione di modelli che NON vengono riqualificati.

In numeri.

Su un set completo di predittori è possibile costruire modelli con un errore di previsione del 3%-5%! E tutti gli algoritmi che dividono il campione in parti, i cosiddetti "out-of-sample" - OOV, confermano questo risultato. Questo si vede molto bene in raatle, che divide sempre il campione originale in parti ed è molto soddisfatto dei risultati.

Ma.

Se il campione iniziale contiene predittori di rumore, allora se prendiamo un vero "fuori campione", cioè per esempio il campione per l'addestramento dal 01.06.2015 al 01.01.2016, e poi calcoliamo sul campione dopo il 1° gennaio, possiamo facilmente ottenere un errore del 50% e 70% invece del 3%-5%! Inoltre, più ci si allontana dal 1° gennaio, peggiore è il risultato.

IL MODELLO VIENE RIQUALIFICATO

Se pulisco il set originale di predittori di rumore, i risultati sono i seguenti e lo stesso per randomforest, ada SVM così come diversi altri modelli - cioè il modello non ha risolto nulla nei miei casi, i risultati sono i seguenti: l'errore di predizione è circa il 30% su qualsiasi set. Applicando gli strumenti di importanza dei predittori di R possiamo ridurre ulteriormente l'errore a circa il 25%. Non è stato possibile migliorare questo risultato per la variabile obiettivo ZZ.

Grazie.

Capisco cosa state pensando. Da tutto ciò ho visto la possibilità di calcolare l'importanza dei predittori su diverse parti del campione di allenamento, poi confrontare le liste e selezionare i duplicati.

Non posso dire nulla sulla selezione manuale, preferisco usare la macchina subito.

SZZ: Proverò ad applicare il mio metodo homebrew, basato sulla funzione di informazione reciproca, oltre all'importanza delle variabili della foresta decisionale. Vi mostrerò i risultati più tardi.

 
СанСаныч Фоменко:


Il problema del rumore è che i predittori relativi al rumore intasano i predittori non relativi ad esso. Per esempio, gli algoritmi randomforest, ada e svm per qualche motivo costruiscono il modello più su questi predittori di rumore.


Domanda: SVM tiene conto delle interazioni tra le variabili o è solo la somma delle singole componenti pesate?