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

 
elibrario:
Stavo segando Darch su R. Ho trovato un paio di bug, descritti nei commenti. Dopo un paio di settimane di silenzio questo Darch è risultato essere nell'archivio di CRANa.
Ho chiesto allo sviluppatore di sistemare alcune correzioni e lui l'ha fatto. E poi è tornato completamente alla versione originale, cancellando tutte le correzioni. Di conseguenza, tutte le modifiche che ho usato non erano disponibili.
Conclusione - o fate tutto da soli, o usate prodotti di punta con un ottimo supporto.

1.Devi fare un fork e ospitare tutte le modifiche. Potrebbero essere accettati o meno, ma potrai usare la tua versione dal tuo GitHub.

2. Naturalmente, questa è l'opzione più affidabile.

 
Maxim Dmitrievsky:

Per coloro che aspirano al complesso ma non capiscono quanto possa essere bello il semplice

e in inglese, naturalmente, come richiesto. No, non lo tradurrò io stesso. c'è un link al sito web dove si possono tradurre gli articoli.


È un rapporto molto interessante, non solo sul semplice e sul complesso. L'enfasi è sul fatto che usando un preprocessing complesso si può ridurre la risoluzione di un problema a modelli semplici. Solo una conferma di una semplice verità che non mi stanco mai di ripetere nei miei articoli: "Lo sforzo principale dovrebbe essere dedicato al preprocessing dei predittori, i modelli sono secondari.

L'oratore è esilarante.

Buona fortuna

 
Vladimir Perervenko:

Questo discorso molto interessante non riguarda solo il semplice e il complesso. L'enfasi è su come l'uso di una complessa pre-elaborazione può essere ridotto alla risoluzione di un problema con modelli semplici. Solo una conferma di una semplice verità che non mi stanco mai di ripetere nei miei articoli: "Lo sforzo principale dovrebbe essere dedicato al preprocessing dei predittori, i modelli sono secondari.

L'oratore è esilarante.

Buona fortuna

XGBOOST ha pesi di array di input con pesi di riga. Anche altri pacchetti ce l'hanno.
Stavo pensando che potrei scriverci dei pesi da 1 (per le stringhe fresche) a 0,5 per le stringhe vecchie. Questo aumenterebbe l'impatto dei nuovi dati.
L'ho provato e non ho notato nessun miglioramento particolare.

Qualcun altro ha provato - qualche miglioramento?

 
elibrario:
XGBOOST ha un array di input con pesi di riga. Anche altri pacchetti ce l'hanno.
Ho pensato di scriverci dei pesi da 1 (per i dati freschi) a 0,5 per i dati vecchi. Questo aumenterebbe l'impatto dei nuovi dati.
L'ho provato e non ho notato alcun miglioramento particolare.

Qualcun altro ha provato - qualche miglioramento?

È un po' sbagliato. Avete per esempio train[2000, ] e test[500, ]. Ci si allena su train con pesi di esempio iniziali = 1,0, si rende test[] predicato un modello allenato. In base alla qualità di ogni prefisso di test gli si dà un peso. Poi combinare treno e test e formare un nuovo campione di allenamento, addestrare il modello, testarlo e così via fino a quando tutti i campioni di allenamento hanno pesi ottenuti in questo modo. Si può applicare un fattore di riduzione per le barre più vecchie, ma non l'ho controllato. Tutto questo è per la classificazione, naturalmente.

now_train <- rbind(train,test)%>% tail(dim(train)[1])

Controllato con ELM, dà buoni risultati.

Buona fortuna

 
Vladimir Perervenko:

Non è proprio così. Avete per esempio train[2000, ] e test[500, ]. Allenarsi su nrain con pesi di esempio iniziali = 1,0, rendere il predicato test[] un modello allenato. In base alla qualità di ogni prefisso di test gli si dà un peso. Poi unire treno e test e formare un nuovo campione di allenamento, addestrare il modello, testarlo e così via fino a quando l'intero campione di allenamento avrà pesi ottenuti in questo modo. Si può applicare un fattore di riduzione per le barre più vecchie, ma non l'ho controllato. Tutto questo è per la classificazione, naturalmente.

Controllato con ELM, dà buoni risultati.

Buona fortuna

