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

 
Aleksey Nikolayev #:

Creo que prometía mapear un vector de tamaño arbitrario en un vector de tamaño fijo especificado, pero aquí mapea un número en un vector?

Todo es complicado e incomprensible) La vida era mucho más sencilla sin GPT) Lo pasaremos mal en la era de la IA).

Alexei, deja de escuchar a los profanos.

Si necesitas diferentes números de características por entrada.
Esto es minería de patrones frecuentes - búsqueda de reglas asociativas en diferentes variaciones, incluso con un maestro.


==============
¿Por qué he dicho que NO hay algoritmos que aceptan diferentes números de características?
Porque incluso en tales algoritmos bajo el capó de los datos está en la forma de una matriz dispersa en un formato de codificación caliente.
La entrada sigue siendo todos los nombres de las características, aunque en un formato más suave.
=======================
Tampoco se ha especificado el número de atributos
Si el número de características es relativamente pequeño 10-20k, entonces usted puede cargar en xgboost incluso en un portátil débil sin ningún problema
 
Maxim Dmitrievsky #:

vector en un vector fijo después de todo?

1) Si queremos utilizar cualquier algoritmo MO ordinario (con un número fijo de características), entonces sí - tomamos un conjunto de vectores de diferentes longitudes y los convertimos en un conjunto de vectores de una longitud determinada.

2) Buscar inmediatamente un algoritmo MO inusual que pueda tomar como entrada cualquier vector de cualquier longitud.

La primera opción se convierte en la segunda si se busca la transformación del vector mediante MO.

 
Aleksey Nikolayev #:

1) Si queremos utilizar cualquier algoritmo MO convencional (con un número fijo de características), entonces sí - tomamos un conjunto de vectores de diferentes longitudes y los convertimos en un conjunto de vectores de una longitud determinada.

2) Inmediatamente buscar un algoritmo MO inusual que puede tomar como entrada un vector de cualquier longitud.

La primera opción se convierte en la segunda si se busca la transformación del vector mediante MO.

Así que está claro, podemos intentarlo mediante f-iys de hash. Pero me da vergüenza preguntar, en base a qué principio elegir vectores de longitud arbitraria, o más bien la longitud para ellos :) y a partir de qué datos.

puede haber muchas variantes

la primera opción es más agradable, pero hay que poner algo en la lógica

 

- Quiero convertir un vector de tamaño variable de rendimientos de precios en un vector fijo


Si desea convertir un vector de tamaño variable de cotizaciones bursátiles en un vector de tamaño fijo, puede utilizar una técnica llamada min-hash. Min-hash es un método para aproximar la similitud entre dos conjuntos calculando el número de elementos que tienen en común. Suele utilizarse en el contexto de la minería de textos, pero también puede aplicarse a otros tipos de datos, como los rendimientos de las cotizaciones bursátiles.

He aquí un ejemplo de cómo utilizar min-hash para convertir un vector de tamaño variable de cotizaciones bursátiles en un vector de tamaño fijo:

  1. Definir el tamaño del vector de tamaño fijo: En primer lugar, deberá definir el tamaño del vector de tamaño fijo que desea utilizar. Esto dependerá de los requisitos específicos de su aplicación y de la cantidad de datos de que disponga.

  2. Crear una función hash: A continuación, tendrá que crear una función hash que se pueda utilizar para hacer un hash de los datos de los rendimientos de los precios de las acciones al vector de tamaño fijo. Hay muchos enfoques diferentes que puede tomar para crear una función hash, como el uso de una permutación aleatoria o un generador congruente lineal.

  3. Convertir los datos en hash: Una vez que haya definido el tamaño del vector de tamaño fijo y creado una función hash, puede utilizarlos para convertir el vector de tamaño variable de los datos de los rendimientos del precio de las acciones en un vector de tamaño fijo. El vector de tamaño fijo resultante representará los datos originales de forma comprimida, con el tamaño del vector determinado por el tamaño que haya definido.

