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

 
Aleksey Terentev:
E sim, há um problema com a normalização. Ele irá saltar e normalizar os dados de forma diferente em diferentes intervalos de tempo.

Sim, vou tentar resolver isso um dia destes.

 
Maxim Dmitrievsky:

Não, já citei o ecrã, os incrementos são estacionários e simétricos em ambos os lados do zero, por isso as probabilidades serão +- as mesmas


Maxim Maxim Dmitrievsky: Pode ser, mas quando tentei revelar a simetria no comportamento dos preços, não consegui encontrá-la.

Com todo o respeito.
 
Andrey Kisselyov:
Provavelmente será, mas quando tentei encontrar simetria no comportamento dos preços não a vi.

Com todo o respeito.

Aqui a probabilidade é essencialmente 50/50 (acima/abaixo de zero) - quer pertença à classe ou não, e todos os outros valores são a força do sinal. Portanto, mesmo que os incrementos não sejam simétricos para compra e venda, NS deve entendê-lo por si só :)

 
Maxim Dmitrievsky:

Aqui a probabilidade é essencialmente 0 e 1 - se pertence à classe ou não, e todos os outros valores são a força do sinal. Portanto, mesmo que os incrementos não sejam simétricos para compra e venda, os NS devem entendê-lo por si mesmos :)

Na minha opinião, neste caso é necessário, como disse acima, ter um 3º estado, uma certa fronteira até a qual o sinal não pertence nem à compra nem à venda.

Cumprimentos.

 
Andrey Kisselyov:

Na minha opinião, neste caso é necessário, como disse acima, ter um limite de 3 estados, algum limite até o qual o sinal não pertence nem para comprar nem para vender.

Cumprimentos.


então vamos nos referir a ambas as classes com a mesma probabilidade

 
Maxim Dmitrievsky:

depois atribuir a ambas as classes com igual probabilidade

NS deve essencialmente encontrar este limite por si só, só precisa de ser fornecido no código. e não tem necessariamente de ser igual probabilidade para ambas as direcções.

Com todo o respeito.
 
Maxim Dmitrievsky:

Usando um classificador linear como exemplo. Suponha que ensinamos algo a um classificador, alimente 2 saídas com aumentos de preço de 0 a 1, onde 0,5 não é sinal (a soma das saídas é sempre igual a um)

Há algo de errado nesta frase. Se você ensinar o classificador, o professor não será os incrementos de 0 a 1, mas os valores específicos como -1 e 1 (preço em queda / preço em alta). Ao criar uma tabela de treinamento e um professor para o modelo, os incrementos serão arredondados para -1 e 1 e toda a informação sobre o valor do incremento será perdida.

Além disso o modelo será treinado, e alguns modelos de classificação no processo de previsão podem de fato dar probabilidade de classe em vez de valores rígidos -1 e 1. Mas esta probabilidade não está de modo algum relacionada ao valor de crescimento, ela pode ser interpretada como "preço com probabilidade X% provavelmente crescerá, por um valor desconhecido de crescimento".


Maxim Dmitrievsky:

E se tomarmos uma rede neural com classificação não linear, as saídas nos informarão sobre a força do sinal ou indicarão apenas o grau de pertença a 1 de 2 classes e não mais

Aqui novamente só haverá graus de pertença a 1 de 2 classes e não mais. O requisito mostrado na foto não será cumprido. Se você quer saber o valor do crescimento, você terá que criar um monte de classes com vários níveis de crescimento.



A regressão pode ser usada em vez da classificação. E um modelo de regressão é necessário. Então é possível alimentar os aumentos de preço durante o treinamento sem mudanças e arredondamentos, e se o modelo puder atingir alta precisão, ele irá prever a magnitude do incremento ao invés de quaisquer probabilidades e classes. É muito conveniente.

Embora em forex, eu não consegui mais com a regressão do que com a simples classificação. O modelo produziu valores muito pequenos durante a previsão, embora tenha adivinhado a direção em mais de 50% dos casos, mas foi impossível estimar a quantidade de aumento esperada a partir da previsão. O resultado foi tratado como com as duas classes - "o preço provavelmente subirá por uma quantidade desconhecida".

 
Maxim Dmitrievsky:

Ajude-me a entender o processo :)

Usando um classificador linear como exemplo. Suponha que ensinamos algo ao classificador, alimentamos aumentos de preço de 0 a 1 a 2 saídas, onde 0,5 não é sinal (a soma das saídas é sempre igual a uma)

