La mayoría de los métodos de clasificación de series de tiempo de última generación (SOTA) están limitados por una alta complejidad computacional es por ello que se apoyan de los algoritmos con python. Esto los hace lentos para entrenar en conjuntos de datos más pequeños y efectivamente inutilizables en conjuntos de datos grandes. Pero los desarrollos de Python van mejorando con el paso del tiempo.
En este contexto, recientemente, ROCKET (RandOM Convolutional KErnel Transform) ha logrado SOTA de precisión en solo una fracción del tiempo que otros clasificadores de series de tiempo SOTA. Esto significa que ROCKET transforma series de tiempo en características utilizando núcleos convolucionales aleatorios y pasa las características a un clasificador lineal.
Por esa razón y muchas otras más no menos importantes, es que te recomendamos este curso de python profesional, el cual lo imparten de manera presencial o en linea, con instructores expertos en este lenguaje de programación.
MiniRocket (MINImally RandOm Convolutional KErnel Transform) es una reformulación (casi) determinista de Rocket que es 75 veces más rápida en conjuntos de datos más grandes y cuenta con una precisión aproximadamente equivalente. Este es un desarrollo de Python.
Para darnos una idea de su velocidad, en los 108 conjuntos de datos en el archivo UCR, Rocket se ejecutó en aproximadamente 2 horas en un solo núcleo de CPU. ¡MINIROCKET tardó solo 8 minutos en ejecutarse! A modo de comparación, el siguiente algoritmo SOTA más rápido (cBOSS) tomó aproximadamente 14 horas.
En esencia, Rocket para Python es un método para la transformación de series de tiempo o extracción de características. Las características extraídas contienen información relacionada con la pertenencia a la clase de serie, que puede modelarse mediante un clasificador lineal.
Rocket transforma las series de tiempo convolucionando primero cada serie con 10.000 núcleos convolucionales aleatorios. Los granos aleatorios tienen longitud, pesos, sesgo, dilatación y relleno aleatorios. Luego, Rocket uno de los algoritmos con python puede aplica por separado la agrupación máxima global y la agrupación de "proporción de valores positivos" de PPV a la salida convolucional para producir 2 características por kernel, una característica para cada método de agrupación. Esto da como resultado 20.000 características por serie temporal de entrada.
La proporción de valores positivos indica cómo ponderar la prevalencia de un patrón capturado por el kernel. Este valor es el elemento más crítico de ROCKET y contribuye a su alta precisión. ¿En qué se diferencia MiniRocket de Rocket?
Tanto MiniRocket como Rocket se desarrollaron en Python y se basan en la combinación de valores de convolución utilizando PPV, o proporción de valores positivos, de los resultados de convolución. Como repaso rápido, puede definir PPV como PPV = proporción de valores que son mayores que 0, después de convolucionar X con pesos W y restar el sesgo b.
MiniRocket utiliza un conjunto pequeño y fijo de núcleos convolucionales en lugar de núcleos con hiperparámetros aleatorios. En general, MiniRocket minimiza la cantidad de opciones de hiperparámetros para cada kernel. El número de núcleos MiniRocket se mantiene lo más pequeño posible, sin dejar de mantener la precisión, para maximizar la eficiencia computacional.
El hecho que ambos hayan sido construidos en Python nos muestra la gran versatilidad y usabilidad de este lenguaje de programación, a la vez que nos permite visualizar su potencial de crecimiento.
Diseño Web Grupo Codesi