Дмитрий: E como você determina a "melhor" combinação?
Crossvalidação com 5 iterações. Mas não o habitual que seleciona exemplos aleatoriamente, mas um adaptado às séries temporais - com isolamento de exemplos por tempo. O blog descreve tudo isso.
O valor médio da métrica alvo sobre as 5 faltas de teste indica a melhor combinação de parâmetros de treinamento.
Em seguida, o modelo é treinado na amostra de treinamento completo e validado em outra amostra.
Estou me perguntando o que mais eu deveria mudar no experimento. Tentou mudar a lógica de indexação de casos para a validação cruzada, sem melhorias.
Pensando em levar os insumos a uma forma discreta.
Outra opção é descer de um modelo complexo para um modelo mais simples. Um modelo complexo é uma floresta de decisão acelerada. O mais simples são os modelos de regressão linear acelerada, onde os parâmetros de regularização também podem ser ajustados.
Mas a questão é que melhorar a precisão de 55% para 60% apenas mudando algo em termos de design é difícil.
Os modelos de comitês de construção também darão, na melhor das hipóteses, uma fração de uma melhora percentual. Demora mais tempo para desenvolver e treinar a arquitetura.
Há uma idéia de olhar para os preditores importantes e se eles estão frequentemente na borda da janela (724 minutos), então você poderia estender a janela para 1440 minutos por dia. Mas então o número de amostras será reduzido pela metade, porque as tomarei em 1440 +- aumentos aleatórios de prazo.
Também é possível prever outra meta, por exemplo, a quebra do nível de preços (Take Profit / Stop Loss) ou "direção" geral, por exemplo, o coeficiente de regressão linear.
Tudo leva tempo. Mas eu definitivamente dedicarei mais dois meses à experiência. Talvez algo venha à tona.
Алексей Тарабанов: Você acha que o número de preditores que você usa é insuficiente?
Não sei ao certo.
Ou os preditores disponíveis não trazem informações suficientes,
Ou as relações mudam muito com o tempo e a generalização diminui
Ou os próprios preditores mudam os parâmetros de distribuição ao longo do tempo.
Para o primeiro ponto, mais pode ser acrescentado, e a seleção dos melhores é sempre possível.
Nos outros pontos, o processamento de dados pode ajudar, mas não cem por cento.
Estou inclinado a uma combinação de todos esses fatores. A questão é que ainda na validação cruzada a precisão é de 55-60% e cai à medida que o horizonte de previsão aumenta. Portanto, os preditores também não dão muitas informações sobre a amostra de treinamento.
Isso se eu visse uma alta precisão no teste e ele cai acentuadamente na validação, com o experimento corretamente construído, de modo que as dependências são não-estacionárias.
Ou os preditores disponíveis não trazem informações suficientes,
Ou as relações mudam muito com o tempo e a generalização diminui
Ou os próprios preditores mudam os parâmetros de distribuição ao longo do tempo.
Para o primeiro ponto, mais pode ser acrescentado, e a seleção dos melhores é sempre possível.
Nos outros pontos, o processamento de dados pode ajudar, mas não cem por cento.
Estou inclinado a uma combinação de todos esses fatores. A questão é que ainda na validação cruzada a precisão é de 55-60% e cai à medida que o horizonte de previsão aumenta. Portanto, os preditores também não dão muitas informações sobre a amostra de treinamento.
Isso se eu visse uma alta precisão no teste e ele cai drasticamente na validação, com a experiência construída corretamente, então as dependências não são estacionárias.
Ou os preditores disponíveis não trazem informações suficientes,
Ou as relações mudam muito com o tempo e a generalização diminui
Ou os próprios preditores mudam os parâmetros de distribuição ao longo do tempo.
Para o primeiro ponto, mais pode ser acrescentado, e a seleção dos melhores é sempre possível.
Nos outros pontos, o processamento de dados pode ajudar, mas não cem por cento.
Estou inclinado a uma combinação de todos esses fatores. A questão é que ainda na validação cruzada a precisão é de 55-60% e cai à medida que o horizonte de previsão aumenta. Portanto, os preditores também não dão muitas informações sobre a amostra de treinamento.
Isso se eu visse que há alta precisão no teste e ela cai drasticamente na validação, com o experimento construído corretamente, então as dependências são não-estacionárias.
Eu já escrevi, vou dizer novamente.
Realizei o trabalho de seleção de preditores várias vezes, inclusive sob demanda. Os resultados são apresentados abaixo
Portanto.
Vamos pegar alguns palpitadores, não menos de 50, e melhor que uma centena.
Todos os conjuntos de preditores que lidei (isto é, não pretendo generalizar) podem ser divididos em duas partes:
a parte dos preditores que são relevantes para a variável-alvo
a parte dos preditores que nada tem a ver com a variável alvo - ruído
Escrevo "relação" com muito cuidado e de forma bastante deliberada não utilizo nenhum termo.
Exemplo de preditores:
ondulação - NÃO está relacionada com a variável-alvo ZZ
O desvio de preço da raspka é relevante para a variável-alvo ZZ
Favor observar que estou especificando a variável alvo. Para a outra variável-alvo, pode ser o contrário
O problema de ter esses dois grupos de preditores no conjunto original de preditores é que as ferramentas padrão para determinar a IMPORTÂNCIA não funcionam. Portanto, algumas ferramentas são necessárias, e eu as desenvolvi e utilizo, o que permite a peneirada grosseira dos preditores de ruído. Deve-se notar que não há aqui nenhuma ambiguidade. O algoritmo quantifica separadamente para preditores válidos e nominais. Menos de 2 (algum valor relativo) é ruído, com certeza. Entre 2 e 3: pode ser usado, mas é melhor não....
O problema com o ruído é que os preditores relevantes para os preditores de ruído não são relevantes para eles. Por exemplo, a floresta aleatória, ada, algoritmos svm, por alguma razão, constroem o modelo mais sobre estes preditores de ruído.
Depois de ter selecionado os preditores ruidosos, e em meus conjuntos havia cerca de 80%(!), pegamos o resto da lista de preditores e a ela começamos a aplicar as ferramentas de R para determinar a importância das variáveis. O número real de preditores usados para treinar o modelo é cerca da metade dos preditores de ruído NOT, ou seja, cerca de 10% do conjunto original.
Eu determino a importância dos preditores na janela. À medida que a janela se move, a lista de preditores a partir dos 20% básicos muda o tempo todo. Isto é, 12-15 preditores são usados para construir o modelo, mas eles são diferentes conforme a janela se move seguindo a citação.
Qual é a razão?
Bem, a questão é que a limpeza do conjunto de preditores de ruído leva à criação de modelos que NÃO são retrabalhados.
Em números.
Em um conjunto completo de preditores é possível construir modelos com erro de previsão de 3%-5%! E quaisquer algoritmos que dividem a amostra em partes, os chamados "out-of-sample" - OOV, confirmam este resultado. Isto é muito bem visto no raatle, que sempre divide a amostra original em partes e está muito satisfeito com os resultados.
Mas.
Se a amostra inicial contém preditores de ruído, então se pegarmos um "fora da amostra" real, isto é, por exemplo, a amostra para treinamento de 01.06.2015 a 01.01.2016, e depois calcularmos na amostra após 1 de janeiro, podemos facilmente obter um erro de 50% e 70% ao invés de 3%-5%! Além disso, quanto mais longe de 1 de janeiro, pior será o resultado.
MODELO É REQUALIFICADO
Se eu limpar o conjunto original de preditores de ruído, os resultados são os seguintes e os mesmos para floresta aleatória, ada SVM assim como vários outros modelos - ou seja, o modelo não resolveu nada em meus casos, os resultados são: o erro de predição é de cerca de 30% em qualquer conjunto. Aplicando as ferramentas de previsão da importância do R, podemos reduzir ainda mais o erro para cerca de 25%. Não foi possível melhorar este resultado para a variável-alvo ZZ.
Fiz o trabalho de selecionar os preditores várias vezes, inclusive em comissão. Os resultados são apresentados abaixo
Portanto.
Vamos pegar alguns palpitadores, não menos de 50, e de preferência mais de uma centena.
Todos os conjuntos de preditores que lidei (isto é, não pretendo generalizar) podem ser divididos em duas partes:
a parte dos preditores que são relevantes para a variável-alvo
a parte dos preditores que nada tem a ver com a variável alvo - ruído
Escrevo "relação" com muito cuidado e de forma bastante deliberada não utilizo nenhum termo.
Exemplo de preditores:
ondulação - NÃO está relacionada com a variável-alvo ZZ
O desvio de preço da raspka é relevante para a variável-alvo ZZ
Favor observar que estou especificando a variável alvo. Para a outra variável-alvo, pode ser o contrário
O problema de ter esses dois grupos de preditores no conjunto original de preditores é que as ferramentas padrão para determinar a IMPORTÂNCIA não funcionam. Portanto, algumas ferramentas são necessárias, e eu as desenvolvi e utilizo, o que permite a peneirada grosseira dos preditores de ruído. Deve-se notar que não há aqui nenhuma ambiguidade. O algoritmo quantifica separadamente para preditores válidos e nominais. Menos de 2 (algum valor relativo) é ruído, com certeza. Entre 2 e 3: pode ser usado, mas é melhor não....
O problema com o ruído é que os preditores relevantes para os preditores de ruído não são relevantes para eles. Por exemplo, os algoritmos de floresta aleatória, ada e svm, por alguma razão, constroem o modelo mais sobre estes preditores de ruído.
Depois de ter selecionado os preditores ruidosos, e em meus conjuntos havia cerca de 80%(!), pegamos o resto da lista de preditores e a ela começamos a aplicar as ferramentas de R para determinar a importância das variáveis. O número real de preditores usados para treinar o modelo é cerca da metade dos preditores de ruído NOT, ou seja, cerca de 10% do conjunto original.
Eu determino a importância dos preditores na janela. À medida que a janela se move, a lista de preditores a partir dos 20% básicos muda o tempo todo. Isto é, 12-15 preditores são usados para construir o modelo, mas eles são diferentes conforme a janela se move seguindo a citação.
Qual é a razão?
Bem, a questão é que a limpeza do conjunto de preditores de ruído leva à criação de modelos que NÃO são retrabalhados.
Em números.
Em um conjunto completo de preditores é possível construir modelos com erro de previsão de 3%-5%! E quaisquer algoritmos que dividem a amostra em partes, os chamados "out-of-sample" - OOV, confirmam este resultado. Isto é muito bem visto no raatle, que sempre divide a amostra original em partes e está muito satisfeito com os resultados.
Mas.
Se a amostra inicial contém preditores de ruído, então se pegarmos um "fora da amostra" real, ou seja, por exemplo, a amostra para treinamento de 01.06.2015 a 01.01.2016, e depois calcularmos sobre a amostra após 1º de janeiro, podemos facilmente obter um erro de 50% e 70% ao invés de 3%-5%! Além disso, quanto mais longe de 1 de janeiro, pior será o resultado.
MODELO É REQUALIFICADO
Se eu limpar o conjunto original de preditores de ruído, os resultados são os seguintes e os mesmos para a floresta aleatória, ada SVM assim como vários outros modelos - ou seja, o modelo não resolveu nada em meus casos, os resultados são os seguintes: o erro de predição é de cerca de 30% em qualquer conjunto. Aplicando as ferramentas de previsão da importância do R, podemos reduzir ainda mais o erro para cerca de 25%. Não foi possível melhorar este resultado para a variável-alvo ZZ.
Obrigado.
Estou vendo o que você está pensando. De tudo isso, vi uma possibilidade de calcular a importância dos preditores em várias partes da amostra de treinamento, depois comparar as listas e selecionar duplicatas.
Não posso dizer nada sobre a seleção manual, prefiro usar a máquina imediatamente.
SZZ: Vou tentar aplicar meu método homebrew, baseado na função de informação mútua, além da importância das variáveis da floresta de decisão. Mostrarei os resultados mais tarde.
O problema com o ruído é que os preditores relativos ao ruído obstruem os preditores não relacionados a ele. Por exemplo, os algoritmos de floresta aleatória, ada e svm, por alguma razão, constroem o modelo mais sobre estes preditores de ruído.
Pergunta: a SVM é responsável pelas interações entre as variáveis ou é apenas a soma dos componentes individuais ponderados?
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
E como você determina a "melhor" combinação?
O problema básico é o da lista de preditores. Tendo justificado a lista de preditores, podemos passar para o resto.
Obrigado. Estou inclinado a acrescentar mais preditores também.
Você acha que o número de preditores que você usa é insuficiente?
Não sei ao certo.
Não sei ao certo.
Eu já escrevi, vou dizer novamente.
Realizei o trabalho de seleção de preditores várias vezes, inclusive sob demanda. Os resultados são apresentados abaixo
Portanto.
Vamos pegar alguns palpitadores, não menos de 50, e melhor que uma centena.
Todos os conjuntos de preditores que lidei (isto é, não pretendo generalizar) podem ser divididos em duas partes:
Escrevo "relação" com muito cuidado e de forma bastante deliberada não utilizo nenhum termo.
Exemplo de preditores:
Favor observar que estou especificando a variável alvo. Para a outra variável-alvo, pode ser o contrário
O problema de ter esses dois grupos de preditores no conjunto original de preditores é que as ferramentas padrão para determinar a IMPORTÂNCIA não funcionam. Portanto, algumas ferramentas são necessárias, e eu as desenvolvi e utilizo, o que permite a peneirada grosseira dos preditores de ruído. Deve-se notar que não há aqui nenhuma ambiguidade. O algoritmo quantifica separadamente para preditores válidos e nominais. Menos de 2 (algum valor relativo) é ruído, com certeza. Entre 2 e 3: pode ser usado, mas é melhor não....
O problema com o ruído é que os preditores relevantes para os preditores de ruído não são relevantes para eles. Por exemplo, a floresta aleatória, ada, algoritmos svm, por alguma razão, constroem o modelo mais sobre estes preditores de ruído.
Depois de ter selecionado os preditores ruidosos, e em meus conjuntos havia cerca de 80%(!), pegamos o resto da lista de preditores e a ela começamos a aplicar as ferramentas de R para determinar a importância das variáveis. O número real de preditores usados para treinar o modelo é cerca da metade dos preditores de ruído NOT, ou seja, cerca de 10% do conjunto original.
Eu determino a importância dos preditores na janela. À medida que a janela se move, a lista de preditores a partir dos 20% básicos muda o tempo todo. Isto é, 12-15 preditores são usados para construir o modelo, mas eles são diferentes conforme a janela se move seguindo a citação.
Qual é a razão?
Bem, a questão é que a limpeza do conjunto de preditores de ruído leva à criação de modelos que NÃO são retrabalhados.
Em números.
Em um conjunto completo de preditores é possível construir modelos com erro de previsão de 3%-5%! E quaisquer algoritmos que dividem a amostra em partes, os chamados "out-of-sample" - OOV, confirmam este resultado. Isto é muito bem visto no raatle, que sempre divide a amostra original em partes e está muito satisfeito com os resultados.
Mas.
Se a amostra inicial contém preditores de ruído, então se pegarmos um "fora da amostra" real, isto é, por exemplo, a amostra para treinamento de 01.06.2015 a 01.01.2016, e depois calcularmos na amostra após 1 de janeiro, podemos facilmente obter um erro de 50% e 70% ao invés de 3%-5%! Além disso, quanto mais longe de 1 de janeiro, pior será o resultado.
MODELO É REQUALIFICADO
Se eu limpar o conjunto original de preditores de ruído, os resultados são os seguintes e os mesmos para floresta aleatória, ada SVM assim como vários outros modelos - ou seja, o modelo não resolveu nada em meus casos, os resultados são: o erro de predição é de cerca de 30% em qualquer conjunto. Aplicando as ferramentas de previsão da importância do R, podemos reduzir ainda mais o erro para cerca de 25%. Não foi possível melhorar este resultado para a variável-alvo ZZ.
Eu já escrevi, vou dizer novamente.
Fiz o trabalho de selecionar os preditores várias vezes, inclusive em comissão. Os resultados são apresentados abaixo
Portanto.
Vamos pegar alguns palpitadores, não menos de 50, e de preferência mais de uma centena.
Todos os conjuntos de preditores que lidei (isto é, não pretendo generalizar) podem ser divididos em duas partes:
Escrevo "relação" com muito cuidado e de forma bastante deliberada não utilizo nenhum termo.
Exemplo de preditores:
Favor observar que estou especificando a variável alvo. Para a outra variável-alvo, pode ser o contrário
O problema de ter esses dois grupos de preditores no conjunto original de preditores é que as ferramentas padrão para determinar a IMPORTÂNCIA não funcionam. Portanto, algumas ferramentas são necessárias, e eu as desenvolvi e utilizo, o que permite a peneirada grosseira dos preditores de ruído. Deve-se notar que não há aqui nenhuma ambiguidade. O algoritmo quantifica separadamente para preditores válidos e nominais. Menos de 2 (algum valor relativo) é ruído, com certeza. Entre 2 e 3: pode ser usado, mas é melhor não....
O problema com o ruído é que os preditores relevantes para os preditores de ruído não são relevantes para eles. Por exemplo, os algoritmos de floresta aleatória, ada e svm, por alguma razão, constroem o modelo mais sobre estes preditores de ruído.
Depois de ter selecionado os preditores ruidosos, e em meus conjuntos havia cerca de 80%(!), pegamos o resto da lista de preditores e a ela começamos a aplicar as ferramentas de R para determinar a importância das variáveis. O número real de preditores usados para treinar o modelo é cerca da metade dos preditores de ruído NOT, ou seja, cerca de 10% do conjunto original.
Eu determino a importância dos preditores na janela. À medida que a janela se move, a lista de preditores a partir dos 20% básicos muda o tempo todo. Isto é, 12-15 preditores são usados para construir o modelo, mas eles são diferentes conforme a janela se move seguindo a citação.
Qual é a razão?
Bem, a questão é que a limpeza do conjunto de preditores de ruído leva à criação de modelos que NÃO são retrabalhados.
Em números.
Em um conjunto completo de preditores é possível construir modelos com erro de previsão de 3%-5%! E quaisquer algoritmos que dividem a amostra em partes, os chamados "out-of-sample" - OOV, confirmam este resultado. Isto é muito bem visto no raatle, que sempre divide a amostra original em partes e está muito satisfeito com os resultados.
Mas.
Se a amostra inicial contém preditores de ruído, então se pegarmos um "fora da amostra" real, ou seja, por exemplo, a amostra para treinamento de 01.06.2015 a 01.01.2016, e depois calcularmos sobre a amostra após 1º de janeiro, podemos facilmente obter um erro de 50% e 70% ao invés de 3%-5%! Além disso, quanto mais longe de 1 de janeiro, pior será o resultado.
MODELO É REQUALIFICADO
Se eu limpar o conjunto original de preditores de ruído, os resultados são os seguintes e os mesmos para a floresta aleatória, ada SVM assim como vários outros modelos - ou seja, o modelo não resolveu nada em meus casos, os resultados são os seguintes: o erro de predição é de cerca de 30% em qualquer conjunto. Aplicando as ferramentas de previsão da importância do R, podemos reduzir ainda mais o erro para cerca de 25%. Não foi possível melhorar este resultado para a variável-alvo ZZ.
Obrigado.
Estou vendo o que você está pensando. De tudo isso, vi uma possibilidade de calcular a importância dos preditores em várias partes da amostra de treinamento, depois comparar as listas e selecionar duplicatas.
Não posso dizer nada sobre a seleção manual, prefiro usar a máquina imediatamente.
SZZ: Vou tentar aplicar meu método homebrew, baseado na função de informação mútua, além da importância das variáveis da floresta de decisão. Mostrarei os resultados mais tarde.
O problema com o ruído é que os preditores relativos ao ruído obstruem os preditores não relacionados a ele. Por exemplo, os algoritmos de floresta aleatória, ada e svm, por alguma razão, constroem o modelo mais sobre estes preditores de ruído.