Se simplesmente traçarmos uma linha de regressão, por exemplo, de acordo com os preços, os maiores aumentos de preços ficarão mais longe da linha, os menores mais próximos, ou seja, se as saídas do classificador forem 0,9; 0,1, o incremento positivo ficará longe da linha, ou seja, o sinal 0,9 será mais forte do que o sinal 0,6 para comprar

E se tomarmos uma rede neural com classificação não linear, as saídas mostrarão a força do sinal ou indicarão apenas o grau de pertença a 1 de 2 classes e não mais

Isto é, se esta condição será cumprida:


Parece-me que, nesta situação, metade dos principiantes que não conhecem muito bem o assunto, vão ser lixados. A razão é que o grau de pertença a esta ou aquela classe irá intuitivamente dizer sobre a maior ou menor força do sinal. Mas se é assim de fato e se não é melhor criar mais classes nas quais distribuir valores de incrementos, digamos, em %, então a obtenção de valor nesta ou naquela classe (uma de 10, suponhamos) já vai precisamente gerar valor de incremento.

Se você quer ter uma característica como força do sinal na saída, por que você quer resolver um problema de classificação que permanecerá finito(discreto) com qualquer aumento no número de classes. Pegue a tarefa de regressão e dê -1 (100% SELL) a 1 (100% BUY) ou mesmo pontos na saída de treinamento - negativo para SELL e positivo para BUY, zero será zero como deveria ser.

P.S.
já escrito na mensagem anterior - aproximadamente o mesmo significado...

 
Dr. Trader:

Há algo de errado com esta frase. Se você treinar um classificador, o professor não será os incrementos de 0 a 1, mas sim valores específicos como -1 e 1 (queda de preço / aumento de preço). Ao criar uma tabela de treinamento e um professor para o modelo, os incrementos serão arredondados para -1 e 1 e toda a informação sobre o valor do incremento será perdida.

Além disso, o modelo será treinado e alguns modelos de classificação podem de fato dar probabilidade de classe ao invés de valores rígidos -1 e 1. Mas esta probabilidade não está relacionada com o valor de incremento, ela pode ser interpretada como "preço com probabilidade X% provavelmente aumentará em uma quantidade desconhecida de incremento".


Aqui novamente só haverá graus de pertença a 1 de 2 classes e não mais. A exigência como na foto não será cumprida. Se você quer saber a magnitude do incremento, você tem que criar um monte de classes para vários graus de incremento.



Em vez de usar a classificação, você poderia usar a regressão. E um modelo de regressão é necessário. Então no treinamento você pode alimentar os aumentos de preço sem mudanças e arredondamentos, e se o modelo puder atingir alta precisão, ele irá prever a magnitude do incremento ao invés de quaisquer probabilidades e classes. É muito conveniente.

Embora em forex, eu não consegui mais com regressão do que com simples classificação. O modelo produziu valores muito pequenos durante a previsão, embora tenha adivinhado a direção em mais de 50% dos casos, mas foi impossível estimar a quantidade de aumento esperada a partir da previsão. O resultado foi tratado como com as duas classes - "o preço provavelmente crescerá em uma quantidade desconhecida".


Eu vejo :) então a probabilidade de saída da atribuição de classes não tem nada a ver com o valor provável de incremento... vês, algumas pessoas também ficam confusas aqui, é um ponto ambíguo para principiantes... Por outro lado, se uma rede neural produz probabilidades (por exemplo, camada softmax), então para que precisamos delas se a adesão à classe será determinada por probabilidade superior a 0,5? E então você pode realmente tentar usar o modelo de regressão e se livrar de toda a normalização dos valores de saída... a propósito, eu estou usando florestas aleatórias e a normalização dos inputs não é necessária lá

 
Ivan Negreshniy:

Se você quer ter uma característica como a força do sinal na saída, então por que você deve resolver o problema de classificação, que permanecerá finito (discreto) com qualquer aumento no número de classes. Pegue o problema da regressão e dê -1 (100% SELL) a 1 (100% BUY) ou mesmo pontos na saída - negativo para SELL e positivo para BUY, zero será um flat, como deve ser.

P.S.
já escreveram na mensagem anterior - aproximadamente o mesmo significado...


Sim, acontece que a regressão será mais inteligente (eu uso RF, não a rede neural)