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

 
Mihail Marchukajtes:

Il vero punto, però, è questo. Se c'è una cattiva spaccatura nella sezione di prova, NON importa se la spaccatura è corretta o meno, il fatto che la spaccatura sia debole. E il modello ha lavorato non più del 50% dell'intervallo di allenamento, allora il modello è considerato sovrallenato.... IMHO

A proposito, ti ricordi, nel tuo articolo sulle sequenze hai suggerito di contare diversi segnali in fila, invertendo lì... sovrapposizione di segnali

Ho trovato una soluzione interessante per implementare qualcosa di simile attraverso la logica fuzzy e costruirla nel processo di apprendimento... posterò qualcosa più tardi :)

 
Maxim Dmitrievsky:

A volte il cervello comincia a rompersi... riguardo al rumore nel forex, non è un segnale radio, vero? Da dove viene il rumore nel forex?


Il concetto di "rumore" nel forex è stato discusso abbastanza ampiamente da me su questo thread. L'ho fatto io o l'ho copiato da qualcun altro - non ricordo, e non importa. In ogni caso, ho postato dei link ad articoli simili in questo thread.

La mia comprensione del "rumore" è tutto o parte del predittore che non ha alcuna relazione con la variabile obiettivo, una sorta di fondi di caffè.


Mi spiego con un esempio (ripeto quello che ho scritto prima).


Prendiamo un obiettivo composto da due classi: uomini e donne.

Prendiamo un predittore: l'abbigliamento.

Ci sono solo due valori predittivi: pantaloni e gonne. In certi paesi questo predittore ha una capacità predittiva del 100%, cioè le gonne predicono le donne e i pantaloni predicono gli uomini. Questo predittore non ha alcun rumore. Errore di classificazione = 0. Non c'è sovrallenamento.

L'esempio è inverosimile e il predittore "vestiti" può contenere vestiti con il nome "unisex". Per noi questo significa che tali vestiti possono essere indossati sia da uomini che da donne, cioè per la nostra variabile target l'abbigliamento "unisex" non ha alcun potere predittivo - questa è la mia comprensione di SHUM.

Se prendiamo un predittore che ha i valori "pantaloni", "gonne" e "unisex", allora "unisex" sarà una fonte di errore di classificazione. Se la proporzione di abbigliamento "unisex" è del 30%, allora teoricamente possiamo ottenere un errore di apprendimento del modello = 30%, ma su un tale predittore un errore del 29% significa un overtraining del modello dell'1%!


Lo uso nella pratica. Grazie a questo sono stato in grado di selezionare i predittori per una foresta casuale con un errore inferiore al 30%. Questo non è un modello troppo addestrato. L'errore è circa lo stesso durante l'allenamento, sui campioni di prova all'interno dello stesso file e su altri file esterni.

Cosa significa ridurre l'errore nel mio esempio? Significa trovare predittori i cui valori, i valori del rumore, sarebbero inferiori a quel 30%. Non ci sono riuscito. Forse qualcuno ci riuscirà.

Ma senza questa analisi, l'uso di qualsiasi modello MO è un esercizio vuoto, un gioco intellettuale di numeri sui fondi di caffè.


PS.

L'errore di cui sopra di solito non dipende dal tipo di modelli. Provato diverse impalcature, varianti di ada - circa lo stesso. Ma NS, che è nnet, dà un risultato notevolmente peggiore.

 
SanSan Fomenko:

Ho discusso abbastanza ampiamente il concetto di "rumore" nel forex in questo thread. Non ricordo se l'ho inventato io o l'ho preso in prestito da qualcun altro, e non importa. In ogni caso, ho postato dei link ad articoli simili in questo thread.

La mia comprensione del "rumore" è tutto o parte del predittore che non ha alcuna relazione con la variabile obiettivo, una sorta di fondi di caffè.


Mi spiego con un esempio (ripeto quello che ho scritto prima).


Prendiamo un obiettivo composto da due classi: uomini e donne.

Prendiamo un predittore: l'abbigliamento.

Ci sono solo due valori predittivi: pantaloni e gonne. In certi paesi questo predittore ha una capacità predittiva del 100%, cioè le gonne predicono le donne e i pantaloni predicono gli uomini. Questo predittore non ha alcun rumore. Errore di classificazione = 0. Non c'è sovrallenamento.

L'esempio è inverosimile e il predittore "vestiti" può contenere vestiti con il nome "unisex". Per noi questo significa che tali vestiti possono essere indossati sia da uomini che da donne, cioè per la nostra variabile target l'abbigliamento "unisex" non ha alcun potere predittivo - questa è la mia comprensione di SHUM.

Se prendiamo un predittore che ha i valori "pantaloni", "gonne" e "unisex", allora "unisex" sarà una fonte di errore di classificazione. Se la proporzione di abbigliamento "unisex" è del 30%, è teoricamente possibile ottenere un errore di apprendimento del modello = 30%, ma su un tale predittore un errore del 29% significherebbe un overtraining del modello dell'1%!


Solo che non sappiamo in anticipo fino a che punto questo predittore di rumore può dare un errore minimo, se in condizioni reali quando si selezionano i predittori... si setacciano solo quelli non informativi e basta

ma in generale sembra essere chiaro)

 
Maxim Dmitrievsky:

...lì semplicemente vagliare quelli non informativi


Questo è un profondo malinteso: l'algoritmo di minimizzazione dell'errore funziona, il che può essere inteso in molti modi diversi. Il rumore che contiene più diversità del rumore NON è il più adatto. L'algoritmo raccoglie la schiuma dai fondi di caffè.

 
SanSanych Fomenko:

