Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 3300

 
Aleksey Vyazmikin #:

No conozco la sintaxis de R - acabo de comprobar que allí también existe esa posibilidad. Pero sí, parece que sí.

Es C++.

 
Aleksey Nikolayev #:

A juzgar por el tipo x, es Rcpp. En C++ puedes hacer arrays de punteros a funciones y habrá una llamada inmediata a la función requerida por índice, pero con el switch parece ser una búsqueda secuencial desde el principio hasta la variante requerida. Por supuesto, queda el problema de generar el código de todas estas funciones y no está claro cómo funcionará con Rcpp.

Sobre punteros a funciones y sus arrays en C++.

Y parece que no hay fuerza bruta...

 
mytarmailS #:

esto es C++

Por eso hice la advertencia.

Chat GPT ofrece algún tipo de sintaxis como esta

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

A juzgar por el tipo x, es rcpp.

Sí, lo es.

Voy a tratar de probarlo para la velocidad

switch

Si no funciona, voy a profundizar en

punteros a funciones y sus matrices
 
Aleksey Vyazmikin #:

Y no parece que haya ningún exceso...

Tal vez no, no recuerdo exactamente.
 
mytarmailS #:

Pues sí.

Intentaré probar la velocidad.

Si no funciona, voy a profundizar en

punteros a funciones y sus matrices
Si todas las funciones son lineales, como en el ejemplo, puedes usar simplemente una matriz bidimensional normal de coeficientes. También puedes hacer compresión volumétrica si la matriz es dispersa.
 
Maxim Dmitrievsky #:

Sanych dijo que allí no había extremos, y tenía razón.

Sí, Sanych escribió que allí no hay extremos, y se equivocó, porque cualquier función tiene extremos.

Extremo es el punto en el que una función alcanza el valor más grande (máximo) o más pequeño (mínimo) en un intervalo determinado o en un área determinada. Los extremos pueden ser locales, cuando la función alcanza un valor extremo sólo en alguna vecindad de un punto, o globales, cuando la función alcanza un valor extremo en todo el intervalo dado o en un área determinada.

Los extremos siempre están ahí, aunque no los busques intencionadamente (los algoritmos que utilizas hacen esta operación de búsqueda por ti). El aprendizaje sin optimización es imposible, y la optimización es imposible sin asignaciones FF correctas. Que la búsqueda de extremos se haga por ti y esté oculta (cosida al algoritmo) no significa que no existan (tanto los extremos como la optimización).
 
Aleksey Nikolayev #:
Si todas las funciones son lineales, como en el ejemplo, puede utilizar simplemente una matriz bidimensional normal de coeficientes. También puedes hacer compresión volumétrica si la matriz es dispersa.

No, no son lineales, se supone que tienes que meter código mucho más complejo en cada función...

No hay problema con eso en R, puedes hacer lo que quieras, pero velocidad(((.

Estoy buscando una forma de hacerlo en C++.

 
Andrey Dik #:

Sí, Sanych escribió que allí no hay extremos, y se equivocó, porque cualquier función tiene extremos.

Extremo es el punto en el que una función alcanza el valor más grande (máximo) o más pequeño (mínimo) en un intervalo dado o en un área determinada. Los extremos pueden ser locales, cuando la función alcanza un valor extremo sólo en alguna vecindad de un punto, o globales, cuando la función alcanza un valor extremo en todo el intervalo dado o en un área determinada.

Los extremos siempre están ahí, aunque no los busques intencionadamente (los algoritmos que utilizas hacen esta operación de búsqueda por ti). El aprendizaje sin optimización es imposible, y la optimización es imposible sin asignaciones FF correctas. Que la búsqueda de extremos se haga por ti y esté oculta (cosida al algoritmo) no significa que no existan (tanto los extremos como la optimización).

Ahí no hay función.

Por favor, basta ya de pasar por taquilla. Sé lo que es la optimización.
 
mytarmailS #:

¿Así?

y ¿puede realmente soportar un millón de condiciones?

Estoy un poco perdido con esto de switch y C++.

Las dos primeras funciones son implementación de R, la última es switch en C++.

Unit: microseconds
                              expr    min     lq      mean median     uq       max neval
     rule(n = sample(1:200, 1), x) 40.482 44.473  57.18044 46.754 51.886  2688.931  1000
    rule2(n = sample(1:200, 1), x) 29.079 35.351 567.03671 38.202 43.904 86712.314  1000
 rule_cpp(n = sample(1:200, 1), x) 31.360 34.781  53.26793 36.491 40.482  4924.005  1000

De hecho, no hay ninguna ganancia en absoluto, ¿cómo puede ser esto?...