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

 
mytarmailS:

O que você está fazendo(teste em uma "terceira" amostra) em termos de GMDH é chamado de "critério de potência preditiva".

Vejo que você é um bom especialista. Poderia dizer a essência da GMDH em algumas frases, para não matemáticos?

 
segredo:

Vejo que você é um bom especialista. Você poderia resumir MGUA em algumas frases, para não matemáticos?

Modelo de regressão com enumeração de características transformadas por diferentes núcleos (polinomial, estrias, o que quer que seja). O modelo mais simples com o menor erro é o preferido. Não poupa com o excesso de formação no mercado.

grosso modo, é um modelo de força bruta onde o mais simples é escolhido com base em critérios externos

é como o básico da aprendizagem de máquinas )

 
mytarmailS:

Por exemplo, a regressão do MSUA simplesmente ridiculariza a regressão do moderno algoritmo de floresta aleatória e impulsiona...

O reforço é melhor em tudo, se você preparar funcionalidades como para o MSUA, será melhor.

mas você não quer saber se você não sabe o que ensinar

 
segredo:

Vejo que você é um bom especialista. Você poderia colocar a essência de MGUA em algumas frases, para os não matemáticos?

Não sou perito de todo )) infelizmente....

Se de forma muito simples, aproximada e imprecisa, o princípio da MGUA é a auto-organização...


Por exemplo, nós temos um conjunto de atributos

x1,x2,x3.....x20...

a partir destes atributos, criamos um conjunto de modelos de candidatos

m1,m2,m3.....m10...

a partir destes modelos são seleccionados os melhores, e dos melhores são criados novos modelos, mais uma vez é feita uma selecção.... etc... e assim por diante, até que o erro nos novos dados (anteriormente desconhecido para o algoritmo) seja reduzido

O próprio algoritmo muda, torna-se mais complexo e auto-organiza-se... Um pouco como um algoritmo genético.

 
Maxim Dmitrievsky:

Um modelo de regressão com enumeração de características transformadas por diferentes núcleos (polinomial, estrias, o que quer que seja). O modelo mais simples com o menor erro é o preferido. Não poupa com o excesso de formação no mercado.

Grosseiramente falando, é um modelo brutal, onde o mais simples é escolhido com base em critérios externos.

Então eu não vejo nada de novo e original nesta metodologia.

 
mytarmailS:

os melhores modelos são selecionados a partir destes modelos, e os melhores são usados para criar novos modelos, novamente selecionando.... etc... e assim por diante, até que o erro nos novos dados (anteriormente desconhecido para o algoritmo) diminua

O próprio algoritmo muda, torna-se mais complexo e auto-organiza-se... É um pouco como um algoritmo genético.

Então eu não vejo matemática aqui, é mais trabalho cerebral, bem, e codificação. GA é uma coisa trivial.

Por que então todos correm com esta MGUA, escrevendo dissertações, para que seja impossível entendê-las, se dentro dela há alguma primitiva, intuitivamente compreensível desde o jardim-de-infância?

 
Maxim Dmitrievsky:

O reforço é melhor em tudo, se você preparar os recursos como para MGUA, será melhor.

mas não importa se você não sabe o que ensinar

Eu discordo...

Vamos fazer um teste rápido, a olho nu )


Criar quatro variáveis (aleatórias regulares) com 1000 elementos cada

z1 <- rnorm(1000)

z2 <- rnorm(1000)

z3 <- rnorm(1000)

z4 <- rnorm(1000)

criar uma variável alvo y como uma soma de todas as quatro

y <- z1+z2+z3+z4


vamos treinar o boosting e o mgua, nem mesmo para previsão, mas apenas para forçar a explicary

Dividi a amostra em três pedaços, um treino dois para o teste.


em verde MGUA

Em vermelho: Generalized Boosted Regression Modeling (GBM)

cinza são os dados originais

Lembre-se, o alvo é a soma elementar de todos os palpiteiros.

http://prntscr.com/rawx14

Como vemos, ambos os algoritmos têm lidado muito bem com a tarefa


agora torna a tarefa um pouco mais complicada

adicionar soma acumulada ou tendência aos dados

z1 <- cumsum(rnorm(1000))

z2 <- cumsum(rnorm(1000))

z3 <- rnorm(1000)

z4 <- rnorm(1000)

