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

 
Maxim Dmitrievsky #:
Não precisamos desse tipo de desenvolvimento, precisamos de uma garagem com Lexus.

Sem entender o que é o mercado, não haverá nem mesmo um pacote de macarrão.

 
mytarmailS #:

Sem entender o que é o mercado, não haverá nem mesmo um pacote de macarrão.

O FF é uma garagem com Lexus, não sei como explicar de outra forma.
 
Maxim Dmitrievsky #:
O FF é uma garagem com um Lexus, não sei como explicar de outra forma.

Não preciso explicar para você, sou um menino grande.

Você tem uma opinião, eu tenho outra.

Minha opinião é minha experiência, você não pode mudá-la com palavras.

 
mytarmailS #:

Não preciso explicar, sou um menino grande.

Você tem uma opinião, eu tenho outra.

Minha opinião é minha experiência, as palavras não podem mudá-la.

O mais triste é que não é uma opinião, é um fato.
Você pode desenhar um demônio careca em vez de FF e fazer com que ele se encaixe.
 
Maxim Dmitrievsky #:
O mais triste é que isso não é uma opinião, é um fato.
Você pode desenhar um demônio careca em vez de um FF e ajustá-lo para caber nele

Você nem se dá conta do tipo de merda que está dizendo agora))))

Como se o otimizador do MT não fosse um otimizador e não otimizasse o FF

 
mytarmailS #:

você nem se dá conta da merda que está dizendo agora).

Como se o otimizador do MT não fosse um otimizador e não otimizasse o FF.

O que isso tem a ver com o MT? Você já ouviu falar em otimização da produção? Quando você tem processos interdependentes reais, mas precisa melhorar a eficiência.

A mesma coisa acontece com a otimização de sl/tp para um modelo acabado.

E você está criando um demônio careca a partir de uma pilha de lixo usando o FF.

Realmente, vamos terminar, isso é um absurdo, como se eu estivesse falando com um estudante.
 

O livro TORCH para R finalmente foi lançado.

Se houver algum futuro assistente de DL, vá em frente.

 
Rorschach #:

Você já tentou essa abordagem ? (procure a seção Interpretação do modelo mais ou menos na metade da página)

Obrigado pelo link - ele será muito útil quando eu finalmente começar a fazer experimentos em python!

Presumo que esse seja um novo estilo de apresentação do livro? Há algum outro material?

Para responder à pergunta - ao fazer a seleção de folhas, nada foi usado diretamente.

Eu não trabalhei com uma floresta de árvores de decisão, portanto, não usei várias técnicas em princípio, como sugerido. No entanto, usei algo semelhante, por exemplo, a estimativa da variância do erro de uma folha específica foi usada para determinar o peso de uma folha no conjunto.

A importância dos preditores na estimativa de divisão também está presente no CatBoost, mas no gradient bousting você precisa ajustar sua compreensão dos indicadores, pois as árvores são dependentes e sequenciais. A métrica em si é bastante controversa, pois avalia a construção da árvore e o princípio da ganância não funciona bem para todos os dados. No entanto, usei a média das pontuações de cem modelos em 8 intervalos de amostragem para selecionar preditores para os modelos CatBoost - em média, esse método melhorou os resultados do treinamento. O experimento foi publicado em detalhes neste tópico.

Não tentei a correlação de frequência na versão proposta - inventei meu próprio método de agrupar preditores binários e folhas, o que também permite descartar preditores binários e folhas muito semelhantes. Acho que a implementação em python deve ser executada mais rapidamente, pois meu algoritmo não é o ideal - deve ser comparado para compreensão.

A ideia de selecionar preditores altamente alterados parece interessante, eu deveria tentar. Mas, na verdade, no experimento que descrevi acima, fiz isso simplesmente não usando esses preditores para o treinamento final. Seria melhor entender como detectar a tendência de mudança de uma variável com base em seu comportamento histórico, bem como o momento em que as flutuações se tornaram irreversivelmente deslocadas para uma mudança no intervalo médio da distribuição de probabilidade do preditor. Temos ideias no papel - precisamos codificá-las.

Avaliar a contribuição de cada preditor para a solução de uma determinada linha como uma visualização é divertido, mas para um grande número de preditores de modelo é de pouca utilidade. No entanto, fiz algo semelhante - publiquei um cluster de um deles aqui no tópico - em que destaquei a importância da resposta de lítio por cor e quantas folhas do modelo foram usadas para prever cada linha. Descobriu-se que a maioria das folhas deixa de ser ativada no modelo, ou seja, os padrões deixam de ocorrer - poucas pessoas sequer pensam nisso.

Perdi alguma ideia que foi expressa lá? Se sim, escreva especificamente - eu as descreverei ou não.

