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

 

Alguém pode me explicar em linguagem simples mas precisa que princípios a RF usa para construir a escala de importância dos preditores?

Eu tenho um conjunto com duas classes na classe alvo, o número de observações em uma classe é centenas de vezes maior do que na segunda, eu lembro de algum lugar que um dos critérios de importância dos proditores em RF é a freqüência de ocorrência de alguma observação.

Então eu quero saber se a RF suprime aquela classe que tem poucas observações ao calcular a importância dos preditores.

 
artigo interessante ou melhor, nenhum artigo lá, fotos interessantes sobre "pca" não-linear) https://imdevsoftware.wordpress.com/tag/non-linear-pca/
Discriminating Between Iris Species
Discriminating Between Iris Species
  • imdevsoftware.wordpress.com
The Iris data set is a famous for its use to compare unsupervised classifiers. The goal is to use information about flower characteristics to accurately classify the 3 species of Iris. We can look at scatter plots of the 4 variables in the data set and see that no single variable nor bivariate combination can achieve this. One approach to...
 
mytarmailS:

Eu assumo que você está em forex, não há corretores em forex e eles não negociam, eles são negócios baseados em bookmaker's papers

p.s. o que achas da minha sugestão para a selecção de traços?

Bem, sim, um centro de negociação, não um corretor. Mas ninguém cancelou a sua entrada no mercado interbancário de qualquer maneira.

A sua selecção parece lógica. Mas decidi não seleccionar indicadores de acordo com os meus conceitos porque nunca melhorou o modelo. Prefiro deixar o algoritmo seleccionar muitos indicadores e deixá-lo decidir o que é bom e o que não é. Às vezes, as médias móveis também chegam ao conjunto final de preditores, acho que elas podem fornecer algumas informações não por si só, mas em combinação com outros indicadores. Mas os meus resultados ainda não são estáveis, ainda não posso garantir a sua utilidade.
Também não tentaria prever exatamente a reversão, nos dados de treinamento a classe "business as usual" terá dezenas de vezes mais casos do que "reversão" e eles dizem que a proporção de classes para treinamento é melhor ter 50/50.

 
SanSanych Fomenko:

Eu tenho um algoritmo que determina o poder preditivo de um preditor para uma determinada variável alvo. Em resumo, são osciladores e diferentes incrementos. Se um determinado preditor tem poder de previsão para uma determinada variável alvo, ele não segue que terá poder de previsão para outra variável alvo. Além disso, um preditor pode ter capacidade de previsão em uma janela e não em outra.

O algoritmo funciona bem. Os preditores que selecciona não conduzem a um sobreajustamento dos modelos.

PS

De acordo com o meu algoritmo, os deslizes de qualquer tipo não têm uma capacidade de previsão tão ridícula quanto parece.

Todos os modelos com qualquer conjunto de dados são requalificados.

Outra questão é que a probabilidade de sobretreinamento com a escolha certa, transformação dos preditores é muito reduzida.

A probabilidade de sobretreinamento depende igualmente do conjunto de dados e do tipo de modelo.

Não há necessidade de ilusões.

Dê uma olhada no pacote pbo, é interessante ver como este assunto é tratado lá.

Boa sorte.

 
Vladimir Perervenko:

Todos os modelos com qualquer conjunto de dados podem ser requalificados.

Outra questão é que a probabilidade de sobre-aprendizagem com a escolha certa, transformando os preditores, é significativamente reduzida.

A probabilidade de sobretreinamento depende igualmente do conjunto de dados e do tipo de modelo.

Não há necessidade de ilusões.

Dê uma olhada no pacote pbo, parece interessante lá.

Boa sorte.

Vejam só. Os pressupostos subjacentes não são de todo claros. Especialmente "um aumento no número de observações leva ao excesso de formação"????

Eu uso um critério perfeitamente claro e, o mais importante, praticamente valioso.

Já afirmei a sua essência muitas vezes. Eu vou repetir.

Eu utilizo o seguinte critério de sobretreinamento (sobreajuste): se o erro durante o treinamento NÃO for igual ao erro em outros dados fora da amostra de treinamento, ou seja, em outros intervalos de tempo, então o modelo está sobretreinado. Ou seja, o modelo pegou algumas especificidades durante o treinamento que não encontrou em intervalos de tempo subseqüentes.

Como isto é implementado na prática.

Aceitamos um quociente, por exemplo, 10.000 bar.

Dividimo-lo mecanicamente pelo número do bar sem extravagâncias, o que é muito importante para mim, porque na prática será assim e não assim.

Por isso, levo as primeiras barras do número 1 ao 7000. Estas barras são utilizadas para testes de aprendizagem e validação. A fim de dividi-los em três conjuntos que utilizo, por exemplo, amostra ou o que está embutido no próprio modelo.

Eu recebo três números do modelo. Se o modelo não for requalificado, estes números são aproximadamente iguais.

Então a coisa mais importante.

