MLconf 2015 Seattle: ¿Cómo funciona la técnica de aproximación simbólica agregada (SAX)?

Ray Richardson ya lo ha explicado a continuación. Trataré de elaborar con un ejemplo.
El método de aproximación agregada simbólica (SAX) se ha desarrollado para reducir la dimensionalidad de una serie numérica, por ejemplo, una serie de tiempo como se muestra en la primera figura a continuación, en una cadena corta de caracteres. SAX sigue un proceso de dos pasos: (1) Aproximación agregada por partes (PAA) y (2) conversión de una secuencia de PAA en una serie de letras. PAA divide el conjunto de datos de longitud n en w segmentos o contenedores igualmente espaciados, y calcula el promedio de cada segmento. Esto esencialmente significa que reducimos el número de dimensiones de n a w . Para el ejemplo específico aquí, la dimensionalidad se ha reducido de 200 a 20, como se muestra en la segunda figura con segmentos discretos de línea horizontal, con cada segmento representando un agregado sobre 10 puntos de datos consecutivos en la serie de tiempo. Tenga en cuenta que la serie temporal se ha normalizado para tener una media de cero y una desviación estándar de uno, antes de convertirla a la representación PAA.

El método SAX toma la representación PAA como entrada y la discretiza en un conjunto de k alfabetos, de modo que, típicamente, k << n . Se supone que la serie temporal normalizada tiene una distribución gaussiana. A continuación, se determinan los llamados “puntos de ruptura” que producirán k áreas de igual tamaño bajo la curva normal estándar, que se muestra con líneas de puntos de colores en la segunda figura. Todos los coeficientes PAA que están por debajo del punto de ruptura más pequeño se asignan al símbolo ‘ a ‘, todos los coeficientes mayores que iguales al punto de ruptura más pequeño y menores que el segundo punto de ruptura más pequeño se asignan al símbolo ‘ b ‘, y así sucesivamente. Eche un vistazo a la Fig. 2 para ver qué está pasando.

En el contexto de la minería de datos, se ha demostrado que SAX es tan bueno como las representaciones bien conocidas, como la transformada de wavelet discreta y la transformada de Fourier discreta, a la vez que requiere menos espacio de almacenamiento.
Echa un vistazo al artículo de Jessica Lin aquí: http://cs.gmu.edu/~jessica/SAX_D…

SAX es una técnica para representar en series de tiempo, es decir, una secuencia de valores indexados por tiempo, como un símbolo. La serie temporal se convierte primero en una aproximación agregada por partes dividiendo la serie temporal en N secciones y asignando cada valor a una sección en función de su índice de tiempo, y luego promediando los valores en cada sección. Esto produce una serie de N elementos. Luego, la matriz se normaliza en Z (posiblemente en una serie de tiempo más larga) y a cada sección se le asigna una letra SAX, un valor entre 0 y K (donde K es pequeño). Esta asignación se realiza dividiendo la Distribución Normal Estándar en secciones K + 1 de igual área debajo de la curva, y luego asignando la letra correspondiente al punto en la curva donde se encuentra el valor. Esto da como resultado una matriz de longitud N, cada componente es un valor entre 0 y K, que puede tratarse como un símbolo

SAX es una forma de transformar una serie temporal en una secuencia de símbolos. La idea básica es que cada símbolo representará algún intervalo de valores y que el símbolo se elegirá de modo que cada símbolo aparezca aproximadamente con la misma frecuencia en las series de tiempo.

Pero para tener una mejor idea, puede leer una publicación de blog que he escrito que explica cómo se aplica el algoritmo SAX a una pequeña serie temporal con algunas imágenes.

Introducción a la minería de series temporales con SPMF – The Data Mining Blog

Además, si desea probarlo, hay una implementación Java de SAX, que se ofrece en la biblioteca de minería de datos SPMF con una herramienta para visualizar series de tiempo, así como numerosos algoritmos para encontrar patrones en secuencias de símbolos que puede usar después de aplicar SAXÓFONO:

Una biblioteca de minería de datos de código abierto de Java

¡Espero que esto ayude!