Não entendi a ideia de codificar recursos categóricos para uso em redes neurais - há uma referência ao material anterior.

 
Slava #:

Já entendi. As funções de perda funcionam com matrizes e com vetores. Nesse ponto, não terminamos (não adicionamos o parâmetro do eixo)

Ou seja, no seu exemplo, você precisa resolvê-lo linha por linha.

Obrigado por sua atenção

Ok, eu entendo. Mas há um problema com vetores, em particular com LOSS_BCE:

double bce(const vector &truth, vector &pred)
{
   double sum = 0;
   pred.Clip(DBL_EPSILON, 1 - DBL_EPSILON);
   const int n = (int)truth.Size();
   for(int i = 0; i < n; ++i)
   {
      sum += truth[i] * MathLog(pred[i]) + (1 - truth[i]) * MathLog(1 - pred[i]);
   }
   return sum / -n;
}

void OnStart()
{
   vector actual_values = {0, 1, 0, 0, 0, 0};
   vector predicted_values = {.5, .7, .2, .3, .5, .6};     // 0.53984624 - keras (correct answer)
   Print(actual_values.Loss(predicted_values, LOSS_BCE));  // 0.6798329317196582 - mql5 API
   Print(bce(actual_values, predicted_values));            // 0.5398464220309535 - custom
}

Novamente, o resultado da API não corresponde ao resultado esperado.

 
Aleksey Vyazmikin #:

Obrigado pelo link - será muito útil quando eu finalmente começar a fazer experimentos em python!

Presumo que esse seja um novo estilo de apresentação do livro? Há algum outro material?

Para responder à pergunta - ao fazer a seleção de folhas, nada foi usado diretamente.

Não trabalhei com uma floresta de árvores de decisão, portanto não usei várias técnicas em princípio, como sugerido. No entanto, usei algo semelhante, por exemplo, usei a estimativa da variância de erro de uma folha específica para determinar o peso de uma folha no conjunto.

A importância dos preditores na estimativa de divisão também está presente no CatBoost, mas no gradient bousting você precisa ajustar sua compreensão dos indicadores, pois as árvores são dependentes e sequenciais. A métrica em si é bastante controversa, pois avalia a construção da árvore e o princípio da ganância não funciona bem para todos os dados. No entanto, usei a média das pontuações de uma centena de modelos em 8 intervalos de amostragem para selecionar preditores para os modelos CatBoost - em média, esse método melhorou os resultados do treinamento. O experimento foi publicado em detalhes neste tópico.

Não tentei a correlação de frequência na versão proposta - inventei meu próprio método de agrupar preditores binários e folhas, o que também permite descartar preditores binários e folhas muito semelhantes. Acho que a implementação em python deve ser executada mais rapidamente, pois meu algoritmo não é o ideal - deve ser comparado para compreensão.

A ideia de selecionar preditores altamente alterados parece interessante, eu deveria experimentá-la. Mas, na verdade, no experimento que descrevi acima, fiz isso simplesmente não usando esses preditores para o treinamento final. Seria melhor entender como detectar a tendência de mudança de uma variável com base em seu comportamento histórico, bem como o momento em que as flutuações se tornaram irreversivelmente deslocadas para uma mudança no intervalo médio da distribuição de probabilidade do preditor. Tenho ideias no papel - preciso codificá-las.

Avaliar a contribuição de cada preditor para a solução de uma determinada linha na forma de uma visualização é divertido, mas para um grande número de preditores de modelo é de pouca utilidade. No entanto, fiz algo semelhante - publiquei um cluster dele aqui no tópico - em que destaquei a importância da resposta de lítio por cor e quantas folhas do modelo foram usadas para prever cada linha. Descobriu-se que a maioria das folhas deixa de ser ativada no modelo, ou seja, os padrões deixam de ocorrer - poucas pessoas sequer pensam nisso.

Perdi alguma ideia que foi expressa lá? Se sim, escreva especificamente - eu as descreverei ou não.

Não entendi a ideia de codificar recursos categóricos para uso em redes neurais - há uma referência ao material anterior.

Isso é facilmente automatizado e funciona sem intervenção humana

Mostrei um algoritmo semelhante no último artigo.

Em essência, trata-se de filtrar os erros do modelo e colocá-los em uma classe separada "não negociar", melhor por meio do segundo modelo, que aprende a separar os grãos do joio.

E somente os grãos permanecem no primeiro modelo.

É o mesmo que com as regras de árvore, mas de lado. Mas as regras devem ser roubadas e comparadas umas com as outras, e aí o resultado é um TC refinado.

Por exemplo, a primeira iteração de seleção de grãos do joio (à esquerda da linha pontilhada vertical - OOS):

E aqui está a 10ª: