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

 

Houve uma palestra mais recente sobre o boosting (em python com catbust como opção) com o mesmo conferencista - não consigo encontrá-lo


 
Aleksey Vyazmikin:

Catbust tem mais customização e é uma extensão da idéia XGBoost, a principal vantagem e desvantagem é que tem árvores de dimensões fixas que impedem a reciclagem se o número de árvores não for grande.

....

Uma questão puramente técnica. Suponha que temos 3 preditores - x1, x2, x3. Sabemos também que x1-x2, x1-x3, x2-x3 também são preditores e geram condições. Até onde eu estou familiarizado com árvores, estes preditores adicionais também devem ser alimentados no modelo.

Mas o caso é um pouco pior, os preditores são alguns a11*x1-b2*x2, a12*x1-a3*x2, etc., gerando algo como sistemas de equações. Os coeficientes que eu não sei, claro. Também são possíveis combinações mais complexas de preditores, estas são dadas apenas a título de exemplo.

NS pode lidar com tais coisas (combinações lineares de preditores e até mesmo não lineares) e eu não tenho que ficar sofisticado, então eu só introduzo x1, x2 e x3 sem me incomodar.

O que fazer com as árvores nestes casos? Não consegui encontrar nada muito vívido sobre este assunto. Ou será que as árvores o farão sozinhas?

 

CatBoost masterclass - há links para baixar código por vídeo para trabalhar em python


 
Yuriy Asaulenko:

Uma questão puramente técnica. Suponha que temos 3 preditores - x1, x2, x3. Sabemos também que x1-x2, x1-x3, x2-x3 também são preditores. Até onde eu estou familiarizado com árvores, estes preditores adicionais também devem ser alimentados no modelo.

Mas o caso é um pouco pior, os preditores são alguns a11*x1-b2*x2, a12*x1-a3*x2, etc. Eu não conheço os coeficientes, claro. São possíveis combinações mais complexas de preditores, estas são dadas apenas a título de exemplo.

NS lida com tais coisas (combinações lineares de preditores) e eu não tenho que ficar chique, e nós alimentamos apenas x1, x2 e x3 aos inputs, sem incomodar.

O que fazer com as árvores nestes casos? Não consegui encontrar nada de muito vago sobre este assunto. Ou as árvores podem fazê-lo sozinhas?

Teoricamente, uma árvore pode descrever uma função, mas obterá uma seção com coeficientes (x) que, se alterada, mas a função em si não será tão eficaz, porque armazena o campo do evento com constantes. Estes são os meus pensamentos, talvez eu esteja errado. Para tais problemas, é melhor usar NS e dar à árvore alguma resposta pronta da função, o que não mudará a lógica de interpretação, dependendo da mudança de argumentos da função. Portanto, é preferível dar à árvore um conjunto limitado de argumentos.

A simples mudança destes x's levará à necessidade de reeducar o modelo.

Em geral, se os argumentos da função estiverem em um intervalo conhecido, que é representado pela amostra de treinamento, então a árvore deve fazer o trabalho. Mas isto é uma tarefa de regressão, não uma tarefa de classificação.
 
Aleksey Vyazmikin:

Teoricamente, a árvore poderia descrever uma função, mas acabaria por ser um gráfico com coeficientes (x), que, se alterado mas a própria função é preservada, deixaria de ser tão eficiente, porque se lembra do campo do evento com constantes. Estes são os meus pensamentos, talvez eu esteja errado. Para tais problemas, é melhor usar NS e dar à árvore alguma resposta pronta da função, o que não mudará a lógica de interpretação, dependendo da mudança de argumentos da função. Portanto, é preferível dar à árvore um conjunto limitado de argumentos.

Apenas uma mudança nestes x's levará à necessidade de reeducar o modelo.

Com NS eu trabalho, eles são compreensíveis. O bom das árvores é que elas geram lógica como se...então.... o que, em geral, é necessário - o resultado deve ser uma decisão de sim ou não. Mas parece que as árvores não conseguem lidar nem com este tipo de lógica, mesmo que lhes demos tudo isto como entrada.

Сs11=PredTraid==[] and Stoch[0][i] > Stoch[1][i]+0.3 and Stoch[0][i-1] <= Stoch[1][i-1]
 
Yuriy Asaulenko:

Eu trabalho com a NS, eu compreendo-os. O apelo das árvores é que elas geram lógica como se...então.... que, em geral, é o que é necessário - o resultado deve ser uma decisão de sim ou não. Mas parece que as árvores já não conseguem lidar com tal lógica, mesmo se lhes dermos tudo isto como entrada.

Deveríamos inseri-los e ver - fazer amostras e verificar.

 
Aleksey Vyazmikin:

Precisamos de nos submeter e ver - fazer algumas amostras e verificar.

Não, infeliz exemplo. Este aqui serve).

 
Yuriy Asaulenko:

Não, infeliz exemplo. Pode ser tratado).

É claro que pode lidar com isso, mas a NS usa neurônios para obter fórmulas, enquanto as árvores só recebem interpretação dos resultados dos cálculos. Penso que se desenharmos um primitivo, que é difícil de descrever com função, por exemplo, uma casa a partir do desenho de uma criança, demoraria muito tempo para que NS a encontrasse, enquanto a árvore determinaria rapidamente as coordenadas deste objecto e apenas as transformaria em vectores. Mas se você mudar a escala, a árvore não será capaz de identificar esta casa, mas os NS devem ser capazes de fazê-lo.

 
Aleksey Vyazmikin:

CatBoost masterclass - há links para baixar código por vídeo para trabalhar em python


Boa, bem explicada.

 
Maxim Dmitrievsky:

bom, bem explicado

Sim, as configurações básicas são bem dadas, especialmente se você começar em python imediatamente. Mas isto não é suficiente para mim.