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

 
Alexey Burnakov:
Yuri, obrigado. Vou pensar sobre isso.

Nós temos uma pergunta. Como você selecionou os preditores?

Eu não os mato de qualquer maneira. Isso é o que a VMR faz. O século 21 tem mais de 16 anos e todo o trabalho rude deve ser feito por sistemas automatizados, não por humanos.

Yury Reshetov:

... Mais especificamente, a VMR reduz o hiperespaço ao reduzir alguns dos preditores.

Há até um exemplo concreto onde a VMR reduz automaticamente um dos preditores. Ver Previsão de falências

E nesta página você pode até tentar um exemplo clássico simples de como o algoritmo faz: Redução de preditores não-informativos e vetores não-sustentáveis (amostras) em um conjunto de treinamento

Прогнозируем банкротства - Векторная машина Решетова
  • sites.google.com
Авторы: Myoung-Jong Kim, Ingoo Han опубликовали статью под названием: «The discovery of experts decision rules from qualitative bankruptcy data using genetic algorithms». Судя по оригинальной авторской статье, выборка предназначалась для генетических алгоритмов, т. к. предполагалось, что для других алгоритмов она не по зубам. Однако, вынужден...
 
Tenho de experimentar o teu algoritmo na prática. Não consigo imaginar porque funcionaria tão bem.
 
Yury Reshetov:

Eu não os abate de forma alguma. Isso é o que a VMR faz. O século 21 tem mais de 16 anos e todo o trabalho árduo deve ser feito por sistemas automatizados, não por humanos.


Na minha experiência, que NÃO estou absolutizando, os algoritmos de seleção de preditores incorporados aos modelos são os mais ineficientes. Os numerosos pacotes e funções separadas também não estão disponíveis para a seleção de preditores.

Porque é que eu digo isto?

Para mim há um teste básico simples e de negociação.

Aprenda o modelo. Nós testamos em uma amostra que está fora da amostra de treinamento pelo tempo e comparamos os erros. Em primeiro lugar, os erros não podem estar em torno de 50% - este não é de todo um modelo ensinável. Consideramos erros de menos de 40%. Se na amostra de treinamento e validação esses erros forem aproximadamente iguais, então o modelo não é retrabalhado. Se estes erros são significativamente diferentes e podem divergir por vezes, especialmente se o erro de treino for inferior a 10%, então o modelo está sobre-treinado. A razão para a reciclagem é que existem preditores de ruído que o algoritmo de aprendizagem do modelo NÃO recicla.

Até agora ainda não encontrei conjuntos de preditores que não incluam ruído. E todos os algoritmos de selecção de preditores não conseguiam lidar com este ruído, nem a ideia de embrutecimento (regularização) dos modelos!

Portanto, a sua opinião está errada, e dado o excesso de formação de modelos é perigoso no real, que é sempre "fora de amostra".

 
Alexey Burnakov:

Eu proponho o problema número um. Eu afixarei a sua solução mais tarde. SanSanych já o viu, por favor não me diga a resposta.

Introdução: Para construir um algoritmo de negociação, você precisa saber quais fatores serão a base para prever o preço, ou a tendência, ou a direção de abertura do comércio. Selecionar tais fatores não é uma tarefa fácil, e é infinitamente complicado.

Em anexo está um arquivo com um conjunto de dados csv artificial que eu fiz.

Os dados contêm 20 variáveis prefixadas com input_, e uma saída de variável mais à direita.

A variável de saída depende de algum subconjunto de variáveis de entrada(o subconjunto pode conter de 1 a 20 entradas).

Tarefa: com a ajuda de qualquer método (aprendizagem da máquina) seleccionar variáveis de entrada, com a ajuda das quais é possível determinar o estado das variáveis de saída nos dados existentes.

Algum outro problema com a classificação binária? Porque eu cheguei a um hullabaloo quando tanto os resultados como o método de geração de amostras já estavam dispostos.

Eu gostaria de participar e testar uma nova versão do meu classificador binário ao mesmo tempo.

 
IvannaSvon:
Yuri, por favor, responde a uma mensagem privada.

O guião está no anexo.

O conjunto de dados foi retirado do EURUSD H1

Arquivos anexados:
 
Yury Reshetov:

Algum outro problema com a classificação binária? Porque eu cheguei a um hullabaloo, quando eles já postaram tanto os resultados quanto o método de geração de amostras.

Eu gostaria de participar e experimentar uma nova versão do meu classificador binário ao mesmo tempo.