e mudar o alvo para a forma

y <- z1+z2+z3

por isso somamos dois preditores com uma tendência e um regular, e z4 acaba por ser um ruído porque não toma parte no alvo y

e assim obtemos o seguinte resultado

http://prntscr.com/rax81b

O nosso impulso é todo fodido, e MGUA não importa.


Consegui "matar" o MSUA apenas com este alvo selvagem.

y <- ((z1*z2)/3)+((z3*2)/z4)

E mesmo isso não é completamente, e quanto ao impulso? )))

http://prntscr.com/raxdnz


código para jogos

set.seed(123)
z1 <- cumsum(rnorm(1000))
z2 <- cumsum(rnorm(1000))
z3 <- rnorm(1000)
z4 <- rnorm(1000)

y <- ((z1*z2)/3)+((z3*2)/z4)

x <- cbind.data.frame(z1,z2,z3,z4) ; colnames(x) <- paste0("z",1:ncol(x))

tr <- 1:500
ts <- 501:800
ts2<- 801:1000

library(gbm)
rf <- gbm(y[tr] ~ ., data = x[tr,],
          distribution = "gaussian", n.trees = 1000,
           cv.folds = 5)
best.iter.max <- gbm.perf(rf, method = "cv")
prg <- predict(rf,x[c(tr,ts,ts2),],n.trees = best.iter.max)

library(GMDHreg)
gmd <- gmdh.gia(X = as.matrix(x[tr,]),y = y[tr],prune = 5,
                    criteria = "PRESS")
prh <- predict(gmd,as.matrix(x[c(tr,ts,ts2),]))

par(mfrow=c(1,3))
plot(head(y[tr],30),t="l",col=8,lwd=10,main = "train ")
lines(head(prg[tr],30),col=2,lwd=2)
lines(head(prh[tr],30),col=3,lwd=2)
plot(head(y[ts],30),t="l",col=8,lwd=10,main = "test ")
lines(head(prg[ts],30),col=2,lwd=2)
lines(head(prh[ts],30),col=3,lwd=2)
plot(head(y[ts2],30),t="l",col=8,lwd=10,main = "test2 ")
lines(head(prg[ts2],30),col=2,lwd=2)
lines(head(prh[ts2],30),col=3,lwd=2)


Скриншот
Скриншот
  • prnt.sc
Снято с помощью Lightshot
 
segredo:

Então eu não vejo a matemática aqui, é mais trabalho cerebral, bem, e codificação. GA é uma coisa trivial.

Por que então todos correm com este MSUA, escrevendo dissertações, para que seja impossível entendê-las, se dentro dele há alguma primitiva, intuitivamente compreensível desde o jardim de infância?

Eu não sei, mas descreve os dados muito melhor, postado por escrito, código postado

 
mytarmailS:

Eu discordo...

Vamos fazer um pequeno teste, rápido, a olho nu )

Eu não quero brincar com R (uso píton), talvez a razão seja que o MSUA cria regressores de fey, por causa disso ele se encaixa. Se fizermos a mesma selecção para o reforço, não haverá diferença

Aqui está uma enumeração de MSUA para uma floresta.

https://www.mql5.com/ru/code/22915

RL algorithms
RL algorithms
  • www.mql5.com
Данная библиотека имеет расширенный функционал, позволяющий создавать неограниченное количество "Агентов". Использование библиотеки: Пример заполнения входных значений нормированными ценами закрытия: Обучение происходит в тестере...
 
Maxim Dmitrievsky:

Eu não quero mexer com R (eu uso píton), talvez a razão seja que o MSUA cria regressores de fey, o que o torna adequado. Se você fizer a mesma seleção para o boosting, não haverá diferença

Aqui está uma enumeração de MSUA para uma floresta.

https://www.mql5.com/ru/code/22915

Primeiro, que outros regressores? Que disparate, porque é que o MSUA também sai quando se torna mais difícil?

Segundo, os dados que eu dei no exemplo foram os mesmos tanto para o MSUA como para o impulso.

em terceiro lugar, você não precisa fazer nada, não pode fazer uma matriz com quatro valores aleatórios em python e depois cumulá-los? Para verificar o impulso por si mesmo?

2 linhas de código )))


Eu próprio estou curioso sobre o que está lá dentro.

Razão: