CAPÍTULO 2. ESTADO DE LA CUESTIÓN
2.4. Análisis de Series Temporales
2.4.2. Técnicas de Transformación de Series Temporales
2.4.2.2. Transformaciones en Series Temporales de Caracteres
El objetivo de este tipo de transformación es transformar una serie temporal, compuesta por números, en una serie compuesta por palabras o símbolos. De este modo se dispondrá de una serie de símbolos que caracterizarán a la secuencia temporal a la cual representan. Estos símbolos suelen ser dependientes del dominio de aplicación que se esté considerando.
En [Agrawal et al. 95] se presenta un lenguaje de definición de formas llamado Shape
Definition Language (SDL) para la obtención de objetos basados en formas
contenidas en históricos asociados con estos objetos. Cada objeto de la base de datos tiene asociado un nombre que explica el comportamiento de la serie temporal en un intervalo concreto. A los valores de ese intervalo se les denomina historia. De ese modo, cada elemento de la historia es un símbolo que identifica el comportamiento de la serie temporal en una unidad de tiempo (sube, baja un poco,...). Se trata de un pequeño pero potente lenguaje que permite una amplia variedad de consultas sobre las formas encontradas en los históricos temporales. Una característica interesante del SDL es su capacidad de solapamiento borroso (blurry matching), que es aquel solapamiento en el que el usuario se preocupa de la forma en general y no de detalles específicos. Además, este lenguaje está implementado con operadores que reducen el no-determinismo reduciendo a su vez el número de llamadas hacia atrás (back- trackings) en la implementación.
La sintaxis para el alfabeto vendría dada por:
(alphabet (symbol lb ub iv fv)) Expresión 2-57. Definición del alfabeto SDL
donde symbol representa un símbolo del alfabeto y lb, ub, iv, fv son cuatro descriptores que definen el símbolo. Los primeros dos, lb y ub son los límites inferior
(lower bound) y superior (upper bound) de la variación permitida desde el valor inicial al valor final de la transición. Los últimos dos, iv y fv, especifican restricciones del valor inicial (initial value) y final (final value) de la transición y pueden tomar los valores zero (cero), nonzero (no cero) y anyvalue (cualquier valor). En la [Tabla 2-3] se muestra un ejemplo del alfabeto.
Symbol Description lb ub iv fv
up aumento ligero de la transición 0.05 0.19 anyvalue anyvalue Up aumento grande de la transición 0.20 1.0 anyvalue anyvalue down disminución ligera de la transición -0.19 -0.05 anyvalue anyvalue Down disminución grande de la transición -1.0 -.19 anyvalue anyvalue Appears transición de un valor cero a un valor no cero 0 1.0 zero nonzero Disappears transición de un valor no cero a un valor cero -1.0 0 nonzero zero Stable el valor final casi igual al valor inicial -0.04 0.04 anyvalue anyvalue Zero tanto el valor inicial como el final son cero 0 0 zero zero
Tabla 2-3. Alfabeto SDL
Teniendo en cuenta los símbolos de SDL, la transformación a símbolos de la secuencia temporal S [Figura 2-35] vendría determinada por la [Expresión 2-58].
Figura 2-35. Secuencia temporal S = (0 0 .02 .17 .35 .50 .45 .43 .15 .03 0)
(zero appears up up up down stable Down down disappears) Expresión 2-58. Ejemplo 1: Transfomación de la secuencia S
Dependiendo del alfabeto que se tenga, puede haber más de una posible transformación correspondiente a una secuencia temporal. Por ejemplo, otra posible traducción de S [Figura 2-35] sería la siguiente:
(zero stable up up up down stable Down down stable) Expresión 2-59. Ejemplo 2: Transformación de la secuencia S
Esta ambigüedad no causa inconsistencia para la consulta que se plantee porque el usuario especificará el símbolo que desea para el solapamiento. Por ejemplo, si el usuario ha preguntado por stable, se resolverá la ambigüedad entre stable y zero a favor de stable.
En [André-Jönsson y Badal 97] se presenta un método para codificar la forma de la secuencia temporal en un alfabeto de caracteres, llamado Shape Description Alphabet
(SDA), para poder tratarla como texto y utilizar esta transformación para una estructura de indexación de una dimensión. Para codificar la secuencia en un texto se utiliza un método similar al propuesto en [Agrawal et al. 95]. Se construye la derivada en el tiempo de la secuencia calculando la diferencia de amplitud entre dos muestras adyacentes. Se mapea esa diferencia a un token. Seleccionando un alfabeto a medida para este mapeo no sólo se podrán utilizar los ficheros de firmas como un índice, sino que también se tendrá la habilidad de realizar blurry matching tal y como se describe en [Agrawal et al. 95].
Primero se traduce la secuencia en un texto de secuencia de caracteres. Seguidamente se desplaza una ventana por el texto, a partir de la cual se va creando la firma y se va mapeando el string en un número de bits de la firma. La firma se almacena en el fichero de firmas con un puntero al bloque de texto (representación 1D de la secuencia) que ha sido utilizado para crear la firma.
Para lanzar consultas, simplemente se calcula la firma de la secuencia consulta 1D y se hace una búsqueda lineal en el fichero de firmas. Las ventajas de este método [André-Jönsson y Badal 97] respecto al [Agrawal et al. 95] son las siguientes:
El fichero de firmas es pequeño.
La simplicidad de probar hace que la búsqueda sea bastante rápida. Además tiene una complejidad O(n)en el tiempo.
El SDA, subconjunto del alfabeto SDL, es suficiente para describir cualquier secuencia. En la [Tabla 2-4] se muestra un ejemplo del SDA con cinco símbolos.
Símbolo Descripción lvalue hvalue
a aumento grande de la transición 5 -
u aumento ligero de la transición .2 4.99
s transición estable -1.99 1.99
d disminución ligera de la transición -4.99 -2
e disminución grande de la transición - -5
Tabla 2-4. Alfabeto SDA
Se calcula el valor diferencia entre dos puntos adyacentes y, dependiendo del intervalo del símbolo, definido por lvalue y hvalue, se asignará un símbolo u otro.
Estos valores son dependientes del dominio y es necesario encontrar los valores óptimos para el dominio que se pretende analizar.
Figura 2-36. Secuencia S ={0 2 6 14 19 20 21 18 17 25 20 15 10 0}
La capacidad de SDA de poder realizar blurry maching no sólo permite conocer las secuencias que son exactas a una secuencia consulta sino también todas las secuencias que son similares a la secuencia consulta. Por ejemplo, sea la secuencia S: {0 2 6 14 19 20 21 18 17 25 20 15 10 0}, representada en la [Figura 2-36], y traducida (utilizando SDA) a la secuencia ST: {u u a u s s d s a e e e e}; se pueden obtener diferentes secuencias al realizar la traducción inversa de ST, pudiendo obtener S1: {4 8 25 28 27 26 22 21 30 20 10 0} o S2:{12 14 19 22 23 24 22 22 28 22 17 12}, ambas representadas en la [Figura 2-37] y [Figura 2-38] respectivamente.
Figura 2-37. Secuencia S1= {4 8 25 28 27 26 22 21 30 20 10 0}
Figura 2-38. Secuencia S2= {12 14 19 22 23 24 22 22 28 22 17 12}
En [Lin et al. 02, Lin et al. 03, Chiu et al. 03] se propone Symbolic Aggregate
approXimation (SAX) como una aproximación para transformar secuencias
temporales numéricas a secuencias temporales simbólicas con dos objetivos: Reducir la dimensionalidad de la secuencia temporal
0 5 10 15 20 25 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 tiempo v a lo r 0 5 10 15 20 25 30 35 1 2 3 4 5 6 7 8 9 10 11 12 tiempo va lo r 0 5 10 15 20 25 30 1 2 3 4 5 6 7 8 9 10 11 12 tiempo va lo r
Cumplir que la distancia entre dos secuencias simbólicas es menor o igual que la distancia de las dos secuencias temporales originales para, de ese modo, poder utilizar técnicas de data mining (ver sección 2.2).
Esta aproximación está compuesta de dos partes. La primera parte transforma la secuencia temporal Cc1,...,cn mediante PAA (Piecewise Aggregate Approximation) tal y como se muestra en la siguiente figura:
0 20 40 60 80 100 120
C
C
Figura 2-39. Primera parte del SAX. Transformación PAA
De este modo, se consigue reducir la dimensionalidad de la secuencia C, pasando de tener n elementos a estar representada en un espacio w-dimensional por un vector
w c c
C 1,..., . El elemento i-ésimo de C viene determinado por la [Expresión 2-60].
1 ) 1 ( 1 i w n j j c n w cExpresión 2-60. Elemento i-ésimo deC
La segunda parte del método consiste en ―discretizar mediante símbolos‖ los segmentos obtenidos del PAA. Teniendo en cuenta que las series temporales siguen una distribución Gaussiana [Larsen y Marx 86], se procede a utilizar esta distribución para obtener los valores límite que definen las regiones, a partir de los cuales un elemento de C, dependiendo de la región donde se encuentre, se traducirá al símbolo que representa esa región. En la [Figura 2-40] se muestra un ejemplo donde la longitud de C es 128, la longitud de C es 8 y el número de regiones de corte es 3,
c
c
a
a
b
0 -- 0 20 40 60 80 100 120b
b
c
Figura 2-40. SAX: Primero se transforma mediante PAA y después se determinan los valores a partir de los cuales se traducen los coeficientes PAA en símbolos SAX.
Para poder comparar dos secuencias simbólicas se generaliza la distancia entre dos secuencias transformadas vía PAA [Expresión 2-44], denominándola MINDIST:
w i i i c q dist w n C Q MINDIST 1 2 )) ˆ , ˆ ( ( ) ˆ , ˆ (Expresión 2-61. Distancia MINDIST para el SAX
La dist(qˆi,cˆi)se obtiene a partir de una tabla que se ha creado utilizando la distribución Gaussiana. En la [Tabla 2-5] se muestra un ejemplo de esta tabla considerando un alfabeto de cardinalidad cuatro.
a b c d
a 0 0 0.67 1.34
b 0 0 0 0.67
c 0.67 0 0 0
d 1.34 0.67 0 0
Tabla 2-5. Tabla para la función MINDIST para un alfabeto de cardinalidad 4. Ejemplo, dist(a,b)=0, dist(a,c)=0.67