È come nella validazione incrociata - dividere i dati in 5-10 parti e mettere i pesi per ogni ciclo fino a quando tutti i pesi sono impostati. Penso che dovremmo fare 2-3 cerchi completi per bilanciare il tutto.

Mi ricorda diverse iterazioni come nell'autoapprendimento per impostare i migliori pesi di riga.
 
elibrario:
È come la convalida incrociata - dividere i dati in 5 o 10 parti, e poi ogni ciclo pondera una parte delle righe fino a quando tutte sono impostate. Penso che dovremmo fare 2-3 cerchi completi per bilanciare il tutto.

Mi ricorda diverse iterazioni come nell'autoapprendimento per impostare i migliori pesi di riga.

È possibile controllare con un controllo incrociato.

 
elibrario:
XGBOOST ha un array di input con pesi di riga. Anche altri pacchetti ce l'hanno.
Ho pensato che potremmo scriverci dei pesi da 1 (per le stringhe fresche) a 0,5 per le stringhe vecchie. Questo aumenterebbe l'impatto dei nuovi dati.
L'ho provato e non ho notato nessun miglioramento particolare.

Qualcun altro ha provato - qualche miglioramento?

bene e istruitevi solo sotto i nuovi allora. Questi pesi sono per l'allineamento della varianza del modello sul dataset, nella regressione logit con varianza variabile è anche usato (se non sono confuso su ciò di cui stiamo parlando)

nessun miglioramento concettualmente significativo, a parte l'adattamento del dataset, dovrebbe dare

Se avete bisogno di una generalizzazione affidabile per la popolazione generale su un piccolo sottocampione, questi sono approcci bayesiani
 
elibrarius:
XGBOOST ha un array di input di pesi con pesi di riga. Alcuni altri pacchetti hanno anche questo.
Stavo pensando che potrei mettere dei pesi da 1 (per i dati freschi) a 0,5 per i dati vecchi. Questo aumenterebbe l'impatto dei nuovi dati.
L'ho provato e non ho notato nessun miglioramento particolare.

Qualcun altro ha provato - qualche miglioramento?

L'idea è che questi pesi influenzeranno la costruzione del primo albero, cioè quasi lo stesso seme e il bugging, tecniche diverse. Teoricamente, il risultato potrebbe cambiare molto se si spostano i predittori campione ben separati sullo sfondo in quelle righe dove danno la classificazione corretta.

Non è possibile impostare l'applicazione del predittore solo a partire da X split? Penso che sia una cosa molto utile per trovare un buon modello.
 
Maxim Dmitrievsky:

e allenarsi solo per quelli nuovi allora. Questi pesi sono per allineare la varianza del modello sul dataset, nella regressione logit con varianza variabile è anche usato (se non mi sbaglio su ciò di cui stiamo parlando)

Qualsiasi miglioramento concettualmente significativo, tranne che per l'adattamento del dataset, non dovrebbe dare

se avete bisogno di una generalizzazione affidabile per la popolazione generale su un piccolo sottocampione, si tratta di approcci bayesiani

Cioè l'allineamento viene scelto con il metodo suggerito da Vladimir?

 
Aleksey Vyazmikin:

In idea questi pesi influenzeranno la costruzione del primo albero, cioè quasi lo stesso seme e il bugging, tecniche diverse. Teoricamente, il risultato potrebbe cambiare molto se spostiamo i predittori campione ben separati sullo sfondo in quelle righe in cui danno la classificazione corretta.

Non è possibile specificare come applicare un predittore solo a partire da X split? Penso che sia una cosa molto utile nella ricerca di un buon modello.

Questi pesi non solo nel boosting, ma anche in caso di foreste e NS possono essere applicati. Apparentemente la metodologia è comune a tutti i sistemi MoD.
Il primo esperimento con la diminuzione dell'influenza dei vecchi dati non ha mostrato alcun miglioramento.

Il test sembra migliore quando si allena su 30000 linee che quando si allena su 80000. A 80000 entrambe le transazioni sono più piccole e l'errore è maggiore. Ho provato a diminuire il peso proporzionalmente (da 1 per il fresco a 0,5 per il vecchio) - i risultati sono quasi gli stessi.


Apparentemente è ancora per l'allineamento della dispersione, come indicato da Maxim, con il metodo indicato da Vladimir.

Motivazione: