Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 521
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Leia sobre as funções de ativação de neurônios. Você pode fornecer os valores que quiser para a saída, mas a função de ativação errada irá produzir valores negativos. Esta é normalmente uma tangente hiperbólica. A função de perda de softmax não funcionará corretamente com ela. Embora muito dependa da biblioteca e da implementação da função de perda. Por exemplo, no Tensorflow em neurônios de saída para função de perda, o softmax não deve ter nenhuma função de ativação. E para o uso correto da rede treinada, devemos adicionar a ativação do softmax. Eunão trabalhei como ALGLIB, talvez eles tenham feito algo errado. Em qualquer caso, uma rede treinada com softmax não deve dar valores negativos.
Softmax não é uma função de perda. Você está confuso com alguma coisa. Softmax é uma função de ativação da camada de saída para tarefas de classificação. Não confunda o homem, ele próprio ficará confuso.
Você usa Alglib por sua própria conta e risco. Faz tudo no Rstudio.
Boa sorte.
Este é o caso quando uma das turmas tem um número muito grande de exemplos de formação em comparação com as outras turmas. Por exemplo, 2000 exemplos de treino para comprar e apenas 1000 para vender. O neurônio pode sempre retornar "Comprar" e, neste caso, estará certo 66% do tempo. É melhor tornar igual o número de exemplos de treinamento de cada classe.
Classe NA - irá prevalecer, desde 50% nas trocas frequentes, até 99% nas raras trocas. Mas eu tenho o terceiro, e tenho a classe 1 de NA encravada.
Estou me perguntando por que os artigos não usam exemplos de treinamento para momentos em que nada precisa ser feito? Porque não fazer nada nos momentos certos também é importante, geralmente esses momentos são quando o negócio vai levar a uma perda.
Sem aprender a fazer uma pausa, NS pode começar a negociar e perder o depósito.
Softmax não é uma função de perda. Você está confuso com alguma coisa. Softmax é uma função de ativação da camada de saída para tarefas de classificação. Não confundas o homem, ele vai confundir-se a si próprio.
Você usa Alglib por sua própria conta e risco. Faz tudo no Rstudio.
Boa sorte.
Para ser mais preciso, a função de perda é chamada de "softmax crossentropy". Sim, eu não fui claro.
Softmax não é uma função de perda. Você está confuso com alguma coisa. Softmax é uma função de ativação da camada de saída para tarefas de classificação. Não confundas o homem, ele vai confundir-se a si próprio.
Você usa Alglib por sua própria conta e risco. Faz tudo no Rstudio.
Boa sorte.
A propósito, é interessante que a partir do exemplo acima
Comprar Vender NA
0.10302356, 0.01091621, 0.88606040
0.09705416, 0.01083526, 0.89211080
0.08283979, 0.12548789, 0.79167247
1.02522414,-0.00119697,-0.02403573
0.09498582, 0.01529507, 0.88971917
1.01878489,-0.00111341,-0.01767998
0.07906346, 0.05960769, 0.86132762
0.00201949, 0.00497863, 0.99300189
A soma de cada linha é 1. (os 4 primeiros verificados). Isto é, alguma analogia com softmax, onde a soma (isto é, probabilidade) também = 1. Mas isto foi feito por NS - regressão com saída linear.
Classe NA - irá prevalecer, desde 50% nas trocas freqüentes, até 99% nas trocas pouco freqüentes.
É muito perigoso distribuir as aulas a um professor ao acaso, como levar algum indicador para criar aulas para professores e depois substituir alguns dos valores por NA também.
Mesmo que existam bons preditores e boas aulas para ensinar e o modelo tenha bons resultados em novos dados - qualquer tentativa de ajustar os valores das aulas pode quebrar completamente o modelo. Encontrar indicadores para preditores e um indicador para as classes que manterão o modelo rentável em novos dados é um grande sucesso.
Eu recomendaria duas aulas simples para começar - a cor do próximo bar (ou seja, comprar/vender). Pegue pelo menos 10000 exemplos de treinamento (barra de história), treine o modelo e avalie o resultado nas próximas 10000 barras da história (que eram desconhecidas pelo modelo durante o treinamento). Quando conseguimos encontrar preditores que manterão a precisão do modelo no mesmo nível em dados antigos e novos - você pode começar a selecionar um indicador para as aulas de um professor. E vai acontecer que o modelo não vai manter a precisão dos novos dados só por tomar o primeiro indicador disponível. Por que alguns indicadores podem servir para um professor e outros não - eu não sei.
Há algo de errado com a versão SOFTMAX da NS no ALGLIB. Todas as respostas são distorcidas para a primeira saída (para mim é COMPRAR).
Nos mesmos dados NS - a regressão com 3 saídas (com ativação linear) dá resultados mais confiáveis:
Comprar Vender NA
0.10302356, 0.01091621, 0.88606040
0.09705416, 0.01083526, 0.89211080
0.08283979, 0.12548789, 0.79167247
1.02522414,-0.00119697,-0.02403573
0.09498582, 0.01529507, 0.88971917
1.01878489,-0.00111341,-0.01767998
0.07906346, 0.05960769, 0.86132762
0.00201949, 0.00497863, 0.99300189
em >0.5 dará respostas plausíveis.
A propósito, a Lesa também inclinou na 1ª saída.
Não sei, funcionou bem para mim, sem enviesamentos. Eu gostei do softmax.
E sim, como eu me lembro para softmax racionei as entradas de 0 a 1
As florestas em geral funcionam sempre claramente para a regressão e classificação. Às vezes recebo sinais apenas para comprar ou vender, mas depois cavei uma amostra de treino e houve alguma inclinação nos exemplos, por isso não admira (porque eles se retraem em certos intervalos e não sei de antemão o que pode aparecer na amostra). Além disso, não se esqueça que o andaime não pode extrapolar. Você tem que ensinar todos os futuros valores conhecidos.
A propósito, nem parece ser necessário:
Pré-processamento de dados
Para melhorar a velocidade de convergência e a qualidade das soluções ALGLIB implementa o pré-processamento de dados (padronização do conjunto de treinamento). O pré-processamento é implicitamente realizado para o usuário - antes de os dados serem transferidos para a rede neural, eles são automaticamente pré-processados, o resultado da rede é transferido para a rede.
Aqui está uma verificação NS na tabela de multiplicação
Eu fiz o mesmo para os andaimes e funciona bem.
Não sei, funcionou bem para mim, sem enviesamentos. Eu gostei do softmax.
E sim, até onde me lembro para softmax racionei as entradas de 0 a 1
As florestas em geral funcionam sempre claramente para a regressão e classificação. Às vezes recebo sinais apenas para comprar ou vender, mas depois cavei uma amostra de treino e houve alguma inclinação nos exemplos, por isso não admira (porque se retraem em certos intervalos e não sei de antemão o que pode aparecer na amostra). Além disso, não se esqueça que os andaimes não podem extrapolar. Você precisa de treinar todos os valores conhecidos no futuro.
Eu não normalizei as entradas, você confirmou abaixo que não é necessário. Eu verifiquei a tabela de multiplicação (mas não é um softmax).
Se o softmax funcionou para você - eu tentarei girá-lo novamente, talvez funcione (embora na regressão de dados absolutamente a mesma regressão com lin. outputs funcione como deveria).