Discussão do artigo "Cross-validation and basics of causal inference in CatBoost models, export to ONNX format" - página 2

 
Forester #:
Não é possível inverter a ordem dessa forma:
Tem que ser Por que fazer a ordem inversa?

Não me lembro por que fiz dessa forma... acho que foi um problema com a serialidade da matriz de origem. Não importava como eu o invertia por meio de AsSeries true-false, eu obtinha os mesmos sinais de modelo.

Não sei muito sobre as "peculiaridades" do MQL.

Também não está muito claro com as configurações das saídas do modelo, eu as ajustei pelo método poke. Eu o descrevi no artigo.
 
Maxim Dmitrievsky #:

Não me lembro por que fiz dessa forma... Acho que foi um problema com a serialização da matriz de origem. Não importava como eu a invertia por meio de AsSeries true-false, eu recebia os mesmos sinais de modelo.

Não sei muito sobre as "peculiaridades" do MQL.

Também não está muito claro com as configurações das saídas do modelo, eu as ajustei pelo método poke. Eu o descrevi no artigo.
Acho que não é necessário inverter (agora você está alimentando uma matriz não invertida), porque no testador você obtém o mesmo gráfico que no python. Caso contrário, as divisões não funcionariam em seus chips e haveria aleatoriedade na previsão.


A sericidade não ajudará se você preencher a matriz por índices depois de criá-la; a forma como você a preenche é o que conta. Provavelmente... Eu mesmo não trabalho com serialização.

 
Forester #:
Acho que não é necessário inverter (agora você está alimentando uma matriz não invertida), pois você obtém o mesmo gráfico no testador e no python. Caso contrário, as divisões não funcionariam em suas fichas e haveria aleatoriedade na previsão.


A sericidade não ajudará se você tiver preenchido a matriz por índices depois de criá-la, pois você a preencheu, então isso conta.

Se você substituir os recursos em vez de f, a previsão será diferente

 
Maxim Dmitrievsky #:

Se você substituir f por recursos, obterá uma previsão diferente.

Isso é estranho. Parece ser copiada de 1 para 1. Os recursos são dinâmicos e f é estático, mas esse não é o motivo das diferenças.

UPD: nos exemplos da ajuda do OnnxRun, os recursos são passados em uma matriz, mas os seus são passados em uma matriz, talvez esse seja o motivo? É estranho que a ajuda não escreva como deveria.

 
Forester #:
Estranho... É como uma cópia de 1 para 1.

Exatamente, mas a resposta do modelo é diferente

k... artefato, sim, você pode removê-lo.

 
Maxim Dmitrievsky #:

Exatamente, e a resposta do modelo é diferente

k- artefato, sim, pode ser removido

Vi que a serialização está definida para recursos. Provavelmente é por isso que o resultado é diferente.

 
Forester #:

Estranho... Parece ser copiado de 1 para 1. Os recursos são dinâmicos, enquanto f é estático, mas esse não é o motivo da diferença.

UPD: nos exemplos da ajuda do OnnxRun, os chips são passados em uma matriz, enquanto os seus são passados em uma matriz, talvez esse seja o motivo? É estranho que a ajuda não escreva como deveria.

Somente matrizes,vetores ou matrizes ( doravante denominadosDados)podem ser passados como valores de entrada/saída no modelo ONNX.

Acho que também recebi uma resposta errada com um vetor. Tenho que verificar novamente, mas por enquanto está funcionando.

https://www.mql5.com/pt/docs/onnx/onnx_types_autoconversion

Документация по MQL5: ONNX модели / Автоконвертация данных
Документация по MQL5: ONNX модели / Автоконвертация данных
  • www.mql5.com
Автоконвертация данных - ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ótimo artigo. Ouvi falar da ideia de usar dois neurônios: um para prever a direção e o outro para prever a probabilidade de a primeira previsão estar correta. Portanto, a pergunta é: você escolheu o gradient bousting porque ele é melhor do que as redes neurais nessa área?
 
Ramirzaev gradient bousting porque ele é melhor do que as redes neurais nessa área?

Obrigado. Comparei os resultados de MLP, RNN e LSTM simples com bousting em meus conjuntos de dados. Não vi muita diferença, às vezes o bousting era ainda melhor. E o bousting é muito mais rápido de aprender, e você não precisa se preocupar muito com a arquitetura. Não posso dizer que seja inequivocamente melhor, porque o NS é uma extensão, você pode criar muitas variantes diferentes do NS. Provavelmente o escolhi por causa de sua simplicidade, pois ele é melhor nesse aspecto.