Questo è un profondo malinteso: l'algoritmo di minimizzazione dell'errore funziona, il che può essere inteso in molti modi diversi. Il rumore che contiene PIÙ varietà del NON rumore è il più adatto. L'algoritmo raccoglie la schiuma dai fondi di caffè.

Intendevo Jpredictor... in un certo senso setaccia da solo la roba del rumore

Quindi, è più per gli esperimenti che per cercare di capire veramente cosa sta succedendo lì )

Voglio provare questa piattaforma h2O, è solo una foresta con boosting... forse hai sentito? la gente dice che è ok, insieme a mcroft's e xgbboost

https://www.h2o.ai/

 

Per coloro che non l'hanno visto, consiglio di controllare questo thread

 
Vizard_:

Fa e Mishan non sono minatori)))
Andrà bene per masturbarsi sui pappagalli. + LightGBM, + CatBoost.
Vuoi ottenere un taglio un po' migliore - metti python e tutto sulla GPU...

Molti pacchetti R funzionano bene con la GPU.

Hai usato SatBoost? Così interessato.

Buona fortuna

 
Maxim Dmitrievsky:
Intendo Jpredictor... filtra le caratteristiche di rumore da solo

Comunque, questo argomento è più per la sperimentazione che per cercare di capire veramente cosa sta succedendo lì )

Voglio provare questa piattaforma h2O, è solo una foresta con boosting... forse hai sentito? la gente dice che è ok, insieme a mcroft's e xgbboost

https://www.h2o.ai/

È scritto in Java e usa molta memoria. Non funziona né meglio né peggio di pacchetti R simili. Ha uno svantaggio e un vantaggio: il miglioramento continuo senza retrocompatibilità.

Va bene per sperimentare, ma non lo consiglierei per il lavoro (IMHO).

Buona fortuna

 
SanSanych Fomenko:

Questo è un profondo malinteso: l'algoritmo di minimizzazione dell'errore funziona, il che può essere inteso in molti modi diversi. Il rumore che contiene PIÙ varietà del NON rumore è il più adatto. L'algoritmo raccoglie la schiuma dai fondi di caffè.

"Rumore" e "overfitting" sono gerghi che ognuno definisce in modo diverso. Intuitivamente, capiamo la differenza tra "imparato" e "overfitting" - è difficile tradurla nel linguaggio del programma. Lo definisco semplicemente - il momento in cui l'errore di test comincia a crescere ed è l'inizio dell'"overtraininga" (non lo stesso di "overfitting"). Se lo trovo, vi manderò un link a una discussione interessante su questo argomento nella rete in lingua inglese.

Buona fortuna

 
SanSanych Fomenko:

Ho discusso abbastanza ampiamente il concetto di "rumore" nel forex in questo thread. Non ricordo se l'ho inventato io o l'ho preso in prestito da qualcun altro, e non importa. In ogni caso, ho postato dei link ad articoli simili in questo thread.

La mia comprensione del "rumore" è tutto o parte del predittore che non ha alcuna relazione con la variabile obiettivo, una sorta di fondi di caffè.


Mi spiego con un esempio (ripeto quello che ho scritto prima).


Prendiamo un obiettivo composto da due classi: uomini e donne.

Prendiamo un predittore: l'abbigliamento.

Ci sono solo due valori predittivi: pantaloni e gonne. In certi paesi questo predittore ha una capacità predittiva del 100%, cioè le gonne predicono le donne e i pantaloni predicono gli uomini. Questo predittore non ha alcun rumore. Errore di classificazione = 0. Non c'è sovrallenamento.

L'esempio è inverosimile e il predittore "vestiti" può contenere vestiti con il nome "unisex". Per noi questo significa che tali vestiti possono essere indossati sia da uomini che da donne, cioè per la nostra variabile target l'abbigliamento "unisex" non ha alcun potere predittivo - questa è la mia comprensione di SHUM.

Se prendiamo un predittore che ha i valori "pantaloni", "gonne" e "unisex", allora "unisex" sarà una fonte di errore di classificazione. Se la proporzione di abbigliamento "unisex" è del 30%, allora teoricamente è possibile ottenere un errore di apprendimento del modello = 30%, ma su un tale predittore un errore del 29% significa un overtraining del modello dell'1%!


Lo uso nella pratica. Grazie a questo sono stato in grado di selezionare i predittori per una foresta casuale con un errore inferiore al 30%. Questo non è un modello troppo addestrato. L'errore è circa lo stesso durante l'allenamento, sui campioni di prova all'interno dello stesso file e su altri file esterni.

Cosa significa ridurre l'errore nel mio esempio? Significa trovare predittori i cui valori, i valori del rumore, sarebbero inferiori a quel 30%. Non ci sono riuscito. Forse qualcuno ci riuscirà.

Ma senza questa analisi, l'uso di qualsiasi modello MO è un esercizio vuoto, un gioco intellettuale di numeri sui fondi di caffè.


PS.

L'errore di cui sopra di solito non dipende dal tipo di modelli. Provato diverse impalcature, varianti di ada - circa lo stesso. Ma nnet NS, d'altra parte, dà risultati notevolmente peggiori.

È possibile rimuovere gli esempi irrilevanti, isolare i componenti principali o indipendenti, discretizzare infine. Avete preprocessato i predittori? Spero che gli outlier siano stati rimossi (per le foreste, non critico).

Sembri pessimista.

Sono solo io?

Buona fortuna