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

 
Maxim Dmitrievsky:
quindi non so cosa credere in questa vita... tutto deve essere ricontrollato

+1 - Ho iniziato senza rimuovere gli outlier, e ho ottenuto forti spostamenti nel centro (o nello zero) dei dati. Dopo aver rimosso gli outlier tutto è diventato più stabile.

 
Maxim Dmitrievsky:

Quindi non è jPredictor alla fine? :)


Perché proprio con lui.... Costruisce modelli migliori delle biblioteche e così via. Perché scuote i dati a fondo...

 
Mihail Marchukajtes:

Perché proprio lui.... Costruisce modelli migliori delle biblioteche e così via. Perché scuote i dati a fondo...


ma ci vuole molto tempo... :)

 
elibrario:

+1 - Inizialmente l'ho fatto senza rimuovere gli outlier, e ho ottenuto forti spostamenti nel centro (o nello zero) dei dati attrminati. Dopo aver rimosso gli outlier tutto è diventato più stabile.


Bene, a volte c'è un problema con lo spostamento a causa della normalizzazione, quindi ho tutti gli ingressi attraverso i logaritmi degli incrementi e lì il centro sarà sempre a zero se devono essere normalizzati

ma in generale, i picchi sono rimossi più in modo che le scale non si spostino troppo in corrispondenza delle anomalie... e l'impalcatura, per esempio, non se ne preoccupa affatto

 
Maxim Dmitrievsky:

ma ci vuole molto tempo... :)


Per questo motivo riduco statisticamente il numero di input e la formazione diventa adeguata nel tempo. In un giorno lavorativo ho fatto il modello + il boosting di livello 4. Ora farò un altro modello di rimbalzo e dovrebbe funzionare per settimane. Almeno lo spero...

 
Maxim Dmitrievsky:

Bene, a volte c'è un problema con lo spostamento a causa della normalizzazione, quindi ho tutti gli ingressi attraverso i logaritmi degli incrementi e lì il centro sarà sempre a zero se devono essere normalizzati

ma in generale, i picchi sono rimossi più in modo che il NS non sposti pesantemente i pesi sulle anomalie... e l'impalcatura per esempio non se ne preoccupa affatto

Beh, in effetti il logaritmo fa qualcosa di simile, solo che non scarta, e porta, forti emissioni. Tuttavia non scarto anche loro, ma li equiparo al massimo. se(v>max){v=max;}

In generale voglio definire in anticipo un intervallo accettabile per ogni predittore ed eseguire tutti i miei esperimenti entro questo intervallo. Perché anche con il mio metodo e il metodo del logaritmo avrò qualche spostamento di dati da un campione all'altro.

 
elibrario:
In effetti, il logaritmo fa qualcosa di simile, solo che non scarta ma approssima i forti picchi. Tuttavia non li scarto nemmeno, ma li equiparo al massimo. se(v>max){v=max;}

Oh sì, è vero... credo)

Prima prendo alcune serie come log(close[0]/close[n])

e poi

void NormalizeArrays(double &a[]) //нормируем от -1 до 1
  { 
   double multiplier;
   double x_min=MathAbs(a[ArrayMinimum(a)]);
   double x_max=MathAbs(a[ArrayMaximum(a)]);
   if(x_min>=x_max) multiplier = x_min;
     else multiplier = x_max;
   for(int i=0;i<ArraySize(a);i++)
     {
      a[i]=a[i]/multiplier;
     }
  }
e se prendiamo piccoli campioni allorapossiamo definirlo preliminarmente sul grande campione, quindi non cambierà.
 
Maxim Dmitrievsky:

Oh sì, è vero... credo)

Prima prendo alcune serie come log(close[0]/close[n])

e poi

Se min e max non sono speculari (per esempio -100 e 90), allora si avrà una normalizzazione per esempio da -1 a 0,9. Ma il centro sarà sempre a 0. Questo è un approccio interessante nel deviare gli offset.

E a quanto pare è necessario prendere

a[i]=a[i]/Abs(multiplier);

Altrimenti un min negativo metterà tutto sottosopra.

 
Elibrarius:

Se min e max non sono speculari (per esempio -100 e 90), si avrà una normalizzazione per esempio da -1 a 0,9. Ma il centro sarà sempre a 0. Un approccio interessante per combattere gli offset.

E a quanto pare dovremmo.

Altrimenti, un min negativo metterebbe tutto sottosopra.


Sì, è importante che il centro non si sposti.

Ci sono già Abissi per max e min.

double x_min=MathAbs(a[ArrayMinimum(a)]);
double x_max=MathAbs(a[ArrayMaximum(a)]);
 
Maxim Dmitrievsky:

Gli abissi per max e min sono già lassù

Mancato)

Un'altra cosa, se prendi per esempio non 0, ma per esempio 0,5 - anche con il tuo metodo "galleggerà" da un campione all'altro.

L'unico modo per aiutare è quello di impostare rigidamente manualmente il range per ogni ingresso. Ma non è chiaro come determinarlo. Per esempio, si possono analizzare i dati per un anno ed eliminare l'1-5% degli outlier. E lavorare con loro durante l'anno. Anche se cambieranno tra un anno.