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

 
mytarmailS #:

assim?


E ele pode realmente lidar com um milhão de condições?

A julgar pelo tipo de x, é Rcpp. Em C++, você pode criar matrizes de ponteiros para funções e haverá uma chamada imediata da função necessária por índice, mas com o switch parece ser uma pesquisa sequencial desde o início até a variante necessária. Obviamente, o problema de gerar o código de todas essas funções permanece e não está claro como isso funcionará com o Rcpp.

Sobre ponteiros para funções e suas matrizes em C++.

C++ | Указатели на функции
  • metanit.com
Указатели на функции в языке программирования C++, определение и использование, массив указателей на функции
 
Aleksey Nikolayev #:
Além disso, teoricamente, você pode ter uma matriz de funções.

O que é isso? Como fazer uma matriz e um interpretador?

 
Aleksey Vyazmikin #:

Não conheço a sintaxe do R - apenas verifiquei que também existe essa possibilidade. Mas, sim, parece ser isso.

É C++.

 
Aleksey Nikolayev #:

A julgar pelo tipo x, é Rcpp. Em C++, você pode criar matrizes de ponteiros para funções e haverá uma chamada imediata da função necessária por índice, mas com o switch parece ser uma pesquisa sequencial desde o início até a variante necessária. Obviamente, o problema de gerar o código de todas essas funções permanece e não está claro como isso funcionará com o Rcpp.

Sobre ponteiros para funções e suas matrizes em C++.

E parece não haver força bruta...

 
mytarmailS #:

Isso é C++

É por isso que fiz a ressalva.

O Chat GPT oferece algum tipo de sintaxe como esta

#  Создаем функцию, имитирующую оператор switch
my_switch <- function(x) {
  switch(x,
         case1 = {
           #  Действия, выполняемые при совпадении с "case1"
           print("Это case1")
         },
         case2 = {
           #  Действия, выполняемые при совпадении с "case2"
           print("Это case2")
         },
         default = {
           #  Действия по умолчанию, если нет совпадения с другими случаями
           print("Это default")
         }
  )
}
 
Aleksey Nikolayev #:

A julgar pelo tipo x, é o rcpp.

Sim, é.

Vou tentar testá-lo quanto à velocidade

switch

Se não funcionar, vou me aprofundar em

ponteiros para funções e suas matrizes
 
Aleksey Vyazmikin #:

E não parece haver nenhum exagero...

Talvez não, não me lembro exatamente.
 
mytarmailS #:

Sim, é isso mesmo.

Vou tentar testá-lo quanto à velocidade.

Se não funcionar, vou me aprofundar em

ponteiros para funções e suas matrizes
Se todas as funções forem lineares, como no exemplo, você pode simplesmente usar uma matriz bidimensional regular de coeficientes. Você também pode fazer compressão de volume se a matriz for esparsa.
 
Maxim Dmitrievsky #:

Sanych disse que não havia extremos ali, e ele estava certo.

Sim, Sanych escreveu que não há extremos lá, e ele estava errado, porque qualquer função tem extremos.

Extremo é o ponto em que uma função atinge o maior (máximo) ou o menor (mínimo) valor em um determinado intervalo ou em uma determinada área. Os extremos podem ser locais, quando a função atinge um valor extremo somente em alguma vizinhança de um ponto, ou globais, quando a função atinge um valor extremo em todo o intervalo ou em uma determinada área.

Os extremos estão sempre presentes, mesmo que você não os procure intencionalmente (os algoritmos que você usa fazem essa operação de busca para você). O aprendizado sem otimização é impossível, e a otimização é impossível sem as atribuições corretas de FF. Se a busca por extremos for feita para você e estiver oculta (costurada no algoritmo), isso não significa que eles não existam (tanto os extremos quanto a otimização).
 
Aleksey Nikolayev #:
Se todas as funções forem lineares, como no exemplo, você pode simplesmente usar uma matriz bidimensional regular de coeficientes. Você também pode fazer compressão de volume se a matriz for esparsa.

Não, elas não são lineares, você deve colocar um código muito mais complexo em cada função...

Não há nenhum problema com isso no R, você pode fazer o que quiser, mas a velocidade((((.

Estou procurando uma maneira de fazer isso em C++.

Razão: