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

 
Mihail Marchukajtes:
Olá a todos!!!! Ainda bem que este tópico não está morto e ainda está vivo, por isso tenho uma pergunta para o público. Tenho um conjunto de dados para o treino, mas infelizmente tornou-se tão grande que o treino demora demasiado tempo. Alguém pode construir um modelo usando a sua própria experiência e depois veremos como funciona em conjunto!!!!!.

Tente deixar as entradas (em ordem de 0, 0 é a 1ª coluna)

0,4,50,53,59,61,64,92,98,101,104,

Arquivos anexados:
 

Consegui calcular a parte truncada do conjunto de dados, isto é o resultado da rede fora da amostra, mas tive que espelhar completamente o modelo.

Este é o trabalho de 05.29 e eu acho que é muito bom.


 
elibrarius:

Tente deixar as entradas (em ordem de 0, 0 é a 1ª coluna)

0,4,50,53,59,61,64,92,98,101,104,


A vantagem do otimizador é que ele remove colunas desnecessárias. É por isso que leva tanto tempo. Mas agora vou tentar otimizar o conjunto completo de dados, mas com suas recomendações e depois ver qual será o resultado da amostra. ok?
 
Mihail Marchukajtes:

A vantagem do otimizador é que ele remove colunas desnecessárias. É por isso que leva tanto tempo a calcular. Mas agora vou tentar otimizar o conjunto completo de dados, levando em conta suas recomendações e depois ver qual será o resultado da amostra, ok?


Muito bem!!! Eu comecei o treinamento, considerando o fato de que há consideravelmente menos colunas, acho que vai contar rapidamente, vou postar o resultado :-)

É verdade, o primeiro treino resultou em 55% de generalização.

 

Estranhamente, com esses inputs o modelo também precisa ser revertido e, na mesma área, pode-se obter o seguinte patrimônio líquido

É um pouco pior, mas ainda pode ser aplicado.

Gostava que pudéssemos correr todo o conjunto de dados no optimizador. Penso que então mais colunas teriam sido seleccionadas e o nível de generalização teria sido maior, daí a qualidade da rede na área não amostral...

 
Mihail Marchukajtes:


Muito bem!!! Comecei a treinar, como o número de colunas foi significativamente reduzido, acho que vai contar rapidamente, vou postar o resultado :-)

É verdade, o primeiro treino resultou em 55% de generalização.

Qual é a generalizabilidade de 55%?
O MLP normal dá 11-5-1:
Erro médio no treinamento (60,0%) gráfico =0,057 (5,7%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
Erro médio na validação (20,0%) gráfico =0,038 (3,8%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
Erro médio no gráfico de teste (20,0%) =0,023 (2,3%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
 
elibrarius:
Qual é a generalizabilidade de 55%?
O MLP 11-5-1 convencional dá:
Erro médio no gráfico de treinamento (60,0%) =0,057 (5,7%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
Erro médio na validação (20.0%) secção =0,038 (3,8%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
Erro médio na secção de teste (20,0%) =0,023 (2,3%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2


Eu nem sei o que responder. A única maneira é citar um exemplo do relatório. Os resultados da optimização podem parecer assim: como interpretá-los cabe a todos, mas quando a optimização termina, o resultado parece ser o seguinte.

* Sensibilidade de generalização abiliy: 55,12820512820513%

* Especificidade da capacidade de generalização: 55,5045871559633%

* Capacidade de generalização: 55,30973451313274336%

* TruePositives: 129

* FalsePositivos: 105

* TrueNegative: 121

* FalseNegative: 97

* Total de padrões em amostras com estatísticas: 452

Em vermelho, sublinhei o resultado geral da capacidade de generalização. A primeira é a percentagem de adivinhar uns, a segunda a percentagem de adivinhar zeros, e a terceira o total.


 
Mihail Marchukajtes:


Eu não sei o que dizer. Excepto para dar um exemplo do relatório. Os resultados da optimização têm este aspecto e você pode interpretá-lo da forma que quiser, mas quando a optimização termina, o resultado tem a seguinte aparência.

* Sensibilidade de generalização abiliy: 55,12820512820513%

* Especificidade da capacidade de generalização: 55,5045871559633%

* Capacidade de generalização: 55,30973451313274336%

* TruePositives: 129

* FalsePositivos: 105

* TrueNegative: 121

* FalseNegative: 97

* Total de padrões em amostras com estatísticas: 452

Em vermelho, sublinhei o resultado geral da capacidade de generalização. A primeira é a percentagem de adivinhar os solteiros, a segunda é a percentagem de adivinhar zeros, e a terceira é o total.


O MLP está a adivinhar 95% das vezes... Acho que estás a fazer a bicicleta errada) Sem ofensa.
Eu também estou fazendo minha própria moto, mas com base em décadas de MLP (que, como dizem, está ultrapassada e precisa de algo mais legal para funcionar). Então eu sou a favor das bicicletas, talvez seu código tenha alguma lógica defeituosa em algum lugar? Já encontrei algumas no meu, enquanto testava diferentes variantes. Incluindo a resolução do problema a partir do primeiro post deste tópico. Mas esses mesmos filtros, que cortam o desnecessário no seu problema - cortam o necessário nisso ((. Então eu acho que eu deveria usar pesos de entradas para fazer sifting out, field run com dados completos.
 
elibrarius:
O MLP está a adivinhar 95% das vezes... Acho que estás a fazer a bicicleta errada) Sem ofensa.
Também estou a fazer a minha própria bicicleta, mas com base em décadas de MLP comprovado (que dizem estar ultrapassado e precisar de algo mais fresco para trabalhar). Então sou a favor das bicicletas, talvez tenhas um erro lógico algures no teu código? Já encontrei algumas no meu, enquanto testava diferentes variantes.


O problema é que eu não sou um programador. Este otimizador não foi escrito por mim, eu apenas o uso, de qualquer forma os inputs que você especificou dão 55 por cento de generalização, o que é melhor do que adivinhar, por isso vemos o resultado fora da amostra com lucro positivo. A única coisa que me impede agora é que o modelo precisa de ser espelhado, então vai ganhar, e se o modelo for direito, então vai perder...

Mas se executarmos o otimizador em todos os inputs, acho que o modelo será muito mais complexo e selecionará mais inputs. E em teoria, tal modelo deveria funcionar melhor e por mais tempo. Mas eu não posso executar o otimizador em um conjunto de dados completo - eu acho que levará um mês para lê-lo. Então minha esperança é rodar o otimizador na GPU, e então veremos.

 
Mihail Marchukajtes:


O problema é que eu não programo. Este otimizador não foi escrito por mim, eu apenas o uso, de qualquer forma as entradas que você especificou dão 55 por cento de generalização que é melhor do que adivinhar, por isso vemos o resultado fora da amostra com lucro positivo. A única coisa que me impede agora é que o modelo seja espelhado, então ele funciona, e se o modelo for reto, ele falha.

Mas se executarmos o otimizador em todos os inputs, acho que o modelo será muito mais complexo e selecionará mais inputs. E em teoria, tal modelo deveria funcionar melhor e por mais tempo. Mas eu não posso executar o otimizador em um conjunto de dados completo - eu acho que levará um mês para lê-lo. Então, minha esperança é rodar o otimizador na GPU, e então veremos.

Se você vai começar algo por um mês usando uma fonte de alimentação ininterrupta, eu tive as luzes cortadas em cerca de 2 semanas de cálculo)).
E não espere pela GPU, pode demorar mais tempo para reescrever o código e se o autor não o tiver feito, dificilmente mais ninguém terminará a tarefa.