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

 

1) Eu entendo corretamente o significado de dividir o conjunto de dados em treinamento, validação e teste:?

a) ensinamo-lo num formador
b) verificar o erro na validação, se for muito maior que no treinador, voltar a 1, até que o erro seja o mesmo (quanto é o mesmo - 5% do erro total? Por exemplo, 15% no tutorial e 20% no de validação)
c) Verifique em um teste, se o erro é o mesmo com os dois primeiros conjuntos (quanto é o mesmo?) então o modelo é estável e pode ser executado, se não, podemos esquecê-lo. E procurar outros preditores, mudar a filtragem, etc.

2) A propósito, qual é a taxa de erro para o treinamento/validação/testes a serem realizados? 15/20/20% ou talvez 5/10/15%? ou outro?

3) Eu não entendo bem porque é que é recomendado misturar exemplos de treino? Nós vamos processar cada exemplo de qualquer maneira.

 
elibrarius:

A propósito, qual é o nível de erro no treinamento/validação/teste a que se deve aspirar? 15/20/20% ou talvez 5/10/15% ou outro?

Anteriormente, sim, algo do género.

Quanto ao erro, depende das especificidades. Se, digamos, o MO ou NS determinar a entrada numa troca, então 50% de erro pode ser suficiente. Por exemplo, em uma negociação bem sucedida você obtém uma média de 2-3p de lucro, e em uma fracassada 1p de perda. Neste caso, 0,5 não é uma má probabilidade.

 
Yuriy Asaulenko:

O anterior, sim, de alguma forma.

Quanto ao erro, depende das especificidades. Se, digamos, o MO ou NS determinar a entrada numa troca, então 50% de erro pode ser suficiente. Por exemplo, em uma negociação bem sucedida você obtém uma média de 2-3p de lucro, e em uma fracassada 1p de perda. Neste caso, 0,5 não é uma má probabilidade.

0,5 parece ser muito pequeno... Que valores você deve tentar alcançar na prática (não alguns outros problemas NS, mas para negociação)?
Posso querer aprender até 10%, mas se este número for irrealista, estarei perdendo meu próprio tempo e tempo de CPU. Digamos - qual é o melhor erro que você conseguiu e a que nível é possível parar e não procurar melhorias?
 
elibrarius:
0,5 pode ser um pouco pequeno demais... E que valores devo procurar? Quais posso realmente alcançar na prática (não algumas outras tarefas NS, mas para negociar)?
Posso querer aprender até 10%, mas se este número for irrealista, estarei perdendo meu próprio tempo e tempo de CPU. Digamos - qual é o melhor erro que você conseguiu e a que nível você pode parar e não buscar melhorias?

0,5 não é suficiente? Só podes estar a brincar comigo.) Eu já dei este exemplo: o jogador de poker tem 1/9-1/6 de probabilidade de ganhar, e bons jogadores estão sempre no preto.

E todos os meus sistemas funcionavam a ~0,5 de probabilidade, e estavam sempre no plus. Tanto quanto eu sei, muitos TS trabalham com probabilidade próxima de 0,5 - foi mencionado na conferência de auto-negociação, em particular.

"Caso contrário, quero treinar até 10%, mas se for um número irrealista" - se real ou irrealista depende da tarefa específica. Por exemplo, eu treinei NS para a travessia de MACs - por isso é quase 100% confiável)).

 
Yuriy Asaulenko:

0,5 não é suficiente? Só podes estar a brincar comigo.) Eu já dei este exemplo: o jogador de poker tem 1/9-1/6 de probabilidade de ganhar, e bons jogadores estão sempre no preto.

E todos os meus sistemas funcionavam a ~0,5 de probabilidade, e estavam sempre no plus. Tanto quanto eu sei, muitos TS trabalham com probabilidade próxima de 0,5 - foi mencionado na conferência de auto-negociação, em particular.

"Caso contrário, quero treinar até 10%, mas se for um número irrealista" - se real ou irrealista depende da tarefa específica. Por exemplo, eu tenho ensinado NS a cruzar MAs - por isso é quase 100% confiável)).

É verdade, você pode fazer isso sem qualquer previsão (50%), você só precisa tomar a parada maior que a parada. Na verdade você não pode prever nada, ninguém sabe para onde o preço irá no Forex, só os iniciantes, os marionetistas sabem.

 
Vasily Perepelkin:

Na verdade é impossível prever qualquer coisa, ninguém sabe para onde o preço irá no mercado forex, só os iniciantes, os marionetistas sabem disso.

Na verdade, é possível. Não acho que seja possível usar 0,5 com previsão e takeaway mais alto que stop, não é o mesmo que 50/50 e se Deus quiser). - isto é, sem uma previsão. Estamos a atirar uma moeda completamente diferente)).
 
elibrarius:

1) Eu entendo corretamente o significado de dividir o conjunto de dados em treinamento, validação e teste:?

a) aprender com um treinador
b) verifique o erro no de validação, se for muito maior que no de treinamento, vá para o passo 1 até que o erro seja o mesmo (quanto é o mesmo - 5% do erro total? Por exemplo, 15% no tutorial e 20% no de validação)
c) Verifique em um teste, se o erro é o mesmo com os dois primeiros conjuntos (quanto é o mesmo?) então o modelo é estável e pode ser executado, se não, podemos esquecê-lo. E procurar outros preditores, mudar a filtragem, etc.

2) A propósito, qual é a taxa de erro para o treinamento/validação/testes a serem realizados? 15/20/20% ou talvez 5/10/15%? ou outro?

3) Eu não entendo bem porque é que é recomendado misturar exemplos de treino? Nós vamos processar cada exemplo de qualquer maneira.


1) Nem tudo e isto é fundamental.

Levamos um grande ficheiro. Dividam-na em duas partes desiguais.

A parte maior é dividida como você descreveu. Recebemos os erros que devem ser aproximadamente iguais.

Depois disso, verificamos o modelo na segunda parte do arquivo. O erro nesta parte novamente não deve ser muito diferente.

Esta é a prova mais importante da falta de perobucidade (overfitting).


A magnitude do erro? Este é um tipo de constante que deriva do conjunto de preditores que podem ser reduzidos ajustando-se ao tipo do modelo.


Por exemplo.

Se você tem os quatro erros em torno de 35%, então, selecionando um modelo, Deus proíbe que você reduza o erro para 30%.


PS.

Um erro de menos de 10% é um sinal claro de excesso de treino. Se você tiver tal erro, você deve checar cem vezes.

 

Encontrei uma paragem antecipada com secção de validação no ALGLIB:

Treinamento da rede neural usando parada antecipada (algoritmo base - L-BFGS com regularização).
...
O algoritmo pára se o erro do conjunto de validação aumentar por um longo período de
ou o tamanho do passo é pequeno o suficiente (há tarefa onde
conjunto de validação pode diminuir por toda a eternidade). Em qualquer caso, a solução
devolvido corresponde ao mínimo de erro do conjunto de validação.

A julgar pelo código, ele não compara erros nas seções de treinamento e validação, mas procura por erros mínimos na seção de validação. E pára se não encontrar uma melhor após 30 iterações, ou se todas as iterações tiverem passado.

Mas não tenho a certeza se este método é melhor/mais preciso do que o habitual. A menos que o número de ciclos de treino seja aumentado várias vezes...

Isto é o que nós temos:

Erro médio no treinamento (80%) =0,535 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Erro médio na seção de validação (20%) =0,298 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Planta completa (treinamento + plano de validação):
Erro de aprendizagem médio=0,497 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Erro médio na secção de teste (20%) =0,132 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6

Parece que houve um ajuste na trama de validação. O teste é geralmente bem sucedido, mas não foi em treinamento e não foi comparado, provavelmente apenas uma coincidência.
Este f conta conjuntos, e há uma divisão de 2/3 e tudo se mistura entre os dois lotes, vou tentar fazer o mesmo...
Baralhei-o:

Erro médio na área de treinamento (60%) =0,477 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Erro médio na secção de validação (40%) =0,472 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Planta completa (treinamento + plano de validação):
Erro de aprendizagem médio=0,475 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Erro médio na seção de teste (20%) =0,279 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6

Devido à mistura, o erro é nivelado nas seções de treinamento e validação.

Algo me parece errado, pois em verdadeiras barras de comércio vão na sua própria ordem, e não se misturam com as de uma hora e um dia atrás.
E se a "natureza" do mercado mudar, significa que temos de reaprender ou procurar novos modelos NS.

 
Yuriy Asaulenko:
É realmente possível. 0,5 com previsão e tomada não é o mesmo que 50/50 com a vontade de Deus)) - isto é, sem uma previsão. Estamos a atirar ao ar uma moeda completamente diferente)).
Se abrirmos aleatoriamente e tomarmos um stop loss 2 vezes mais do que, por exemplo, e pronto, teremos um lucro estatístico, por exemplo 100 negócios com 10 pontos de lucro e 100 com 5 pontos de perda, como resultado temos 500 pontos de lucro, não precisamos de qualquer previsão.
 
SanSanych Fomenko:


1) Nem tudo e é fundamental.

Levamos um grande ficheiro. Dividam-na em duas partes desiguais.

Divida a parte maior da forma como descreveu. Recebemos os erros, que devem ser mais ou menos iguais.

Depois disso, o modelo é verificado na segunda parte do arquivo. O erro nesta parte novamente não deve ser muito diferente.

Esta é a prova mais importante da falta de penas (sobreajustamento).

Quatro parcelas acabam por sair? Treinamento/validação/teste1/teste2 ?

Quantos ciclos de treinamento/validação você precisa fazer? Não vi nenhuma informação sobre isso em lado nenhum... 1 ciclo no total? - e logo a seguir aprovamos ou alteramos algo no conjunto de preditores ou no esquema de rede? Mais precisamente para N ciclos de treino ser-nos-á mostrado um dos melhores.