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

 

Vorrei aggiungere la mia opinione: negli ultimi giorni ho anche pensato di ridurre il numero di variabili di input per accelerare il processo di ottimizzazione. E devo dire che ho ottenuto un certo successo nel setacciare gli input inutili in questi giorni.

Domanda: Quali variabili di input dovrebbero essere rimosse dal campione di allenamento, in quanto sono noise????

In realtà questa domanda non è banale, se sapessimo quali input sono rumore e quali no. Sarebbe facile costruire un modello. Ma quando abbiamo tutti gli input in un modo o nell'altro collegati all'output. Cosa allora????? Quali rimuovere?

Per me la risposta è molto semplice.... Dovete mantenere solo gli input che hanno una legge di distribuzione normale. Quando un istogramma ha una distribuzione normale e il suo centro si trova al centro dell'intervallo. Queste sono le variabili che possono essere utili per la formazione. Non sto dicendo che c'è un'uscita alfa in tali variabili. Potrebbe non esserci. Ma la ricerca stessa sarà più approfondita e in tali variabili l'algoritmo ha più possibilità di prendere piede e aumentare il numero di input. Ecco un esempio:

Questo input è considerato buono. Poiché ha una distribuzione normale e la parte centrale dell'istogramma è al centro dell'intervallo

Ma questi dati hanno una distribuzione asimmetrica con outlier fuori dall'istogramma principale. Questo istogramma mostra che i dati sono sbilanciati verso un lato che difficilmente sarà utile nella costruzione del modello

Nella fase iniziale di selezione degli input, non possiamo giudicare l'importanza di un input per l'output. Perché questo è il lavoro dell'ottimizzatore. Nella fase iniziale possiamo solo giudicare la distribuzione della variabile rispetto a zero. E se questa distribuzione è normale (i dati sono distribuiti uniformemente da una parte e dall'altra rispetto allo zero), allora l'ottimizzatore avrà molto probabilmente più scelta rispetto ai dati obliqui rispetto allo zero dove la maggior parte dei dati è nella zona negativa o viceversa.

Quindi va così....

 

Dipende per quale modello li scegli :) se dopo aver rimosso una caratteristica non informativa, il modello non perde molto in accuratezza, allora non ne hai bisogno. Lo cancelli, lo riaddestri di nuovo e vedi se c'è ancora qualcosa in più.

E se avete un modello di regressione con un processo non stazionario in uscita, rovinerete tutto con questo approccio, perché sarà addestrato su un rumore normalmente distribuito

 
Maxim Dmitrievsky:

Dipende per quale modello li scegli :) se dopo aver rimosso una caratteristica non informativa, il modello non perde molto in accuratezza, allora non ne hai bisogno. Lo cancelli, lo riaddestri di nuovo e vedi se c'è ancora qualcosa in più.

E se avete un modello di regressione con un processo non stazionario in uscita, con questo approccio rovinerete viceversa tutto, perché si riaddestrerà su rumori normalmente distribuiti


Classificazione rispetto a zero. Per questi scopi questo approccio è giusto IMHO!

 
Mihail Marchukajtes:

Questi dati, d'altra parte, hanno una distribuzione asimmetrica con outlier fuori dall'istogramma principale. Questo istogramma indica che i dati sono sbilanciati verso un lato, il che è improbabile che sia utile per la costruzione del modello

Negli articoli di Vladimir, c'è un punto sulla rimozione degli outlier, se gli outlier nella tua figura #2 vengono rimossi, otterrai una distribuzione più normale.

E c'è anche la centratura dei dati di input - migliorerà ancora di più la situazione.

 
elibrario:

Negli articoli di Vladimir, c'è un punto sulla rimozione degli outlier, se gli outlier nella tua figura #2 vengono rimossi, otterrai una distribuzione più normale.

E poi c'è la centratura dell'input - migliorerà ancora di più le cose.


Cosa facciamo quando questo outlier arriva nei nuovi dati? Come lo interpreta il modello?

Rimuovere un outlier dai dati significa rimuovere l'intero vettore di input in un dato outlier, e cosa succede se ci sono dati importanti in quel vettore in altri input. Se la natura dell'input è incline a tali outlier, è meglio non prendere affatto quell'input. IMHO.

 
Mihail Marchukajtes:

Classificazione relativa a zero. Per questi scopi, questo approccio è giusto IMHO!


Sì, se le uscite sono distribuite approssimativamente secondo la stessa legge, altrimenti - la stessa riqualificazione

 
elibrario:

Negli articoli di Vladimir, c'è un punto sulla rimozione degli outlier, se gli outlier nella tua figura #2 vengono rimossi, otterrai una distribuzione più normale.

E poi c'è la centratura dei dati di ingresso - migliorerà ancora di più le cose.


La rimozione degli outlier è una misura statistica o una stampella (come il desiderio di rendere tutto stazionario), che può peggiorare significativamente le previsioni sul forex e portare l'intero sistema a zero (funzionerà solo dove il mercato è normalmente distribuito).

Dovete capire dove viene usata la NS e per quale scopo... e non fare semplicemente quello che volete da un libro :)

Vladimir non ha prove di robustezza dei suoi modelli... solo prove molto approssimative di modelli nello stesso R

Quindi non so cosa credere in questa vita... tutto deve essere ricontrollato.

 
Maxim Dmitrievsky:

Sì, se le uscite sono distribuite approssimativamente la stessa legge, se no, sarà lo stesso overtraining


Beh, ho sempre bilanciato l'uscita per un numero uguale di classi "0" e "1". Cioè, ho l'uscita bilanciata e prendo gli ingressi con una distribuzione normale rispetto a zero. L'ottimizzatore deve essere eseguito diverse volte, ma di regola più input sono utilizzati nel modello, migliore è la sua performance. Quindi seleziono il modello più parametrico con il massimo risultato sulla sezione di prova. Poi userò il boosting e altri trucchi...

 
Mihail Marchukajtes:

Cosa fare quando questo outlier arriva nei nuovi dati? Come lo interpreta il modello?

Rimuovere l'outlier dai dati significa rimuovere l'intero vettore di input per un dato outlier, nel caso in cui ci siano dati importanti in quel vettore per altri input. Se la natura dell'input è incline a tali outlier, è meglio non prendere affatto quell'input. IMHO.

Nei nuovi dati, gli outlier sono anche rimossi, in base alla gamma ottenuta durante l'addestramento. Supponiamo che tu abbia rimosso da -100 a +100 durante l'allenamento, ricordato - e rimosso degli stessi livelli sui nuovi dati. Dovresti farlo sui valori assoluti e poi potresti normalizzare. Senza rimuovere gli outlier, il mio centro dei dati cancellati continuava a spostarsi e diventava non comparabile con se stesso una settimana prima.

E gli outlier appaiono solo nei momenti di novità o di eventi straordinari, ma ogni volta la forza di questi outlier sarà diversa. Ho deciso per me stesso che è meglio scartarli, e Vladimir, non sono arrivato a questo da solo, apparentemente è confermato dalle ricerche di molte persone.

 
Mihail Marchukajtes:


Beh, ho sempre bilanciato l'uscita per un numero uguale di classi "0" e "1". Cioè, bilancio l'uscita e prendo gli ingressi con una distribuzione normale relativa a zero. L'ottimizzatore deve essere eseguito diverse volte, ma di regola più input sono utilizzati nel modello, migliore è la sua performance. Quindi seleziono il modello più parametrico con il massimo risultato sulla sezione di prova. Poi andiamo avanti con il boosting e altre cose...


Quindi non è jPredictor alla fine? :)