Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 399
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
É aí que eu estou disposto a apostar. Isto é da prática. É isso que tenho observado enquanto usava o optimizador.
Mas na demonstração do seu site há 5 colunas e um grande número de filas
Aqui é onde eu estou disposto a apostar. Isto é da prática. É o que eu observo enquanto uso o optimizador.
Se houver menos colunas do que linhas, o número de entradas torna-se menor do que o tamanho condicional do polinômio da rede.
Se o número de colunas e linhas for igual, então o número de entradas e o tamanho do polinômio são aproximadamente os mesmos.
Se houver mais colunas do que linhas, o tamanho do polinômio é menor do que o número de entradas.
Em outras palavras, é necessário que o número de colunas e filas seja aproximadamente igual. Então o polinômio é obtido com um número suficiente de entradas, e seu tamanho é aproximadamente igual ao número de entradas.
Em outras palavras. Quanto maior o arquivo, mais multiparamétrico o modelo se torna. O número de entradas e o tamanho do polinômio aumentam, o que indica que o modelo se torna mais inteligente. E assim por diante.
Além disso, ao executar o mesmo arquivo mais de uma vez, o conjunto de parâmetros de entrada é sempre diferente. Isto é devido à partição aleatória da amostra durante a divisão. Mas se rodarmos um e o mesmo arquivo e obtivermos modelos absolutamente diferentes, eles ainda funcionarão de forma idêntica, pelo menos deveriam. Esta é a resposta para a questão de quais peixes estão no arquivo dado. Se for diferente de uma execução para outra, isso significa que os dados não têm nada a ver com a saída. Como esta....
O Polynom é construído apenas para tirar tudo dele e deixar 3 para uma rede e 3 para a outra.
Olha para o código com cuidado. Há três estados: 1, 0 e -1. Portanto, este é o resultado de duas grelhas, para os sinais a serem transmitidos para o comércio....
De que coeficientes de acoplamento estás a falar. Aqui está uma lista de inputs usados, mas o que você vê lá antes de cada polinômio há uma normalização, e há 8 inputs descritos, veja abaixo no final do arquivo.
//Variável x0: Del
//Variável x1: Del1
//Variável x2: VDel
//Variável x3: VDel1
//Variável x4: VDel6
//Variável x5: ST5
//Variável x6: VAD11
//Variável x7: VVolum4
Mas a demonstração no seu site tem 5 colunas e um grande número de filas
A questão é que descobri o seu ficheiro de demonstração ..... Há uma coisa que repete dados, imagine que existem 5 colunas e cada uma de suas linhas pode ser registrada apenas um dos três valores 1-1il0. Neste caso haverá filas duplicadas, e agora duplico o meu conjunto de dados. Simplesmente copie linhas e o nível de generalização aumentará significativamente, até 90%, mas infelizmente será um REBUILDAR. Eu sei... Já o testei mais do que uma vez, por isso... 12
você tem x0...x7 = p0...p7 - da fórmula acima (apenas nome diferente) a fórmula é retirada do artigo de Reshetov descrevendo seu neurônio. E de acordo com a fórmula existem apenas 3 entradas - A,B e C
Sim, aquele artigo sobre o RNN não tem nada a ver com esse otimizador é um trabalho completamente diferente, você não entende. Embora dentro do otimizador algo possa ser usado a partir deste artigo, mas eles são trabalhos completamente diferentes se algo.....
A questão é que descobri o ficheiro de demonstração dele..... O problema é que existem alguns dados repetidos, imagine que existem 5 colunas e cada linha pode conter apenas um dos três valores 1-1il0. Neste caso haverá filas duplicadas, e agora duplico o meu conjunto de dados. Basta copiar linhas e o nível de generalização aumentará significativamente, até 90%, mas infelizmente será um REBUILDAR. Eu sei... Já o testei mais do que uma vez, por isso... 12
É uma amostra dividida 50/50, não é? Estou a compará-la com outros modelos agora.
É uma divisão 50/50? Estou a comparar com outros modelos agora.
Na verdade, dividir um conjunto de treino em duas amostras é muito complicado... Não há conceito de tempo, do passado para o futuro. não é necessário para a classificação, é necessário para a aproximação.
Mas a divisão também acontece de uma forma muito complicada. Aqui está uma dica. É importante que o número de zeros e de zeros na variável de saída seja igual. Então a divisão procede de uma forma clara, se o número não for igual, há uma adição. Em geral, uma forma inteligente de dividir lá se em que...
Olha para o código com cuidado. Há três estados 1, 0 e -1. Então é o resultado de duas grelhas, para transmitir sinais para o comércio.....
Estou descobrindo como cada rede funciona separadamente. E o que obter dos seus produtos é uma questão de gosto)
A propósito, olhando para o código do seu arquivo - há uma fórmula diferente, não como no artigo, ou seja, não
double RNN(double p1,double p2,double p3)
{
//--- вероятности для правил из базы знаний экспертной системы
double y0 = x0; // Вероятность правила №0 в процентах
double y1 = x1; // Вероятность правила №1 в процентах
double y2 = x2; // Вероятность правила №2 в процентах
double y3 = x3; // Вероятность правила №3 в процентах
double y4 = x4; // Вероятность правила №4 в процентах
double y5 = x5; // Вероятность правила №5 в процентах
double y6 = x6; // Вероятность правила №6 в процентах
double y7 = x7; // Вероятность правила №7 в процентах
//--- база знаний, состоящая из набора взаимоисключающих правил
double probability=
(1.0 - p1) * (1.0 - p2) * (1.0 - p3) * y0 + // Правило №0
(1.0 - p1) * (1.0 - p2) * p3 * y1 + // Правило №1
(1.0 - p1) * p2 * (1.0 - p3) * y2 + // Правило №2
(1.0 - p1) * p2 * p3 * y3 + // Правило №3
p1 * (1.0 - p2) * (1.0 - p3) * y4 + // Правило №4
p1 * (1.0 - p2) * p3 * y5 + // Правило №5
p1 * p2 * (1.0 - p3) * y6 + // Правило №6
p1 * p2 * p3 * y7; // Правило №7
//--- конвертируем проценты в вероятности
probability=probability/100.0;
//--- возвращаем результат в виде вероятности
return(probability);
}
а
double getBinaryClassificator1(double v0, double v1, double v2, double v3, double v4, double v5, double v6, double v7) {
double x0 = 2.0 * (v0 + 1189.0) / 2047.0 - 1.0;
double x1 = 2.0 * (v1 + 810.0) / 2247.0 - 1.0;
double x2 = 2.0 * (v2 + 1636.0) / 2155.0 - 1.0;
double x3 = 2.0 * (v3 + 558.0) / 1252.0 - 1.0;
double x4 = 2.0 * (v4 + 139.0) / 494.0 - 1.0;
double x5 = 2.0 * (v5 + 74.97643) / 144.15451 - 1.0;
double x6 = 2.0 * (v6 + 1026.56016) / 1938.48639 - 1.0;
double x7 = 2.0 * (v7 + 4167.0) / 7074.0 - 1.0;
double decision = 3.162907268170426 * sigmoid(x0)
-1.0554004772410066 * sigmoid(x1 + x2 + x3)
+ 3.8921930574940347 * sigmoid(x0 + x1 + x4)
-1.3775531643479957 * sigmoid(x1 + x2 + x3 + x4)
-0.44704575810784447 * sigmoid(x0 + x5)
-0.012703915477316044 * sigmoid(x0 + x1 + x5)
-7.231026668467576 * sigmoid(x2 + x5)
-0.059339966683175004 * sigmoid(x2 + x4 + x5)
-2.786314588867378 * sigmoid(x0 + x1 + x2 + x4 + x5)
+ 2.1339726561913768 * sigmoid(x0 + x1 + x6)
-0.49562529077183975 * sigmoid(x0 + x4 + x6)
+ 5.2147434454399475 * sigmoid(x0 + x3 + x4 + x6)
-2.890797352663095 * sigmoid(x5 + x6)
+ 0.10933021175693726 * sigmoid(x0 + x5 + x6)
-1.6844056248405446 * sigmoid(x1 + x2 + x5 + x6)
-0.18093137034202272 * sigmoid(x1 + x3 + x5 + x6)
+ 0.6607987033451893 * sigmoid(x1 + x7)
-1.8854921735476415 * sigmoid(x0 + x1 + x3 + x7)
-1.1169615655906233 * sigmoid(x2 + x5 + x7)
-0.6844731589452674 * sigmoid(x4 + x6 + x7)
-0.4231236774571158 * sigmoid(x1 + x2 + x3 + x4 + x6 + x7)
+ 5.763615625891075 * sigmoid(1.0 + x1 + x2 + x3 + x5)
-0.3138985187519697 * sigmoid(1.0 + x0 + x1 + x4 + x5)
-1.8910224663455044 * sigmoid(1.0 + x1 + x3 + x4 + x5)
+ 2.1204658352467995 * sigmoid(1.0 + x2 + x3 + x4 + x5)
+ 6.219005597826903 * sigmoid(1.0 + x2 + x3 + x4 + x6)
-3.740916662914772 * sigmoid(1.0 + x0 + x1 + x3 + x4 + x5 + x6);
return decision;
}
Portanto, talvez não 3 entradas (como na fórmula original), mas ainda 8... Eu ainda não entendi a essência da nova fórmula.