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

 

Boa tarde a todos.


Deixe-me esclarecer, quais pacotes ML os participantes usam, ou tudo é feito via MQL?

 

Surpreendentemente o arquivo é legível, a qualidade do modelo é pobre, quem quer verificar na validação....

Arquivos anexados:
 
Mihail Marchukajtes:

Surpreendentemente o arquivo é legível, a qualidade do modelo é fraca, quem quer verificar na validação....

Em um arquivo está escrito
* TruePositives: 853
* TrueNegative: 1098
* FalsePositivos: 732
* FalseNegative: 985

ou seja, quase 50/50.
Obtive o mesmo resultado para um problema lógico ligeiramente mais simples, razão pela qual assumi que as entradas de ruído estão realmente a estragar o resultado do RNN.

 
elibrarius:

O arquivo diz
* TruePositives: 853
* TrueNegative: 1098
* FalsePositivos: 732
* FalseNegative: 985

ou seja, quase 50/50.
Obtive o mesmo resultado para um problema lógico um pouco mais simples, e é por isso que assumi que as entradas de ruído estão estragando muito o resultado do RNN.


Faz, a generalidade do modelo é de 52%, por isso...
 
Aleksey Terentev:

Boa tarde a todos.


Deixe-me esclarecer, quais pacotes ML os participantes usam, ou tudo é feito via MQL?

Como regra, tudo é feito em R, com exceção de alguns entusiastas que estão tentando reescrever alguns modelos em MQL. Em relação aos pacotes - depende de qual modelo se usa - árvores, redes neurais, redes neurais profundas, etc.

Em qual modelo você está interessado?

Boa sorte.

 
Vladimir Perervenko:

Como regra, tudo é feito em R, excepto alguns entusiastas que tentam reescrever alguns modelos em MCL. Quanto aos pacotes, depende de qual modelo se usa - árvores, redes neurais, redes neurais profundas, etc.

Em qual modelo você está interessado?

Boa sorte.


Você esqueceu do otimizador Reshetov, ele é usado aqui também....
 
elibrarius:

O arquivo diz
* TruePositives: 853
* TrueNegative: 1098
* FalsePositivos: 732
* FalseNegative: 985

ou seja, quase 50/50.
Obtive o mesmo resultado para um problema lógico um pouco mais simples, e é por isso que assumi que as entradas de ruído estão estragando muito o resultado do RNN.


Um MLP 20-5-1 normal pode fazer isso para o mesmo problema:

Erro médio no treinamento (60,0%) gráfico =0,116 (11,6%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Erro médio na validação (20,0%) secção =0,111 (11,1%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Erro médio no teste (20,0%) =0,129 (12,9%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Tempo de cálculo=0,77 min.

Embora às vezes também dê 50%, acho que preciso de mais de 2 ciclos de reciclagem.
---------------------------------

Rede nnet 20-1-1 de R :
Previsto
Real 0 1 Erro
0 0.41 0.09 0.18
1 0.24 0.26 0.48

Um pouco pior, mas só o resolve em alguns segundos.

Mas o RNN tem um erro = 0, na secção de treino. E isso também é fixe. Provavelmente vou blogar a minha experiência

 
elibrarius:

Um MLP comum 20-5-1 pode produzir isso para o mesmo problema:

Erro médio no treinamento (60,0%) gráfico =0,116 (11,6%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Erro médio na validação (20,0%) secção =0,111 (11,1%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Erro médio no teste (20,0%) =0,129 (12,9%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Tempo de cálculo=0,77 min
---------------------------------

Rede nnet 20-1-1 de R :
Previsto
Real 0 1 Erro
0 0.41 0.09 0.18
1 0.24 0.26 0.48

Um pouco pior, mas só o resolve em alguns segundos.

Precisamos entender algo mais aqui, que resolver um problema não é uma coisa difícil, mas a forma como o modelo vai se comportar mais, essa é a questão. Podemos aprender rapidamente e sem erros. Mas com novos dados, não teremos nada. Predikshin tem uma característica muito boa - em novos dados funciona com a mesma taxa de erro que no treino. Porque não se retrai e blá blá blá blá. E as outras redes podem aprender este exemplo muito rapidamente, mas mostram resultados muito piores em novos dados... IMHO
 
Mihail Marchukajtes:

Temos de perceber que resolver o problema não é uma tarefa difícil, mas a forma como o modelo se vai comportar depois é a questão. Podemos aprender rapidamente e sem erros. E com novos dados, não teremos nada. Predikshin tem uma característica muito boa - em novos dados funciona com a mesma taxa de erro que no treino. Porque não se retrai e blá blá blá blá. E as outras redes podem aprender este exemplo muito rapidamente, mas mostram resultados muito piores em novos dados... IMHO

Então, aqui estão os novos dados:

Erro médio na validação (20,0%) secção =0,111 (11,1%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Erro médio no local de teste (20,0%) =0,129 (12,9%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2

 
elibrarius:

Então, aqui estão os novos dados:

Erro médio na validação (20,0%) gráfico =0,111 (11,1%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Erro médio no gráfico de teste (20,0%) =0,129 (12,9%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2


Não estou a discutir, pode ser... :-)