Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 1830

 
Evgeny Dyuka:

O triste é que você diz regularidades, regularidades, mas pergunta o que exatamente impulsiona o mercado e você não vai dizer... porque seu entendimento de uma regularidade termina com a resposta de uma rede sob a forma de probabilidade.

Toda a sua solução é construir centenas de redes em diferentes dados e analisar os seus resultados sob a forma de probabilidade...

E se você entender o mercado e suas leis?

Então uma regra de registo pode descrever o que se descreve com centenas de redes...


Por exemplo, aqui está uma regra com apenas três elementos, e negoceia tão bem como uma centena das suas redes.



Então e se eu encontrar 1000 dessas regras, e criar a partir delas algum tipo de Floresta Aleatória, ou conjunto de regras? a qualidade vai melhorar? sim, eu posso negociar?

E se você tentar criar um conjunto de 1000 neurônios com 100 neurônios cada ? você recebe 100k neurônios , primeiro você não pode encontrar um conjunto de dados único para 100k neurônios , segundo você tem que esperar por idades para a resposta -....

Conclusão - a minha abordagem é mais limpa, mais rápida e mais escalável + pode ser explicada, a sua abordagem é impossível de desenvolver ((

Infelizmente

 
mytarmailS:

Conclusão - minha abordagem é "mais limpa", mais rápida e mais escalável, sua abordagem é impossível de desenvolver ((

Para ser honesto, a sua abordagem também não é muito clara, mas talvez seja só para mim....

 
Evgeny Dyuka:

Aqui está um exemplo vivo de como comprimir informação , não é isso que eu faço, mas eu luto por este conceito

Os dados são as íris de 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
.........
......
...
..
..


Treinando uma Floresta Aleatória, para maior clareza, mas vamos fingir que é um conjunto de suas redes neurais

Treinado....

Temos as regras preditivas, há cerca de 700 delas.

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"
..........................
..............
.......
....
..

Agora a magia é que há um algoritmo que pode fazer 7 dessas 700 regras, com mínima perda de qualidade.

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"

Então essa é toda a nossa régua de 700 de forrest aleatório.

Nada mal? :)

 
mytarmailS:

O triste é que você diz regularidades, regularidades, mas pergunte o que exatamente impulsiona o mercado e você não vai dizer... porque seu entendimento de regularidade termina com a resposta da rede na forma de probabilidade.

Toda a sua solução é construir centenas de redes sobre diferentes dados e analisar os seus resultados sob a forma de probabilidade...

Sim, isso mesmo, para um resultado realmente prático.

E se você entender o mercado e suas leis?

Porquê? Talvez nem seja possível.

Então uma regra de registo pode descrever o que estás a descrever com centenas de redes.

É tudo fantasia, voar nas nuvens.

respondeu acima...

 
Evgeny Dyuka:

respondeu acima no texto...

Você escreve :

Evgeny Dyuka:

2. Na prática, usando o meu método, você pode obter uma resposta aceitável apenas em cerca de 1% das perguntas feitas. Simplesmente falando, se você perguntar à rede "onde o preço estará em 5 minutos para cima ou para baixo" a cada min-luz, a rede lhe dará a resposta apenas 1 vez em cada 100.

Você não acha que a razão é que 99% dos seus dados são lixo e 1% é útil, você não acha que esse 1% pode ser descrito pelas regras de registro 1-3?

 
mytarmailS:

Você escreve:

Evgeny Dyuka:

2. Na prática, usando meu método, você pode obter uma resposta aceitavelmente precisa em apenas cerca de 1% das perguntas feitas. Simplesmente falando, se você perguntar à rede "onde o preço estará em 5 minutos para cima ou para baixo", você terá a resposta apenas 1 vez em 100.

Não lhe parece que a razão é que nos seus dados há 99% de lixo e 1% de informação útil? Não lhe parece que este 1% pode ser descrito pelas regras de registo 1-3?

Infelizmente não é este o caso.

99% do lixo é uma propriedade intrínseca do objecto que estamos a estudar. É a sua natureza.
Todos nós gostaríamos de esperar que tenha harmonia interior e regras simples e compreensíveis, que não encontramos, mas que encontraremos. Não existem tais regras. Filosoficamente, claro que podem existir, tudo tem uma razão, mas estão além de nossas capacidades atuais e futuras.

O 1% também não é descrito por regras simples, a rede é treinada em 500.000 exemplos para chegar a ele - estas não são claramente regras simples.

 
mytarmailS:

Aqui está um exemplo vivo de como comprimir informação , não é isso que eu faço, mas eu me esforço para o conceito

Os dados são as íris de Fisher.


Treinando uma Floresta Aleatória, para maior clareza, mas vamos fingir que é um conjunto de suas redes neurais

Treinado....

Temos as regras preditivas, há cerca de 700 delas.

Agora a magia é que há um algoritmo que pode fazer 7 dessas 700 regras, com mínima perda de qualidade.

Então essa é toda a nossa régua de 700 de forrest aleatório.

Nada mal? :)

Para descrever 150 linhas de dados (existem 150 em dados Iris), no máximo, precisamos de 150 regras (se todas as linhas forem únicas).
De onde tirou 700?

 
elibrarius:

Para descrever 150 linhas de dados (dados Iris tem 150 linhas) você precisa no máximo 150 regras (se todas as linhas forem únicas).
De onde tirou 700?

Não sei exatamente como funciona o pacote florestal, mas com 100 árvores ele gera 400-700 regras, provavelmente contando cada ramo como regra

Evgeny Dyuka:
Infelizmente, isto não é verdade.

99% do lixo é uma propriedade intrínseca do objecto que estamos a estudar. É assim que é construído, é essa a sua natureza.
Todos gostaríamos de esperar que tenha harmonia interior e regras simples e claras que ainda não encontramos, mas vamos encontrá-las. Não existem tais regras. Filosoficamente, claro que podem existir, tudo tem uma razão, mas estão além de nossas capacidades atuais e futuras.

Esse 1% também não é descrito por regras simples, a rede é treinada em 500.000 exemplos para chegar lá - essas não são claramente regras simples.

hmmm...

 
mytarmailS:

Então essa é toda a nossa ronda de 700 regras

Nada mal? :)

Qual é o princípio da redução das folhas? Agrupar por similaridade e selecionar a melhor opção do grupo ?

 
mytarmailS:

Não sei exatamente como funciona o pacote florestal, mas quando ajustado para 100 árvores ele gera 400-700 regras, muito provavelmente cada ramo conta como regra

Eu não sei...

Aparentemente, 700 é o total para 100 árvores.

Se construíres uma árvore, obténs as mesmas 7 regras que achas que são mágicas))

Eis o que 1 árvore me deu para as íris (Precisão de 96% ou 6 erros em 150 exemplos)


 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;}}