Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 2974
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
E vai estar vazio de qualquer maneira
Bem, sim, se você não quiser.
É triste que o aprendizado de máquina com direcionamento não funcione e que o aprendizado único não funcione....
remover recursos simétricos para reduzir a tendência.
Por exemplo, substitua os incrementos por incrementos absolutos (volatilidade).
às vezes ajuda
remover características simétricas para reduzir o viés
Por exemplo, substituir os incrementos por incrementos absolutos (volatilidade)
Às vezes, isso ajuda.
Minha ideia é obter um modelo que selecione segmentos quânticos estáveis por meio de vários recursos estatísticos. Todos são bem-vindos a participar desse projeto.
Por que você está tão obcecado com esses quanta?
Não há nada de intelectual neles. Simplesmente divida, por exemplo, 10.000 linhas em 100 partes, ou seja, classifique e conte 100 linhas de baixo para cima; se as seguintes coincidirem com a centésima linha (ou seja, se repetirem), então as remeteremos para a primeira parte. Se as duplicatas acabarem, comece a digitar as linhas no segundo quantum - as próximas 100 + duplicatas, se houver. E assim por diante, até ficarmos sem linhas.
Até mesmo uma árvore contém ordens de magnitude de informações mais úteis (porque é treinada em dados) do que esses segmentos quânticos (apenas 100 cadeias de caracteres classificadas com duplicatas).
Por que você está tão preocupado com esses analistas? ....
Não há nada de intelectual neles. Basta dividir, por exemplo, 10.000 linhas em 100 partes, ou seja, classificar e contar 100 linhas a partir da base; se as próximas coincidirem com a centésima linha (ou seja, repetições), então as remeteremos à primeira parte. Se as duplicatas acabarem, comece a digitar as linhas no segundo quantum - as próximas 100 + duplicatas, se houver. E assim por diante, até que as linhas se esgotem.
Até mesmo uma árvore contém ordens de magnitude de informações mais úteis (porque é treinada em dados) do que esses segmentos quânticos (apenas 100 linhas classificadas com duplicatas).
Os segmentos quânticos são os tijolos a partir dos quais o modelo CatBoost é construído. Inicialmente, pelo que entendi, dessa forma foi resolvida a questão da economia de memória e, em geral, da aceleração dos cálculos. Um ganho colateral é a redução das variantes de combinações de indicadores de previsão, um passo dado no sentido de reduzir a multicolinearidade, o que, em geral, contribui para a velocidade e a qualidade do treinamento. Além disso, em parte, o problema do desvio de dados é resolvido.
Também vejo um estímulo para outra coisa: explorar o potencial da estimativa probabilística em dados de segmentos quânticos. Se pegarmos seu método proposto de quantificação (na verdade, é melhor imaginar que o objetivo do processo é filtrar grupos homogêneos - análogo - agrupamento) e dividirmos os dados em 20 segmentos quânticos iguais de acordo com o número de exemplos, descobriremos que em cada segmento quântico restam apenas 5% dos dados. Por padrão, o CatBoost cria 254 separadores - 255 segmentos. Em seguida, são criadas árvores a partir desses segmentos. Supõe-se que todos os segmentos quânticos sejam igualmente úteis, e sua interposição deve ser determinada pelo particionamento do grupo em subgrupos, pelo método de construção de uma árvore de decisão. O particionamento é feito tanto pela raiz quanto por outros preditores. Mesmo se usarmos uma árvore, quantos dos exemplos originais da classe positiva "1" permanecerão na lista final após 6 divisões? Devemos levar em conta que a seleção da divisão é baseada na métrica do número cumulativo de divisões quânticas. Levando em conta o próprio método de construção da árvore, torna-se óbvio que, quanto mais qualitativo for o particionamento do preditor em segmentos quânticos, menos divisões serão necessárias para atingir a mesma precisão na folha. Observo que toda divisão é uma hipótese, e todas as hipóteses não podem ser verdadeiras. Portanto, se fizermos a divisão levando em conta o potencial de um segmento quântico de pertencer mais a uma das classes, reduziremos o número de divisões para obter precisão semelhante e, portanto, reduziremos o número de hipóteses potencialmente falsas (divisões). Além disso, se pudermos dividir imediatamente o preditor em três regiões globais - duas para associação de classe e uma para incerteza -, os modelos serão, em média, menores e com melhor desempenho estatístico - espero que também mais robustos.
Por exemplo, vamos imaginar que o preditor seja o oscilador RSI - ações significativas dos participantes ocorrem em torno dos níveis de 70, 50, 30 - tudo além disso - digamos, não afeta a tomada de decisão dos participantes do mercado. Então, é razoável construir uma tabela quântica de forma a separar esses três valores do restante da população. Caso contrário, uma das divisões terá aleatoriamente mais exemplos no segmento quântico de associação de classe e você obterá uma regra falsa em uma hipótese falsa.
Você pode desenhar um gráfico de barras com pontuações de preditores quantificados e desenhar uma curva de probabilidades de associação à classe "1" para cada coluna. Se for mais provável que a curva seja uma linha reta, então eu colocaria esse preditor em um banco. Um bom preditor, em minha opinião, terá uma linha inclinada ou picos em algumas colunas.
Podemos dizer que, por meio da quantificação, estou procurando eventos discretos que influenciam a probabilidade de movimentação do preço.
A regra apenas dividirá
Há diferentes maneiras de criar uma tabela de quantificação. Acho que, de fato, você pode fazer isso por meio de um pacote pronto para uso que cria árvores em um único preditor com determinadas restrições na planilha sobre a porcentagem de exemplos. Não sei qual é esse pacote e como obter os dados no formato de que preciso.
O importante não é apenas o particionamento, mas encontrar critérios para avaliar essa divisão quântica que aumentará a probabilidade de que a associação de classe seja preservada nos novos dados.
Por que estou fazendo isso - porque essa é a chave para a criação de um modelo qualitativo.
Por que isso leva muito tempo - muitos experimentos e scripts de teste. Tenho um pouco de conhecimento sobre OpenCL e o código agora está parcialmente contado em uma placa de vídeo - isso leva tempo - tenho que estudar muitas coisas.
O importante não é apenas o particionamento, mas encontrar critérios para avaliar esse corte quântico que aumentará a probabilidade de que a associação de classe persista nos novos dados.
Você já olhou para o código no mesmo catbuster? Você o está usando. Ele não usa pacotes de terceiros. Mas essa é uma função tão pequena (é ainda mais simples do que a que descrevi, ela não muda o ponto de separação pelo número de duplicatas).
Escrevi comentários sobre o que aparece. A entrada é uma coluna classificada.
Como você pode ver, tudo é muito simples e não há nada de intelectual aqui - basta contar, por exemplo, 100 linhas e pronto.
Variantes um pouco mais complexas podem mudar para o número de duplicatas, e você também pode otimizar o tamanho dos quanta (por exemplo, se de 10.000 linhas 9.000 forem duplicadas, a função simples terá 11 quanta: 10 das primeiras 1.000 linhas e na 11ª as 9.000 duplicatas restantes, ou você pode dividir as primeiras 1.000 linhas em 99 quanta + 1 quantum com 9.000 duplicatas).
Mas eles também não têm nada de intelectual - a mesma contagem simples do número necessário de cadeias de caracteres é a base.
O original (há variantes mais complicadas) https://github.com/catboost/catboost/blob/3cde523d326e08b32caf1b8b138c2c5303dc52e5/library/cpp/grid_creator/binarization.cpp
P.s. A principal razão pela qual o próximo quantum não tem exatamente 100 cadeias de caracteres, mas 315 ou 88 ou 4121 não está em alguma fórmula super complicada (em que as cadeias de caracteres são combinadas de acordo com o poder preditivo, que você deseja usar para pesquisar os critérios de avaliação desse segmento qu ântico), mas simplesmente no número de duplicatas.Estude as funções desta página por uma semana e economize vários anos.
Você já deu uma olhada no código dos mesmos catbusters? Você o está usando. Ele não usa pacotes de terceiros. Mas essa é uma função tão pequena (é ainda mais simples do que a que descrevi, ela não muda o ponto de separação pelo número de duplicatas).
Escrevi comentários sobre o que aparece. A entrada é uma coluna ordenada.
É claro que dei uma olhada nisso. Além disso, estou disposto a pagar pelo trabalho de reprodução de todos os métodos de quantificação em MQL5. Até agora, as tentativas não foram bem-sucedidas. Você gostaria de tentar?
Como você pode ver, tudo é muito simples e não há nada intelectual aqui - basta contar, por exemplo, 100 linhas e pronto.
Você apresentou o método mais simples - sim, não é difícil.
Além disso, eu escrevi que existem métodos engenhosos de quantificação ou algo do gênero? Como isso contradiz o que escrevi?