Eu levo um arquivo com barras 7001 a 10 000. E eu uso o modelo treinado nos bares anteriores. Eu recebo um erro. Se o erro for ligeiramente diferente dos três anteriores, então o modelo NÃO é retrabalhado. Eu geralmente considero que se a discrepância é de 15-20%, então não é reeducada. Se um dos números diferir de qualquer outro em mais de 50%, então o modelo é requalificado.

Assim, com a minha metodologia, selecciono alguns subconjuntos de preditores de algum conjunto de preditores. Se forem encontrados, o que não é obrigatório, então modelos como o randomforest, SVM, ada e suas variantes NÃO são requalificados! Eu não sei sobre outros modelos - eu não os uso.

Isto não é uma ilusão. Isto é um facto.

 
mytarmailS:

Alguém pode me explicar em linguagem simples mas precisa que princípios a RF usa para construir a escala de importância dos preditores?

Eu tenho um conjunto com duas classes na classe alvo, o número de observações em uma classe é centenas de vezes maior do que na segunda, eu lembro de algum lugar que um dos critérios de importância dos proditores em RF é a freqüência de ocorrência de alguma observação.

Então eu quero saber se a RF suprime aquela classe que tem poucas observações ao calcular a importância dos preditores.

Você tem aulas muito desequilibradas e isso não é bom. Há algoritmos para equilibrar as aulas, mas no seu caso não funcionou para mim. Eu tentei indicar a inversão de ZZ não por um número de barras, mas por vários, antes e depois da inversão. Isto reduziu o desequilíbrio, mas não resolveu o problema.

Ainda não encontrei modelos que funcionem garantidamente em classes NÃO equilibradas.

 
SanSanych Fomenko:

Tens aulas muito desequilibradas, e isso não é bom. Existem algoritmos para equilibrar as classes, mas no seu caso não funcionou. Eu tentei marcar a inversão ZZ não com um número de barras, mas com vários, antes e depois da inversão. Isto reduziu o desequilíbrio, mas não resolveu o problema.

Ainda não encontrei modelos que funcionem garantidamente em classes NÃO equilibradas.

Estou interessado na questão da selecção de características
 
mytarmailS:
Estou interessado na questão sobre a selecção de características

Já respondi a tudo o que achei necessário.

Se você tem um conjunto de atributos com uma variável de destino, envie-me, eu vou selecioná-la, depois construo modelos sobre os selecionados e vejo o resultado.

 
Alguém tentou usar um pca não linear, o link que deixei acima, mas estou tendo problemas para reconhecer novos dados com ele, ele dá um erro
 
mytarmailS:
Por acaso ninguém tentou aplicar um link pca?? não linear ao qual eu deixei acima, não tenho sorte em reconhecer novos dados com ele, ele dá um erro

Eu não acho que este pacote seja suficiente para construir um modelo capaz de prever a variável alvo. Tudo o que encontrei na ajuda foi construir um modelo PCA baseado em preditores, a variável alvo não está de todo lá.

#установка  пакета, нужно выполнить один раз и перезапустить R
source("https://bioconductor.org/biocLite.R")
biocLite("pcaMethods")        

#создание  pca объекта
library(pcaMethods)
browseVignettes("pcaMethods") #хелп  файлы
data(metaboliteDataComplete)
mdC <- prep(metaboliteDataComplete, scale="none", center=TRUE)
resNipals <- pca(md, method="nipals", center=FALSE, nPcs=5)

Isto criará um objeto resNipals (Nonlinear Estimation by Iterative Partial Least Squares) com 5 componentes principais para analisar a tabelaDataComplete do metabolito. Em vez de metaboliteDataComplete, você pode substituir a sua própria tabela por preditores. É importante não alimentar a variável alvo aqui, ela será usada mais tarde.

Mas isto só será suficiente para analisar as relações entre as variáveis através do exame de diferentes gráficos. A fim de criar um modelo preditivo, é então construído um modelo de regressão linear que utiliza os componentes principais PC1,PC2,PC3,PC4,PC5 como variáveis de entrada (x1,x2,x3,...). E a variável alvo Y já é introduzida no modelo linear como o resultado desejado. O problema é que resNipals é algum objeto da classe "pcaRes" do pacote pcaMethods. Não consegui descobrir como fazer tudo isto com a ajuda.

Se fosse um modelo PCA do pacote do carpete, seria assim:

#http://www.win-vector.com/blog/2016/05/pcr_part2_yaware/ (раздел Is this the same as caret::preProcess?)
newVars <- colnames(resNipals)
resNipals$y <- dTrain$y   #"y" в данном случае это название колонки с целевой переменной, dTrain - исходная таблица с данными
modelB <- lm(paste('y',paste(newVars,collapse=' + '),sep=' ~ '),data=resNipals)
print(summary(modelB)$r.squared)
#дальше нужно использовать функцию predict(modelB, newdata = <таблица с валидационной выборкой>) для прогноза на новых данных

Mas não funciona com resNipals, em teoria o pacote pcaMethods deveria ter algumas funções próprias para trabalhar com este objeto, mas eu não encontrei nada.