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

 
Aleksey Nikolayev #:

Penso che la questione di cosa fare con le caselle identificate sia complessa e difficilmente ha regole chiare e univoche per tutti i casi possibili. Un buon algoritmo ben congegnato è probabilmente un "know-how" abbastanza segreto).

Se i casi sono ottenuti sullo stesso insieme di predittori, la loro non intersezione è probabilmente sufficiente. Se c'è un'intersezione, questa può essere assegnata a una casella separata e i suoi complementi possono essere suddivisi in più caselle. Tuttavia, un numero troppo elevato di caselle frammenta eccessivamente il campione. Pertanto, possiamo generalizzare la nozione di casella: nel linguaggio delle regole, ciò significa aggiungere le negazioni e gli OR agli AND.

Se le scatole sono ottenute su predittori completamente diversi (ad esempio, con il metodo randomforest), allora possono sovrapporsi solo nel senso delle parti del campione che vi rientrano. In questo caso sono probabilmente necessarie alcune idee vicine al portafoglio.

Se gli insiemi di predittori si sovrappongono parzialmente, allora ci deve essere un mix di approcci, ma è difficile dirlo con certezza.

Non mi è chiaro come questo possa essere inserito in uno schema unificato. Il modo standard di costruire gli alberi decisionali aggira semplicemente e "piacevolmente" questi problemi, il che lo rende non del tutto adatto ai nostri scopi. Potrebbe essere possibile migliorarlo scegliendo un algoritmo di potatura, ma a mio parere è meglio rielaborare in modo creativo l'algoritmo di costruzione delle regole.

Le conclusioni più intelligenti...

Gli algoritmi "out-of-the-box" hanno solo regole approssimative, cioè stupide, come:

X[1]>0,5 && X[3]> -0,2 &...

Hanno solo variabili (colonne della matrice o del frame X1.....X10) e confini astratti (cifre X[1]>0,5 ), che lui stesso inventa nel processo di apprendimento della creazione di confini nelle classi.

Che dire del banale X1 > X2

o la negazione di X1 > X2.

Che dire di X1> (X2*X3)?

E il legame con gli indici, che non funziona su un mercato non stazionario?


Mi riferisco all'espressione: se c'era "A" ma non "B", allora "C".

Non è un'espressione adatta agli algoritmi.

L'algoritmo è lo stesso, basta creare centinaia di regole e guardare alla loro somma di probabilità di classe. Nel mercato ci interessano gli eventi rari, quindi dobbiamo passare al numero di regole, non al numero di regole.

 

Mi chiedo come l'algoritmo di riduzione della dimensionalità veda i campioni con tipi di dati diversi con e senza normalizzazione.

Ad esempio, ci sono tipi di dati, stringa e cifre.

q1           q2
1    c -1.630015623
2    c  1.781979246
3    b -0.598134088
4    a -0.611477494
5    b -0.347432530
6    b -0.474427356
7    e -1.048827859
.....

Per prima cosa converto q1 in cifre.

q1           q2
1    3 -1.630015623
2    3  1.781979246
3    2 -0.598134088
4    1 -0.611477494
5    2 -0.347432530
6    2 -0.474427356
7    5 -1.048827859

.... 

fatto

Ora lo inviamo all'algoritmo UMAP e otteniamo gli autovalori.

                  [,1]         [,2]
    [1,]   6.762433406   9.08787260
    [2,] -21.488330368  10.67183802
    [3,]   6.810413818   9.35273386
    [4,] -20.950310976  15.20258097
    [5,]  32.100723691  -9.74704393
    [6,]   6.892939805  16.84639975
    [7,] -17.096480607  -6.63144430

visualizzare i punti

Abbiamo ottenuto dei bei vermi ))

Proviamo a colorare i punti con la variabile q1.


Come possiamo vedere, la variabile q1 crea la struttura di questi vermi, in un certo senso tira l'importanza su di sé, riducendo il contributo della variabile q2.

Questo perché la variabile q1 ha valori elevati e i dati non sono normalizzati.

Se normalizziamo i dati, ogni variabile darà lo stesso contributo e otterremo

Capisco che per alcuni partecipanti si tratta di cose ovvie, dobbiamo normalizzare bla bla bla,

ma avete mai pensato che aumentando o diminuendo il contributo delle variabili si può controllare il clustering?

 
mytarmailS #:

visualizzare i punti


Sembrano parassiti :)

 
mytarmailS #:

Ma avete mai pensato che aumentando o diminuendo il contributo delle variabili si può controllare il clustering?

Sì, sovrastimando o sottostimando deliberatamente la significatività.
Ma è un'arte, è difficile da analizzare.
La situazione è aggravata dalla non stazionarietà dei prezzi, con cui ho combattuto a lungo: se si cambia la scala o la normalizzazione, le proprietà del modello addestrato cambiano.
 
Maxim Dmitrievsky #:
con prezzi non stazionari, sono in guerra con i segni da molto tempo.
La stiamo combattendo tutti.
 
