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

 
Alexey Burnakov:
Nós não perdemos nada. Então teremos uma sequência de mudanças de agrupamento. Em pontos de transição de cluster para cluster pode-se construir uma matriz quadrada e mudar o MO comercial: entrar compra no cluster n, fechar posição no cluster m. Então a mesma matriz para vender. Todas as variantes estão apenas a passar. E você pode variar os parâmetros de agrupamento e olhar para o resultado no loop.
isto é interessante
 
Dr. Trader:

Você provavelmente tem parâmetros diferentes para criar florestas em r e guizo, então os resultados são diferentes. No próprio guizo você também pode mudar o número de árvores e variáveis.

E você tem 34% de erro nos dados de treinamento e 3% de erro nos dados de validação? Algo está errado com os dados do teste, ou de alguma forma já existia nos dados de treinamento, ou você tem um conjunto de dados muito pequeno e isso aconteceu dessa forma.

não, em todas as fases há um pequeno erro

e R tem um grande em todas as fases )

Os parâmetros são os mesmos, e com qualquer parâmetro tal lacuna não é possível.

 
Como diabos você anexa um arquivo aqui? Ou ele não anexa ou congela...
 
mytarmailS:

E outra pergunta para o R

biblioteca(kza)

DAT <- rnorm(1000)

KZP <- kzp(DAT,m=100,k=3)

resumo(KZP,dígitos=2,top=3)


como posso tirá-lo do "resumo" http://prntscr.com/bhtlo9 para que eu possa trabalhar com estes dígitos

Eu também tenho esses problemas. Normalmente basta executar atributos(KZP) para obter uma lista de variáveis disponíveis e, em seguida, apenas passar por elas, por exemplo, KZP$window, etc. e encontrar os números certos. Mas aqui estes números são gerados na função Sumário em si e em nenhum lugar salvo.

Aqui está um código fonte: https://cran.r-project.org/web/packages/kza/index.html, você precisa fazer algo como isto:

summary.kzp <- function(object, digits = getOption("digits"), top=1, ...)
{
        cat(" Call:\n ")
        dput(object$call, control=NULL)

        M=object$window
        if (is.null(object$smooth_periodogram)) {       d<-object$periodogram } else { d<-object$smooth_periodogram }
        
        mlist<-rep(0,top)
        for (i in 1:top) {
                mlist[i]<-which.max(d)
                d[which.max(d)]=NA                      
        }

   cat("\n Frequencies of interest:\n")
   print((mlist-1)/M, digits=digits, ...)

    cat("\n Periods of interest:\n")
    print(M/(mlist-1), digits=digits, ...)
    invisible(object)
}
 

ObrigadoDr.Trader, é tão bom ter alguém para perguntar sobre este R felpudo).

Eu entendi o problema com o guizo, o guizo também recolhe os dados usando "sample()", deveria ser feito? Eu obtive os mesmos resultados com a amostragem e R, mas o truque é que os novos dados virão em uma amostra de cada vez, eu não posso recolher amostras de todos eles

e acontece que, se você samplear a amostra inteira, os resultados são incríveis em todos os períodos, inclusive fora da amostra, mas quando você alimenta os dados reais, tudo é o mesmo de sempre

A questão é se eu preciso mesmo da amostragem?

 

Sim, você deveria. Com a amostra, o rattle divide os dados de treinamento em vários grupos por linhas (as linhas são distribuídas aleatoriamente em três tabelas, na proporção de 75%/15%/15%). De um arquivo de entrada, são obtidas 3 tabelas. As colunas não são afetadas, elas serão as mesmas em todas as tabelas.

tabela train - será usada para treinar o modelo.

tabelas validate e test - necessárias para controlar o treinamento.

Suponha que você pegue os dados do último ano e queira treinar o modelo com eles para negociar os próximos meses. O treinamento em si ocorrerá somente na tabela de treinamento. Depois disso, você pode testar o modelo na segunda ou terceira tabela, contando os erros. Se o modelo for treinado corretamente, os erros em todas as três tabelas serão aproximadamente iguais, apesar do fato de o modelo ter sido treinado usando apenas a primeira tabela.

Isso é fácil de verificar em uma floresta aleatória. Quase todos os conjuntos de dados podem apresentar 0% de erro na tabela treinada. Mas se você verificar o mesmo modelo nas tabelas de teste e validação, provavelmente verá um erro de 50%. Isso significa que o modelo está treinado em excesso e, ao transferi-lo para o mt5, você drenará gradualmente seu depósito.
Mas se você pegar o arquivo RData postado anteriormente com o exemplo de SanSanych, a floresta na tabela de treinamento apresentará um erro de cerca de 30%. É digno de nota, mas nas tabelas de validação e teste o erro permanecerá praticamente o mesmo, apesar do fato de o modelo não ter visto os dados dessas tabelas durante o treinamento. Esse modelo pode ser transferido com segurança para o mt5 e negociado.

Se você simplesmente pegar todos os dados disponíveis sem amostragem, treinar o modelo, ver 0% de erro e se alegrar - então, na negociação real, tudo será muito ruim.

 
Dr. Trader:

Sim, você tem. Com amostra - o guizo divide os dados de treinamento em vários grupos por linhas (as linhas são alocadas aleatoriamente em três tabelas, a uma razão de 75%/15%/15%). Ele produz 3 tabelas a partir de um arquivo de entrada. As colunas não são afetadas por isso, elas serão as mesmas em todas as tabelas.

Mesa de treinamento - o treinamento modelo será baseado nele

Validar e testar tabelas - para controlar a formação

Suponha que pegamos os dados do último ano e queremos ensinar o modelo a negociar durante os próximos meses usando-os. O treinamento em si só acontecerá na mesa do trem. Depois disso, você pode testar o modelo em uma segunda ou terceira tabela, contando seus erros. Se o modelo for treinado corretamente, os erros nas três tabelas serão aproximadamente iguais, apesar de ter sido treinado usando apenas a primeira tabela.

É fácil de verificar uma floresta aleatória. Praticamente qualquer conjunto de dados pode dar um erro em uma tabela de 0%. Mas, tendo verificado o mesmo modelo, mas com tabelas de teste e validação - provavelmente veria 50% de erro aí. Isto significa que o modelo é requalificado, e ao movê-lo para o mt5 você vai gradualmente perder o seu depósito.
Mas se você pegar o arquivo RData com o exemplo do SanSanych, você verá um erro de 30% na mesa do trem. Notavelmente, o erro nas tabelas de validação e teste permanecerá praticamente o mesmo, apesar de o modelo não ter visto os dados dessas tabelas durante o treinamento. Você pode facilmente transferir este modelo para o mt5 e negociar.

Se você simplesmente pegar todos os dados disponíveis sem amostragem, treinar o modelo, ver 0% de erro e ficar feliz, será muito ruim no comércio real.

Eu vejo o seu ponto de vista, mas a sátira é que o erro é pequeno em amostras dos três, mas é grande em dados não amostrados.

Envie-me seu e-mail em uma mensagem privada Eu lhe enviarei os dados, verei por você mesmo ou me ensinará a anexar um arquivo porque ou eu não anexo ou o fórum fica pendurado em geral ao tentar anexar

 

De qualquer forma, treinei o meu modelo (floresta aleatória), o resultado não é satisfatório, mas não é re-treinado como

1) o meu alvo é um ziguezague com um joelho de 0,5%.

2) preditores - níveis e castiçais - 100 coisas no total (sem osciladores e outros indicadores)

3) O modelo em si não foi otimizado, eu apenas coloquei 3 divisões, o número de árvores é de 200 unidades

4) A propósito, se passarmos por PrunePredictors (seleção de recursos), então apenas 3 preditores foram descartados de todos os 100, restando o total de 97 preditores

a amostra é dividida em duas partes, um treinamento e um teste, o teste é a 5ª parte do treinamento

Na parte da formação: erro de modelo 33


No teste: erro do modelo 32%


Os dados não são amostrados, porque eu ainda não entendo esta besta.

Agora podemos pensar sobre o grupo

 

Fórum: como inserir uma foto

Esta é a única maneira de a imagem permanecer no fórum para sempre e todos os usuários, mesmo depois de um ano, podem ver a imagem e entender do que se tratava.

A única forma de manter uma imagem num fórum para sempre é que todos os utilizadores a vejam e compreendam, mesmo depois de um ano.

 
mytarmailS:

A questão não é por que existem resultados diferentes em R e chocalhar nos mesmos dados e no mesmo modelo

Segunda pergunta: para que serve testar um modelo "fora de amostra" no guizo se ele mostra o inferno

Você entendeu mal o meu posto.