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

 
Aleksey Vyazmikin:

E se troviamo rami con buona probabilità e li codifichiamo in un predittore, e poi ancora una volta diamo l'albero per macinare, allora l'albero penserà a come fare un miglioramento dai risultati trovati (predittori che dovrebbero poi piacere, dato che hanno una grande percentuale di decisioni corrette?

Non lo so :) Non ho fatto tali esperimenti con l'albero. Ma per esempio tutti i tipi di modelli GBM funzionano così - costruiscono un albero, poi un altro albero che dà risultati migliori rispetto al precedente, poi un altro albero e così via.

 
Ildottor Trader:

Se si dirama ulteriormente, l'accuratezza di questi dati aumenterà naturalmente. Ma è più probabile che cada nei nuovi dati.

Qui si raggiunge un certo optimum, quando l'albero ha già imparato qualcosa, ma non c'è ancora un overfit, e possiamo aspettarci risultati simili su nuovi dati.

Hmm, ma poi di nuovo, se comprimiamo questo albero in un unico predittore e cerchiamo ulteriormente una soluzione? Proprio in effetti i miei predittori spesso sono già una sorta di precalcoli, classificazione di valori e così via, cioè se dessi dati grezzi all'albero, la ramificazione si fermerebbe prima e con più errori... E su questa base la ramificazione nella giusta direzione darà il risultato, ma questa direzione è sconosciuta, e come determinarla è la domanda.

 
Ildottor Trader:

Non lo so :) Non ho fatto questi esperimenti con l'albero. Ma per esempio tutti i tipi di modelli GBM funzionano così - costruiscono un albero, poi un altro che darà un miglioramento rispetto al precedente, poi un altro, ecc.

A quanto pare ho bisogno di leggere questi modelli GBM... ma dove li riproducono (solo R?)?

Resta da provare i filtri - anche il mio programma ha dato almeno qualche risultato lì, forse il vostro darà qualcosa di interessante, perché tutti i predittori infatti sono usati in TC come filtri.

 

Dr. Trader, ho scoperto che se consideriamo la combinazione diLevl_first_H1, Levl_High_H1, Levl_Low_H1, Levl_Support_H1, Levl_Close_H1 , come una regola intera separata, in generale come previsto in origine, si ottiene una tabella curiosa


Dalla tabella segue:

1. Ci sono volute 6088 combinazioni per descrivere due anni per tutte le barre, tenendo conto dell'obiettivo, e se non teniamo conto dell'obiettivo, sarà ancora meno, cioè una combinazione in caso di distribuzione uniforme descrive 86 righe per due anni, ma penso che ci siano combinazioni più frequenti e meno frequenti.

2. La comparsa di nuove regole uniche dal 2015 al 2016 è stata del 41%, e con l'obiettivo 1 nuove regole del 55%, cioè il 45% delle regole del 2015 è rimasto e ha continuato ad essere valido, il che mi sembra già buono.

3. Il campione per il 2015 e il 2016 utilizza solo il 21% di tutte le combinazioni possibili, quindi o i rimanenti sono estremamente unici o sotto-campionati.

Non dovremmo usare questi fatti in qualche modo per costruire l'albero?

Aggiunto:

Poi ho fatto questo esperimento, ho aggiunto le regole di 2016 target 0 e 1 a target 1 e 0 ripulite dai duplicati, poi ho rimosso le righe duplicate, e ho ottenuto un risultato deprimente, che non riesco a dare un senso

Risulta che le regole false per l'obiettivo "1" sono 81% e per l'obiettivo "0" sono 38%, anche se non so quale percentuale di righe contiene la percentuale di errore... è possibile che il rapporto sia diverso, altrimenti le nuove regole sarebbero state aggiunte esattamente quante sono state rilevate nel 2016, il che non è il caso, il che significa che le regole non sono sempre soddisfatte e hanno solo bisogno di condizioni aggiuntive - predittori.

 

Aleksey Vyazmikin:


Segue dalla tabella:

le regole non sono sempre applicate e hanno solo bisogno di condizioni aggiuntive - predittori.

Aleksey, propongo di fare subito un NS-ka maturo. Il campionamento e le foreste da soli non ci porteranno lontano (comunità MQL).

Ovviamente, una strategia NS funzionante ha bisogno di una piattaforma analitica per prendere una decisione come trader - se entrare nel mercato per comprare, vendere o in generale? Vale la pena chiudere le posizioni per comprare, vendere o in generale?

Io e Maxim abbiamo fantasticato su questo QUI, quindi per favore leggetelo e confermate che ha senso.

 
geratdc_:

Alexey, suggerisco di fare subito una cosa matura tipo NS. Noi (comunità MQL) non andremo lontano solo con campioni e impalcature.

Ovviamente, una strategia NS funzionante ha bisogno di una piattaforma analitica per prendere una decisione come trader - se entrare nel mercato per comprare, per vendere, o in generale? Vale la pena chiudere le posizioni per comprare, vendere o in generale?

Io e Maxim abbiamo fantasticato su questo QUI, quindi per favore controllate e confermate che ha senso.

Qui non sono sicuro che ci sia posto per NS nel mercato...

 

Ora fate attenzione. Ho deciso di lavorare questa settimana sullo script Dock e sulla rete di e-mail.

Ora per la parte migliore e cosa potrebbe essere?????

Con il numero massimo di neuroni pari a 200 (default) la qualità dell'apprendimento è stata di 0,6 come stimato da R-score. Tuttavia, riducendo il numero massimo di neuroni nascosti a 30 ho aumentato la stima a 0,85 (che è molto buona). Tuttavia, ho iniziato a ottenere copie dei modelli per pesi. Ottengo SEMPRE gli stessi pesi. È qui che entra in gioco la domanda. La genetica arriva ostinatamente alla stessa funzione minima. I dati sono così univoci che nei numeri reali si ottiene lo stesso minimo con pesi identici. Vediamo come funziona per settimane...

Se per essere esatti l'ottimizzatore di Reshetov per la settimana scorsa ha guadagnato un po' di più della rete ELMNN, ma è molto più veloce da installare, quindi proverò a passare a loro, se funzionerà rinuncerò a Reshetov per ora a causa dell'installazione della rete troppo capiente in work....

 
Aleksey Vyazmikin:

A quanto pare dobbiamo documentarci su questi modelli GBM... e dove li riproducono (solo R?)?

Dovrebbe esserci anche in Python.

Aleksey Vyazmikin:

Rimane da provare i filtri - anche il mio programma ha dato almeno qualche risultato lì, forse il tuo darà qualcosa di interessante, perché tutti i predittori sono essenzialmente usati in TC come filtri.

Eseguirò l'algoritmo stasera e mostrerò i risultati domani

Aleksey Vyazmikin:

Dalla tabella segue:

...

Raggiungere il 100% di precisione e sperare che il modello funzioni bene è di solito impossibile nel forex, hai bisogno di mesi per selezionare i predittori e anche un obiettivo che si adattino bene insieme. Di solito, avendo raggiunto un'accuratezza di un paio di decine superiore al 50%, il modello inizia a memorizzare gli esempi di allenamento invece di trovare modelli logici in essi. Quindi il risultato sui nuovi dati sarà sempre peggiore. Con i tuoi dati ho ottenuto questo optimum del 60% - quando i risultati su entrambi i dati di allenamento e di test sono approssimativamente uguali, ma con un partizionamento dell'albero più dettagliato e una maggiore precisione la foresta mostra risultati sempre peggiori sui nuovi dati.

 
Mihail Marchukajtes:

Con il numero massimo di neuroni pari a 200 (il default) la qualità dell'apprendimento era di 0,6 come stimato da R-score. Tuttavia, riducendo il numero massimo di neuroni nascosti a 30, l'ho aumentato a 0,85 (che è molto buono).

La genetica cerca di trovare i parametri giusti per un numero limitato di chiamate di funzioni. Restringendo il numero di varianti di questo parametro (30 invece di 200) la genetica può indagare più in dettaglio la regione da 1 a 30. Ed è giusto, se si conoscono i limiti specifici per trovare qualche parametro del modello, è meglio dare subito questa informazione alla genetica.


In alternativa:

gaResult <- ga(type="real-valued",
               fitness = GaFitness,
               min = c(1,1,0),
               max = c(NHID_MAX, length(ACTFUN_NAMES), 1000),
               popSize = 500,
               monitor=plot)

Aggiungete questa linea (quella verde) al codice, allora il genetista avrà 500 individui nella popolazione invece dei 50 di default. E sarà in grado di testare 10 volte più modelli (ma anche il tempo di esecuzione dello script aumenterà di 10 volte), potendo provare il maggior numero possibile di combinazioni di parametri del modello. Anche con un massimo di 200 neuroni penso che la genetica sarà in grado di trovare un risultato migliore con 0,85, o almeno di avvicinarsi ad esso.

 

Oh, sarà qualcosa da leggere, avevo dimenticato cos'è. O meglio, ha dimenticato la differenza tra GBM e XGboost... o non sapeva

gbm può potenziare qualsiasi modello, xgb sembra essere sugli alberi

So che il boosting è un po' meglio dell'accattonaggio attraverso il quale si costruisce la foresta. Non so come sia con il sovrallenamento.

https://habr.com/company/ods/blog/327250/

https://datascienceplus.com/gradient-boosting-in-r/

Открытый курс машинного обучения. Тема 10. Градиентный бустинг
Открытый курс машинного обучения. Тема 10. Градиентный бустинг
  • 2018.05.17
  • habr.com
Всем привет! Настало время пополнить наш с вами алгоритмический арсенал. Сегодня мы основательно разберем один из наиболее популярных и применяемых на практике алгоритмов машинного обучения — градиентный бустинг. О том, откуда у бустинга растут корни и что на самом деле творится под капотом алгоритма — в нашем красочном путешествии в мир...