mytarmailS riduzione della dimensionalità veda i campioni con tipi di dati diversi con e senza normalizzazione.

Ad esempio, esistono tipi di dati, stringhe e cifre.

Per prima cosa converto q1 in cifre

È meglio convertire le stringhe in forma categorica piuttosto che numerica. Naturalmente, se UMAP è in grado di elaborarle.

a=1 non è 5 volte diverso da e=5. Sono solo diversi, come caldo e morbido. E digitalizzandoli, li avete resi sempre più caldi.

 
elibrarius #:

a=1 non è cinque volte diverso da e=5. Sono solo diversi,

Hmm, sì, hai assolutamente ragione, sono stato stupido.

Devi fare una conversione a caldo o qualcosa del genere.
 
Aleksey Nikolayev #:

Penso che la questione di cosa fare con le caselle identificate sia complessa e difficilmente ha regole chiare e univoche per tutti i casi possibili. Un buon algoritmo ben congegnato è probabilmente un "know-how" abbastanza segreto).

Se i casi sono ottenuti sullo stesso insieme di predittori, la loro non intersezione è probabilmente sufficiente. Se c'è un'intersezione, questa può essere assegnata a una casella separata e i suoi complementi possono essere suddivisi in più caselle. Tuttavia, un numero troppo elevato di caselle frammenta eccessivamente il campione. Pertanto, possiamo generalizzare la nozione di casella: nel linguaggio delle regole, ciò significa aggiungere le negazioni e gli OR agli AND.

Se le scatole sono ottenute su predittori completamente diversi (ad esempio, con il metodo randomforest), allora possono sovrapporsi solo nel senso delle parti del campione che vi rientrano. In questo caso sono probabilmente necessarie alcune idee vicine al portafoglio.

Se gli insiemi di predittori si sovrappongono parzialmente, allora ci deve essere un mix di approcci, ma è difficile dirlo con certezza.

Non mi è chiaro come questo possa essere inserito in uno schema unificato. Il modo standard di costruire gli alberi decisionali aggira semplicemente e "piacevolmente" questi problemi, il che lo rende non del tutto adatto ai nostri scopi. Potrebbe essere possibile migliorarlo scegliendo un algoritmo di potatura, ma a mio parere è meglio rielaborare in modo creativo l'algoritmo di costruzione delle regole.

Senza capire i dettagli, è difficile apportare modifiche alla logica.

Personalmente, non ho capito cosa siano le 2 coordinate aggiuntive della scatola (2 - confini quantici) - ho pensato che si trattasse di un ritaglio di campioni.

Sto solo cercando qualcosa di utile per sviluppare il mio metodo. Ho anche incollato le "scatole", ma l'algoritmo non è perfetto.

 
Aleksey Vyazmikin #:

Ecco, senza capire i dettagli è difficile apportare modifiche alla logica.

Personalmente, non ho capito cosa siano le 2 coordinate aggiuntive del riquadro (2 - confini quantici) - ho pensato che si trattasse di un ritaglio di campione.

Sto solo cercando qualcosa di utile per sviluppare il mio metodo. Ho anche incollato le "scatole", ma l'algoritmo non è perfetto.

Se stai parlando specificamente di PRIM, il mio link ha appena fornito un esempio di come funziona per due predittori x1 e x2. Di conseguenza, viene selezionata una casella della forma (a1<x1<b1)&(a2<x2<b2). Ciò che rimane fuori dal riquadro viene apparentemente considerato appartenente a una classe diversa da quella che si trova all'interno. Si è cercato di mostrare con un semplice esempio l' essenza dell'algoritmo: tagliare un piccolo pezzo (peeling) dalla scatola a ogni passo. Quale pezzo viene tagliato e quale predittore viene scelto dalla condizione di ottimalità del passo "traiettoria".

Mi interessava questo algoritmo come esempio di come un algoritmo standard per la costruzione di regole (per un albero risolutivo) possa e debba essere modificato per soddisfare le proprie esigenze.

 
Aleksey Nikolayev #:

Se si parla specificamente di PRIM, il mio link ha appena fornito un esempio di funzionamento per due predittori x1 e x2. Di conseguenza, viene selezionata una casella della forma (a1<x1<b1)&(a2<x2<b2). Ciò che rimane fuori dal riquadro viene apparentemente considerato appartenente a una classe diversa da quella che si trova all'interno. Si è cercato di mostrare con un semplice esempio l' essenza dell'algoritmo: tagliare un piccolo pezzo (peeling) dalla scatola a ogni passo. Quale pezzo viene tagliato e quale predittore viene scelto dalla condizione di ottimalità del passo "traiettoria".

Mi interessava questo algoritmo come esempio di come un algoritmo standard per la costruzione di regole (per un albero risolutivo) possa e debba essere modificato per soddisfare le proprie esigenze.

È un bene che tu l'abbia capito - all'inizio non l'avevo capito, grazie per il chiarimento.

Ma poi si scopre che l'algoritmo nella prima fase dovrebbe trovare coppie di predittori che si separano meglio in caselle, e poi applicare il "peeling" a loro.