Há sempre tarefas :)

Há dois arquivos no arquivo - train.csv e test.csv. A última coluna nos arquivos é o resultado obrigatório da classificação binária. Precisamos usar o arquivo train.csv para treinar o modelo, depois aplicar o modelo ao test.csv. Os resultados já conhecidos para o test.csv não podem ser usados de antemão, eles são apenas necessários para a verificação final. Os dados são retirados de eurusd d1, classe 0 ou 1 - o preço cai ou sobe na próxima barra. Se o modelo prevê corretamente o resultado para test.csv pelo menos em 6 de cada 10 casos, então você pode tentar negociar com ele em Forex. Se previsto corretamente em 7 de cada 10 casos (e acima) - é o caminho certo para o graal, temos que tentar treinar e testar o modelo em outros anos e meses, e se tudo será o mesmo - então muito bom.

Eu levei em conta erros do passado, agora os arquivos são baseados no delta da barra em vez de valores brutos. E tudo é normalizado por linhas, dado o mesmo tipo de preditores em uma linha e não por colunas.

Eu próprio tento usar a genética para enumerar as variantes do preditor. Em conjunto de preditores treino o modelo dos componentes principais com duas validações cruzadas e devolvo o erro de classificação como valor de aptidão para a genética. Quando a genética atinge seu limite, eu pego o conjunto final de preditores e treino neurônios novamente com duas validações cruzadas. O erro de previsão final nos dados de teste é de cerca de 40%. Aqui começa a má notícia - dependendo dos parâmetros do neurônio (número de pesos internos, número de iterações entre as validações cruzadas) o erro final varia, ele vai aleatoriamente em torno de 30%-50%. Uma vez fiquei feliz por ter conseguido apenas 30%, mas afinal não consigo controlá-lo, e só consigo uma média de 40%.
A questão lógica é por que você precisa de um modelo de componente principal no meio? Só não tem parâmetros de treinamento, dados de alimentação, obter modelo, calcular erro de validação cruzada nos dados de teste. Se você usar uma rede neural para determinar a função da adequação da genética, o tempo de treinamento aumenta muito, além de não estar claro quais parâmetros de treinamento usar para a própria rede neural.

Eu também portei o modelo VMR do Yuri para R, no apêndice. Levei meus dados com preditores de ruído, recebi erro nos dados de treinamento 30%, e erro nos dados de teste 60%, ou seja, não aconteceu nenhum milagre, o modelo foi requalificado. É possível que tenha havido um bug na migração do código, no entanto, se você vir alguma inconsistência, por favor me avise. Ao treinar o modelo eu não tinha memória suficiente para uma máquina de núcleo grande, usei um meio ( parâmetro do kernelTrickMode <- 2). Eu não podia esperar por um milhão de iterações por coluna, usei 10000 (iterPerColuna <- 10000).

Arquivos anexados:
 
Dr. Trader:

Há sempre tarefas :)

Há dois arquivos no arquivo - train.csv e test.csv.

Infelizmente, o meu arquivo RAR não desfaz as malas. IMHO é melhor embalar tudo em ZIP. Há desempacotadores para arquivos ZIP em todas as plataformas. Além disso, muitos usuários não usam o RAR.



Dr. Trader:
Eu também portei o modelo VMR do Yuri para o R, no aplicativo. Eu peguei meus dados com preditores de ruído e recebi 30% de erro nos dados de treinamento e 60% de erro nos dados de teste, ou seja, não aconteceu nenhum milagre e o modelo foi requalificado. Provavelmente um bug na migração do código, no entanto, se você ver alguma inconsistência, por favor me avise.

Eu vou definitivamente investigar isso. Mas não conheço o R suficientemente bem.

A porta foi feita manualmente ou através de algum tipo de autómato?

 
Outra pessoa poderia tentar o principal método componente para a rejeição de ruído, mas prevê com milhares de observações, em vez da forma como oDr.Trader faz?
 
Dr. Trader:


Ver mensagem privada.
 
SanSanych Fomenko:
Talvez outra pessoa tente o método componente principal de rejeição de ruído, mas os preditores têm milhares de observações, não como oDr.Trader?

Porque não tentas tu?

ps. Eu tentei há muito tempo e não consegui nada de interessante com isso.

No decorrer da minha pesquisa tenho alguns resultados modestos mas interessantes, eu gostaria de compartilhar, mas neste fórum "maravilhoso" não posso adicionar uma foto ou um arquivo para anexar, talvez quem sabe qual é o problema?