Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 57
![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
Bem, a sustentabilidade é alcançada através da prevenção de potencial sobre-aprendizagem. E uma amostra desequilibrada de treinamento é uma causa potencial de sobretreinamento para classes de baixa representatividade. Afinal de contas, o algoritmo de aprendizagem tenta agir como entende, e não como precisa, a fim de aumentar a generalização. Se a amostra for desequilibrada, irá minimizar os erros de aprendizagem nas aulas menos representativas, porque os exemplos para estas aulas são poucos e é mais fácil de os distribuir em vez de os generalizar. Depois de tal aprendizagem não há nada que surpreenda que fora da amostra de treinamento os erros do algoritmo ocorram mais provavelmente em aulas que não sejam representativas.
O raciocínio é simples. Na vida real, ninguém permitirá que você tire uma amostra mista contendo observações do futuro para avaliar a qualidade da negociação real. Todas as observações serão feitas após o dia X.
Assim, ao retirar uma amostra mista na validação (sem separação de datas), o usuário está superestimando a métrica de qualidade na validação. É isso mesmo. Então haverá surpresas desagradáveis.
O que é que o pensamento tem a ver com isso? O pensamento é subjectivo. Pensar pode ser tanto correcto como deliberadamente errado. Porque a imaginação é problematicamente limitada. O critério da verdade é sempre a experiência.
Pegue duas amostras de treinamento, uma pré-balanceada e a outra altamente desequilibrada. Treinar o algoritmo em ambas as amostras e medir a capacidade de generalização nas peças de teste. Depois compare a capacidade de generalização. O que dá a melhor capacidade de generalização será o critério da verdade.
Caso contrário, estaremos a pensar e a especular ao ponto de perder o nosso pulso. Afinal de contas, o desacordo nasce no debate, a verdade nasce na experiência.
Por isso, acabei com a discussão do tema da amostra de formação equilibrada. Caso contrário, este coro pode continuar indefinidamente, pois existem duas opiniões diferentes e continuar a medir quem de nós pensa mais correctamente é uma perda de tempo.
Bem, a estabilidade é conseguida evitando o excesso de treino. E uma amostra de treinamento desequilibrado é um motivo potencial para o excesso de treinamento para classes de baixa representação. Afinal de contas, o algoritmo de aprendizagem tenta agir como entende, e não como precisa, a fim de aumentar a generalização. Se a amostra for desequilibrada, irá minimizar os erros de aprendizagem nas aulas menos representativas, porque os exemplos para estas aulas são poucos e é mais fácil de os distribuir em vez de os generalizar. Após tal aprendizagem, não é surpreendente que fora da amostra de treinamento, os erros do algoritmo nas aulas menos representativas sejam os mais prováveis de ocorrer.
1. Em classes desequilibradas, é uma confusão: o erro entre classes pode divergir por várias vezes. E qual é a certa?
2. Está longe de ser sempre possível equilibrar as classes.
O seu exemplo com BUY|SELL. Quando o número de observações (barras) for superior a 3000, a diferença de desequilíbrio será de 10% no máximo 20%. É bem possível equilibrar.
E aquio Dr.Trader sugeriu a variável alvo "Pivot/Not Pivot". Acho que ele a tirou da ZZ. Assim, nesta variável alvo, as classes desequilibradas irão variar por ordens de magnitude. Se aumentarmos ao máximo a aula, podemos ensinar em uma amostra tão equilibrada? A mim parece-me que não.
Então não é assim tão simples com o equilíbrio.
Pela minha própria experiência:
Eu não consegui encontrar outras soluções.
Vou largar tudo e tornar-me adepto do R para poder jogar números com uma cara séria na cara.
Até agora não reparei em ti a jogar aos números, mas não sei da cara - não consigo vê-la.
O que é que o pensamento tem a ver com isso? O pensamento é subjectivo. Pensar pode ser tanto correcto como deliberadamente errado. Porque a imaginação é problematicamente limitada. O critério da verdade é sempre a experiência.
Pegue duas amostras de treinamento, uma pré-balanceada e a outra altamente desequilibrada. Treinar o algoritmo em ambas as amostras e medir a capacidade de generalização nas peças de teste. Depois compare a capacidade de generalização. O que dá a melhor capacidade de generalização será o critério da verdade.
Caso contrário, estaremos a pensar e a especular ao ponto de perder o nosso pulso. Afinal, a discordância nasce na discussão e a verdade nasce na experiência.
E por isso vou parar de discutir o tópico de equilibrar mais a amostra de treino. Caso contrário, este colívar pode continuar indefinidamente, pois existem duas opiniões diferentes e continuar a medir a qual de nós pensa correctamente - uma perda de tempo.
Quero dizer uma coisa, tu queres dizer outra. Eu digo que você precisa dividir o conjunto estritamente por datas. E tu estás a falar de equilíbrio.
Desculpa, mas já disse que não vejo qualquer utilidade em continuar este refrão. Eu já tentei explicar as falhas de equilíbrio com exemplos. Provavelmente não é muito convincente, pois não? Não sou bom em retórica negra, por isso não posso simplesmente transformar negro em branco com uma cara séria. Por isso, não sejas muito duro comigo.
É mais provável que você esteja tentando me convencer de que está supostamente tentando "forçar" você a equilibrar a realidade? Mas eu não tenho essa intenção. Sei que a realidade é, infelizmente para mim, muitas vezes desequilibrada e as oportunidades de equilibrá-la nem sempre estão disponíveis. Por isso, nos meus cargos tentei explicar-vos que não é necessário tentar equilibrar a realidade fora da amostra de treino, mas é necessário e suficiente para equilibrar a amostra de treino, para que o modelo obtido a partir dele não seja enviesado na direcção de aulas altamente representativas. Ao dividir a amostra geral em partes por datas, também é muitas vezes impossível alcançar um equilíbrio. É por isso que eu equilibro a amostra de treinamento não por datas, mas por igual representatividade das aulas nela.
Não vou responder a mais perguntas sobre o equilíbrio do conjunto de treino. Então este refrão já se arrastou.
Desculpa, mas já disse que não vejo qualquer utilidade em continuar este refrão. Eu já tentei explicar as falhas de equilíbrio com exemplos. Provavelmente não é muito convincente, pois não? Não sou bom em retórica negra, por isso não posso simplesmente transformar negro em branco com uma cara séria. Por isso, não sejas muito duro comigo.
É mais provável que você esteja tentando me convencer de que está supostamente tentando "forçar" você a equilibrar a realidade? Mas eu não tenho essa intenção. Sei que a realidade é, infelizmente para mim, muitas vezes desequilibrada e as oportunidades de equilibrá-la nem sempre estão disponíveis. Por isso, nos meus cargos tentei explicar-vos que não é necessário tentar equilibrar a realidade fora da amostra de treino, mas é necessário e suficiente para equilibrar a amostra de treino, para que o modelo obtido a partir dele não seja enviesado na direcção de aulas altamente representativas. Ao dividir a amostra geral em partes por datas, também é muitas vezes impossível alcançar um equilíbrio. Portanto, eu equilibro a amostra de treinamento não por datas, mas por igual representatividade de classes nela.
Eu não vou responder mais perguntas sobre o equilíbrio do conjunto de treino. Então, já estamos a entrar num desentendimento.
Quero saltar para a completude e reiterar a minha opinião acima do fio condutor.
1. Você precisa ter dois conjuntos de dados: o segundo é uma extensão do primeiro no tempo.
2. Equilibrar o primeiro conjunto de dados. Nós definitivamente equilibramo-lo.
3. Nós dividimos aleatoriamente o primeiro conjunto de dados em três partes: treinamento, teste e validação.
4. Obtemos um erro no segundo conjunto, que é uma continuação do primeiro conjunto no tempo.
Se o erro em todos os QUATRO conjuntos for aproximadamente o mesmo, então o modelo não é retrabalhado. Se o erro tiver um valor decente, podemos ir mais longe em segurança, ou seja, passar através do testador.
Se houver uma diferença significativa (mais de 30%), então o conjunto preditor original leva à reconversão do modelo e, por experiência pessoal, substituir o tipo de modelo não pode corrigir nada, em termos de reconversão. Precisamos de nos livrar dos preditores de ruído. Pode facilmente acontecer que NÃO existam quaisquer preditores de ruído entre os preditores.