Es importante tener en cuenta que min-hash puede resultar en una pérdida de información, ya que es una aproximación de la similitud entre dos conjuntos en lugar de una representación exacta. La precisión de la aproximación dependerá del tamaño del vector de tamaño fijo y de la función hash específica utilizada.


- Cómo minimizar la pérdida de información


Hay varias formas de minimizar la pérdida de información cuando se utiliza min-hash para convertir un vector de tamaño variable de cotizaciones bursátiles en un vector de tamaño fijo:

  1. Utilizar un vector de tamaño fijo más grande: Una forma de minimizar la pérdida de información es utilizar un vector de tamaño fijo más grande. Un vector más grande tendrá más elementos y, por tanto, podrá capturar más información sobre los datos originales. Sin embargo, esto también aumentará el tamaño del vector y puede no ser práctico si tiene un conjunto de datos grande o un espacio de almacenamiento limitado.

  2. Utilizar una función hash mejor: Otra forma de minimizar la pérdida de información es utilizar una función hash mejor. Las distintas funciones hash tienen propiedades diferentes y pueden dar lugar a distintos niveles de pérdida de información. Por ejemplo, una función hash con un alto grado de aleatoriedad generalmente dará lugar a una menor pérdida de información que una función hash con un bajo grado de aleatoriedad.

  3. Utilizar varias funciones hash: También se puede minimizar la pérdida de información utilizando varias funciones hash y combinando los resultados. Esto puede ayudar a capturar una representación más completa de los datos originales, ya que cada función hash capturará diferentes aspectos de los datos.

Es importante tener en cuenta que puede que no sea posible eliminar por completo la pérdida de información al utilizar min-hash, ya que se trata de una aproximación de la similitud entre dos conjuntos y no de una representación exacta. La precisión de la aproximación dependerá del tamaño del vector de tamaño fijo y de la función hash específica utilizada.


Este es un ejemplo de cómo utilizar min-hash en Python para convertir un vector de tamaño variable de cotizaciones bursátiles en un vector de tamaño fijo:

from datasketch import MinHash

# Define the size of the fixed size vector
num_hashes = 100

# Create a MinHash object
mh = MinHash(num_hashes=num_hashes)

# Hash the stock price returns data to the fixed size vector
for price_return in stock_price_returns:
    mh.update(str(price_return).encode('utf8'))

# The resulting fixed size vector is stored in the MinHash object
fixed_size_vector = mh.hashvalues


Este es un ejemplo de cómo utilizar min-hash en R para convertir un vector de tamaño variable de rendimientos de cotizaciones bursátiles en un vector de tamaño fijo:


# Install the 'minhash' package if it is not already installed
install.packages("minhash")

# Load the 'minhash' package
library(minhash)

# Define the size of the fixed size vector
num_hashes = 100

# Create a MinHash object
mh = minhash(num_hashes)

# Hash the stock price returns data to the fixed size vector
for (price_return in stock_price_returns) {
    mh = update(mh, price_return)
}

# The resulting fixed size vector is stored in the MinHash object
fixed_size_vector = getValues(mh)


Es importante tener en cuenta que estos ejemplos pretenden ilustrar el proceso básico de uso de min-hash para convertir un vector de tamaño variable de rendimientos de precios de acciones en un vector de tamaño fijo. En una aplicación real, es posible que tenga que modificar el código para adaptarlo a sus necesidades y datos específicos.

 

- ¿así que min-hash es el mejor método?

Min-hash es un método para aproximar la similitud entre dos conjuntos calculando el número de elementos que tienen en común. Puede utilizarse para convertir un vector de tamaño variable de cotizaciones bursátiles en un vector de tamaño fijo, pero no es necesariamente la mejor forma de hacerlo, ya que puede provocar una pérdida de información.

Hay muchos enfoques diferentes que puede tomar para hacer hash de los datos de los rendimientos de los precios de las acciones, y el mejor enfoque dependerá de las características específicas de los datos y los requisitos de su aplicación. Algunos otros enfoques que puede considerar son

  1. Hashing de características: El hashing de características es una técnica utilizada para convertir datos categóricos o textuales en una representación numérica que puede utilizarse en algoritmos de aprendizaje automático. Puede utilizar el hash de características para convertir los datos de las cotizaciones bursátiles en un vector de tamaño fijo.

  2. Hashing sensible a la localización (LSH): LSH es una técnica utilizada para identificar aproximadamente elementos similares en un conjunto de datos. Puede utilizar LSH para convertir los datos de las cotizaciones bursátiles en un vector de tamaño fijo y, a continuación, identificar elementos similares basándose en sus valores hash.

  3. Otras técnicas: Hay muchas otras técnicas que se pueden utilizar para hacer un hash de los datos de las cotizaciones bursátiles, como utilizar una permutación aleatoria o un generador congruencial lineal. La técnica específica que elijas dependerá de las características de los datos y de los requisitos de tu aplicación.

A la hora de elegir una técnica de hash, es importante tener en cuenta el equilibrio entre precisión y eficacia. Algunas técnicas pueden ser más precisas pero menos eficientes, mientras que otras pueden ser más eficientes pero menos precisas. Tendrás que encontrar el equilibrio adecuado que satisfaga las necesidades de tu aplicación.

 
mytarmailS #:
Alexei, deja de escuchar a los profanos.

Si necesita un número diferente de signos por entrada.
Esta es la minería de patrones frecuentes - búsqueda de reglas asociativas en diferentes variaciones, incluso con un maestro.


==============
¿Por qué dije que NO hay algoritmos que toman diferentes números de características?
Porque incluso en tales algoritmos bajo el capó de los datos es una matriz dispersa en un formato de codificación caliente.
La entrada sigue siendo todos los nombres de las características, aunque en un formato más suave.
=======================
Además, no se especificó el número de características
Si el número de signos es relativamente pequeño 10-20k, se puede cargar en xgboost incluso en un portátil débil sin problemas.

Ya hemos discutido contigo las reglas asociativas. Para mi no encajan bien con mi planteamiento general de buscar diferencias entre precio y SB. El problema es que el SB es bastante bueno en hacer que parezca que hay reglas - el único problema es que serán diferentes en diferentes sitios.

 
Aleksey Nikolayev #:

Ya he hablado contigo de las reglas asociativas. Para mí, no encajan bien con mi planteamiento general de buscar diferencias entre precio y SB. El problema es que SB es bastante bueno en hacer que las reglas parecen existir - el único problema es que van a ser diferentes en diferentes sitios.

Boost entonces, pero para preparar los datos como tu quieres (sin estructura) necesitas entender como hacerlo correctamente, para esto deberias estudiar como preparar datos para reglas asociativas.
 

Buen trabajo, incluso tomé algo interesante para mí en el contexto de cambiar la longitud de la ventana.

Si usted tiene más preguntas, por favor esbozarlas, le preguntaré después del Año Nuevo.

 
Maxim Dmitrievsky #:

Está claro, podemos intentar usar funciones hash. Pero soy tímido para preguntar, en qué principio para elegir vectores de longitud arbitraria, o más bien la longitud para ellos:) y de qué datos.

puede haber muchas variantes

la primera opción es más agradable, pero hay que poner algo en la lógica

Esta es una pregunta muy importante, siempre estoy pensando en ello) Vamos a hablar de la longitud de la historia utilizada. Necesitas un compromiso razonable entre relevancia y longitud para los cálculos. Cuanto más corto, más relevante, pero cuanto más largo, más precisos serán los cálculos. A veces, un buen compromiso es en principio inalcanzable.

 
Maxim Dmitrievsky #:

Bien hecho, incluso he encontrado algo interesante para mí en el contexto del cambio de longitud de las ventanas.

Si tiene más preguntas, por favor, esbócelas, se las haré después de Año Nuevo.

Feliz Año Nuevo a todos).