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

 
Evgeny Dyuka:

La cosa triste è che tu dici regolarità, regolarità, ma ti chiedi cosa guida esattamente il mercato e non lo dici... perché la tua comprensione di una regolarità finisce con la risposta di una rete sotto forma di probabilità.

Tutta la tua soluzione è costruire centinaia di reti su diversi dati e analizzare i loro risultati sotto forma di probabilità...

E se capissi il mercato e le sue leggi?

Allora con una regola di log si può descrivere quello che descrivi con centinaia di reti...


per esempio, ecco una regola con solo tre elementi, e commercia altrettanto bene come un centinaio delle vostre reti.



Quindi cosa succede se trovo 1000 di queste regole, e creo da esse una specie di Foresta Casuale, o un insieme di regole? La qualità migliorerà? Sì, posso commerciare?

Cosa succede se si cerca di creare un ensemble di 1000 neuroni con 100 neuroni ciascuno? Si ottengono 100k neuroni, in primo luogo non è possibile trovare un set di dati unico per 100k neuroni, in secondo luogo bisogna aspettare secoli per la risposta -....

In conclusione - il mio approccio è più pulito, più veloce e più scalabile + può essere spiegato, il tuo approccio è impossibile da sviluppare ((

Purtroppo

 
mytarmailS:

In conclusione - il mio approccio è più "pulito", più veloce e più scalabile, il tuo approccio è impossibile da sviluppare ((

Ad essere onesti, anche il tuo approccio non è molto chiaro, ma forse è solo per me....

 
Evgeny Dyuka:

Ecco un esempio vivente di come comprimere le informazioni, questo non è quello che faccio, ma mi sforzo per questo concetto

I dati sono le iridi di Fisher.

iris[sample(100,100),] 
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
51           7.0         3.2          4.7         1.4 versicolor
31           4.8         3.1          1.6         0.2     setosa
79           6.0         2.9          4.5         1.5 versicolor
33           5.2         4.1          1.5         0.1     setosa
73           6.3         2.5          4.9         1.5 versicolor
80           5.7         2.6          3.5         1.0 versicolor
16           5.7         4.4          1.5         0.4     setosa
74           6.1         2.8          4.7         1.2 versicolor
30           4.7         3.2          1.6         0.2     setosa
17           5.4         3.9          1.3         0.4     setosa
25           4.8         3.4          1.9         0.2     setosa
75           6.4         2.9          4.3         1.3 versicolor
57           6.3         3.3          4.7         1.6 versicolor
65           5.6         2.9          3.6         1.3 versicolor
96           5.7         3.0          4.2         1.2 versicolor
.........
......
...
..
..


Stiamo allenando una foresta casuale per chiarezza, ma facciamo finta che sia un insieme delle vostre reti neurali.

Addestrato....

Abbiamo le regole predittive, ce ne sono circa 700.

condition                                              pred        
  [1,] "X[,3]<=2.45"                                          "setosa"    
  [2,] "X[,3]>2.45 & X[,3]<=4.85"                             "versicolor"
  [3,] "X[,3]>2.45 & X[,3]<=4.85 & X[,4]<=1.6"                "versicolor"
  [4,] "X[,4]>1.6"                                            "virginica" 
  [5,] "X[,3]>2.45 & X[,3]<=4.95 & X[,4]<=1.75"               "versicolor"
  [6,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
  [7,] "X[,3]>4.85 & X[,3]<=5.15 & X[,4]<=1.75 & X[,4]>1.55"  "versicolor"
  [8,] "X[,4]>1.75"                                           "virginica" 
  [9,] "X[,3]>5.15"                                           "virginica" 
 [10,] "X[,3]<=2.45"                                          "setosa"    
 [11,] "X[,3]<=4.95 & X[,3]>2.45 & X[,4]<=1.65"               "versicolor"
 [12,] "X[,4]>1.65"                                           "virginica" 
 [13,] "X[,3]>4.85 & X[,4]>1.65"                              "virginica" 
 [14,] "X[,4]>1.9"                                            "virginica" 
 [15,] "X[,3]>4.95 & X[,4]<=1.65"                             "virginica" 
 [16,] "X[,3]>4.95 & X[,4]<=1.75 & X[,4]>1.65"                "versicolor"
 [17,] "X[,3]>4.95"                                           "virginica" 
 [18,] "X[,4]<=0.8"                                           "setosa"    
 [19,] "X[,3]<=4.75 & X[,4]>0.8"                              "versicolor"
 [20,] "X[,3]>4.75 & X[,3]<=5 & X[,4]<=1.7"                   "versicolor"
 [21,] "X[,3]>5 & X[,4]<=1.55"                                "virginica" 
 [22,] "X[,3]>4.75 & X[,3]<=5.45 & X[,4]<=1.7 & X[,4]>1.55"   "versicolor"
 [23,] "X[,3]>5.45"                                           "virginica" 
 [24,] "X[,4]>1.7"                                            "virginica" 
 [25,] "X[,3]<=5.05 & X[,4]>0.8 & X[,4]<=1.75"                "versicolor"
 [26,] "X[,3]>4.95"                                           "virginica" 
 [27,] "X[,2]>2.6 & X[,3]<=5.05 & X[,3]>4.95"                 "versicolor"
 [28,] "X[,4]>1.75"                                           "virginica" 
 [29,] "X[,2]>3.1 & X[,3]<=5.05 & X[,4]>0.8"                  "versicolor"
 [30,] "X[,3]>5.05 & X[,4]<=1.55"                             "virginica" 
 [31,] "X[,2]<=2.85 & X[,3]>5.05 & X[,4]<=1.7 & X[,4]>1.55"   "versicolor"
 [32,] "X[,3]>5.05"                                           "virginica" 
 [33,] "X[,3]>5.05"                                           "virginica" 
 [34,] "X[,4]<=0.75"                                          "setosa"    
 [35,] "X[,3]<=4.95 & X[,4]>0.75 & X[,4]<=1.7"                "versicolor"
 [36,] "X[,4]>1.7"                                            "virginica" 
 [37,] "X[,2]>3.1 & X[,3]<=4.95 & X[,4]>0.75"                 "versicolor"
 [38,] "X[,3]>4.95"                                           "virginica" 
 [39,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.7"                 "versicolor"
 [40,] "X[,4]>1.7"                                            "virginica" 
 [41,] "X[,3]>4.95"                                           "virginica" 
 [42,] "X[,4]<=0.7"                                           "setosa"    
 [43,] "X[,2]<=2.25 & X[,4]<=1.25"                            "versicolor"
 [44,] "X[,2]<=2.25"                                          "versicolor"
 [45,] "X[,2]>2.25 & X[,4]>0.7 & X[,4]<=1.75"                 "versicolor"
 [46,] "X[,3]>5.3"                                            "virginica" 
 [47,] "X[,4]>1.75"                                           "virginica" 
 [48,] "X[,3]>2.45 & X[,3]<=4.95 & X[,4]<=1.75"               "versicolor"
 [49,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
 [50,] "X[,3]>4.95 & X[,3]<=5.45 & X[,4]<=1.75 & X[,4]>1.55"  "versicolor"
 [51,] "X[,3]>4.95"                                           "virginica" 
 [52,] "X[,4]>1.75"                                           "virginica" 
 [53,] "X[,2]>3 & X[,3]>2.45 & X[,3]<=4.85"                   "versicolor"
 [54,] "X[,4]>1.75"                                           "virginica" 
 [55,] "X[,3]<=4.85 & X[,4]>0.8 & X[,4]<=1.65"                "versicolor"
 [56,] "X[,3]<=4.65 & X[,4]>1.65"                             "virginica" 
 [57,] "X[,4]>1.65"                                           "virginica" 
 [58,] "X[,3]<=5.3 & X[,4]<=1.75"                             "versicolor"
 [59,] "X[,2]>2.6 & X[,3]>4.85 & X[,3]<=5.3 & X[,4]<=1.75"    "versicolor"
 [60,] "X[,3]>5.3"                                            "virginica" 
 [61,] "X[,4]>1.75"                                           "virginica" 
 [62,] "X[,3]<=2.5"                                           "setosa"    
 [63,] "X[,3]>2.5 & X[,3]<=4.95 & X[,4]<=1.75"                "versicolor"
 [64,] "X[,3]>4.95 & X[,3]<=5.05 & X[,4]<=1.65"               "virginica" 
 [65,] "X[,4]<=1.75"                                          "versicolor"
 [66,] "X[,3]<=4.75 & X[,4]>1.65"                             "virginica" 
 [67,] "X[,3]>4.75 & X[,4]<=1.75 & X[,4]>1.65"                "versicolor"
 [68,] "X[,3]>5.35"                                           "virginica" 
 [69,] "X[,4]>1.75"                                           "virginica" 
 [70,] "X[,3]<=4.75 & X[,4]>0.7"                              "versicolor"
 [71,] "X[,4]>1.65"                                           "virginica" 
 [72,] "X[,3]>4.75 & X[,3]<=4.95 & X[,4]<=1.7"                "versicolor"
 [73,] "X[,2]<=2.65 & X[,3]>4.95"                             "virginica" 
 [74,] "X[,2]<=2.75 & X[,2]>2.65 & X[,4]<=1.7"                "versicolor"
 [75,] "X[,3]>4.75"                                           "virginica" 
 [76,] "X[,4]>1.7"                                            "virginica" 
 [77,] "X[,2]>3.1 & X[,3]>4.75 & X[,3]<=4.85"                 "versicolor"
 [78,] "X[,4]>1.7"                                            "virginica" 
 [79,] "X[,3]>2.45 & X[,3]<=5 & X[,4]<=1.65"                  "versicolor"
 [80,] "X[,4]<=1.65"                                          "versicolor"
 [81,] "X[,3]>5"                                              "virginica" 
 [82,] "X[,4]>1.65"                                           "virginica" 
 [83,] "X[,3]>2.45 & X[,3]<=5.05 & X[,4]<=1.75"               "versicolor"
 [84,] "X[,4]>1.75"                                           "virginica" 
 [85,] "X[,2]>3.1 & X[,3]>2.45 & X[,3]<=5.05"                 "versicolor"
 [86,] "X[,3]>5.05"                                           "virginica" 
 [87,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.65"                "versicolor"
 [88,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
 [89,] "X[,3]<=5.45 & X[,4]<=1.65 & X[,4]>1.55"               "versicolor"
 [90,] "X[,3]>4.95"                                           "virginica" 
 [91,] "X[,4]>1.65"                                           "virginica" 
 [92,] "X[,4]>0.75 & X[,4]<=1.65"                             "versicolor"
 [93,] "X[,4]>1.65"                                           "virginica" 
 [94,] "X[,2]>3.1 & X[,3]<=4.85 & X[,4]>0.75"                 "versicolor"
 [95,] "X[,4]>1.65"                                           "virginica" 
 [96,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.75"                "versicolor"
 [97,] "X[,3]<=4.95 & X[,4]<=1.75 & X[,4]>1.65"               "virginica" 
 [98,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
 [99,] "X[,3]>4.95 & X[,3]<=5.45 & X[,4]<=1.75 & X[,4]>1.55"  "versicolor"
..........................
..............
.......
....
..

Ora la magia è che c'è un algoritmo che può fare 7 di quelle 700 regole, con una perdita minima di qualità.

learner[,-c(1:3)]
     condition                                pred        
[1,] "X[,3]<=2.45"                            "setosa"    
[2,] "X[,3]<=4.95 & X[,3]>2.45 & X[,4]<=1.65" "versicolor"
[3,] "X[,3]>4.95 & X[,4]>1.7"                 "virginica" 
[4,] "X[,2]<=3.1 & X[,3]<=4.95 & X[,4]>1.65"  "virginica" 
[5,] "X[,3]>4.95 & X[,4]<=1.55"               "virginica" 
[6,] "X[,3]<=5.3 & X[,4]<=1.75"               "versicolor"
[7,] "X[,1]==X[,1]"                           "versicolor"

Quindi questa è tutta la nostra foresta casuale di 700 regole.

Non male? :)

 
mytarmailS:

La cosa triste è che tu dici regolarità, regolarità, ma ti chiedi cosa guida esattamente il mercato e non lo dici... perché la tua comprensione della regolarità finisce con la risposta della rete sotto forma di probabilità.

L'intera soluzione consiste nel costruire centinaia di reti su diversi dati e analizzare i loro risultati sotto forma di probabilità...

Sì, proprio così, per un vero risultato pratico.

e se capissi il mercato e le sue leggi?

Forse non è nemmeno possibile.

Allora una regola di registro può descrivere quello che stai descrivendo con centinaia di reti.

È tutta fantasia, volare tra le nuvole.

ha risposto sopra...

 
Evgeny Dyuka:

ha risposto sopra nel testo...

Tu scrivi :

Evgeny Dyuka:

2. In pratica, usando il mio metodo, si può ottenere una risposta accettabile solo nell'1% circa delle domande poste. In parole povere, se chiedete alla rete "dove sarà il prezzo tra 5 minuti in alto o in basso" ad ogni min-light, la rete vi darà la risposta solo 1 volta su 100.

Non pensi che la ragione sia che il 99% dei tuoi dati è spazzatura e l'1% è utile, non pensi che questo 1% possa essere descritto da 1-3 regole di registrazione?

 
mytarmailS:

Tu scrivi:

Evgeny Dyuka:

2. In pratica, usando il mio metodo, si può ottenere una risposta accettabilmente accurata solo nell'1% circa delle domande poste. In parole povere, se chiedete alla rete "dove sarà il prezzo tra 5 minuti in alto o in basso", otterrete la risposta solo 1 volta su 100.

Non vi sembra che la ragione sia che nei vostri dati ci sia il 99% di spazzatura e l'1% di informazioni utili? Non vi sembra che questo 1% possa essere descritto da 1-3 regole di registrazione?

Purtroppo non è questo il caso.

Il 99% della spazzatura è una proprietà intrinseca dell'oggetto che stiamo studiando. È la sua natura.
Tutti vorremmo sperare che abbia un'armonia all'interno e regole semplici e comprensibili, che non abbiamo ancora trovato, ma che troveremo. Non ci sono regole del genere. Filosoficamente possono esistere, tutto ha una ragione, ma sono al di là delle nostre capacità attuali e future.

Anche l'1% non è descritto da regole semplici, la rete è addestrata su 500.000 esempi per raggiungerlo - queste non sono chiaramente regole semplici.

 
mytarmailS:

Ecco un esempio vivente di come comprimere le informazioni, questo non è quello che faccio, ma mi sforzo per il concetto

I dati sono le iridi di Fisher.


Addestrare una foresta casuale, per chiarezza, ma facciamo finta che sia un insieme delle tue reti neurali

Addestrato....

Abbiamo le regole predittive, ce ne sono circa 700.

Ora la magia è che c'è un algoritmo che può fare 7 di quelle 700 regole, con una perdita minima di qualità.

Quindi questa è tutta la nostra foresta casuale di 700 regole.

Non male? :)

Per descrivere 150 righe di dati (ce ne sono 150 nei dati di Iris) al massimo abbiamo bisogno di 150 regole (se tutte le righe sono uniche).
Da dove ne hai presi 700?

 
elibrarius:

Per descrivere 150 righe di dati (i dati di Iris hanno 150 righe) servono al massimo 150 regole (se tutte le righe sono uniche).
Da dove ne hai presi 700?

Non so esattamente come funziona il pacchetto forrest, ma con 100 alberi genera 400-700 regole, probabilmente contando ogni ramo come una regola

Evgeny Dyuka:
Purtroppo non è vero.

Il 99% della spazzatura è una proprietà intrinseca dell'oggetto che stiamo studiando. È così che è costruito, è la sua natura.
Tutti vorremmo sperare che abbia un'armonia all'interno e regole semplici e chiare che non abbiamo ancora trovato, ma lo faremo. Non ci sono regole del genere. Filosoficamente possono esistere, tutto ha una ragione, ma sono al di là delle nostre capacità attuali e future.

Anche questo 1% non è descritto da regole semplici, la rete è stata addestrata su 500.000 esempi per arrivarci - queste non sono chiaramente regole semplici.

hmmm...

 
mytarmailS:

Quindi questa è la nostra intera foresta casuale di 700 regole

Non male? :)

Qual è il principio della riduzione delle foglie? Raggruppare per somiglianza e selezionare l'opzione migliore dal gruppo?

 
mytarmailS:

Non so esattamente come funziona il pacchetto forrest, ma quando è impostato a 100 alberi genera 400-700 regole, molto probabilmente ogni ramo conta come una regola

Non so...

Apparentemente 700 è il totale per 100 alberi.

Se costruisci un albero, ottieni le stesse 7 regole che pensi sia magico))

Ecco cosa mi ha dato 1 albero per gli iris (Accuratezza 96% o 6 errori su 150 esempi)


 if(x[3]<1.800000){
  if(x[3]<1.000000){v[0]=1.000000;v[1]=0.000000;v[2]=0.000000;s=50;}
  else{
   if(x[2]<4.700000){
    if(x[2]<4.500000){v[0]=0.000000;v[1]=1.000000;v[2]=0.000000;s=29;}
    else{v[0]=0.000000;v[1]=0.909091;v[2]=0.090909;s=11;}}
   else{v[0]=0.000000;v[1]=0.714286;v[2]=0.285714;s=14;}}}
 else{
  if(x[0]<6.300000){v[0]=0.000000;v[1]=0.090909;v[2]=0.909091;s=11;}
  else{v[0]=0.000000;v[1]=0.000000;v[2]=1.000000;s=35;}}