Sunteți pe pagina 1din 105

UNIVERSIDAD VERACRUZANA

Facultad de Fı́sica e Inteligencia Artificial


Departamento de Inteligencia Artificial

Discretización de series de tiempo usando


programación evolutiva con función
multiobjetivo

Tesis profesional presentada por:


Fernando Rechy Ramı́rez

Para obtener el grado de maestro


en Inteligencia Artificial

Directores de tesis:
Dr. Héctor Gabriel Acosta Mesa
Dr. Efrén Mezura Montes

Xalapa, Veracruz, México 15 de Diciembre de 2010


Agradecimientos

Primero que nada quiero agradecer a mi familia: mi madre Friné Ramı́rez González,
mi padre Fernando Rechy Gómez y mi hermana Ericka Janet Rechy Ramı́rez por todo su
cariño, apoyo incondicional y confianza hacia mi.

A mi Director de Tesis: Dr. Héctor Gabriel Acosta Mesa por su asesoramiento en


el desarrollo de este trabajo, ası́ como el apoyo brindado para concluir este producto.

A mis revisores del documento: Dr. Efrén Mezura Montes y M.C. Angélica Garcı́a
Vega por su apoyo, tiempo, observaciones y sugerencias a mi trabajo.

Al Dr. Nicandro Cruz Ramı́rez por su apoyo en algunos puntos sobre el trabajo de
tesis.
A los doctores de la maestrı́a en inteligencia artificial por compartirme todos sus
conocimientos en las clases impartidas, y fuera de ellas, además de sus pláticas sobre el
área en mi estancia del posgrado.

A la maestrı́a en inteligencia artificial, en particular a todo su equipo de trabajo


tanto la parte de los docentes como de las personas de apoyo técnico y servicios.

A mis compañeros de generación y amigos con los que enfrentamos las dificultades,
no importando las altas horas de la noche, con el fin de concluir tareas y proyectos finales.

A Dios nuestro señor por darnos el regalo de estar presentes y disfrutar de cada dı́a.

A mi deporte favorito el Basketball que me desestresaba en aquellos momentos de


gran tensión.

A mi música favorita que me sirve siempre para estar enfocado y darle un buen
toque a mi vida.

A mis amigos y seres queridos durante esta travesı́a.

Al Consejo Nacional de Ciencia y Tecnologı́a (CONACyT) por su patrocinio y


apoyo en la realización de mis estudios de maestrı́a, con el número de registro de beca
272995.

Discretización de series de tiempo i Fernando Rechy Ramı́rez


con PE y función multiobjetivo
Índice general

1. Introducción 1
1.1. Minerı́a de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Series de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Minerı́a de datos sobre series de tiempo . . . . . . . . . . . . . . . . . . . . 2
1.4. Discretización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5. Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6. Algoritmos evolutivos (AE) . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6.1. Algoritmos genéticos (AG) . . . . . . . . . . . . . . . . . . . . . . . 7
1.6.2. Programación evolutiva (PE) . . . . . . . . . . . . . . . . . . . . . 8
1.7. Clasificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2. Antecedentes 10
2.1. Clasificación de trabajos revisados . . . . . . . . . . . . . . . . . . . . . . . 10
2.2. Discretización de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3. Reducción de dimensionalidad de los datos . . . . . . . . . . . . . . . . . . 16
2.4. Discretización de series de tiempo . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.1. Algoritmos que requieren parámetros crı́ticos definidos por el usuario 18
2.4.2. Algoritmos que trabajan con una serie de tiempo a la vez . . . . . . 19
2.4.3. Algoritmos que minimizan el error por separado, primero sobre el
alfabeto y después sobre la longitud de palabra . . . . . . . . . . . 22
2.5. Comentarios generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3. Propuesta y justificación 28
3.1. Mapeo de valores continuos a valores discretos . . . . . . . . . . . . . . . . 28
3.2. Reducción de dimensionalidad . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3. Maximización de información . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4. Soluciones generales (no especı́ficas) . . . . . . . . . . . . . . . . . . . . . . 30
3.5. Sin necesidad de parámetros crı́ticos definidos por el usuario . . . . . . . . 30
3.6. Representaciones completas (solución conjunta de alfabeto con longitud de
palabra) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.7. Complejidad computacional, tiempo y espacio . . . . . . . . . . . . . . . . 32
3.8. Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

ii
ÍNDICE GENERAL ÍNDICE GENERAL

3.9. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4. Metodologı́a 37
4.1. Representación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2. Generar población . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3. Generar individuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.4. Funcion de evaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.4.1. Proceso de discretización . . . . . . . . . . . . . . . . . . . . . . . . 48
4.5. Mecanismo de selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.6. Selección de padres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.7. Operador de mutación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.8. Selección del mejor individuo . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.9. Evaluación del esquema de discretización . . . . . . . . . . . . . . . . . . . 53
4.10. Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5. Resultados y discusión 58
5.1. Series de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.2. Caracterı́sticas de las series de tiempo . . . . . . . . . . . . . . . . . . . . . 71
5.3. Resultados obtenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.4. Análisis de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.5. Discusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

6. Conclusiones y trabajo futuro 86


6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.1.1. Ventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.1.2. Aspectos a mejorar . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.1. Optimización de los pesos de la función de utilidad . . . . . . . . . 89
6.2.2. Optimización de los parámetros del algoritmo evolutivo . . . . . . . 89
6.2.3. Análisis de las bases de datos . . . . . . . . . . . . . . . . . . . . . 90
6.2.4. Aplicaciones del algoritmo . . . . . . . . . . . . . . . . . . . . . . . 90
6.2.5. Modificación sobre la estrategia de selección . . . . . . . . . . . . . 91

A. Gráficas comparativas entre generaciones y tamaño de la población 92

Discretización de series de tiempo iii Fernando Rechy Ramı́rez


con PE y función multiobjetivo
Índice de figuras

1.1. Representación de un esquema de discretización . . . . . . . . . . . . . . . 4


1.2. Esquema general de un algoritmo evolutivo . . . . . . . . . . . . . . . . . . 7

2.1. Ejemplo de la solución propuesta por Fayyad . . . . . . . . . . . . . . . . . 16


2.2. Ejemplo de reducción de dimensionalidad mediante PAA . . . . . . . . . . 17
2.3. Comparación entre una serie de tiempo continua y una discreta . . . . . . 18
2.4. Versión discretizada de una serie de tiempo mediante el algoritmo SAX . . 19
2.5. Ejemplo de la representación utilizada por Dimitrova . . . . . . . . . . . . 22

3.1. Representación de una solución . . . . . . . . . . . . . . . . . . . . . . . . 32


3.2. Espacio de soluciones para programación evolutiva . . . . . . . . . . . . . . 36

4.1. Fenotipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2. Genotipo (los valores están desordenados) . . . . . . . . . . . . . . . . . . 40
4.3. Genotipo con ı́ndice de separación (los valores están desordenados) . . . . 40
4.4. Representación para ilustrar el procedimiento de eliminar valores repetidos 44
4.5. Matriz de strings inicializada . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.6. Matriz de strings después del proceso de llenado . . . . . . . . . . . . . . . 46
4.7. Genotipo ordenado con ı́ndice de separación . . . . . . . . . . . . . . . . . 50

5.1. Serie de tiempo CBF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60


5.2. Serie de tiempo Face four . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3. Serie de tiempo Coffee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4. Serie de tiempo Gun Point . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.5. Serie de tiempo Beef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.6. Serie de tiempo ECG200 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.7. Serie de tiempo Olive Oil . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.8. Serie de tiempo Lighting7 . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.9. Serie de tiempo Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.10. Serie de tiempo Lighting2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.11. Serie de tiempo Adiac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.12. Serie de tiempo Synthetic control . . . . . . . . . . . . . . . . . . . . . . . 66
5.13. Serie de tiempo OSU Leaf . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

iv
ÍNDICE DE FIGURAS ÍNDICE DE FIGURAS

5.14. Serie de tiempo Fish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67


5.15. Serie de tiempo 50 words . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.16. Serie de tiempo Yoga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.17. Serie de tiempo Swedish Leaf . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.18. Serie de tiempo Face all . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.19. Serie de tiempo Wafer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.20. Serie de tiempo Two pattern . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.21. Resultados con 25 generaciones y una población de 200 individuos . . . . . 74
5.22. Resultados con 25 generaciones y una población de 250 individuos . . . . . 75
5.23. Resultados con 25 generaciones y una población de 300 individuos . . . . . 75
5.24. Resultados con 50 generaciones y una población de 200 individuos . . . . . 76
5.25. Resultados con 50 generaciones y una población de 250 individuos . . . . . 76
5.26. Resultados con 50 generaciones y una población de 300 individuos . . . . . 77
5.27. Resultados con 75 generaciones y una población de 200 individuos . . . . . 77
5.28. Resultados con 75 generaciones y una población de 250 individuos . . . . . 78
5.29. Resultados con 75 generaciones y una población de 300 individuos . . . . . 78
5.30. Resultados con 50 generaciones, población de 250 individuos y con k = 1 . 82
5.31. Resultados con 50 generaciones, población de 250 individuos y con k = 3 . 82
5.32. Resultados con 50 generaciones, población de 250 individuos y con k = 5 . 83
5.33. Gráfica del espacio de búsqueda con respecto a los parámetros del algoritmo
evolutivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

A.1. Resultados por generación con un valor de 25 generaciones . . . . . . . . . 92


A.2. Resultados por generación con un valor de 50 generaciones . . . . . . . . . 92
A.3. Resultados por generación con un valor de 75 generaciones . . . . . . . . . 93
A.4. Resultados por tamaño de la población para una población de 200 individuos 93
A.5. Resultados por tamaño de la población para una población de 250 individuos 93
A.6. Resultados por tamaño de la población para una población de 300 individuos 94
A.7. Todos los resultados ordenados por generaciones y después por tamaño de
población . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
A.8. Todos los resultados ordenados por tamaño de población y después por
generaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

Discretización de series de tiempo v Fernando Rechy Ramı́rez


con PE y función multiobjetivo
Índice de Tablas

2.1. “Matriz quanta” para el atributo F y el esquema de discretización D . . . 13


2.2. Tabla comparativa entre las diferentes propuestas revisadas con las carac-
terı́sticas más relevantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5.1. Conjuntos de datos utilizados para evaluar el desempeño del algoritmo . . 59


5.2. Conjuntos de datos utilizados con caracterı́sticas representativas . . . . . . 72
5.3. Resultados de las nueve pruebas . . . . . . . . . . . . . . . . . . . . . . . . 80
5.4. Resultados de nuestra propuesta para las combinaciones de parámetros . . 81

vi
Índice de Algoritmos

4.1. Esquema general de un algoritmo evolutivo . . . . . . . . . . . . . . . . . . 37


4.2. Poblacion: Algoritmo para generar la población . . . . . . . . . . . . . . . 41
4.3. makeVector: Construcción de vectores para conformar individuo . . . . . . 43
4.4. limits: Elimina valores repetidos dentro de un vector . . . . . . . . . . . . . 45
4.5. evaluePopulation: Evalua toda la población . . . . . . . . . . . . . . . . . . 48
4.6. stringsMatrix: Crea la matriz de strings . . . . . . . . . . . . . . . . . . . . 49
4.7. evalueMatrix: Obtiene los valores de los primeros dos parámetros a partir
de la matriz de strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.8. funFitness: Devuelve el valor de utilidad a partir de los pesos y los valores
de los tres parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.9. allToDiscrete: Discretiza todas las series de tiempo de la base de datos . . 51
4.10. ToDiscrete: Discretiza una serie de tiempo . . . . . . . . . . . . . . . . . . 52
4.11. funMutacion: Función de mutación . . . . . . . . . . . . . . . . . . . . . . 55
4.12. indexMutacion: Devuelve un ı́ndice válido para mutar . . . . . . . . . . . . 56
4.13. EAlgorithm: Algoritmo evolutivo basado en programación evolutiva . . . . 57

vii
Capı́tulo 1
Introducción

En este capı́tulo se describirá brevemente el área de interés de la tesis. Además, se


dará una breve reseña de las aplicaciones utilizadas para desarrollar este trabajo. Al paso
de cada capı́tulo, se buscará definir el camino para llegar a una propuesta que resuelva
el problema de discretización de series de tiempo. En el segundo capı́tulo, se detallará el
estado del arte sobre las propuestas más relevantes sobre el área de discretización. En
el tercer capı́tulo, se determinará la propuesta y se justificarán las caracterı́stcas que se
incorporaron dentro de ésta. En el cuarto capı́tulo, se revisará en profundidad el algoritmo
de discretización de series de tiempo. Para el capı́tulo quinto, se mostrarán los resultados
obtenidos y la discusión de éstos. Finalmente, en el capı́tulo sexto se aportarán las con-
clusiones y el trabajo futuro posible.

Los métodos tradicionales de minerı́a de datos tratan con bases de datos estáticas,
es decir, el orden de los registros no tiene importancia. Existen casos donde el orden,
tiene un alto impacto con la información que se puede extraer de las bases de datos. Un
caso donde sucede esto, es la bolsa de valores, cuyos registros tienen un factor tempo-
ral que afecta los datos. En este capı́tulo, se presenta una introducción al lector sobre la
problemática de discretización de datos. Este problema se aborda en varias áreas, pero
en particular, nuestro trabajo se enfoca sobre la minerı́a de datos sobre series de tiempo.
Primero, se describirá la sección de minerı́a de datos sobre series de tiempo. Después,
se detallará un poco sobre el proceso de discretización. Por último, se mencionará una
pequeña descripción de dos técnicas implicadas para encontrar una solución al problema
de discretización: algoritmos genéticos y clasificación.

1.1. Minerı́a de datos


Actualmente el área de minerı́a de datos es utilizada en muchos procesos computa-
cionales que buscan información, sin embargo no significa que ésta sea aplicada en todos
los procesos. El objetivo primordial de la minerı́a de datos es encontrar información re-
levante automáticamente a partir de conjuntos de datos muy grandes. Las técnicas que
son utilizadas intentan rastrear los conjuntos de datos con el fin de encontrar patrones

1
1.2 Series de tiempo Capı́tulo 1

novedosos y útiles que en otros casos puedan continuar desconocidos. También proveen
capacidades para predecir resultados de observaciones futuras [1].

La minerı́a de datos no abarca todas las tareas cuyos objetivos son el descubrimien-
to de información. Existen casos donde se buscan registros individuales usando sistemas
de manejo de bases de datos como motores de búsqueda en internet.

El enfoque de nuestro trabajo es sobre series de tiempo, en la siguiente sección se


abordará el tema de series de tiempo después el área de minerı́a de datos sobre series de
tiempo.

1.2. Series de tiempo


Los tipos de datos puede diferir en varias maneras. Los atributos que están con-
tenidos en las bases de datos pueden ser cualitativos o cuantitativos, además de que al-
gunos conjuntos de datos pueden tener caracterı́sticas especiales como son series de tiempo
u objetos con relaciones explı́citas entre ellos. Está claro que el tipo de datos determina
qué herramientas y técnicas pueden ser usadas para analizar los datos.

Las series de tiempo son un tipo especial de datos secuenciales donde cada registro
es una serie de tiempo. Una serie de tiempo es una secuencia de datos, medidos en tiem-
pos sucesivos espaciados por intervalos uniformes de tiempo. Por ejemplo, un conjunto de
datos financieros deben contener objetos que son series de tiempo de los precios diarios
de varias acciones. Por lo tanto, trabajar con datos temporales implica que es importante
considerar autocorrelaciones temporales. Como ejemplo se dice que si dos mediciones son
cercanas en tiempo, entonces los valores de estas mediciones a menudo son similares [1].

El análisis de las series de tiempo tiene como objetivo extraer estadı́sticas y otras
caracterı́sticas significantes de los datos. Por lo tanto, las series de tiempo tienen un orden
temporal.

1.3. Minerı́a de datos sobre series de tiempo


El tiempo es una caracterı́stica importante en la explicación de algunos fenómenos.
Algunas bases de datos incluyen esta propiedad, por lo tanto, los trabajos relacionados con
la minerı́a de datos cambian su interpretación, ası́ se desprende una nueva rama dentro
de la minerı́a de datos, llamada minerı́a de datos sobre series de tiempo. Al agregar la
dimensión de tiempo, se producen bases de datos de series de tiempo (BDST), ası́ como
nuevos conceptos y tareas por realizar. Los retos principales son: búsqueda de eficientes
representaciones de las series de tiempo, medidas de similaridad en series de tiempo, de-
tección de puntos de transición en series de tiempo, clasificación y agrupación de series de

Discretización de series de tiempo 2 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
1.4 Discretización Capı́tulo 1

tiempo.

Recientemente, se ha incrementado significativamente el interés en la minerı́a de


bases de datos de series de tiempo. Como en la mayorı́a de los problemas de ciencias de la
computación, la representación de los datos es la clave para soluciones eficientes y efectivas.
Reducir el tamaño de los datos hace que el almacenamiento, transmisión y cómputo de los
mismos sea más eficiente. También es importante mantener la información más relevante
dentro de la representación [5].

1.4. Discretización
En muchos campos de la ciencia como son la medicina, astronomı́a, bioinformática,
etcétera, se manejan cantidades muy grandes de información; en su mayorı́a están des-
critas con valores continuos. A partir de la adquisición de los datos reales, se identifica
la problemática de requerir grandes espacios de almacenamiento para contener toda la
información. La necesidad de grandes cantidades de información se da por el gran número
de lecturas requeridas para explicar algún fenómeno del mundo real. Para atacar dicha di-
ficultad, se busca reducir el tamaño de la información; no significa que se mantenga lo más
importante, pero serı́a altamente deseable conservarlo. Por otra parte, el uso de valores
continuos incrementa la dificultad en ciertas tareas dentro de la minerı́a de datos. Además,
la mayorı́a de los algoritmos en minerı́a de datos sobre series de tiempo, asumen que el
proceso se hará con datos discretos. De esta manera, se tiene la necesidad de transformar
los valores continuos a valores discretos. Después de esclarecer los inconvenientes de los
datos adquiridos del mundo real, se describirá cómo atacar las dificultades mencionadas.

Las partes necesarias en el proceso de discretización se muestran a continuación,


primero se hablará respecto a la dimensionalidad, posteriormente a la transformación de
los valores continuos.

El enfoque de la dimensionalidad de los datos, es decir, el hecho de explicarlos con


un tamaño menor, tiene dos propuestas. La primera, se dedica únicamente a reducir el
tamaño de la información y la segunda, disminuye el tamaño, pero busca mantener la
información más importante o la que explique de mejor manera los datos. En la literatura
especializada, se han planteado algoritmos para ambos enfoques. Con respecto a la primer
propuesta, únicamente se requiere de un porcentaje de reducción o un número de partes
determinado. Para la segunda perspectiva, se requiere de una heurı́stica o método que
defina las partes más relevantes del conjunto de datos.

La transformación de valores continuos a valores discretos, requiere de un método,


el cual se enfoca en obtener una serie de valores necesarios para describir correctamente
todos los valores existentes en los datos; una vez obtenidos, se delimitan como puntos
de corte para establecer valores categóricos. Estos valores categóricos son determinados a
través del ı́ndice del intervalo en el que se encuentra cada valor a discretizar.

Discretización de series de tiempo 3 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
1.4 Discretización Capı́tulo 1

Ahora, se hablará de la forma representativa utilizada para expresar las dos sec-
ciones descritas anteriormente. Como se ha mencionado, la primera parte determina la
longitud de valores almacenados, hablando de manera gráfica se trabaja sobre el eje de la
abscisa; y el segundo, los diferentes valores que mejor explican las lecturas sobre el eje de
la ordenada. Como se mencionó al inicio, los datos que se utilizarán son llamados series
de tiempo. Los elementos utilizados en las series de tiempo son: la longitud de la serie de
tiempo (sobre la abcisa) y los valores continuos que tiene la serie de tiempo a lo largo del
tiempo (sobre la ordenada). A partir de la composición que tienen las series de tiempo,
se crean esquemas de discretización con el objetivo de reducir la cantidad de información
y manejar valores discretos en vez de utilizar datos continuos. La manera de ejemplificar
la discretización de manera más sencilla es a través de una gráfica, donde se aplica una
cuadrı́cula sobre la abcisa y la ordenada. El resultado que se obtiene será un valor por
cada intervalo existente sobre la abcisa y los valores asignados son los que se encuentran
en los intervalos sobre la ordenada. Es importante resaltar, que con mucha frecuencia, los
valores discretos utilizan letras del alfabeto (a, b, c, etc.) o valores enteros (1, 2, 3, etc.)
para representar los intervalos.

Dentro del esquema de discretización, la denotación utilizada para los valores de la


abscisa es denominada longitud de palabra y para los valores de la ordenada es llamado
alfabeto. A partir de la Figura 1.1 se ejemplifica lo anteriormente dicho.

Figura 1.1: Representación de un esquema de discretización

Otra parte fundamental sobre la discretización, está determinada mediante un a-

Discretización de series de tiempo 4 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
1.5 Propuesta Capı́tulo 1

tributo, que en algunas ocasiones es brindada por los datos. Como se menciona en la
literatura, se sabe que existen dos formas diferentes de ejercer la discretización sobre los
datos: Discretización no supervisada y discretización supervisada. La distinción básica
que se encuentra entre estos diferentes métodos para clasificación, está determinada por
un elemento importante llamado etiqueta de clase. Con respecto a la discretización no
supervisada, este elemento no se conoce y para la supervisada si [1].

1.5. Propuesta
Como se describió en la parte inicial, la problemática que se busca resolver está en-
focada a la discretización de datos, en especı́fico series de tiempo. Se sabe que algunos de
los algoritmos de clasificación requieren de datos en forma de atributos categóricos. Los
diversos esquemas de discretización que se pueden encontrar, buscan producir el mejor
resultado para los algoritmos de minerı́a de datos utilizados para analizar los datos.

En este trabajo, se propone atacar el proceso de discretización de manera super-


visada a través de una técnica de algoritmos evolutivos. Dentro de la propuesta se incluye
la sección de reducción de dimensionalidad y definición de valores categóricos. A partir
de la revisión de algunos trabajos, se puede observar que algunos autores deciden dividir
el proceso de discretización en dos fases. La primera parte se enfoca en definir un alfa-
beto adecuado para los datos; la segunda está orientada en la obtención de la longitud de
palabra con sus respectivos intervalos para reducir la dimensionalidad de los datos. Para
nuestra propuesta, se simplifican las dos fases, y únicamente se tiene una donde se define
un esquema de discretización completo, el cual incluye la generación de un determinado
alfabeto y una longitud de palabra. De esta manera se evalua una solución conjunta, evi-
tando minimizar el error por separado de la solución general.

La idea que se presenta en este trabajo mejora en un gran número de casos los
resultados obtenidos por los otros métodos utilizados en la comparación. PEVOMO(Pro-
gramación EVOlutiva con función MultiObjetivo) , es una solución como su nombre lo
dice, basado en programación evolutiva, la cual busca un esquema de discretización con-
junto y multiobjetivo (mediante una suma ponderada), es decir, se contempla dentro de
una solución a una longitud de palabra y a un alfabeto al mismo tiempo. Ésta ataca tres
particularidades necesarias en nuestra propuesta de discretización: El grado de precisión
para la clasificación entre clases, el nivel de compresión referente a las diferentes repre-
sentaciones categóricas obtenidas (strings), y el porcentaje de reducción sobre la longitud
de la serie de tiempo junto con la cantidad de valores categóricos necesarios para explicar
todos los datos. Se aprecia que es una tarea que requiere grandes cantidades de tiempo a
causa del espacio de búsqueda tan grande. El número de cortes y el posicionamiento de
cada corte originan un gran número de combinaciones, ésto sólo para una dimensión. Si
consideramos esta situación para ambos ejes (dos dimensiones), y además que los valores
sobre el eje de las ordenadas está en el dominio de los números reales (valores continuos),
podemos concluir que el espacio de búsqueda es muy grande. Además, se tiene infinidad de

Discretización de series de tiempo 5 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
1.6 Algoritmos evolutivos (AE) Capı́tulo 1

valores continuos posibles. Se pueden resaltar las bondades de los algoritmos evolutivos,
donde se encuentra principalmente la capacidad de explorar grandes espacios de búsqueda
evitando caer en mı́nimos locales. La caracterı́stica multiobjetivo del algoritmo se conside-
ra accesible, al dar la capacidad al usuario de definir el tipo de esquema de discretización
que requiera, ya que los tres parámetros mencionados pueden calibrarse mediante pesos y
ası́ sesgar la búsqueda hacia el espacio que el usuario desee encontrar.

1.6. Algoritmos evolutivos (AE)


El área de los AEs es considerada como la base de todos los algoritmos de esta
área, considerándose como el padre de los algoritmos genéticos, las estrategias evoluti-
vas, la programación evolutiva y la programación genética [4]. Sin embargo otro autor [7]
maneja al cómputo evolutivo como el área base de estos algoritmos. Lo que se menciona
a lo largo del documento usa como base lo mencionado en [4].

En el campo de los algoritmos evolutivos existen muchas variantes. La idea principal


de todas estas técnicas es la misma: a partir de una población de individuos, la presión del
ambiente produce selección natural (supervivencia del más apto), causando un incremento
en la aptitud de la población. Dada una función de calidad a ser optimizada (dependiendo
el problema debe ser maximizada o minimizada), se puede crear aleatoriamente un con-
junto de posibles soluciones. Con base en esta función de calidad, algunos de los mejores
candidatos son escogidos como semilla para la siguiente generación (iteración), aplicando
cruza y/o mutación a éstos. La cruza es un operador aplicado a dos o más candidatos
seleccionados (padres) y se genera uno o más candidatos nuevos (hijos). La mutación se
aplica a una solución candidata y el resultado es una nueva. Ejecutando cruza y mutación
se origina un nuevo conjunto de candidatos (los hijos) que compiten con el conjunto previo
por un lugar en la siguiente generación. Este proceso puede ser iterado hasta que un can-
didato (una solución) con la suficiente calidad es encontrada, o un limite computacional
sea previamente alcanzado. El esquema general de un algoritmo evolutivo se muestra en
la Figura 1.2.
Existen varias técnicas dentro de los algoritmos evolutivos. Por ejemplo, la repre-
sentación de una solución es frecuentemente usada para caracterizar las diferentes corrien-
tes. Las soluciones candidatas son representadas por cadenas sobre una alfabeto finito en
el llamado algoritmo genético (AG), vectores de valores reales en las estrategias evolutivas
(EE ), máquinas de estados finitos en la programación evolutiva clásica (PE ), y árboles en
la programación genética (PG).

Los componentes de un algoritmo evolutivo son:

Representación (definición de los individuos)

Función de evaluación (o función de utilidad)

Población

Discretización de series de tiempo 6 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
1.6 Algoritmos evolutivos (AE) Capı́tulo 1

Figura 1.2: Esquema general de un algoritmo evolutivo

Mecanismo de selección de padres

Operadores de variación, cruza y mutación

Mecanismo de selección de supervivencia (reemplazo)

1.6.1. Algoritmos genéticos (AG)


Los AGs combinan el ajuste de supervivencia entre las estructuras de cadenas
con un intercambio estructurado de información aleatoria para formar un algoritmo de
búsqueda con alguna facilidad de innovación de búsqueda humana. En cada una de las ge-
neraciones, se construyen nuevos individuos los cuales pueden contener partes de los viejos
individuos. El AG no es únicamente una búsqueda aleatoria, sino que éstos explotan efi-
cientemente la información con el fin de muestrear nuevos puntos de búsqueda con un
esperado desempeño implementado.

Los AGs fueron desarrollados por John Holland, sus colegas y sus estudiantes en la
universidad de Michigan. Se tuvieron dos objetivos primordiales: Primero el hecho de abs-
traer y explicar rigurosamente los procesos adaptativos de los sistemas naturales; segundo,
diseñar software de sistemas artificiales que mantengan los mecanismos importantes de los
sistemas naturales. El tema central de la investigación sobre AGs ha sido la robustez, el
balance entre eficiencia y eficacia necesaria para subsistir en la mayorı́a de los diferentes
ambientes [2].

Las funciones principales de un AG de caracterı́sticas simples son: reproducción,


cruza y mutación. Dentro de la reproducción está incluida la función de evaluación o
utilidad la cual determina la bondad de cada individuo, entre mayor sea, mejor será el
individuo. Dentro de nuestra propuesta se utilizan otras funciones elementales, éstas di-
fieren de un AG simple, optando por la técnica de PE. Las funciones que se utilizarán

Discretización de series de tiempo 7 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
1.7 Clasificación Capı́tulo 1

son: función de mutación, de utilidad y de selección. Con respecto a la función de utilidad,


nuestro enfoque considera como mejor individuo al que tenga un menor valor dentro de la
función (se resuelve un problema de minimización).

Al revisar el libro de “Genetic Algorithms + Data Structures = Evolution Progra-


mas” del autor Zbigniew Michalewicz, se puede ver la importancia de la representación
que será utilizada para atacar el problema que se tenga. Al revisar la bibliografı́a [4],
se concluyó que la propuesta está enfocada considerablemente hacia PE. En el siguiente
apartado se abordará con más detalle esta técnica.

1.6.2. Programación evolutiva (PE)


Las técnicas originales de programación evolutiva (PE) fueron desarrolladas por
Lawrence Fogel. La técnica de PE se limita a mantener una población, donde cada indivi-
duo representa una solución potencial al problema. Como en las EEs, primero se crean los
hijos y posteriormente se seleccionan individuos para la siguiente generación. Cada padre
produce un único hijo, ası́ se duplica la población. Los hijos son creados por mutaciones
aleatorias de la población de padres. El número y el tipo de mutación se determinan
mediante una distribución de probabilidad. Se toman a los mejores individuos para la
siguiente generación. Para que un individuo califique a la siguiente generación debe estar
entre el 50 % de los mejores individuos de toda la población.

Las principales diferencias existentes entre los AGs y la PE son: la representación


de los individuos; el mecanismo de selección de padres; los operadores de variación; el
mecanismo de selección de supervivencia (reemplazo). La representación de los individuos
está más enfocada hacia máquinas de estados finitos, sin embargo es aplicable para re-
presentaciones con valores enteros y reales dentro del mismo individuo. El mecanismo de
selección de padres para aplicar el operador de variación es simple, todos los padres mu-
tarán para generar un descendiente. Sólo se utiliza el operador de variación de mutación, la
cruza no se aplica. El mecanismo de selección de supervivencia es determinista; se ordenan
los individuos del mejor al peor a partir de la función de utilidad, posteriormente se toma
al 50 % de los primeros individuos (los mejores).

La representación de nuestra propuesta, y el procedimiento que se sigue es muy


similar a la PE. En los capı́tulos siguiente se detallará la propuesta y el algoritmo.

1.7. Clasificación
La tarea de clasificar es uno de los principales problemas que abarcan múltiples y
diversas aplicaciones. El objetivo de esta tarea, es asignar a diferentes objetos una cate-
gorı́a predefinida. Se dice que a partir de un conjunto (x, y), donde x es un conjunto de
atributos y y es un atributo especial, designado como la etiqueta de clase (también cono-

Discretización de series de tiempo 8 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
1.7 Clasificación Capı́tulo 1

cido como categoria o atributo meta). Además se sabe que la etiqueta de clase debe ser
un atributo discreto, siendo esta una caracterı́stica clave para distinguir entre los demás
atributos, donde en algunos casos todos los otros atributos contienen valores continuos o
no categóricos.

Discretización de series de tiempo 9 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
Capı́tulo 2
Antecedentes

Con el paso del tiempo, se ha tratado de atacar la problemática de discretización.


El proceso de discretización de datos es la transformación de valores continuos a valores
categóricos. Nuestro enfoque se basa en series de tiempo, donde muchos algoritmos de
minerı́a de datos requieren datos discretos. Para este capı́tulo se revisaron diversas pro-
puestas y se describirán aquellas con mayor relevancia.

Existen varios autores cuyas propuestas han resuelto las dificultades del proceso de
discretización en diferentes formas. Dentro de cada propuesta se identifican las ventajas
y desventajas que éstas puedan tener. También, se busca detectar las caracterı́sticas no
benéficas de las propuestas descritas, y ası́ considerar las propiedades altamente deseables
para nuestra propuesta. Se hará una clasificación de los artı́culos para tener un mejor orden
y agruparlos de acuerdo a sus caracterı́sticas más representativas. Finalmente, se constru-
irá un cuadro comparativo con una descripción breve y ordenada, para concluir claramente
cuáles son las ventajas que nuestra propuesta logra alcanzar, poniendo de manifiesto las
bondades de nuestra propuesta.

2.1. Clasificación de trabajos revisados


Se han revisado algunos trabajos referentes al proceso de discretización y se ha
realizado una clasificación de los mismos, con el fin de guiar el desarrollo de este capı́tulo.
El orden que se seguirá será a partir de la lista jerárquica de los trabajos revisados, que a
continuación se muestra:

1. Discretización de datos.

a) Reducción de dimensionalidad a través de discretización, por Liu y Setiono [17].


b) Algoritmo de discretización CAIM (por sus siglas en inglés Class-Attribute In-
terdependence Maximization, Maximización de interdependencia clase-atributo),
por Kurgan [8].

10
2.2 Discretización de datos Capı́tulo 2

c) Discretización de intervalos múltiples de atributos con valores continuos para


aprendizaje de clasificación, por Fayyad [16].

2. Reducción de dimensionalidad de los datos

a) Reducción de dimensionalidad para una búsqueda más rápida de similitud en


bases de datos de series de tiempo grandes, por Keogh [14].

3. Discretización de series de tiempo.

a) Algoritmos que requieren parámetros crı́ticos definidos por el usuario.


1) Una representación simbólica de series de tiempo, con implicaciones para
algoritmos de flujo, por Lin y Keogh [9].
b) Algoritmos que trabajan con una serie de tiempo a la vez.
1) Optimización de discretización de series de tiempo para el descubrimiento
de conocimiento, por Mörchen [12].
2) Discretización de datos sobre series de tiempo, por Dimitrova [13].
c) Algoritmos que minimizan el error por separado, primero sobre el alfabeto y
después sobre la longitud de palabra.
1) Algoritmo de aproximación lineal basado en entropı́a para la discretización
de series de tiempo, por Garcı́a-López [10].
2) Discretización de conjunto de datos sobre series de tiempo con una búsque-
da genética, por Garcı́a-López [11].

2.2. Discretización de datos


En esta sección, se describirán algunos de los trabajos más importantes sobre dis-
cretización de datos. Cada autor resuelve la problemática con diferentes técnicas, pero
todos mantienen la conversión de valores continuos a valores categóricos. Dado que el pro-
ceso se aplica únicamente sobre los atributos donde las bases de datos manejan valores
continuos, el proceso de reducción de información no es aplicable. Los atributos que las
bases de datos manejan pueden o no tener relación, pero en la mayorı́a de los casos se
desconoce si la hay. En los casos donde fuera evidente esta relación, se podrı́a aplicar la
reducción de dimensionalidad. En las propuestas siguientes existe un algoritmo que aplica
reducción sobre los atributos. En caso contrario no existirá una reducción de información,
es decir, no se utilizarı́an menos atributos que los que contiene la base de datos original.

1. Reducción de dimensionalidad a través de discretización, por Liu y Setiono [17].

La existencia de datos numéricos y grandes cantidades de lecturas en una base de


datos impone una tarea de reto para la extracción de conceptos explı́citos de los
datos crudos. El método usado está basado en discretización (reducción vertical) y

Discretización de series de tiempo 11 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.2 Discretización de datos Capı́tulo 2

selección de caracterı́sticas (reducción horizontal). A partir de los resultados se obtu-


vo que: Los datos pueden ser efectivamente reducidos; se puede mejorar la precisión
de un clasificador (C4.5) después de la reducción; las reglas de aprendizaje son más
simples.

El método de reducción utiliza la estadı́stica de X 2 para la continua discretización de


los atributos numéricos hasta que el poder del discriminante original de los datos no
se puede mantener. Este paso reduce significativamente el espacio posible de datos
según las caracterı́sticas de los datos mediante la unión de los valores de atributos.
Pueden surgir duplicados, de ser ası́, pueden ser eliminados. El proceso de selección
de caracterı́sticas se logra mediante la retención de aquellos atributos que tienen más
de un valor discreto; los otros atributos pueden ser eliminados.

El sistema de reducción de datos y dimensionalidad (DDR) es construı́do de acuerdo


con el método de reducción vertical y horizontal (VHR). La idea es verificar la
correlación entre un atributo y los valores de clase, basado en esto, VHR trata de unir
los valores ordenados de este atributo, tanto como sea permitido por la estadı́stica
de X 2 a partir de un nivel de significancia dado. Este empieza con algún nivel de
significancia, por ejemplo 0.5, para todos los atributos numéricos de discretización.
Cada atributo i es asociado con un sigLevel[i], y toma los cambios para hacer la
unión. Cada atributo es ordenado de acuerdo con estos valores. Luego, se desempeña
lo siguiente:

Calcular el valor de X 2 para cada par de intervalos adyacentes (al inicio, cada
muestra esta puesta en su mismo intervalo).
Unir los pares de intervalos adyacentes con el menor valor de X 2 .

El proceso de unión continúa hasta que todos los pares de intervalos tengan los va-
lores de X 2 excedidos al parámetro determinado por sigLevel (inicialmente, 0.5, su
valor de X 2 es 0.455 si el grado de libertad es 1). Este proceso es repetido con un
valor decremental sigLevel[i] hasta que una tasa de inconsistencia δ es excedida en
los datos discretizados. La comprobación de consistencia se lleva a cabo después de
cada unión de atributo. Si no existe inconsistencia, sigLevel[i] es decrementado por
la siguiente ronda de unión i ; en otro caso, el atributo i no estará involucrado en
más uniones. Este proceso se continúa hasta que los valores de atributo puedan ser
unidos. Al final, si un atributo es unido a un solo valor, significa que este atributo
no es relevante en la representación del conjunto de datos original. Como resultado,
cuando la discretización termina, también se obtiene la selección de caracterı́sticas.

2. Algoritmo de discretización CAIM (por sus siglas en inglés Class-Attribute Inter-


dependence Maximization, Maximización de interdependencia clase-atributo), por
Kurgan [8].

Discretización de series de tiempo 12 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.2 Discretización de datos Capı́tulo 2

Algunas formas de adquirir conocimiento se basan en aprendizaje como árboles de


decisión y otros métodos. La mayorı́a de estos algoritmos requieren de datos discretos
o atributos nominales (caracterı́sticas). Si existieran atributos continuos, se presenta
la necesidad de transformar los atributos continuos en atributos discretos. Se tiene la
propuesta de un algoritmo de discretización, titulado CAIM (por sus siglas en inglés
Class-Attribute Interdependence Maximization, Maximización de interdependencia
clase-atributo). Este algoritmo trabaja de manera supervisada. Además, selecciona
automáticamente el número de intervalos discretos, sin la supervisión del usuario. Se
hicieron pruebas a partir del algoritmo de reglas CLIP4 y árboles de decisión, que
tuvieron casi siempre menor número de intervalos y mayor interdependencia clase-
atributo.

Una tarea de clasificación supervisada requiere de un conjunto de entrenamiento de


M ejemplos, donde cada uno corresponde a una sola clase S. F indica alguno de
los atributos continuos de los datos mezclados. Después, existe un esquema de dis-
cretización D en F, que discretiza el dominio continuo del atributo F en n intervalos
discretos delimitados por los pares de números: D : {[d0 , d1 ], (d1 , d2 ], ..., (dn−1 , dn ]},
donde d0 es el valor mı́nimo y dn es el valor máximo del atributo F, estos valores
son ordenados de manera ascendente con el fin de hacer más sencillo el recorrido por
los intervalos. Los valores constituyen el conjunto de lı́mites {d0 , d1 , d2 , ..., dn−1 , dn }
para la discretización D.

Las variables de clase y las variables de discretización del atributo F son tratadas
como dos variables aleatorias que definen una matriz de frecuencia bidimensional
llamada “Matriz quanta”, mostrada en la Tabla 2.1. La función de esta matriz, es
calcular el valor del criterio CAIM. Se tienen s filas, correspondientes al número
de clases, y n columnas, correspondientes al número de intervalos del esquema de
discretización. Se rellena considerando los valores continuos del atributo, se define
la posición de cada valor continuo a partir de su valor de clase y del lı́mite que le
corresponda. Cada valor q de la matriz tiene su subı́ndice i para la fila, y r para la
columna.

Tabla 2.1: “Matriz quanta” para el atributo F y el esquema de discretización D

qir
La probabilidad conjunta estimada, se obtiene por: pir = p(Ci , Dr|F ) = M
, donde

Discretización de series de tiempo 13 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.2 Discretización de datos Capı́tulo 2

M es el total de valores continuos. También, para cada clase y cada intervalo se


calcula esta probabilidad. Se obtiene a través de la sumatoria de valores en cada
clase o intervalo (dependiendo el caso a calcular), sobre el total de valores continuos
M.

Pn max2
r
r=1 M+r
El criterio de discretización CAIM esta dado por: CAIM (C, D|F ) = n
,
donde n es el número de intervalos, r itera a través de todos los intervalos, maxr
es el valor máximo entre todos los valores qir , M+r es el número total de valores
continuos del atributo F que está dentro del intervalo (dr−1 , dr ].

El esquema de discretización óptimo puede ser encontrado mediante una búsqueda


sobre el espacio de todos los posibles esquemas de discretización para encontrar uno
con el mayor valor del criterio CAIM. El algoritmo se realiza a partir de M ejemplos,
S clases, y atributos continuos Fi . Por cada Fi se efectua el mismo proceso. El
algoritmo consiste en dos pasos:

Inicialización del candidato de los lı́mites de intervalos y del esquema inicial de


discretización.

Primero, se encuentra el valor mı́nimo (d0 ) y el valor máximo (dn ). Se crea un


conjunto de todos los valores distintos de manera ascendente, y se inicializan
todos los posibles lı́mites de intervalos B con el valor mı́nimo, máximo y todos
los puntos intermedios de cada par adyacente del conjunto ordenado. Se inicia-
liza el esquema de discretización: D : {[d0 , dn ]}, y la variable GlobalCAIM = 0.

Hacer adiciones consecutivas de un nuevo lı́mite que resulta dentro del valor
más alto localmente del criterio de CAIM.

Se inicializa la variable k = 1. Tentativamente, se agrega un lı́mite interior


del conjunto B, y se calcula el valor correspondiente al criterio de CAIM. Se
calculan todas las posibles del conjunto B, y se toma la que tenga el mayor valor
CAIM. Se evalua si (CAIM > GlobalCAIM o k < S), entonces se actualiza D
con el lı́mite interior elegido, si no se cumple la condición, el algoritmo termina.
Si continua, se establece k = k + 1 y se repite el proceso, pero sin inicializar la
variable k.

3. Discretización de intervalos múltiples de atributos con valores continuos para apren-


dizaje de clasificación, por Fayyad [16].

En este artı́culo Fayyad usa la heurı́stica de minimización de entropı́a para discretizar


el rango de los atributos de valores continuos en múltiples intervalos. Se presenta una
breve evidencia teórica para ver el nivel de aptitud que tiene la heurı́stica utilizada
dentro del algoritmo de discretización binario utilizado en algoritmos de aprendizaje.

Discretización de series de tiempo 14 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.2 Discretización de datos Capı́tulo 2

Se deriva formalmente un criterio basado en el principio de longitud de descripción


mı́nima para decidir el particionamiento de intervalos.

Se tomará como base la heurı́stica de minimización de información de entropı́a para


discretización binaria (división de dos intervalos), ésta será extendida a múltiples
intervalos en vez de sólo dos.

La discretización binaria se basa en un valor de umbral T, que determina la sepa-


ración para el atributo cuyo valor A es continuo. El valor se asigna a la rama izquierda
si A ≤ T , por el contrario, si A > T , se asigna a la rama derecha. El valor de umbral T
se considera un punto de corte. A partir de un conjunto S con N muestras, para cada
atributo de valor continuo A se toma el mejor punto de corte TA , evaluando todos
los posibles candidatos como puntos de corte. Los candidatos se obtienen mediante
los puntos medios entre cada par sucesivo de muestras, la secuencia de muestras
debe estar ordenada ascendentemente. Ası́ para cada atributo de valor continuo, se
tendrán N - 1 evaluaciones. Para cada candidato de punto de corte T, los datos son
divididos en dos conjuntos, y se calcula la entropı́a de clase
Pkde la partición resultante.
La fórmula usada para calcular la entropı́a es: Ent(S) = i=1 P (Ci , S)log(P (Ci , S)),
donde P (Ci , S) es el número de casos correspondientes a la clase Ci sobre el total
de casos en S. Para evaluar cada punto de corte se calcula la entropı́a sobre ambas
particiones (S1 y S2 ) de manera ponderada: E(A, T ; S) = SS1 Ent(S1 ) + SS2 Ent(S2 ).

La extensión de la discretización con múltiples intervalos es simple, la idea se basa


en hacer recursivo el proceso de cortes binarios, aplicando un criterio para decidir
cuando abstenerse de seguir aplicando más particiones. El criterio de paro, se basa
en el principio de MDL (Longitud de Descripción Mı́nima) y determina si se debe
aceptar o no el corte propuesto. A partir del punto de corte T para el conjunto
S compuesto de N ejemplos será aceptado mediante el criterio MDLP si y sólo si:
−1)
[Ent(S)−E(A, T ; S)] > [ log2 (N
N
+(log2 (3k −2)−kEnt(S)+k1 Ent(S1 )+k2 Ent(S2 )],
donde k es el número de clases en S, k1 es el número de clases en S1 y k2 es el número
de clases en S2 . En caso contrario será rechazado el nuevo punto de corte, y el pro-
ceso termina.

En la Figura 2.1 se muestra la comparativa entre la propuesta binaria y la propuesta


de Fayyad sobre los árboles generados. La Figura (a) muestra la propuesta de un
árbol más simple y con menos niveles a través de la idea de Fayyad, mientras que la
Figura (b) muestra un árbol construı́do por cortes binarios, el cual tiene más niveles
y es más complejo.

Discretización de series de tiempo 15 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.3 Reducción de dimensionalidad de los datos Capı́tulo 2

Figura 2.1: Ejemplo de la solución propuesta por Fayyad

2.3. Reducción de dimensionalidad de los datos


Anteriormente, se habló sobre discretización de datos y las propuestas más rele-
vantes sobre esa área. Sin embargo, nuestro enfoque se centra en la discretización de series
de tiempo. Es muy diferente el proceso que se lleva a cabo por cada área. Respecto a la
discretización de datos, se asume que se tienen atributos independientes y en la mayorı́a
de los casos se discretiza por atributo. Para el área de discretización de series de tiempo,
el tiempo es un factor muy importante sobre los datos, es decir, no se pueden ver las
lecturas como atributos independientes. La mayorı́a de las series de tiempo tienen grandes
longitudes, por lo que se busca encontrar representaciones más cortas, sin repercutir en
gran medida sobre los datos reales. Ası́, surge la idea de reducción de dimensionalidad
de los datos, donde se busca obtener versiones más cortas a través de ciertas técnicas.
La técnica más representativa es la de Keogh [14] descrita a continuación. Esta idea sirve
como base para muchas propuestas con el fin de encontrar versiones continuas más cortas,
y posteriormente poder aplicarles algún método de discretización.

1. Reducción de dimensionalidad para una búsqueda más rápida de similitud en bases


de datos de series de tiempo grandes, por Keogh [14].
Recientemente, el interés en el problema de semejanza entre bases de datos de series
de tiempo se ha creado debido a la gran cantidad de datos almacenados en bases de
datos médicas, de negocios y cientı́ficas. La tarea de búsqueda de semejanzas se ha
vuelto una herramienta para explorar bases de datos de series de tiempo, también
es importante como subrutina dentro de muchas aplicaciones de descubrimiento de
conocimiento en bases de datos. La necesidad de explicarlas con menor cantidad de
datos fue la motivación de esta propuesta, conocida con el nombre de PAA (por
sus siglas en inglés Piecewise Aggregate Approximation, Aproximación Agregada de
Secciones).

La reducción de dimensionalidad se explica mejor si definimos que, una serie de


tiempo está dada por X = x1 , ..., xn , y que un conjunto de series de tiempo que
conforman una base de datos se denota por Y = {Y1 , ..., Yk }. Se asume que cada
secuencia en Y tiene un tamaño de n. Sea N la dimensionalidad del espacio trans-
formado que se quiere obtener (1 ≤ N ≤ n). El trabajo es más sencillo si N es factor

Discretización de series de tiempo 16 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.4 Discretización de series de tiempo Capı́tulo 2

de n, mas no es indispensable que ası́ sea. La representación de la serie de tiempo


reducida a la longitudn N es X = x1 , ..., xN . El i-ésimo elemento de X se calcula a
PN i
partir de: X i = Nn j= n
(i−1)+1 xj .
N

Para reducir los datos de n dimensiones a N dimensiones, los datos son divididos
en N marcos del mismo tamaño. Se calcula el valor de la media para cada marco
y se obtiene un nuevo vector con todos estos valores, que se convertirá en la repre-
sentación reducida. La Figura 2.2 muestra un ejemplo del proceso que se lleva a cabo
en PAA. El valor de X denota la serie de tiempo original, y X denota la versión
reducida. Las barras | alrededor de los valores determinan la longitud de cada serie
de tiempo.

Figura 2.2: Ejemplo de reducción de dimensionalidad mediante PAA

2.4. Discretización de series de tiempo


A lo largo del capı́tulo se revisaron trabajos sobre discretización de datos, básica-
mente aplicados a los atributos continuos de un conjunto de datos. El área de minerı́a de
datos empezó trabajando con conjuntos de datos con diferentes tipos de atributos. Ac-
tualmente, se ha desprendido una nueva parte de la minerı́a de datos, enfocada a datos
donde el tiempo es un factor de gran relevancia. Esta área denominada minerı́a de datos
sobre series de tiempo, requiere en gran parte de datos discretos y de menor tamaño, para
facilitar el trabajo de los algoritmos utilizados. En esta sección, se revisarán trabajos en-
focados a la reducción de dimensionalidad y discretización de series de tiempo. El proceso
de reducción de dimensionalidad como [14] y explicado en la Sección 2.3, es un proceso
que sólo obtiene una versión más corta de un modelo que explica los datos reales, mas no
convierte los valores continuos en valores discretos. Este proceso es importante, porque se
ha introducido dentro de la mayorı́a de los algoritmos de discretización de series de tiempo.

Se han realizado muchos trabajos para la resolución de la dificultad de discretización.


Muchos autores buscan resolver únicamente la problemática de reducir el tamaño de la
información (dimensionalidad), pero no buscan mantener la información más relevante de
la misma [9]. El principal beneficio de mantener la información representativa de los datos,
está en mejorar los resultados obtenidos por los diferentes algoritmos utilizados en minerı́a

Discretización de series de tiempo 17 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.4 Discretización de series de tiempo Capı́tulo 2

de datos sobre series de tiempo. Otros autores resuelven la problemática maximizando la


información relevante, aunque dentro de ellos algunos tratan las series de tiempo por sepa-
rado [12] [13], y otros como todo un conjunto que incluye todas las series de tiempo [10] [11].

La Figura 2.3 muestra dos versiones de series de tiempo con el fin de distinguir
visualmente la diferencia: una continua denotada por la letra C y otra discreta denotada
por la letra C.

Figura 2.3: Comparación entre una serie de tiempo continua y una discreta

2.4.1. Algoritmos que requieren parámetros crı́ticos definidos


por el usuario
1. Una representación simbólica de series de tiempo, con implicaciones para algoritmos
de flujo, por Lin y Keogh [9].
Existen muchas representaciones simbólicas para explicar los datos discretos de las
series de tiempo, pero en su mayorı́a carecen de tres caracterı́sticas principales: la
dimensionalidad resultante de las representaciones es del mismo tamaño que la origi-
nal o con una reducción mı́nima; se tiene una pequeña correlación entre las medidas
de distancias determinadas en la representación discreta con respecto a las utilizadas
en la representación original; y es necesario tener un acceso a los datos para obtener
una representación simbólica.

El trabajo propuesto intenta resolver las carencias descritas; busca reducir la dimen-
sionalidad, debido a que muchos algoritmos para indizar y de minerı́a de datos se
degradan exponencialmente por esta caracterı́stica.

La propuesta es llamada SAX (por sus siglas en inglés Piecewise Symbolic Approxi-
mation, Aproximación Simbólica de Secciones) y permite reducir una serie de tiempo
de longitud n en otra representada mediante una cadena con una longitud w, donde
w < n y en muchas de las ocasiones w << n. Se requiere de un valor entero a, que
determina el tamaño del alfabeto, donde a > 2. La representación de las series de

Discretización de series de tiempo 18 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.4 Discretización de series de tiempo Capı́tulo 2

tiempo está dada por C = c1 , ..., cn . El algoritmo está basado en PAA [14]. Para
la transformación a la representación simbólica Ĉ = ĉ1 , ..., ĉw , primero se requiere
convertir los datos crudos a la representación PAA denotada por C = c1 , ..., cw .

Dada la representación PAA de los datos se aplica el criterio de discretización para


obtener la representación simbólica. La transformación a valores discretos está dada
mediante una función de densidad de probabilidad. Las series de tiempo normalizadas
tienen una distribución Gaussiana, a partir de la curva Gaussiana, se determinan los
puntos de corte con un número a de áreas del mismo tamaño. Se va tomando cada
valor de la representación PAA de la serie de tiempo y se le asigna un sı́mbolo inician-
do por la letra “a” para el primer intervalo, “b” para el segundo, y ası́ sucesivamente.
Esta secuencia de sı́mbolos se llama palabra. Si consideramos que alphai denota el
i-ésimo elemento del alfabeto, β1 , ..., βa determinan los puntos de corte, y se hace un
mapeo de la aproximación PAA C hacia la palabra Ĉ, se puede determinar que una
palabra se obtiene a partir de: ĉi = alphaj if f βj−1 ≤ ci < βj .

La Figura 2.4 muestra una representación discreta de una serie de tiempo a través
del algoritmo SAX. El alfabeto utilizado es de tres elementos, con rangos definidos
por dos cortes sobre la curva de la distribución normal posicionada al lado izquierdo
de la imagen. Utiliza una longitud de palabra de ocho partes.

Figura 2.4: Versión discretizada de una serie de tiempo mediante el algoritmo SAX

2.4.2. Algoritmos que trabajan con una serie de tiempo a la vez


1. Optimización de discretización de series de tiempo para el descubrimiento de conocimien-
to, por Mörchen [12].
Muchos de los métodos de discretización que convierten las series de tiempo numéri-
cas en simbólicas ignoran el orden temporal de los valores. Se propone un nuevo
método para la discretización de series de tiempo no supervisado llamado “Persist”.
Los lı́mites que se definen deben ser significativos para mantener las partes más útiles
de los datos. Muchos de los métodos más comunes como, misma anchura e igual fre-
cuencia (no supervisados), son vulnerables al ruido en los datos. La discretización se

Discretización de series de tiempo 19 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.4 Discretización de series de tiempo Capı́tulo 2

lleva a cabo mediante la optimización de persistencia de los estados resultantes.

En este trabajo se asume que las series de tiempo contienen estados perdurables
y que estos estados son de interés. La medida de calidad usada, se basa en la di-
vergencia “Kullback-Leibler” de las distribuciones de probabilidad marginal y au-
totransitoria de los sı́mbolos. Se debe asegurar que la suma de las distribuciones
sea 1 para usar esta medida. Sea S = {S1 , ..., Sk } el conjunto de sı́mbolos posi-
bles y s = {si |si ∈ S i = 1, ..., n} la serie de tiempo simbólica de longitud n.
Sea P (Sj ) la probabilidad marginal de los sı́mbolos Sj . La matriz de probabilidades
transitorias está dada por A(j, m) = P (si = Sj |si−1 = Sm ). Las probabilidades
autotransitorias son los valores de la diagonal principal de A. La estructura tem-
poral más simple es un modelo de “Markov” de primer orden, donde cada estado
depende sólo del anterior [22]. Las representaciones simbólicas no son producidas
por el modelo de “Markov” de primer orden, sólo se usan las probabilidades auto-
transitorias como un indicador de persistencia. Una buena medida de comparación
para dos distribuciones de probabilidad es la divergencia de “Kullback-Leibler”. Para
dos distribuciones de probabilidad discretas
Pk P = {p1 , ..., pk } y Q = {q1 , ..., qk } de k
sı́mbolos se define por: KL(P, Q) = i=1 pi log( pqii ). Una versión simétrica se obtiene
al tomar la media de ambas direcciones: SKL(P, Q) = 12 (KL(P, Q) + KL(Q, P )).
El resultado de la persistencia del estado j está definido, por P ersistence(Sj ) =
sgn(A(j, j)−P (Sj ))SKL(A(j, j), P (Sj )), como el producto de la divergencia simétri-
ca “Kullback-Leibler” de las distribuciones de probabilidad marginal y transitoria
para sı́ mismo contra los demás con una variable indicadora, que determina el sig-
no del resultado. Por último tenemos el resultado resumido para todos los estados,
quePkserá utilizado como la medida de utilidad para el algoritmo: P ersistence(S) =
1
k m=1 P ersistence(Sm ).

El algoritmo “Persist” utiliza la medida de utilidad de “Persistence” para la se-


lección de cortes. Se obtiene un conjunto de cortes a partir del método de misma
frecuencia con un valor grande de cortes, obteniendo muestras de puntos burdas en
regiones escasas y muestras finas en regiones densas. Entre mayor sea el número
de cortes definido, mayor será la precisión. En cada iteración se prueban todos los
puntos del conjunto y se selecciona el mejor a partir de la medida de utilidad. El
proceso se repite hasta alcanzar k número de cortes, determinado por el usuario.
Sea X = {xi |xi ∈ R i = 1, ..., n} los valores numéricos de una serie de tiempo de
longitud n y sea C = {cj |cj ∈ R j = 1, ..., m} el conjunto de candidatos para puntos
de corte. Sea D la función que desempeña la discretización actual dado X y sea B
el conjunto de lı́mites al termino del algoritmo. Entonces, se inicializa B = ∅, se
itera i = 1...k − 1, dentro del ciclo: se inicializa P = ∅, se obtienen los valores de
“Persistence” por todos los candidatos cj y se almacenan en P , obtener el que tenga
el mayor valor de medida, y se agrega al conjunto B = B ∪ {cmax(P ) }.

2. Discretización de datos sobre series de tiempo, por Dimitrova [13].

Discretización de series de tiempo 20 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.4 Discretización de series de tiempo Capı́tulo 2

Se presenta un nuevo método para la discretización de datos con valores reales en


un número finito de valores discretos. Tiene aspectos novedosos como un criterio de
teorı́a de la información y un criterio que determina el número óptimo de valores
necesarios. El método requiere preservar las correlaciones entre las variables tan bien
como las caracterı́sticas dinámicas de la series de tiempo.

Muchos de los algoritmos semejantes al aprendizaje, aplicaciones de redes Bayesianas,


y algunos otros algoritmos modelados para usarse con estados discretos, requieren de
una discretización de los datos reales en un número de valores finitos. En su mayo-
rı́a, aplican una discretización binaria para resolver la problemática, mas no ofrecen
buenas soluciones al utilizar únicamente dos valores. Se deben manejar varios valo-
res para evitar pérdidas de información. El número de valores que se deben utilizar
es extremadamente importante, y en muchos casos no es claro cómo seleccionarlo.
La propuesta emplea un método de agrupación de grafo teórico para desempeñar
la discretización, y para minimizar la perdida de información utiliza un criterio de
información teórica.

La definición de discretización (Hartemink, 2001) [23] dice que una discretización


de un vector con valores reales v = (v1 , ..., vN ) es un vector de valores enteros d =
(d1 , ..., dN ) con los segmentos: cada elemento de d está en el conjunto {0, 1, ..., D − 1}
para algún valor entero positivo D (generalmente pequeño), llamado grado de dis-
cretización (en textos anteriores es equivalente al tamaño del alfabeto); para todo
1 ≤ i, j ≤ N , tenemos que di ≤ dj if vi ≤ vj .

La propuesta se basa en el método de agrupamiento de un enlace sencillo (SLC


Single-Link Clustering) con la función de distancia euclideana dentro de vectores de
datos reales para producir una discretización de intervalos. SLC es una técnica de
agrupamiento jerárquico que define la distancia entre dos agrupaciones como la dis-
tancia mı́nima de dos objetos cualesquiera que pertencen a diferentes agrupaciones.
El algoritmo empieza con todo el conjunto de datos e iterativamente lo divide hasta
que el grado de similitud encuentra cierto umbral o hasta que todos los grupos con-
sistan de un solo objeto. Una de las caracterı́sticas más importantes del método es
la definición del criterio de paro: se busca que el valor D sea lo más pequeño posible
y que no sea introducido por el usuario.

A partir de un vector con m entradas distintas se contruye un grafo completo con


pesos en m vértices, donde un vértice representa una entrada y un enlace con peso
es la distancia Euclidiana entre los puntos finales. El proceso de discretización debe
ir eliminando los enlaces de los pesos más altos hasta que el grafo se desconecte.
La Figura 2.5a muestra un ejemplo de un grafo construı́do, y en la Figura 2.5b los
niveles que se crean conforme se van desconectando los nodos. Una vez desconectado,
se evaluan cuatro condiciones, si alguna se cumple, el proceso vuelve a iterar. Las
cuatro condiciones son:

Discretización de series de tiempo 21 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.4 Discretización de series de tiempo Capı́tulo 2

(a) Ejemplo de un grafo construı́do (b) Niveles generados por cada vez que el grafo
se desconecta

Figura 2.5: Ejemplo de la representación utilizada por Dimitrova

El promedio de los enlaces de los componentes conectados debe ser mayor que
la mitad del promedio de los enlaces del grafo completo.
La distancia entre el vértice menor y el mayor debe ser mayor o igual que la
mitad de la misma distancia en el grafo completo, es decir, el enlace con más
alto peso del grafo completo.
El grado de vértices del componente debe ser menor que el número de sus
vértices menos 1.
El contenido de información
Pn−1 widebe incrementar a partir del criterio de medida
n
de información: H = i=0 n
log (
2 wi ).

Para discretizar varios vectores, primero se discretizan todos los vectores por se-
parado, si tenemos N vectores y al discretizar se obtienen estados m1 , m2 , ..., mN ,
entonces sea m = max{mi |i = 1, ..., N }. Ahora sólo se debe buscar el menor valor
posible k = pn tal que m ≤ k, y a partir del valor de k se discretizan todos los
vectores en ese número de estados (grado de discretización).

2.4.3. Algoritmos que minimizan el error por separado, primero


sobre el alfabeto y después sobre la longitud de palabra
1. Algoritmo de aproximación lineal basado en entropı́a para la discretización de series
de tiempo, por Garcı́a-López [10].
En dicho trabajo, se busca obtener buenos esquemas de discretización, la moti-
vación está en maximizar la información relevante para clasificaciones eficientes, re-
duciéndola a un número de intervalos necesarios para explicarla, y en evitar la necesi-
dad de definir parámetros por el usuario. La meta es encontrar el menor número de
segmentos para dividir la longitud de las series de tiempo (longitud de palabra), y
el menor número de intervalos para comprimir los valores de las series de tiempo

Discretización de series de tiempo 22 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.4 Discretización de series de tiempo Capı́tulo 2

(alfabeto).

El algoritmo toma como antecedente al algoritmo CAIM. Es un algoritmo que tra-


baja de manera supervisada, busca mantener la relación de interdependencia entre
los atributos y los valores de clases usando una medida de ganancia de información
llamada “CAIM”. En la propuesta, se utiliza otra medida de utilidad basada en
la ganancia de información en términos de entropı́a, de aquı́ su nombre “EBLA2
(por sus siglas en inglés Entropy Based Linear Approximation, Aproximación Lineal
Basada en Entropı́a)”. Para la reducción de dimensionalidad el algoritmo utiliza
como antecedente a la representación PAA, que consiste en obtener los valores de la
media para cada segmento determinado.

Discretización es el proceso de mapear variables con valores continuos a valores dis-


cretos. Formalmente, a partir del dominio de datos x|x ∈ R, donde R es el conjun-
to de los reales y el esquema de discretización D = {[d0 , d1 ], (d1 , d2 ], ..., (dn−1 , dn ]}
donde d0 y dn son los valores mı́nimo y máximo respectivamente. El proceso de
discretización se puede dividir en dos tareas principales. Primero, se encuentra el
número de valores que expliquen correctamente los datos. Segundo, se definen los
lı́mites o rangos de cada intervalo para el dominio continuo. EBLA2 busca que los
lı́mites obtenidos mantengan el grado de pertenencia de los modelos discretos resul-
tantes respecto a las etiquetas de clase. El esquema de discretización es calculado
para todo el conjunto de datos, todos los valores de la base de datos son tomados en
cuenta para encontrar el esquema de discretización con la menor entropı́a. El proceso
de discretización de series de tiempo se divide en dos pasos. Primero, se encuentra
el tamaño del alfabeto y después, se encuentra la longitud de palabra.

La reducción de dimensionalidad se basa en el algoritmo PAA explicado anterior-


mente. La medida de utilidad para seleccionar los puntos de corte más apropiados se
basa en ganancia de información, definido para un esquema de discretización con sus
correspondientes etiquetas de clase. Formalmente la fórmulaPbasada en ganancia de
información se plantea como: Gain(S, A) = Entropy(S) − v∈An #S #S
v
Entropy(Sv ),
donde S y A son series de tiempo diferentes, An ⊆ S|ai ∈ An ∧ ai ∈ / (An
{ai }), i = 1...n, #Sv es el número de series de tiempo con el valor v en S, #S es el
número de series de tiempo en S. La entropı́a de S está dada por: Entropy(S) =
P c
i=1 −pi log2 (pi ), donde c es el número de clases,
Pcpi es la probabilidad de la clase
i en S. La entropı́a de Sv es: Entropy(Sv ) = i=1 p(S|v)i log2 (p(S|v)i ), donde c
es el número de clases, p(S|v)i es el probabilidad condicional de la clase i en S,
dada una serie de tiempo con valor v. Como pueden existir puntos de corte con
misma ganancia de información, se da a conocer otro término que pueda marcar
la diferencia. Sea #S el número de series de tiempo y An el número de series de
An

tiempo diferentes: Isolated term = log#S


2 #S
, An cambia para cada esquema de dis-
cretización diferente, cuando An incrementa, Isolated term también; se comporta
igual si decrementa. Con ambas partes, se conforma la bondad de un punto de corte:

Discretización de series de tiempo 23 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.4 Discretización de series de tiempo Capı́tulo 2

U tility = Gain + Isolated term.

El algoritmo EBLA2 divide en dos fases el proceso. Primero, está enfocado al tamaño
del alfabeto, haciendo el proceso a través de uniones al esquema inicial de dis-
cretización. A partir de la función de utilidad U tility, se busca obtener un esquema
(D), que explique de la mejor manera todos los valores continuos de la base de datos.
Se empieza con un esquema D = {[minvalue, maxvalue]}, después mediante valores
percentiles desde el 0 % hasta el 100 % con incrementos del 0.1 % se calcula el valor
de utilidad, el punto de corte que ofresca mayor utilidad será tomado, modificando
el esquema a D = {[minvalue, CP S1 ], (CP S1 , maxvalue]}. Este proceso se vuelve
iterativo hasta que un nuevo punto de corte no logre obtener un mayor valor de uti-
lidad en comparación con la iteración anterior. Segundo, está orientado a la longitud
de palabra, mediante el proceso de ir dividiendo puntos de cortes no relevantes. Se
empieza con un esquema que contiene todos los puntos de corte de la serie de tiempo.
A partir de la precisión de clasificación, se van eliminando puntos de corte que sean
irrelevantes. El proceso es iterativo mientras el valor de utilidad no sea mayor al
obtenido en la primera fase.

2. Discretización de conjunto de datos sobre series de tiempo con una búsqueda genética,
por Garcı́a-López [11].
En este trabajo, se propone un nuevo enfoque de discretización de series de tiempo
llamado GENEBLA (por sus siglas en inglés Genetic Entropy Based Linear Appro-
ximation, Aproximación Lineal Basada en Entropı́a mediante un AG). Los AGs
han probado ser eficientes en espacios de búsqueda o aproximar soluciones en opti-
mización. Tienen la ventaja de no necesitar que el usuario precise el dominio, porque
éstos aprenden de su dominio y logran explorarlo. La función de utilidad que guı́a la
búsqueda se basa en ganancia de información como se hace en la versión de EBLA2.
El marco referente a las fórmulas y medidas de utilidad se basa en el algoritmo
EBLA2, a partir de los mismos, se aplican los cálculos necesarios para la función de
utilidad en el AG, que nombra a la función de utilidad como F itness.

El algoritmo GENEBLA utiliza las funciones básicas de un AG: selección, cruza,


mutación y reemplazo. El proceso para encontrar la mejor solución puede ser visto
como la búsqueda en el espacio de todos los posibles esquemas de discretización. El
algoritmo se divide en dos fases, la primera, se enfoca a la obtención del tamaño del
alfabeto y sus respectivos rangos, la segunda, se orienta hacia la longitud de palabra
junto con sus intervalos que logren mantener el mayor grado de pertenencia con las
etiquetas de clase. Se define a S = {si |si ∈ R, i = 1...n} como los valores númericos
existentes en S con una longitud n; Sp como el conjunto de series de tiempo p; M inC
y M axC como los valores mı́nimo y máximo del conjunto de datos; nGenerational
como el valor máximo de generaciones; nCross como el número de cruzas; P arents
como dos individuos de la población; F Selection como la función de selección basada
en la técnica de la ruleta; Children como dos nuevos individuos a partir de P arents;

Discretización de series de tiempo 24 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.4 Discretización de series de tiempo Capı́tulo 2

F Crossover como la función de cruza; F M utation como la función de mutación;


F Add como la función para agregar individuos a la población; F F itness como la
función de utilidad utilizada en EBLA2; F Replace como la función que elimina in-
dividuos de la población; y BestIndividual como la función que determina cuál es
el mejor individuo. El algoritmo requiere que el usuario defina ciertos parámetros
para mantener mayor control sobre la búsqueda: número de generaciones, mı́nimo
número de generaciones, tasa de reproducción y probabilidad de mutación.

Para la primera fase, se cuenta con una representación con valores reales. Cada
cromosoma o individuo contiene un conjunto de valores reales, considerados como
puntos de corte. La longitud de estos individuos es variable, teniendo la posibilidad
de ser o no iguales. Se debe obtener un vector con los valores únicos de Sp , después
se obtienen los percentiles del vector único, los percentiles van desde el 0 % hasta el
100 % con incrementos de 0.1 %. Por cada uno de los percentiles, se crea un indivi-
duo que contendrá {[M inC, ci ], (ci , M axC]}. Se obtienen los valores de aptitud de la
población y se empieza la iteración hasta nGenerational. Dentro del ciclo, se obtiene
el valor nCross a partir del parámetro de tasa de reproducción multiplicado por el
tamaño de la población. Ahora, por cada cruza, se seleccionan los padres a partir de
la función de selección de la población existente y sus respectivos valores de aptitud.
Se aplica la función de cruza y se generan los hijos. Los hijos deberán ser mutados si
la probabilidad de mutación ası́ lo determina. Se agregan los hijos al conjunto de la
población. Al incrementarse el número de individuos, se aplica la función de aptitud
a todo el conjunto, que servirá de base para eliminar a los individuos menos aptos. Al
terminar las iteraciones, se calcula cuál es el mejor individuo, que finalmente será el
esquema de discretización para el alfabeto.

La función de selección se basa en la estrategia de la ruleta, la idea básicamente


está en definir los sectores circulares proporcionales al valor de utilidad de cada indi-
viduo, de esta forma se tienen espacios más amplios para los individuos más aptos y
menos extensos para los individuos menos aptos. Después de diseñar la ruleta, sim-
plemente se gira y aleatoriamente se obtiene a un individuo. El operador de cruza
se aplica a dos padres. Se selecciona una posición para el padre uno, dividiendolo en
[F1 , F2 ], y se hace lo mismo para el padre dos [F3 , F4 ]. Ahora los hijos se formarán
a partir de la cruza de estos padres, obteniendo al hijo uno como [F1 , F4 ] y al hijo
dos [F3 , F2 ]. La función de mutación consiste en elegir aleatoriamente una posición
dentro del individuo y alterarlo por un nuevo valor dentro del rango del dominio
temporal (entre el valor máximo y mı́nimo).

Para la segunda fase, se cuenta con una representación binaria. La longitud de cada
individuo es la misma, ésta es igual al número de muestras que tiene la serie de
tiempo. La cadena binaria utiliza valores de cero para indicar que ese punto de corte
no está incluı́do; y valores de uno, para los puntos de corte incluı́dos. El proceso
se inicia con una población de n individuos, valor que puede variar dependiendo el
grado de precisión que se requiera. La función de selección utilizada es la misma que

Discretización de series de tiempo 25 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.5 Comentarios generales Capı́tulo 2

la de la primera fase. El operador de cruza cambia un poco, se toman dos puntos


de muestra para dividir a los padres, a partir del padre uno [F1 , F2 , F3 ] y del padre
dos [F4 , F5 , F6 ], se generan los hijos. El hijo uno [F1 , F5 , F3 ] y el hijo dos [F4 , F2 , F6 ].
La finalidad de este tipo de cruza es reducir los cambios en los hijos, haciendo más
pequeños los saltos en el espacio de búsqueda y tener soluciones más refinadas. La
función de mutación sigue la misma lógica, sólo que el nuevo valor es el inverso del
actual; si es cero se vuelve uno, y si es uno se vuelve cero.

2.5. Comentarios generales


Como se ha visto en este capı́tulo, las propuestas existentes plasman sus respectivas
ideas para hacer del proceso de discretización un método apropiado para la resolución del
problema de optimización con datos de valores continuos. El área de discretización es
muy amplia y permite la innovación de técnicas que mejoren resultados anteriores. Cada
propuesta se ha enfocado en ciertos elementos a mejorar. Se puede observar que dentro
de las propuestas revisadas, las caracterı́sticas más relevantes que se pueden remarcar son
las siguientes:

Mapeo de valores continuos a valores discretos.

Reducción de dimensionalidad.

Maximización de información.

Soluciones generales (no especı́ficas).

Sin necesidad de parámetros crı́ticos definidos por el usuario.

Representaciones completas (solución conjunta de alfabeto con longitud de palabra).

Complejidad computacional, tiempo y espacio.

En la Tabla 2.2 se muestra una comparativa entre todos las propuestas revisadas
anteriormente. Se escogieron las caracterı́sticas más representativas de cada propuesta, y se
contrastaron entre ellas. Se puede observar, con base en las caracterı́sticas sugeridas en este
trabajo, que la propuesta de CAIM resulta ser la mejor para discretizar datos. Ésta no nos
es de utilidad, ya que el concepto entre datos y series de tiempo cambia mucho. Posterior-
mente se tienen dos propuestas que pueden considerarse las mejores: SAX y GENEBLA.
Aunque cada una tiene sus aspectos a mejorar. La primera (SAX ) tiene la principal defi-
ciencia de requerir parámetros crı́ticos, es decir, sus valores repercuten fuertemente sobre
el resultado y no pueden manejarse algunos valores generales para cualquier conjunto de
datos, el cual se requiere revisar para poder establecer los parámetros que SAX deberı́a
utilizar. Respecto a GENEBLA ésto no sucede, los parámetros que requiere pueden ser
establecidos de manera general y dicha decisión no repercute de manera significativa en
el resultado, aunque el número de parámetros por definir es grande. Sin embargo, su gran
desventaja radica sobre la parcialidad de sus soluciones, primero calcula la solución para

Discretización de series de tiempo 26 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
2.5 Comentarios generales Capı́tulo 2

el alfabeto y posteriormente para la longitud de palabra con el alfabeto encontrado antes.

Reducción de  Optimización 
SAX,  Discretización  EBLA2, 
dimensionalidad  CAIM,  Discretización  de 
por  de datos sobre  por  GENEBLA, 
a través de  por  de intervalos  discretización 
Lin y  series de  García­ por García­
discretización,  Kurgan  múltiples, por  de series de 
Keogh  tiempo, por  López  López [11]
por Liu y  [8] Fayyad [16] tiempo, por 
[9] Dimitrova [13] [10]
Setiono [17] Mörchen [12]
Discretiza datos X X X
Discretiza series 
X X X X X
de tiempo
Requiere 
X X X X
parámetros
Requiere 
parámetros  X X
críticos
Búsqueda 
X X X
supervisada
Resolución por 
X X X
fuerza bruta
Puede aplicarse a 
X X X X X X
datos reales
Generalización 
X X
de la solución
Maximización de 
X X X X X X X
información
Representaciones 
X X
completas

Tabla 2.2: Tabla comparativa entre las diferentes propuestas revisadas con las caracterı́sti-
cas más relevantes

En la presente tesis se busca diseñar una implementación que contenga los puntos
favorables mencionados en los incisos anteriores, mejorando a la mayorı́a de las ideas ex-
puestas en esta sección. PEVOMO(Programación EVOlutiva con función MultiObjetivo)
busca contemplar las bondades mencionadas: la conversión de los valores al dominio dis-
creto sobre series de tiempo; una función de utilidad que pueda balancear la maximización
de información; la reducción del tamaño de los datos, un resultado completo sobre am-
bos ejes dejando a un lado la parcialidad por cada eje; descartar la necesidad de muchos
parámetros definidos por el usuario; y finalmente disminuir la complejidad computacional
para conseguir los resultados.

En los siguientes capı́tulos, se pretende explicar como se puede hacer esta mejora,
el formalismo requerido y la exploración del espacio de búsqueda a través de programación
evolutiva.

Discretización de series de tiempo 27 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
Capı́tulo 3
Propuesta y justificación

En los capı́tulos anteriores, se ha hablado sobre el proceso de discretización y sobre


algunos trabajos revisados. Después de un análisis de los trabajos más relevantes, se detec-
taron las principales mejoras que se pueden implementar en el proceso de discretización de
series de tiempo. Se propone una nueva idea que mejora los trabajos anteriores, el algorit-
mo se llama PEVOMO (Programación EVOlutiva con función MultiObjetivo). A lo largo
del capı́tulo se explicarán las ventajas de este algoritmo y la justificación de esta propuesta.

Al revisar las propuestas más relevantes se determinaron las caracterı́sticas de im-


portancia que un algoritmo de discretización deberı́a considerar. Se describirań en el orden
sugerido en la Sección 2.5.

3.1. Mapeo de valores continuos a valores discretos


Muchos algoritmos de minerı́a de datos sobre series de tiempo requieren de va-
lores categóricos para trabajar de mejor manera. Se propone realizar la transformación
de valores continuos a valores discretos de la forma general que utilizan varios autores:
Alf abeto = {(−∞, d0 ], (d0 , dn−1 ], (dn−1 , dn ], (dn , ∞)}, donde cada intervalo corresponde a
un valor categórico único (a, b, c, ...). A este conjunto se le asigna el nombre de alfabeto.

Cada valor dentro de la serie de tiempo será mapeado a un único valor categórico.
El valor discreto que le corresponderá a cada valor continuo, estará definido por el ı́ndice
del intervalo que le corresponda dentro de un alfabeto determinado. Frecuentemente, los
ı́ndices se transforman a valores alfabéticos (a, b, c, ...). Se toma como valor a al primer
ı́ndice determinado por el intervalo (−∞, d0 ], como valor b al segundo ı́ndice determinado
por el intervalo (d0 , dn−1 ], y ası́ sucesivamente con todos los intervalos.

El conjunto de valores discretos de una misma serie de tiempo se nombra cadena


(String). Se realiza el mapeo de cada valor continuo, obteniendo una cadena, a lo que
llamaremos representación discreta de una serie de tiempo.

28
3.2 Reducción de dimensionalidad Capı́tulo 3

3.2. Reducción de dimensionalidad


En la mayorı́a de las aplicaciones de la vida real, los datos utilizan grandes espacios
de almacenamiento. Se requiere tener una representación más pequeña de los datos, para
obtener resultados más rápidos, cuando se aplican algoritmos de minerı́a de datos sobre
series de tiempo.

Dentro de la propuesta se busca reducir el tamaño de los datos. Se logra a través del
algoritmo de reducción propuesto por Keogh [14]. La idea consiste en segmentar la serie
de tiempo en partes iguales, y por cada segmento generado, se asigna el valor promedio
calculado (media) de todos los valores dentro de ese segmento. Se modificó la idea tomada
como base, la propuesta no utilizará segmentos de tamaños iguales. En el apartado de
maximización de información, se explicará la variabilidad del tamaño de los segmentos.

La reducción de dimensionalidad se aplica sobre una serie de tiempo (X = x1 , ..., xn ),


de tamaño n, y se busca reducirla a un tamaño N , donde el espacio transformado que se
quiere obtener cumple con (1 ≤ N ≤ n). La representación de la serie de tiempo re-
ducida a la longitud N es X = x1 , ..., xN . Cada valor de la representación reducida se
calculó a partir de un intervalo (di , di+1 ]. El i-ésimo elemento de X se calcula a partir de:
Pdi+1
X i = di+11−di j=d i +1
xj .

3.3. Maximización de información


Dentro de la serie de tiempo, se tienen partes importantes y partes insignificantes.
Para determinar qué partes son importantes, se deberı́a hacer un análisis más profundo
sobre los datos, pero de manera general se sabe que esas partes deben tener cambios signi-
ficativos. Si se tuviera una serie de tiempo con valores muy semejantes, la serie de tiempo
podrı́a ser explicada con un solo valor. En la vida real ésto no sucede, pero dentro de la
serie de tiempo se pueden tener segmentos donde se presente este comportamiento. Lo
más deseable serı́a obtener esos segmentos y por cada uno aplicar la reducción de dimen-
sionalidad descrita anteriormente. Ésto no es sencillo dado que en muchos casos no sucede
y se trabaja con todas las series de tiempo a la vez. Cada serie de tiempo tiene diferentes
comportamientos, a veces varı́an por pertenecer a diferentes clases, y en pocos casos se
tiene cierta similitud. Se busca encontrar los lı́mites que maximizan la información sobre
todas las series de tiempo a partir de la pertenencia de clase.

La presente propuesta busca maximizar la información a través de la pertenencia,


de cada representación discreta (cadena), con la correspondiente etiqueta de clase. Por
cada serie de tiempo de una misma base de datos se obtendrá una cadena. Cada cadena
tiene una etiqueta de clase; el caso ideal serı́a que por cada clase se obtenga una cadena
diferente y que todas las cadenas de la misma clase sean iguales. El peor caso serı́a que
una sola cadena explicara todas las lecturas. Sobre esta idea, se busca encontrar los lı́mites
que expliquen mejor la pertenencia de cada cadena respecto a su clase. Si se llega al caso

Discretización de series de tiempo 29 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
3.4 Soluciones generales (no especı́ficas) Capı́tulo 3

ideal, se estarán delimitando los mejores puntos de corte sobre la longtiud de palabra,
maximizando la información de cada conjunto de datos.

3.4. Soluciones generales (no especı́ficas)


El proceso de discretización se aplica sobre series de tiempo con el objetivo de
obtener representaciones categóricas (cadenas) que puedan ser utilizadas en algunos algo-
ritmos de minerı́a de datos sobre series de tiempo. En algunos casos revisados, el proceso
se aplica sobre una serie de tiempo a la vez, adquiriendo soluciones especı́ficas dentro de
un conjunto de datos. Ciertos algoritmos (clasificación, agrupación), utilizan los valores de
clase para obtener resultados, por lo tanto, trabajar con esquemas de discretización indi-
viduales arrojarı́a cadenas con valores y longitudes diferentes, tanto en alfabeto como en
longitud de palabra, reduciendo la uniformidad de las representaciones y haciendo difı́cil
(en algunos casos imposible) el procedimiento de los algoritmos.

Se busca conseguir un esquema de discretización general, que contemple a todo el


conjunto de datos. La propuesta busca la solución a partir de todas las series de tiempo
incluidas en la base de datos. El resultado final es un esquema de discretización con el
mismo alfabeto y longitud de palabra para cada serie de tiempo. Al mantener una uni-
formidad en la representación de todas las series de tiempo discretizadas, los algoritmos
que utilizan los valores de clase podrán aplicar fácilmente los procedimientos necesarios.

3.5. Sin necesidad de parámetros crı́ticos definidos


por el usuario
Muchos de los algoritmos requieren de parámetros definidos por el usuario. En al-
gunos casos, los parámetros son importantes para la salida del procedimiento, en otros no.
Se busca que los algoritmos utilicen parámetros que sean fáciles de determinar o en el caso
ideal, no se requieran. Algunas propuestas revisadas los necesitan [17, 14, 9, 12] y tienen
un gran impacto sobre la salida. Casos que requieren definir una longitud de palabra, un
tamaño del alfabeto, son comunes, manifestando la necesidad de analizar los datos para
determinar los valores mencionados.

El enfoque aquı́ propuesto no requiere de parámetros crı́ticos definidos por el


usuario. Consideramos como parámetro crı́tico aquel que necesita ser calculado por cada
conjunto de datos donde no puede ser utilizado algun valor estándar. Básicamente se tienen
cinco parámetros dentro del algoritmo. Dos de estos, número de generaciones y tamaño de
la población, serán justificados en el capı́tulo 5, a partir de un análisis estadı́stico. Los otros
tres, correspondientes a la función de utilidad multiobjetivo. Éstos son pesos que el usuario
debe determinar para guı́ar la búsqueda que se desea. La función de utilidad está encar-
gada de determinar la calidad que tiene cada solución. Se considera multiobjetivo, porque

Discretización de series de tiempo 30 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
3.6 Representaciones completas (solución conjunta de alfabeto con longitud
de palabra) Capı́tulo 3

busca maximizar tres componentes de importancia en el proceso de discretizadión. Los


tres elementos pertenecientes a la función de utilidad están normalizados (valores de 0 a
1) y son:

Precisión de la clasificación (accuracy).

Compresión sobre las lecturas de las series de tiempo (numero de strings).

Reducción de dimensionalidad (reducción).

Cada uno de estos elementos estará ponderado por un coeficiente. La fórmula ge-
neral para la función de utilidad se expresa por la siguiente ecuación:

f itness(x) = (α ∗ accuracy) + (β ∗ num strings) + (γ ∗ reduction) (3.1)

, donde: α, β y γ son los pesos para cada parámetro.


accuracy determina la precisión de clasificación.
num strings es el número de cadenas existentes al aplicar el esquema de discretización.
reduction define el nivel de reducción en comparación con los datos continuos.

Con esta función de utilidad multiobjetivo se puede llegar a una solución que al
usuario le convenga. Se tiene la oportunidad de variar estos pesos, de tal manera que se
pueda llegar a una solución que optimize todos los parámetros, o en su caso, algunos de
éstos. Dependiendo de la aplicación del discretizador, será la asignación de pesos a la fun-
ción de utilidad. Para los algoritmos anteriormente planteados (clasificación, agrupación),
se debe tener una mayor precisión en la clasificación, por lo tanto se asignará un valor
mucho mayor para α que para los otros dos parámetros.

3.6. Representaciones completas (solución conjunta


de alfabeto con longitud de palabra)
Partiendo de la idea de un esquema de discretización, se requiere determinar una
serie de cortes sobre la serie de tiempo en ambos ejes (longitud de palabra y alfabeto). La
mayorı́a de los trabajos publicados, se basan en buscar primero la solución sobre el alfa-
beto y posteriormente sobre la longitud de palabra. Esta idea pudiera ser no conveniente,
a partir de la relación existente entre los valores de longitud de palabra y alfabeto, no se
lograrı́a conseguir una solución general que optimice ambos parámetros al mismo tiempo,
de tal manera que dentro del espacio de búsqueda se descartarı́an soluciones con mejores
valores de utilidad.

Nuestra propuesta plantea una solución donde se contemple la longitud de palabra


y el alfabeto al mismo tiempo. Se busca obtener soluciones donde exista mayor relación

Discretización de series de tiempo 31 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
3.7 Complejidad computacional, tiempo y espacio Capı́tulo 3

Figura 3.1: Representación de una solución

entre ambos ejes. La representación utilizada contiene ambos puntos de corte (los corres-
pondientes a la longitud de palabra y al alfabeto) mostrados en la Figura 3.2:

El esquema de la solución contiene en primer lugar a la longitud de palabra, después


al alfabeto y se requiere de un valor que almacene la posición que separa a una sección de
otra.

3.7. Complejidad computacional, tiempo y espacio


La complejidad computacional es un factor importante en los procesos de búsqueda
de soluciones. Existen algoritmos que obtienen soluciones con altos niveles de desempeño,
pero la complejidad puede ser considerable. Hablar de complejidad se refiere básicamente a
los recursos necesarios y el tiempo aproximado que se requiere para adquirir una solución.
En algunos casos este tipo de limitante repercute en el proceso para obtener resultados.
Serı́a altamente deseable desarrollar algoritmos que tengan un buen desempeño en relación
al tipo de problematica y tiempo de adquisición de resultados, por ejemplo aplicaciones
en tiempo real requieren de algoritmos sumamente rápidos. Definir el tiempo que serı́a
aceptable para un algoritmo varı́a según las circunstancias de la aplicación; determinar
cuánto requiere cada uno depende de las caracterı́sticas del hardware, el sistema operativo
y la entrada para el algoritmo. Una forma de tener noción sobre el tiempo necesario es a
través de la complejidad del algoritmo, los procesos que tienen una complejidad de orden
lineal O(n) tienden a tener tiempos de respuesta menores que otros algoritmos con órdenes
superiores, sin embargo no siempre sucede ésto debido a que los datos de entrada para el
algoritmo pueden ser muy grandes. Además, la condición del orden lineal difı́cilmente se
cumple en muchos de los algoritmos.

La complejidad de nuestra propuesta se puede definir como: O((m − 1)( 12 n) + n),


donde m es el número de iteraciones (generaciones) y n es el número de soluciones
(población). El orden dispuesto es determinado por el procedimiento general que tiene
como base un algoritmo de programación evolutiva. El método inicia con un conjunto
de soluciones n (población), la primera vez se evalúan todas. Se mantiene un 50 % del
conjunto de soluciones y se crea un 50 % de nuevas soluciones. A partir de la segunda
iteración hasta la iteración m, sólo se evalúa el 50 % del conjunto de soluciones. La parte
que se mantiene para la siguiente generación, no debe ser evaluada otra vez (ya habı́a
sido evaluada). Por lo tanto, el orden de nuestra propuesta es lı́neal, sin embargo como
se mencionó, existe un factor (tamaño de los datos de entrada) que no garantiza un corto

Discretización de series de tiempo 32 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
3.8 Propuesta Capı́tulo 3

tiempo para obtener los resultados. Nuestra propuesta se enfoca a bases de datos de series
de tiempo, las cuales podrı́an incluir demasiadas series de tiempo dentro de la base de
datos, incrementando la cota de tiempos.

Respecto a la complejidad en espacio muchos algoritmos demandan grandes espa-


cios para almacenar la información. Esta problemática se presenta cuando los datos de
entrada son muy extensos y los equipos de cómputo no abastecen las necesidades de los
algoritmos. Actualmente, las caracterı́sticas de hardware de las computadoras son sufi-
cientes para manejar grandes cantidades de información, pero fenómenos donde se tienen
grandes cantidades de datos podrı́an afectar. Nuestra propuesta no tiene problemas con
la complejidad en espacio contemplando como datos de entrada las series de tiempo uti-
lizadas [25] para las pruebas del algoritmo. No obstante, el factor de los datos de entrada
podrı́a repercutir sobre el algoritmo (en el caso que estos fueran extremadamente grandes).

3.8. Propuesta
En las secciones anteriores se describieron las caracterı́sticas deseables para una
nueva propuesta de un algoritmo de discretización de series de tiempo. En cada sección se
mencionó a grandes rasgos la importancia de esas caracterı́sticas; algunos detalles que se
presentan en los trabajos revisados y el modo en que se implementarán dentro de nues-
tra propuesta. En esta sección se explicará la técnica que será utilizada para resolver la
problemática de discretización de series de tiempo y algunos detalles revisados en este
capı́tulo. La revisión a detalle del algoritmo, se abordará en el siguiente capı́tulo.

La técnica que se utiliza se basa en algoritmos evolutivos. Existen tres ramas impor-
tantes de esta área: algoritmos genéticos, estrategias evolutivas y programación evolutiva.
Inicialmente, se habı́a pensando trabajar con el más común de los algoritmos evolutivos:
un algoritmo genético. Sin embargo, la forma de representar a los individuos dió pauta
a cambiar hacia programación evolutiva. La representación utilizada se compone de dos
partes, la primera con valores enteros, y la segunda con valores de punto flotante. Exis-
te otra caracterı́stica que determinó el cambio, los operadores utilizados. Los algoritmos
genéticos utilizan cruza y mutación. La programación evolutiva sólo hace uso del operador
de mutación. La programación evolutiva requiere de un esquema de solución (definido en
la Sección 3.6), una función de utilidad y una función de selección.

La representación de una solución completa es definida dentro del área de algorit-


mos evolutivos como individuo. Los individuos contienen genes, para nuestra propuesta
cada gen tiene un punto de corte de la longitud de palabra o del alfabeto (véase Figura
3.2). Al conjunto de individuos se le conoce como población.

La función de utilidad (definida en la Sección 3.5) asigna un valor a cada individuo.


Dentro de la propuesta, entre menor valor se tenga (0 serı́a ideal) el individuo es mejor,
y en caso contrario es peor. Se debe evaluar a toda la población y ordenar los individuos
del mejor al peor para aplicar la función de selección.

Discretización de series de tiempo 33 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
3.9 Justificación Capı́tulo 3

A través de un número determinado de iteraciones (número de generaciones) se


logra obtener una solución competitiva. La función de selección se encarga de elegir a los
individuos que se mantienen para las siguientes iteraciones. La función de selección que
aplica la programación evolutiva es simple: se selecciona al 50 % de los mejores individuos,
el otro 50 % es remplazado por los individuos producidos al aplicar el operador de mu-
tación sobre los individuos seleccionados.

El operador descrito para la programación evolutiva (mutación) se define como la


alteración de un gen dentro de un individuo. El objetivo de este operador es variar un
poco al individuo en el espacio de soluciones. El operador de mutación puede ser aplicado
más de una vez. Como nuestra propuesta se basa en programación evolutiva y ésta sólo
utiliza la mutación, se decidió variar el número de veces que se aplicará sobre el individuo.
El objetivo es dar saltos más grandes dentro del espacio de búsqueda. El valor mı́nimo
utilizado es uno. Como valor máximo se definió un valor de cuatro. El número de veces se
determina a través de un valor aleatorio que va desde cero hasta tres y a éste se le suma
el valor mı́nimo, generando valores entre uno y cuatro. El número de veces máximo se
estableció con el fin de brindar más probabilidad de alterar genes tanto en la sección de
la longitud de palabra como en la del alfabeto.

3.9. Justificación
En el capı́tulo se han revisado las caracterı́sticas más importantes que un algoritmo
de discretización de series de tiempo, desde nuestro punto de vista, debe tener. En esta
sección se justificarán propiedades del algoritmo: uso de valores categóricos, función de
utilidad, representación y tiempo.

El uso de valores categóricos en algoritmos de minerı́a de datos sobre series de


tiempo es amplio [5]. Se mencionó que muchos de estos algoritmos, asumen que los valores
con los que trabajarán son discretos. La necesidad de aplicar la transformación motivó a
varios autores para implementar algoritmos de discretización sobre series de tiempo. De
la misma manera tuvo importancia para nuestra propuesta. Además de la transformación
a valores categóricos, se busca obtener una representación más pequeña de los datos. Al
tener representaciones más cortas, los diversos algoritmos que se utilizan en minerı́a de
datos para series de tiempo, requieren de menor tiempo para arrojar los resultados. Las
representaciones discretas pueden variar según los parámetros utilizados para longitud
de palabra y alfabeto. Estos parámetros son muy importantes, ası́ como los lı́mites que
tienen. Cuando se busca maximizar la información que se tiene, se debe utilizar alguna
heurı́stica. Nuestra propuesta busca obtener un buen desempeño en comparación con otros
algoritmos, al agrupar a todos los elementos pertenecientes a una misma clase en grupos
de cadenas sin mezclarse con otras clases. Con esta heurı́stica (explicada en la sección 3.3)
se intenta obtener buenos resultados de clasificación. Es razonable pensar en buenos resul-
tados, si a partir de un conjunto determinado, se agrupan los elementos que corresponden

Discretización de series de tiempo 34 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
3.9 Justificación Capı́tulo 3

a la misma clase.

La función de utilidad es un factor muy importante en la obtención de buenos


esquemas de discretización. La justificación para utilizar tres parámetros dentro de la fun-
ción de utilidad, es ofrecerle la oportunidad al usuario de guiar la búsqueda dependiendo
la aplicación. El primer parámetro enfocado a la clasificación es importante para algorit-
mos de clasificación, agrupación, etcétera. El segundo parámetro, determina con cuántas
cadenas se puede explicar todo el conjunto de datos. Se puede reducir el tamaño de los
datos en relación al conjunto de datos, es decir, si la base de datos tiene M series de
tiempo, al aplicar el esquema de discretización se tendrán M series de tiempo discretas,
donde pueden existir cadenas similares que pertenecen a la misma clase, eliminando las
repetidas y generando una base de datos con m series de tiempo (m < M ). El tercer
parámetro, determina dos niveles de reducción: el primero sobre la reducción dentro de la
serie de tiempo (longitud de palabra), y el segundo sobre el número de valores categóricos
necesarios para explicar todos los datos (alfabeto). Con la descripción de cada parámetro,
el usuario puede ponderar los pesos a partir de la aplicación necesaria. Si se requiere para
algoritmos de clasificación, agrupamiento, etcétera, dónde es importante relacionar correc-
tamente con las etiquetas de clase, se define un valor mayor para el primer parámetro. Si
se requiere reducir el tamaño del conjunto de datos discretizados con el fin de tener una
cantidad menor de lecturas y hacer más rápido el proceso donde se utilizarán las series
de tiempo discretizadas, se incrementa el valor para el segundo parámetro. Por ejemplo
suponiendo que se tiene un conjunto de 30 series de tiempo y existen dos clases diferentes,
se podrı́an obtener 10 cadenas diferentes para la clase uno y 5 para la clase dos. De esta
manera se tendrı́a ahora un conjunto de 15 series de tiempo en lugar de las 30 originales.
Los procedimientos utilizarı́an solo 15 series de tiempo. Si se requiere tener representa-
ciones más cortas de cada serie de tiempo, se aumenta el valor para el tercer parámetro.

La representación de nuestra propuesta hace más simple el procedimiento del algo-


ritmo. Al incluir los puntos de corte de la longitud de palabra y el alfabeto, se simplifica el
proceso de discretización necesario para evaluar a los individuos (soluciones). Además, el
esquema de la representación permite expandir el problema a más dimensiones. Suponien-
do que se tuvieran tres dimensiones (longitud de palabra, alfabeto en X y alfabeto en Y ),
se agregarı́a otro conjunto de valores reales, y otro valor de separación entre el segundo y
tercer conjunto.

El tiempo es un factor muy importante para obtener resultados. En la sección 3.7


se explicó la complejidad del algoritmo, mas no se determinó un tiempo estimado. El pro-
ceso depende completamente del conjunto de datos, entre mayor sea su tamaño, mayor
será el tiempo para obtener el esquema de discretización. El algoritmo tiene una comple-
jidad lineal; los procedimientos de discretización que utiliza el algoritmo, la función de
evaluación y el ordenamiento, son métodos lineales y no requieren de grandes cantidades
de tiempo. En suma, el proceso completo es lineal pero depende en gran medida de los
datos de entrada.

Se usó una técnica de algoritmos evolutivos, éstos en general, generan soluciones

Discretización de series de tiempo 35 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
3.9 Justificación Capı́tulo 3

suficientemente buenas en problemas con gran dimensionalidad, como es la problemática


de discretización de series de tiempo. Con respecto a la longitud de palabra, se habla de
valores enteros que pueden ir de 1 a M , y por la parte del alfabeto se encuentran valo-
res continuos que pueden ir de −N a N . El número de cortes posibles sobre la longitud
de palabra es grande, pero en cierta forma contable (finito), en cambio dentro del alfa-
beto el espacio de búsqueda es muy grande, llegando a ser practicamente infinito. Basado
únicamente en el número de cortes. Ahora bien, si se considera además que se pueden
tener diferentes intervalos a partir de un mismo número de cortes, el problema se vuelve
más complejo. Se decide atacar la problemática con programación evolutiva, para tener
la capacidad de explorar diversas zonas dentro del espacio de búsqueda y moverse en un
determinado radio a partir del operador de mutación. Se ejemplifica mejor con la Figura
3.2: cada punto es un individuo; el circulo que lo rodea es un área aproximada donde el
individuo puede moverse a través de mutaciones; los óvalos denotan los espacios de mejores
soluciones (entre más pequeños mejores soluciones); y toda la imagen es considerada como
el espacio de búsqueda.

Figura 3.2: Espacio de soluciones para programación evolutiva

La programación evolutiva tiene definidos los mecanismos de selección de padres


y de supervivencia (reemplazo). Para nuestra propuesta se definió la representación, la
función de evaluación y el operador de variación (mutación). Para el operador de mutación
se eligió un valor máximo de cuatro modificaciones. El objetivo es aplicar dos cambios en
la longitud de palabra y dos en el alfabeto, suponiendo que la distribución sea uniforme,
que ambos conjuntos tengan la misma longitud y que la cantidad de cambios dado por el
valor aleatorio sea cuatro. Se sabe que el valor mı́nimo debe ser uno, de lo contrario se
estarı́a duplicando algun individuo padre utilizado para mutar. Inicialmente, se pensaba
utilizar un total de dos cambios, suponiendo que la probabilidad asignara uno para la
longitud de palabra y otro para el alfabeto, pero existirı́an casos donde sólo se alterara
una parte de la solución (longitud de palabra o alfabeto). Contemplar el número de tres
cambios no harı́a equitativa la asignación de los ı́ndices donde se cambiarı́an los valores.
Al utilizar cuatro cambios, la probabilidad de que las cuatro mutaciones se apliquen sobre
una parte de la solución es muy baja, y existe mayor probabilidad de que se alteren ambas
partes, contemplando como caso ideal dos cambios para cada sección.

Discretización de series de tiempo 36 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
Capı́tulo 4
Metodologı́a

En los capı́tulos anteriores se han revisado algunas técnicas existentes sobre dis-
cretización de series de tiempo y las caracterı́sticas relevantes que un algoritmo deberı́a
contemplar; nuestra propuesta será detallada en esta sección. Se basa en programación
evolutiva y en este capı́tulo se profundizará sobre las funciones principales que esta técni-
ca utiliza.

La programación evolutiva es una rama de los algoritmos evolutivos. Los algoritmos


evolutivos tienen un procedimiento general [4]. Cada una de las técnicas, difieren en partes
determinadas de éste. El esquema se muestra en el Algoritmo 4.1.

Algoritmo 4.1 Esquema general de un algoritmo evolutivo


1: INICIALIZAR población con soluciones candidatas aleatorias
2: EVALUAR cada candidato
3: repeat
4: SELECCIONAR padres
5: COMBINAR pares de padres
6: MUTAR los hijos resultantes
7: EVALUAR los nuevos candidatos
8: SELECCIONAR individuos para la siguiente generación
9: until CONDICIÓN DE FIN es satisfecha

En las secciones posteriores, se revisará detenidamente cada elemento del esquema


general, ası́ como su implementación. El orden que será llevado a cabo es: la representación
de las soluciones, la población y cómo se genera, la función de evaluación, el mecanismo
de selección, la selección de padres, el operador de mutación, la selección del mejor indivi-
duo y finalmente, la evaluación del esquema de discretización. En los siguientes incisos se
describen funciones muy utilizadas en los algoritmos que se mostrarán para cada proce-
dimiento. Además, se agrega una sección referente a los datos utilizados para las pruebas
donde el algoritmo propuesto mejora los resultados en comparación con otras técnicas
utilizadas y con los datos originales sin ningún procesamiento (sin discretizar).

37
METODOLOGÍA Capı́tulo 4

Las funciones más utilizadas se describen a continuación:

[ ]: Agrupa dentro de un vector los diferentes valores o vectores dentro de los brackets.
Si éstos están separados por comas (,) se considera un vector, si están separados por
puntos y comas (;) se considera una matriz. Si no se incluye nada, se denomina
conjunto vacı́o.

(:): Los dos puntos se utilizan para decir todos los elementos. Si tiene un valor antes
y un valor después, significa un rango. Por ejemplo (1: 10) equivale a decir del valor
1 al valor 10.

longitud: Devuelve el tamaño de un vector.

tamanio: Devuelve el tamaño de una matriz M x N . Si se especifica un segundo


parámetros es para referirse a la dimensión: 1 para M y 2 para N .

min: Devuelve el valor mı́nimo dentro de un vector.

max: Devuelve el valor máximo dentro de un vector.

abs: Devuelve el valor absoluto.

sum: Devuelve la suma de un vector, si es una matriz, devuelve un vector de la suma


por columnas.

media: Devuelve el valor de la media de un vector.

alguno: Devuelve un valor booleano si existe un caso que satisfaga la condición.

esta vacio: Devuelve un valor booleano si el vector está o no vacı́o.

parte entera: Obtiene la parte entera de un valor, no redondea, simplemente quita


los valores decimales.

funcion random: Arroja un valor real entre 0 y 1. Si tiene parámetros, construye una
matriz de M x N valores reales diferentes entre 0 y 1.

matriz unos: Construye una matriz de M x N con valores de 1.

matriz ceros: Construye una matriz de M x N con valores de 0.

encuentra: A partir de una condición busca los valores que la satisfagan. Si se es-
tablece un segundo parámetro es para deteminar el número máximo de valores que
se desean encontrar.

entropy: Devuelve el valor de la entropı́a de Shanon.

flushVector: Esta función ordena el vector de entrada y por cuestiones del lenguaje
utilizado en la implementación elimina valores de relleno.

Discretización de series de tiempo 38 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.1 Representación Capı́tulo 4

fixClases: Esta función transforma los valores de clase a valores secuenciales iniciando
por el valor 0.
indexStrings: Devuelve el ı́ndice dentro de la matriz a partir del valor de la cadena
utilizada como parámetro de entrada.

4.1. Representación
El primer paso dentro de un algoritmo evolutivo es hacer el enlace entre el “mundo
real” y el “mundo del algoritmo evolutivo”. Se debe definir un puente entre el contexto
del problema original y el espacio de soluciones donde la evolución pueda tomar lugar.
Los objetos que conforman posibles soluciones dentro del contexto del problema original
se referencian como fenotipos. Los objetos codificados a la representación de individuos
dentro de los algoritmos evolutivos se llaman genotipos. El primer paso de diseño es
comúnmente llamado diseño de la representación, que equivale a especificar un méto-
do de mapeo desde los fenotipos hacia los genotipos.

La problemática de discretización de series de tiempo requiere de dos elementos: los


puntos de corte para la longitud de palabra y los puntos de corte para el alfabeto. Básica-
mente, el fenotipo de nuestro problema es un esquema de discretización. El genotipo es una
representación compuesta de dos conjuntos. El primero utiliza valores enteros y determina
los puntos de corte sobre la longitud de palabra; el segundo, utiliza valores reales con dos
decimales y determina los puntos de corte sobre el alfabeto.

La Figura 4.1 muestra un esquema de discretización y la Figura 4.2 la representación


de una solución.

Figura 4.1: Fenotipo

Con la representación expuesta se modela el esquema de discretización como solu-


ción. En el ejemplo de la representación, los genes están ordenados de manera ascendente

Discretización de series de tiempo 39 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.1 Representación Capı́tulo 4

Figura 4.2: Genotipo (los valores están desordenados)

para poder realizar el proceso de discretización de los datos y gráficamente hacer más clara
la transformación del fenotipo al genotipo.

La terminologı́a común de computación evolutiva utiliza muchos sinónimos para


nombrar a los elementos de estos dos espacios. Por el lado del contexto del problema
original, solución candidata (fenotipo), e individuo son usados para denotar puntos en
el espacio de posibles soluciones. Dentro del lado de algoritmos evolutivos, cromosoma
(genotipos), y otra vez individuo pueden ser usados para puntos en el espacio donde la
búsqueda evolutiva toma lugar. Cada cromosoma o individuo contiene genes, éstos son las
partes que componen la solución. Para nuestro problema, un gen equivale a un punto de
corte en el esquema de discretización. El cromosoma que se utiliza como solución puede
diferir en longitud, dado que cada esquema de discretización tiene un determinado número
de cortes sobre la longitud de palabra y el alfabeto.

Los algoritmos evolutivos realizan sus operaciones usando elementos aleatorios


(cruza, mutación, selección, etcétera). En el caso de la representación, el orden de los genes
es aleatorio, con la restricción de tener en la primera sección los genes correspondientes a
la longitud de palabra, y en la segunda sección los correspondientes al alfabeto. Se debe
almacenar dentro de la estructura de la representación, el valor de la posición que separa
a las dos secciones. El cromosoma es un vector cuyo valor de separación está definido por
la posición final del primer elemento. La Figura 4.3 muestra claramente qué posición se
utiliza para determinar la separación de cada sección.

Figura 4.3: Genotipo con ı́ndice de separación (los valores están desordenados)

Este esquema será utilizado para todo el proceso del algoritmo evolutivo. En la
siguiente sección se abordará cómo se crea a un individuo y al conjunto de éstos, denomi-
nado población.

Discretización de series de tiempo 40 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.2 Generar población Capı́tulo 4

4.2. Generar población


El papel de la población es agrupar soluciones posibles. La población forma la
unidad de evolución. Una vez establecida la representación, se debe determinar el número
de individuos que conjuntarán a la población, es decir, se debe fijar el tamaño de la
población. Los operadores de selección (selección de padres y selección de sobrevivientes)
trabaja a un nivel de población, caso contrario a los operadores de variación (cruza y
mutación) que actúan sobre uno o más individuos. Por ejemplo, se puede considerar a un
conjunto de mejores individuos para continuar en la siguiente generación, o a un conjunto
de peores individuos para ser reemplazados por nuevos individuos. En la mayorı́a de los
algoritmos evolutivos, el tamaño de la población es un valor constante el cual no cambia
a lo largo de la búsqueda evolutiva.

La diversidad existente en una población es una medida del número de posibles


soluciones existentes dentro de ella. Por cada individuo, existe una solución diferente.
Cada individuo tiene un valor de utilidad, que determina la aptitud del mismo. Para tener
una población, se debe tener un número de individuos (N P OB), un vector X para la
longitud de palabra, y un vector Y para el alfabeto. El vector X contiene todos los inter-
valos de tiempo que la serie de tiempo tiene. El vector Y almacena los valores únicos de
las lecturas de todas las series de tiempo dentro de una misma base de datos. El Algoritmo
4.2 muestra cómo se construye la población de individuos.

En la sección siguiente, se presenta la manera de crear un individuo. El proceso se


repite N P OB veces y utiliza como parámetros los vectores X y Y .

Algoritmo 4.2 Poblacion: Algoritmo para generar la población


Entrada: X 6= ∅, Y 6= ∅ and nP ob > 0; donde X son los valores únicos de la longitud
de la serie de tiempo, Y los únicos valores continuos de la base de datos y nP ob el
tamaño de la población.
1: COEF = (parte entera(funcion random() * 5) + 1) / 10;
2: pobX = makeVector(nP ob, X, parte entera(COEF * longitud(X))); makeVector
se detalla en el Algoritmo 4.3
3: nP obX = [matriz unos(nP ob, 1)*X(1), pobX, matriz unos(nP ob,
1)*X(longitud(X))];
4: [iSegL, limX] = limits(fix(nP obX)); limits se detalla en el Algoritmo 4.4
5: pobY = makeVector(nP ob, Y , parte entera(COEF * length(X) / 5));
6: [iSegY , limY ] = limits(fix(pobY ));
7: lim = [limX, limY ];
8: Return: lim

Discretización de series de tiempo 41 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.3 Generar individuo Capı́tulo 4

4.3. Generar individuo


Un individuo representa una solución dentro del espacio de soluciones. Se ha deter-
minado que la representación utilizada para el genotipo será a partir de un vector dividido
en dos partes y de una variable que almacene el ı́ndice de separación. La primera parte se
enfoca a la longitud de palabra, utilizando valores enteros, la segunda, al alfabeto a partir
de valores reales con dos decimales.

El procedimiento para crear un individuo se divide en cuatro partes:

1. Crear el vector correspondiente a la longitud de palabra.

2. Crear el vector correspondiente al alfabeto.

3. Unir los dos vectores y conformar un individuo.

4. Determinar el ı́ndice de separación entre las dos secciones.

Los primeros dos incisos son procedimientos muy similares. La única diferencia
es, que el primer vector utiliza el parámetro W ORD LEN (longitud de palabra), y el
segundo, el parámetro ALP HABET (alfabeto). Ambos parámetros (W ORD LEN y
ALP HABET ) están descritos en la sección anterior. Una vez mencionada la aclaración,
se explicará el proceso general que utilizan ambos procedimientos. El proceso realiza dos
pasos importantes: crear un conjunto de valores aleatorios y eliminar los valores repetidos.

Crear un conjunto de valores aleatorios es un procedimiento que requiere tres


parámetros: tamaño del conjunto de valores, y el rango admitido de valores posibles (mı́ni-
mo y máximo). El tamaño del conjunto se determina de manera aleatoria para cada vector
dentro del individuo (W ORD LEN , ALP HABET ). El valor aleatorio que determina el
tamaño se obtiene por la Ecuación 4.1, donde el valor min es igual a cero y el valor max
es determinado por el producto del tamaño de la serie de tiempo por otro valor aleatorio
COEF . COEF es un valor aleatorio que obtiene valores distintos para la longitud de pa-
labra y para el alfabeto. Para la longitud de palabra los valores van desde 0.1 hasta 0.5 con
incrementos de 0.1. Para el alfabeto los valores van desde 0.02 hasta 0.1 con incrementos
de 0.02. Ésto se interpreta como utilizar del 10 % hasta el 50 % de intervalos de la serie de
tiempo para la longitud de palabra; y del 2 % hasta el 10 % de información de la serie de
tiempo para el alfabeto. Los porcentajes de información para la longitud de palabra y el
alfabeto fueron definidos a través de pruebas con algunas bases de datos. El valor mı́nimo y
máximo, se obtienen de los vectores W ORD LEN y ALP HABET con funciones nativas
(min(vector) y max(vector)). El Algoritmo 4.3 muestra el proceso para crear los vectores
que conformarán los individuos. Cada valor aleatorio se calcula a través de la Ecuación 4.1:

valor aleatorio = (f un random() ∗ (max − min)) + min (4.1)


, donde: f un random() es una función que devuelve valores aleatorios.
max es el valor máximo del vector.

Discretización de series de tiempo 42 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.3 Generar individuo Capı́tulo 4

min es el valor mı́nimo del vector.

Algoritmo 4.3 makeVector: Construcción de vectores para conformar individuo


Entrada: nP ob > 0 ∧ vec 6= ∅ ∧ M AX > 1; donde nP ob es el tamaño de la población,
vec es el vector de valores únicos(X ó Y ) y M AX es el porcentaje de valores que se
utilizarán (de la longitud de palabra o del alfabeto).
1: P ART M IN = 2;
2: pob = matriz ceros(nP ob, M AX);
3: max = 0;
4: for i = 1 to nP ob do
5: P ART = parte entera(M AX * funcion random());
6: if P ART < P ART M IN then
7: P ART = P ART M IN
8: end if
9: pob(i, 1: P ART ) = ((funcion random(1, P ART ) .* 0.99) .* (vec(longitud(vec)) -
vec(1))) + vec(1);
10: pob(i, P ART + 1: M AX) = pob(i, 1);
11: if P ART > max then
12: max = P ART
13: end if
14: end for
15: pob = pob(:, 1: max);
16: Return: pob

Eliminar los valores repetidos es un procedimiento que se debe aplicar en el proceso


que genera al individuo. Se recorre el vector del primer elemento al último. Con el valor
del primer elemento, se buscan en el resto del vector valores iguales, si existen, se eliminan
del vector (este proceso reduce el tamaño del vector). Al realizar la búsqueda, se obtiene
un vector de las posiciones en donde se encontraron los valores equivalentes. Dentro de las
posiciones devueltas se encontrará la posición del elemento que fue utilizado para efectuar
la búsqueda. Por tal motivo, el valor de la primera posición que devolvió la función se
conserva, y se eliminan los valores de las siguientes posiciones. Para eliminarlas, se debe
asignar el conjunto vacio a las posiciones requeridas (vector(j) = [ ]). El Algoritmo 4.4
muestra el proceso de eliminación de valores repetidos dentro de un vector. La Figura 4.4
ejemplifica la idea del proceso utilizado.

El proceso se aplica para cada parte (longitud de palabra y alfabeto), obteniendo


dos vectores que serán utilizados para el paso número tres y número cuatro. El paso
número tres es unir ambos vectores dentro de uno mismo. Ésto se resuelve asignan-
do a una nueva variable un vector que incluya los dos vectores que se deben juntar
(vector = [ vector1, vector2 ]), donde vector1 corresponde a la longitud de palabra
y vector2 al alfabeto.

Discretización de series de tiempo 43 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.4 Funcion de evaluación Capı́tulo 4

Figura 4.4: Representación para ilustrar el procedimiento de eliminar valores repetidos

El paso número cuatro, que consiste en determinar el ı́ndice de separación, se rea-


liza a través de la asignación a una variable el valor del ı́ndice de separación. El valor se
calcula a partir de la longitud del vector1 (index = length(vector1), donde length(vector)
determina la longitud del vector dado).

El individuo contiene dos variables, una donde se ha almacenado el vector que in-
cluye los puntos de corte de la longitud de palabra seguido del alfabeto, y otra donde se
almacena el ı́ndice de separación.

Se ha descrito el proceso para generar un individuo, y partiendo de un tamaño de


población, la constitución de una población. En la siguiente sección se profundizará en la
función de evaluación, que está encargada de asignar un valor de utilidad a cada individuo
dentro de la población.

4.4. Funcion de evaluación


El papel de la función de evaluación es medir la capacidad de adaptación de los
individuos. También es conocida como función de utilidad. Esta función es un procedi-
miento que se encarga de asignar una medida de calidad a los individuos. Además, es
común que sea llamada función de aptitud dentro del área del cómputo evolutivo. La fun-
ción de utilidad maneja el concepto de maximización, aunque puede trabajar a la inversa
como un problema de minimización donde los valores menores son preferidos (0 serı́a lo
más deseable). El Algoritmo 4.5 muestra el proceso para evaluar a todos los individuos.

La función de evaluación se compone de tres parámetros normalizados con valores


entre 0 y 1 (donde 0 se considera el mejor caso y 1 el peor): la precisión de clasificación,
el nivel de reducción de cadenas, el nivel de reducción de información requerida. Cada
parámetro está ponderado por un peso definido por el usuario. Los pesos dependen de
las necesidades que tenga la aplicación donde serán utilizados los datos discretizados. La
forma general de la función se muestra en la Ecuación 3.1.

Discretización de series de tiempo 44 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.4 Funcion de evaluación Capı́tulo 4

Algoritmo 4.4 limits: Elimina valores repetidos dentro de un vector


Entrada: pob 6= ∅; donde pob es un vector con valores aleatorios y desordenados.
1: T OKEN = -inf;
2: [rowP , colP ] = tamanio(pob);
3: iSeg = matriz unos(1, rowP );
4: lims = matriz unos(rowP , 1);
5: for h = 1 to tamanio(pob, 1) do
6: vec = pob(h, :);
7: i = 1;
8: while i ≤ longitud(vec) do
9: f nd = encuentra(vec == vec(i));
10: vec(f nd(2: longitud(f nd))) = [ ];
11: i = i + 1;
12: end while
13: iSeg(h) = longitud(vec);
14: lims(h, 1: iSeg(h)) = vec;
15: lims(h, iSeg(h) + 1: colP ) = T OKEN ;
16: end for
17: lims = lims(:, 1: max(iSeg));
18: Return: lims

Los tres parámetros se obtienen mediante un procedimiento que evalúa cada solu-
ción que denota cada individuo. Se realiza la transformación del genotipo (individuo) al
fenotipo (esquema de discretización). Se aplica el esquema de discretización a un determi-
nado conjunto de datos de tamaño M . Se obtienen M representaciones discretas (cadenas),
además para cada una de éstas se conoce el valor de la etiqueta de clase correspondiente.
Mediante una función para obtener valores únicos (valores unicos(vector)), se obtienen
las nS cadenas únicas de todo el conjunto discretizado, donde nS ≤ M ; y las nC clases
existentes. Se construye una matriz inicializada con ceros, llamada “matriz de strings” que
tendrá nS columnas y nC filas como se muestra en la Figura 4.5.

Se recorren las M representaciones discretas, por cada una se busca la posición


(x, y) dentro de la matriz para incrementar el contador de esa posición. Para definir la
columna, se recorren las nS cadenas diferentes y se busca con cuál se iguala. Para deter-
minar la fila, sólo se revisa la etiqueta de clase de esa representación discreta. Al terminar
este proceso, se obtiene una matriz como se muestra en la Figura 4.6.

Con la “matriz de strings” se adquieren los primeros dos parámetros (accuracy


y num strings). El primer elemento se calcula a través de la sumatoria de la entropı́a
existente entre clases por cada cadena diferente. La Ecuación 4.2 detalla el cálculo descrito.
El objetivo de este parámetro, es fijar la precisión con que fueron clasificadas las cadenas
diferentes respecto a la clase que le corresponde mediante el esquema de discretización
utilizado. El Algoritmo 4.6 muestra el procedimiento para llenar la “matriz de strings”

Discretización de series de tiempo 45 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.4 Funcion de evaluación Capı́tulo 4

Figura 4.5: Matriz de strings inicializada

Figura 4.6: Matriz de strings después del proceso de llenado

y el Algoritmo 4.7 el proceso para evaluar la matriz donde devuelve los valores de los
primeros dos parámetros.
nS X
X nC
entropy(x) = −pij log pij (4.2)
i=1 j=1

, donde: nS es el número de cadenas diferentes.


nC es el número de clases.
pij es la probabilidad calculada del valor del elemento ij sobre la sumatoria de la columna i.

El valor de entropy(x) devuelve un valor que va desde cero hasta infinito, siendo
cero el mejor valor posible. La función de evaluación requiere de valores normalizados, por
tanto debe ser normalizado. La Ecuación 4.3 normaliza el valor devuelto por entropy(x).

accuracy(x) = 1 − inv(entropy(x) + 1) (4.3)

Discretización de series de tiempo 46 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.4 Funcion de evaluación Capı́tulo 4

1
, donde: inv(value) es el valor inverso de value ( valor ).

El segundo parámetro (num strings), se calcula a partir del número de cadenas


(nS), número de clases (nC) y número de series de tiempo dentro del conjunto de datos
(M ). En la Ecuación 4.4 se calcula el valor del segundo parámetro. El objetivo de este
parámetro, es determinar el número necesario de cadenas para explicar cada clase. El
caso ideal serı́a una cadena por clase; el caso contrario serı́a una cadena por cada serie
de tiempo; y el peor caso serı́a una cadena para todas las clases. Si se presenta el peor
caso, se castiga, y se asigna un valor mayor que el del caso contrario al ideal. Por ejemplo,
suponiendo un conjunto de datos de 30 lecturas y 3 clases, obtener una cadena serı́a el peor
caso, después dos cadenas, le sigue treinta cadenas y a partir de ahi en orden descendente
hasta tres cadenas, que serı́a el caso ideal al igualarse con el número de clases (suponiendo
que cada cadena explica cada clase).

num strings = (nSnC)/N (4.4)


, donde: nSnC es un valor que tiene dos casos posibles que se muestran a continuación.
N es el número de series de tiempo dentro del conjunto de datos.

(
(nS − nC), si (nS − nC) ≥ N ,
nSnC =
(N − (nS − nC) − (nC − 1)), si (nS − nC) < N .
La manera en que se obtiene el valor del segundo parámetro evita la necesidad de
aplicar un proceso de normalización.

El tercer y último parámetro se obtiene a partir de la longitud que tiene cada indi-
viduo. La longitud del individuo determina prácticamente cuántos puntos de corte fueron
necesarios para explicar los datos continuos. Si conocemos la longitud de la serie de tiem-
po continua, entonces se puede calcular el nivel de reducción a partir de la longitud del
individuo. La Ecuación 4.5 lo ejemplifica. Entre más pequeña sea la representación (menor
longitud del individuo), mejor será el valor para el tercer parámetro. El propósito de este
parámetro es precisar la cantidad de información necesaria para explicar correctamente
los datos continuos.

reduction = length(individuo)/length(time serie) (4.5)


, donde: length(vector) devuelve la longitud de vector.
individuo es la solución (esquema de discretización).
time serie es la serie de tiempo (se asume que todas las series de tiempo dentro del con-
junto de datos tienen la misma longitud).

El valor de la función de utilidad dependerá de los tres valores explicados ante-


riormente y de la ponderación asignada a los pesos (α, β y γ). Cada individuo tendrá su

Discretización de series de tiempo 47 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.4 Funcion de evaluación Capı́tulo 4

Algoritmo 4.5 evaluePopulation: Evalua toda la población


Entrada: iLim 6= ∅, lim 6= ∅, clases 6= ∅, dBase 6= ∅, W EIGHT S 6= ∅; donde iLim
determina el ı́ndice de separación para el individuo, lim es el individuo, clases es un
vector que contiene la clase de cada lectura de la base de datos, dBase es la base de
datos continua y W EIGHT S son los pesos asignados a la función de utilidad.
1: f in = 4 + tamanio(W EIGHT S, 1);
2: sortV = matriz unos(f in, longitud(lim));
3: sortV (1, :) = 1: longitud(iLim);
4: for h = 1 to longitud(iLim) do
5: vec = flushVector(iLim(h), lim(h, :));
6: [dBaseDis, dif ] = allToDiscrete(iLim(h), vec, dBase); allToDiscrete se detalla
en el Algoritmo 4.9
7: cM atrix = stringsMatrix(clases, dBaseDis); stringsMatrix se detalla en el Al-
goritmo 4.6
8: F IT = evalueMatrix(cM atrix); evalueMatrix se detalla en el Algoritmo 4.7
9: F IT (3) = (longitud(vec) / (2 * tamanio(dBase, 2)));
10: sortV (2: 4, h) = [tamanio(cM atrix, 2); iLim(1, h); (size(vec, 2) - iLim(1, h))];
11: sortV (5: f in, h) = funFitness(W EIGHT S, F IT ); funFitness se detalla en el
Algoritmo 4.8
12: end for
13: Return: sortV

valor de aptitud y con éste se llevan a cabo los procesos siguientes: selección, mutación y
reemplazo. En las siguientes secciones se abordarán estas funciones.

4.4.1. Proceso de discretización


La función de utilidad evalúa los esquemas de discretización (individuo / solución)
sobre el conjunto de datos para asignarle un nivel de aptitud a cada individuo. Se necesita
realizar la transformación del genotipo al fenotipo. El fenotipo ordena los puntos de corte
de manera ascendente para hacer más práctico el proceso de discretización. Para ejempli-
ficar, se tomará como base la Figura 4.7. El Algoritmo 4.9 discretiza todas las series de
tiempo de la base de datos y el Algoritmo 4.10 discretiza cada serie de tiempo. Ambas
funciones utilizan tres parámetros: iSeg, vec e inp, donde iSeg es el equivalente al ı́ndice
de separación (valor de 9 en el ejemplo); vec es todo el vector del genotipo (individuo /
solución); inp son las series de tiempo de la base de datos en el Algoritmo 4.9 y es una
sola serie de tiempo en el Algoritmo 4.10.

El proceso convierte cada serie de tiempo continua en su versión discreta. La primera


parte del vector (del primer elemento al iSeg elemento), determina los puntos de corte
de la longitud de palabra. Por cada intervalo originado entre el elemento i y el elemento
i + 1, se aplica reducción de dimensionalidad a través de la idea del algoritmo PAA (el
valor de la media de todos los valores dentro del intervalo). Con el valor de la media, se

Discretización de series de tiempo 48 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.5 Mecanismo de selección Capı́tulo 4

Algoritmo 4.6 stringsMatrix: Crea la matriz de strings


Entrada: clases 6= ∅ and inpDis 6= ∅; donde clases es un vector con las cases
correspondientes a la base de datos y inpDis es el conjunto de strings (conjunto de
valores discretizados).
1: clases = fixClases(clases);
2: cM atrix = matriz ceros(max(clases), tamanio(inpDis, 1));
3: for i = 1 to tamanio(inpDis, 1) do
4: colCM atrix = indexString(inpDis(i, :), inpDis(1: i - 1, :));
5: cM atrix(clases(i), colCM atrix) = cM atrix(clases(i), colCM atrix) + 1;
6: end for
7: cM atrix(:, (sum(cM atrix) == 0)) = [];
8: Return: cM atrix

Algoritmo 4.7 evalueMatrix: Obtiene los valores de los primeros dos parámetros a partir
de la matriz de strings
Entrada: cM atrix 6= ∅; donde cM atrix es la “matriz de strings”.
1: dif Str = tamanio(cM atrix, 2) - tamanio(cM atrix, 1);
2: if dif Str < 0 then
3: dif Str = sum(sum(cM atrix)) - dif Str - (tamanio(cM atrix, 1) - 1);
4: end if
5: dif Str = dif Str / sum(sum(cM atrix));
6: out = [entropy(cM atrix0 ) dif Str];
7: Return: out

asigna el valor discreto utilizando como alfabeto la segunda parte del vector (del iSeg + 1
elemento hasta el elemento final). El valor asignado es el ı́ndice del vector del alfabeto, el
valor de la media se va comparando con el vector, si éste es menor, se le asigna el ı́ndice
del elemento donde se cumplió la condición (se asume que el vector del alfabeto ya no
contiene la parte de la longitud de palabra y el ı́ndice 1 corresponde al primer elemento
del vector del alfabeto). A partir del ejemplo de la Figura 4.7, si tuvieramos un valor de
1.98, el ı́ndice asignado serı́a 3.

4.5. Mecanismo de selección


La selección de sobrevivientes o selección ambiental tiene la función de clasificar
los individuos a partir de su adaptabilidad. Es similar a la selección de padres, pero el
mecanismo de selección es usado en una etapa diferente dentro del ciclo evolutivo. Dado
que el tamaño de la población nunca cambia a lo largo del proceso, se deben elegir a
los individuos que continuarán en la siguiente generación. Esta decisión generalmente se
basa en los valores de utilidad que tiene cada individuo. El mecanismo de selección de
sobrevivientes también es conocido como función de reemplazo o estrategia de reemplazo.

Discretización de series de tiempo 49 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.5 Mecanismo de selección Capı́tulo 4

Algoritmo 4.8 funFitness: Devuelve el valor de utilidad a partir de los pesos y los valores
de los tres parámetros
Entrada: weights 6= ∅ and F IT 6= ∅; donde weights son los pesos para la función
de utilidad y F IT
1: for i = 1 to tamanio(weights, 1) do
2: for j = 1 to tamanio(weights, 2) do
3: if weights(i, j) == 0 then
4: break;
5: end if
6: ind = weights(i, j);
7: weights(i, j) = (ind - parte entera(ind)) * 10 * F IT (parte entera(ind));
8: end for
9: end for
10: f itness = sum(weights, 2);
11: Return: f itness

Figura 4.7: Genotipo ordenado con ı́ndice de separación

Este nombre se utiliza más cuando se reemplaza una cantidad menor al tamaño de la
población. El caso de aplicar el mecanismo de selección, está enfocado cuando se elige
entre un conjunto de individuos mucho mayor al tamaño de la población. El término más
común dentro del cómputo evolutivo es mecanismo de selección y para nuestra propuesta
es el término que se enfoca mejor.

El área de programación evolutiva tiene definido un mecanismo de selección. El


mecanismo utilizado en el presente trabajo se basa en aplicar una selección del 50 % de los
individuos. Existen otros mecanismos que utilizan técnicas de torneos de competencias de
tipo round-robin en donde se involucran la población de padres e hijos [4]. Dentro de nues-
tros experimentos se hicieron algunas pruebas y la estrategı́a que se eligió tuvo mejores
resultados.

Antes de aplicar la función de selección, se ordenan los individuos del más apto al
menos apto. Nuestra propuesta aplica la selección del 50 % de los individuos más aptos, es
decir, el primer 50 % de los individuos. Si tenemos una población N P OB, la función de
selección elige N P OB/2 individuos. El otro 50 % de la población será cubierto mediante
el operador de mutación descrito en la sección 4.7.

A continuación se explica cómo aplicar la selección de los padres, para aplicar los
mecanismos del operador de mutación.

Discretización de series de tiempo 50 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.6 Selección de padres Capı́tulo 4

Algoritmo 4.9 allToDiscrete: Discretiza todas las series de tiempo de la base de datos
Entrada: iSeg 6= ∅, vec 6= ∅ and inp 6= ∅; donde iSeg es el ı́ndice de separación del
individuo, vec es el individuo y inp son todas las lecturas de la base de datos (valores
continuos).
1: dis = matriz ceros(tamanio(inp, 1), iSeg - 1);
2: disGra = matriz ceros(tamanio(inp));
3: for i = 1 to tamanio(inp, 1) do
4: [dis(i, :) dif disGra(i, :)] = toDiscrete(iSeg, vec, inp(i, :)); toDiscrete se detalla
en el Algoritmo 4.10
5: end for
6: Return: dis, dif disGra

4.6. Selección de padres


La selección de padres tiene el objetivo de distinguir entre individuos a partir de
su valor de calidad. El fin es permitir a los mejores individuos convertirse en los padres
de la siguiente generación. Un individuo se considera padre, si éste ha sido seleccionado
para aplicársele un operador de variación y crear un hijo. Dentro del cómputo evolutivo,
la selección de padres es probabilı́stica. Ası́ los individuos de mayor calidad obtienen una
mayor oportunidad de convertirse en padres que aquellos que tienen menor calidad.

La selección de padres para el área de programación evolutiva no existe como tal,


pues todos los individuos de la población son seleccionados y cada uno produce exacta-
mente un nuevo individuo a través del operador de variación de mutación. El proceso tiene
la caracterı́stica de ser un método determinista.

Se aplica la función de selección a la población (como se describió en la sección an-


terior). A toda esa población se le aplica la función de selección de padres, es decir, todos
los individuos serán padres y formarán individuos hijos mediante el operador de mutación.

La selección de padres siempre utiliza únicamente la función de mutación. En la


siguiente sección se explicará el procedimiento para mutar a un individuo.

4.7. Operador de mutación


El operador de mutación es un operador de variación de tipo unitario. Se aplica
sólo a un genotipo y este produce un nuevo cromosoma ligeramente modificado. En al-
gunos casos se modifica el número de veces que se aplicará el operador de mutación con
el fin de dar saltos más grandes sobre el espacio de búsqueda. El operador de mutación

Discretización de series de tiempo 51 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.7 Operador de mutación Capı́tulo 4

Algoritmo 4.10 ToDiscrete: Discretiza una serie de tiempo


Entrada: iSeg 6= ∅, vec 6= ∅ and inp 6= ∅; donde iSeg es el ı́ndice de separación
del individuo, vec es el individuo y inp es una lectura de la base de datos (valores
continuos).
1: vecDis = matriz ceros(1, iSeg - 1);
2: vecReal = matriz ceros(1, iSeg - 1);
3: vecDisGrap = matriz ceros(1, tamanio(inp, 2));
4: for i = 1 to iSeg - 1 do
5: vecReal(i) = media(inp(vec(i) : vec(i + 1)));
6: vecDis(i) = encuentra(vecReal(i) <= vec(iSeg + 1: longitud(vec)), 1);
7: if esta vacio(vecDis(i)) then
8: vecDis(i) = longitud(vec) - iSeg + 2;
9: end if
10: discV alGrap = vec(encuentra(min(abs(vecReal(i) - vec(iSeg + 1: longitud(vec))))
== abs(vecReal(i) - vec(iSeg + 1: longitud(vec))), 1) + iSeg);
11: vecDisGrap(vec(i): vec(i + 1)) = matriz unos(1, vec(i + 1) - vec(i) + 1) *
discV alGrap;
12: end for
13: Return: vecDis, vecRealvecDisGrap

siempre es estocástico: las salidas dependen de una serie de decisiones aleatorias. Dentro
de la programación evolutiva, es un operador único que se encarga de hacer la exploración
sobre el espacio de búsqueda.

El operador de mutación modifica una pequeña parte de los genes que componen al
individuo. Para programación evolutiva determinar el número de veces que se aplicará el
operador de mutación es parte del diseño a partir del problema dado. Nuestra propuesta
define como mı́nimo un cambio y como máximo cuatro cambios por individuo. La deter-
minación del número de cambios se realiza de manera aleatoria. Se aplica el procedimiento
de mutación el número de veces determinado por el valor aleatorio.

El procedimiento de mutación consiste en modificar un gen dentro del individuo.


Primero, se debe seleccionar un ı́ndice del individuo, el Algoritmo 4.12 muestra el proce-
dimiento de búsqueda para el ı́ndice.

Dependiendo de la posición, se utiliza el vector W ORD LEN (longitud de palabra


con valores enteros) o el vector ALP HABET (alfabeto con valores reales). Se calcula
un nuevo valor a partir del valor mı́nimo y máximo del vector correspondiente como es
mostrado en la Ecuación 4.1. El valor anterior de la posición elegida es reemplazado por
el nuevo valor calculado. Existe un caso especial, si el nuevo valor ya existe dentro del
individuo, esa posición se suprime, y el individuo disminuye una unidad su longitud. En la
componente correspondiente a la longitud de palabra es mucho más probable que suceda
que en la del alfabeto, debido a la diferencia existente entre los valores enteros y los va-

Discretización de series de tiempo 52 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.8 Selección del mejor individuo Capı́tulo 4

lores reales. El Algoritmo 4.11 muestra todo el proceso de mutación aplicado a todos los
individuos.

El rango de valores mı́nimo y máximo para el número de cambios dentro de la


función de mutación se determinó con base a lo siguiente. El valor mı́nimo es uno, porque
el individuo debe sufrir al menos un cambio para ser diferente a los individuos que ya
se encuentran dentro de la población. El valor máximo es cuatro, porque se busca dar
un mayor número de saltos dentro del espacio de búsqueda. Además, se busca tener ma-
yor probabilidad de modificar ambas componentes del individuo (longitud de palabra y
alfabeto).

4.8. Selección del mejor individuo


Una vez concluı́do el proceso de programación evolutiva, se debe determinar qué in-
dividuo es el mejor. Nuestra propuesta elige al mejor individuo a partir de los valores de
aptitud que tienen cada uno. Potencialmente, todas las soluciones que sobrevivieron hasta
el final del algoritmo deberı́an ser buenas. Para fines prácticos, la elección se aplica sobre
el mejor individuo.

Se define al mejor individuo al final del proceso para un determinado conjunto de


series de tiempo. La heurı́stica empleada sirve para guı́ar la búsqueda hacia un individuo
con buen desempeño. Para verificar la bondad de la solución se debe evaluar el esquema
de discretización final. En la siguiente sección se aborda el procedimiento de evaluación.

4.9. Evaluación del esquema de discretización


Una heurı́stica es una guı́a que no puede asegurar el encontrar la mejor solución
posible. Sin embargo, podrá encontrar una solución altamente competitiva en un tiempo
razonable. La manera de tener un marco de referencia para comparar la solución encon-
trada, se hace a través de un algoritmo de clasificación. Existe una gran variedad de
algoritmos de clasificación. KNN (K-nearest neighbors) fue elegido como clasificador para
la comparación de nuestros resultados. Este clasificador ha demostrado tener buenos re-
sultados de clasificación [1]. Se basa en la comparación de todos los valores del conjunto
de entrenamiento respecto al nuevo valor, con el valor de k se delimitan los k valores más
cercanos al nuevo valor que se quiere clasificar. Dependiendo de la mayorı́a de casos del
conjunto de k, es la asignación al nuevo valor. La distancia entre valores utilizada es la
sumatoria de las distancias euclideanas de todas las lecturas de una serie de tiempo.

KNN (K-nearest neighbors) tiene diversas caracterı́sticas positivas respecto a otros


clasificadores. Éste utiliza todo el conjunto de entrenamiento para realizar el proceso de
clasificación. Es un algoritmo que tiene un tiempo de respuesta más rápido para obtener la
etiqueta de clase de un nuevo valor, porque no construye un modelo a partir de los datos.
La desventaja radica en que cada vez que se desea clasificar una nueva instancia, tiene

Discretización de series de tiempo 53 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.10 Algoritmo Capı́tulo 4

que considerar todas las lecturas del conjunto de entrenamiento, haciendo el proceso más
tardado que otros clasificadores. La clasificación que se aplica es de manera local, evitando
construir un modelo general de todas las lecturas donde pueda decrementar la precisión.
La forma de definir los lı́mites es más precisa, es decir, permite una representación del mo-
delo más flexible en comparación con otros modelos como árboles de decisión o basados
en reglas. Esta flexibilidad es apropiada para series de tiempo, donde el comportamiento
de la mayorı́a de éstas es muy variable.

En el diseño experimental se utiliza el clasificador del vecino más cercano KNN


(K-nearest neighbors), con el propósito de tener una referencia objetiva de la eficiencia del
esquema de discretización. La variabilidad sobre el parámetro de k es justificable a partir
de [21]. Ahı́ se muestra una gráfica con el comportamiento del error de clasificación, y
se observa que con valores de k menores o iguales a 5, se tiene un buen comportamiento,
después se eleva el error. Como el comportamiento de la tasa de error incrementa conforme
los valores de k lo hacen, utilizará con un valor de k = 1.

Se tienen los datos continuos y a partir de la mejor solución (esquema de dis-


cretización), se discretizan los datos continuos. El algoritmo de clasificación es utilizado
para ambos conjuntos de datos (continuos y discretos). Este algoritmo arroja una tasa de
acierto (de cero hasta uno) por cada conjunto de datos. Se comparan ambos resultados y
se determina si el individuo mejoró o no la tasa de aciertos. Cabe mencionar que la repre-
sentación que el individuo ofrece es de menor cantidad y requiere de un menor número de
valores para explicar la información.

La ejecución del algoritmo con programación evolutiva se realizó con un conjunto de


veinte bases de datos diferentes. Una descripción más detallada se muestra en la siguiente
sección.

4.10. Algoritmo
A lo largo del capı́tulo se detallaron las funciones principales del algoritmo evolutivo
basado en programación evolutiva. En la primera sección se describe un esquema general
de los algoritmos evolutivos. Cada sección tiene las especificaciones de la programación
evolutiva. En el código 4.13, se muestra el algoritmo completo y su adaptación para con-
tender con los requerimientos propios de su aplicación sobre series de tiempo.

Discretización de series de tiempo 54 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.10 Algoritmo Capı́tulo 4

Algoritmo 4.11 funMutacion: Función de mutación


Entrada: iLim 6= ∅, lim 6= ∅, X 6= ∅ and Y 6= ∅; donde iLim es un vector que con-
tiene los ı́ndices de separación para todos los individuos, lim son todos los individuos,
X es el vector de valores únicos para la longitud de palabra y Y es el vector de valores
únicos para el alfabeto.
1: N M U T = 3;
2: LEN GT H = tamanio(lim, 2);
3: IN V ALID = [-inf X(1) X(longitud(X)) Y (1) Y (longitud(Y ))];
4: for h = 1 to tamanio(lim, 1) do
5: for iM ut = 1 to parte entera(funcion random() * N M U T ) + 1 do
6: iM = indexMutacion(lim(h, :), IN V ALID); indexMutacion se detalla en el
Algoritmo 4.12
7: if iM > iLim(1, h) then
8: nEle = ((funcion random(1, 1) .* 0.99) .* (Y (longitud(Y )) - Y (1))) + Y (1);
9: else
10: nEle = ((funcion random(1, 1) .* 0.99) .* (X(longitud(X)) - X(1))) + X(1);
11: end if
12: lim(h, iM ) = -inf;
13: if iM > iLim(h) then
14: iN ew = encuentra(nEle == lim(h, iLim(h) + 1: LEN GT H), 1);
15: else
16: iN ew = encuentra(nEle == lim(h, 1: iLim(h), 1);
17: end if
18: if esta vacio(iN ew) then
19: lim(h, iM ) = nEle;
20: else
21: f in = iLim(h);
22: if iM > iLim(h) then
23: f in = LEN GT H
24: end if
25: for i = iM to f in - 1 do
26: lim(h, i) = lim(h, i + 1);
27: end for
28: lim(h, f in) = -inf;
29: if iM < iLim(h) then
30: iLim(h) = iLim(h) - 1;
31: end if
32: end if
33: end for
34: end for
35: Return: iLim, lims

Discretización de series de tiempo 55 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.10 Algoritmo Capı́tulo 4

Algoritmo 4.12 indexMutacion: Devuelve un ı́ndice válido para mutar


Entrada: lim 6= ∅ and IN V ALID 6= ∅; donde lim es el individuo y IN V ALID son
los valores donde no se puede hacer un intercambio.
1: vec = matriz ceros(1, longitud(lim));
2: iV = 1;
3: for i = 1 to longitud(lim) do
4: if ∼alguno(lim(i) == IN V ALID) then
5: vec(iV ) = i;
6: iV = iV + 1;
7: end if
8: end for
9: vec = vec(1: iV - 1);
10: iM = vec(parte entera(funcion random() * 0.99 * longitud(vec)) + 1);
11: Return: iM

Discretización de series de tiempo 56 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
4.10 Algoritmo Capı́tulo 4

Algoritmo 4.13 EAlgorithm: Algoritmo evolutivo basado en programación evolutiva


Entrada: nGen > 0, nP ob > 0, clases 6= ∅, dBase 6= ∅ and W EIGHT S 6= ∅; donde
nGen determina el número de generaciones, nP ob determina el tamaño de la población,
clases son las etiquetas de clase para cada lectura de la base de datos, dBase son las
lecturas de las series de tiempo (valores continuos) y W EIGHT S son los pesos para
la función de utilidad.
1: X = 1: tamanio(dBase, 2);
2: Y = valores unicos(dBase);
3: [iLim lim] = Poblacion(X, Y , nP ob); Poblacion se detalla en el Algoritmo 4.2
4: for g = 1 to nGen do
5: if g > 1 then
6: f in = parte entera(longitud(iLim) / 2);
7: iLim = iLim(1: f in);
8: lim = lim(1: f in, :);
9: [iLim1, lim1] = funMutacion(iLim, lim, X, Y ); funMutacion se detalla en el
Algoritmo 4.11
10: ini = longitud(iLim) + 1;
11: f in = ini + longitud(iLim1) - 1;
12: sortV 1 = evaluePopulation(iLim1, lim1, clases, dBase, W EIGHT S); eval-
uePopulation se detalla en el Algoritmo 4.5
13: sortV (2: tamanio(sortV , 1), ini: f in) = sortV 1(2, tamanio(sortV 1, 1), :);
14: sortV (1, :) = 1: f in;
15: iLim(ini: f in) = iLim1;
16: lim(ini: f in, :) = lim1;
17: else
18: sortV = evaluePopulation(iLim, lim, clases, dBase, W EIGHT S); evalue-
Population se detalla en el Algoritmo 4.5
19: end if
20: auxV = sortV ;
21: auxV (2: 4, :) = [ ];
22: sorting = capasNSGA2(auxV 0 ); capasNSGA2 es una función que ordena del
individuo más apto al menos apto.
23: ind = sorting(:, 2);
24: iLim = iLim(ind);
25: lim = lim(ind, :);
26: sortV = sortV (:, ind);
27: end for
28: Return: iLim, lim, tiempo

Discretización de series de tiempo 57 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
Capı́tulo 5
Resultados y discusión

En los capı́tulos anteriores se describió el proceso de discretización sobre series de


tiempo, ası́ como nuestra propuesta de solución para mejores esquemas de discretización.
En este capı́tulo, se prueba la eficiencia del algoritmo comparándolo contra otras pro-
puestas del estado del arte. Las bases de datos que se utilizaron para las pruebas fueron
tomadas del repositorio de series de tiempo UCR de Eamonn Keogh [25]. A lo largo del
capı́tulo se mostrará una descripción de las bases de datos utilizadas, ciertas caracterı́sti-
cas de las mismas y finalmente los resultados obtenidos. Posteriormente, se muestra un
análisis de resultados y la discusión sobre los que fueron obtenidos.

5.1. Series de tiempo


La evaluación del esquema de discretización (descrita en el capı́tulo anterior) y el
algoritmo, requieren de conjuntos de datos. Estos conjuntos de datos se componen de dos
partes principales: conjunto de entrenamiento (trainning set) y conjunto de prueba (test
set). El algoritmo de programación evolutiva se aplica sobre el conjunto de entrenamiento.
El resultado del algoritmo es el mejor individuo (esquema de discretización). Se aplica el
esquema de discretización al conjunto de entrenamiento y al conjunto de prueba. Se utiliza
el clasificador de K-nn (K- nearest neighbors). A continuación se muestran en la Tabla 5.1
las bases de datos utilizadas.

En dicha Tabla 5.1 se incluye información sobre las series de tiempo: número de
clases, tamaño del conjunto de entrenamiento, tamaño del conjunto de prueba y longitud
de las series de tiempo. A lo largo del capı́tulo se discutirán los resultados obtenidos y se
hará una comparación con otros algoritmos.

Por cada base de datos se muestra una gráfica que contiene tres representaciones
por todas las lecturas pertenecientes a una misma clase: las primeras dos tienen el mismo
grosor, una tiene lı́nea con guiones y representa la media de las lecturas; la segunda tiene
lı́nea con puntos y pequeños cı́rculos, y representa la mediana de las lecturas; y finalmente
la última tiene un grosor mayor a las dos anteriores, tiene lı́nea continua y representa la
media de las dos representaciones anteriores. El objetivo de mostrar estas gráficas es dar

58
5.1 Series de tiempo Capı́tulo 5

Número  Tamaño  Tamaño  Longitud 


Conjunto 
de  conjunto de  conjunto  serie de 
de datos
clases entrenamiento de prueba tiempo
CBF 3 30 900 128
Face Four 4 24 88 350
Coffee 2 28 28 286
Gun_Point 2 50 150 150
Beef 5 30 30 470
ECG200 2 100 100 96
Olive Oil 4 30 30 570
Lighting7 7 70 73 319
Trace 4 100 100 275
Lighting2 2 60 61 637
Adiac 37 390 391 176
Synthetic 
6 300 300 60
Control
OSU Leaf 6 200 242 427
Fish 7 175 175 463
50words 50 450 455 270
Yoga 2 300 3000 426
Swedish Leaf 15 500 625 128
FaceAll 14 560 1690 131
Wafer 2 1000 6164 152
Two Pattern 4 1000 4000 128

Tabla 5.1: Conjuntos de datos utilizados para evaluar el desempeño del algoritmo

un panorama del comportamiento de las series de tiempo por cada conjunto de datos.
Además, es una forma de visualizar el tipo de series de tiempo para poder determinar por
qué en algunos casos se tiene mejor o peor desempeño.

Las series de tiempo y una breve descripción se listan a continuación:


CBF.
Las series de tiempo de la base de datos “CBF” tienen una longitud de 128 datos,
consta de tres clases, un conjunto de entrenamiento de 30 lecturas y un conjunto
de prueba de 900 lecturas. Como se puede ver en la Figura 5.1, las series de tiem-
po muestran un comportamiento diferente para cada clase. Se pueden determinar
segmentos de la serie de tiempo donde son completamente diferentes, haciendo más
simple el proceso de entrenamiento para nuestro algoritmo. El conjunto de prueba
maneja el mismo patrón que el conjunto de entrenamiento. Sin embargo el conjunto
de prueba tiene las lecturas menos ruidosas que el de entrenamiento.
Face four.
Las series de tiempo de la base de datos “Face four” tienen una longitud de 350
datos, consta de cuatro clases, un conjunto de entrenamiento de 24 lecturas y un

Discretización de series de tiempo 59 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.1 Series de tiempo Capı́tulo 5

(a) Train set (b) Test set

Figura 5.1: Serie de tiempo CBF

(a) Train set (b) Test set

Figura 5.2: Serie de tiempo Face four

conjunto de prueba de 88 lecturas. Los conjuntos de entrenamiento y prueba de


la base de datos se comportan de manera parecida en algunos segmentos (véase
Figura 5.2), aunque las amplitudes que tienen las señales varı́an. En la parte final
de las series de tiempo, las amplitudes de las señales de las clases en color violeta y
verde, cambian de forma drásticamente. Con respecto a la clase en color violeta, el
comportamiento de la señal es prácticamente el mismo, únicamente que amplı́a las
señales en un incremento considerable. Para hacer la agrupación por clase, se tienen
varios segmentos donde es visible la distinción entre todas las clases.

Coffee.
Las series de tiempo de la base de datos “Coffee” tienen una longitud de 286 datos,
consta de dos clases, un conjunto tanto de entrenamiento como de prueba de 28 lec-
turas. Este conjunto de datos tiene un comportamiento prácticamente idéntico entre
la parte de entrenamiento y la de prueba (véase Figura 5.3). Las diferencias que en

Discretización de series de tiempo 60 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.1 Series de tiempo Capı́tulo 5

(a) Train set (b) Test set

Figura 5.3: Serie de tiempo Coffee

estas series de tiempo se encuentran son mı́nimas. Además, los valores que toman
todas las series de tiempo son positivos. La diferencia existente entre las representa-
ciones graficadas hace visible la separación de clases correctamente. Prácticamente,
la señal es la misma para ambas clases, sólo que una está por arriba de la otra.
Gun Point.

(a) Train set (b) Test set

Figura 5.4: Serie de tiempo Gun Point

Las series de tiempo de la base de datos “Gun point” tienen una longitud de 150
datos, consta de dos clases, un conjunto de entrenamiento de 50 lecturas y un con-
junto de prueba de 150 lecturas. Los conjuntos de entrenamiento y prueba tienen
similitudes en la forma de las señales, aunque los momentos donde la curva tiene di-
ferentes comportamientos, no son los mismos (véase Figura 5.4). Esos momentos son
las secciones donde se puede diferenciar de mejor manera cada clase, sin embargo son
segmentos muy pequeños, pero suficientes para determinar el grado de pertenencia
a cada clase.

Discretización de series de tiempo 61 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.1 Series de tiempo Capı́tulo 5

Beef.

(a) Train set (b) Test set

Figura 5.5: Serie de tiempo Beef

Las series de tiempo de la base de datos “Beef” tienen una longitud de 470 datos,
consta de cinco clases, un conjunto tanto de entrenamiento como de prueba de 30
lecturas. La base de datos de entrenamiento y de prueba son prácticamente idénticas,
las diferencias son mı́nimas y se puede decir que los conjuntos son similares (véase
Figura 5.5). Las diferencias entre clases son notorias, pero esto no sucede en todos
los segmentos. Cada clase tiene momentos donde la separación por clases es visible
en la representación de las señales.

ECG200.

(a) Train set (b) Test set

Figura 5.6: Serie de tiempo ECG200

Las series de tiempo de la base de datos “ECG200” tienen una longitud de 96 datos,
consta de dos clases, un conjunto tanto de entrenamiento como de prueba de 100
lecturas. Los conjuntos que representan a cada clase son divisibles (véase Figura 5.6).

Discretización de series de tiempo 62 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.1 Series de tiempo Capı́tulo 5

En gran parte de la serie de tiempo, los valores que tiene cada clase son diferentes.
La diferencia existente entre los conjuntos de entrenamiento y de prueba es mı́nima
(cambia un poco el inicio de la serie de tiempo en color azul).

Olive Oil.

(a) Train set (b) Test set

Figura 5.7: Serie de tiempo Olive Oil

Las series de tiempo de la base de datos “Olive oil” tienen una longitud de 570
datos, consta de cuatro clases, un conjunto tanto de entrenamiento como de prueba
de 30 lecturas. Los conjuntos de entrenamiento y prueba son muy similares, si existen
diferencias, no son percibibles (véase Figura 5.7). Cambia un poco el comportamiento
aproximadamente sobre los valores cercanos al tiempo 100. La parte relevante de este
conjunto de datos es el comportamiento que tienen las series de tiempo. Se tienen
cuatro clases, donde dos de ellas tienden hacia arriba de la media y las otras dos
tienden hacia abajo de la media, aunque este comportamiento no repercute en la
clasificación de las series de tiempo.

Lighting7.
Las series de tiempo de la base de datos “Lighting7” tienen una longitud de 319 datos,
consta de siete clases, un conjunto de entrenamiento de 70 lecturas y un conjunto
de prueba de 73 lecturas. La base de datos es muy ruidosa, tanto en el conjunto de
entrenamiento como en el conjunto de prueba. Difı́cilmente se puede especificar los
cambios entre un conjunto y otro, pero se puede visualizar que el comportamiento
de ambos conjuntos es parecido (véase Figura 5.8).

Trace.
Las series de tiempo de la base de datos “Trace” tienen una longitud de 275 datos,
consta de cuatro clases, un conjunto tanto de entrenamiento como de prueba de
100 lecturas. Las series de tiempo que contiene este conjunto de datos tienen una
división en la gráfica. Una parte conformada por dos clases tiene un comportamiento
cercano a una curva Gaussiana inversa, y la otra parte conformada también por dos

Discretización de series de tiempo 63 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.1 Series de tiempo Capı́tulo 5

(a) Train set (b) Test set

Figura 5.8: Serie de tiempo Lighting7

(a) Train set (b) Test set

Figura 5.9: Serie de tiempo Trace

clases, tienen un comportamiento que inicia casi constante (poco ruidoso), se da un


cambio exponencial y finalmente cierra con valores casi constantes (poco ruidosos).
Las series de tiempo correspondientes al comportamiento Gaussiano invertido son
menos separables que las otras dos, sin embargo existen pequeños segmentos donde
se pueden separar correctamente (véase Figura 5.9).

Lighting2.
Las series de tiempo de la base de datos “Lighting2” tienen una longitud de 637 datos,
consta de dos clases, un conjunto de entrenamiento de 60 lecturas y un conjunto
de prueba de 61 lecturas. Los conjuntos de entrenamiento y prueba se comportan
diferente, aunque tienen cierta tendencia a una forma en común. En el conjunto de
entrenamiento sólo tienen un cruce entre las series de tiempo, en cambio para el
conjunto de prueba se tienen tres cruces entre las series de tiempo (véase Figura
5.10). Las diferencias que se dan entre clases son suficientes para separar cada serie

Discretización de series de tiempo 64 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.1 Series de tiempo Capı́tulo 5

(a) Train set (b) Test set

Figura 5.10: Serie de tiempo Lighting2

de tiempo. En el conjunto de entrenamiento son más notorios que en el conjunto de


prueba.
Adiac.

(a) Train set (b) Test set

Figura 5.11: Serie de tiempo Adiac

Las series de tiempo de la base de datos “Adiac” tienen una longitud de 176 datos,
consta de treinta y siete clases, un conjunto de entrenamiento de 390 lecturas y
un conjunto de prueba de 391 lecturas. Este conjunto de datos comparte la misma
forma para la mayorı́a de las clases existentes. El comportamiento que denotan todas
las series de tiempo es similar a una función coseno y por cada clase sólo varia la
amplitud de la función (véase Figura 5.11). Es un conjunto de datos que dificulta la
clasificación. Además, debido al gran número de clases, dificulta más este proceso.
En ambos conjuntos tanto de entrenamiento como de prueba se manifiesta el mismo
comportamiento, aunque de igual forma cambian las amplitudes existentes entre los
dos conjuntos de datos.

Discretización de series de tiempo 65 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.1 Series de tiempo Capı́tulo 5

Synthetic control.

(a) Train set (b) Test set

Figura 5.12: Serie de tiempo Synthetic control

Las series de tiempo de la base de datos “Synthetic control” tienen una longitud de
60 datos, consta de seis clases, un conjunto tanto de entrenamiento como de prueba
de 300 lecturas. Este conjunto de datos tiene una separación adecuada por cada
clase. El comportamiento que se da en los conjuntos de entrenamiento y prueba
es muy parecido, los detalles que cambian son mı́nimos (véase Figura 5.12). Las
señales muestran poco ruido, porque el valor de la media de ambas medidas (media
y mediana) es prácticamente el mismo que los valores de la media y la mediana.

OSU Leaf.

(a) Train set (b) Test set

Figura 5.13: Serie de tiempo OSU Leaf

Las series de tiempo de la base de datos “OSU leaf” tienen una longitud de 427 datos,
consta de seis clases, un conjunto de entrenamiento de 200 lecturas y un conjunto de
prueba de 242 lecturas. El conjunto de entrenamiento es muy ruidoso con respecto al

Discretización de series de tiempo 66 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.1 Series de tiempo Capı́tulo 5

conjunto de prueba. Las series de tiempo no se parecen mucho unas con otras (véase
Figura 5.13). Tienen cierto grado de parentesco, pero es muy difı́cil definir dichas
similitudes. Este comportamiento dificulta la correcta clasificación de los datos. La
separación entre clases es poco notable en el conjunto de entrenamiento, ası́ como
también lo es en el de prueba.

Fish.

(a) Train set (b) Test set

Figura 5.14: Serie de tiempo Fish

Las series de tiempo de la base de datos “Fish” tienen una longitud de 463 datos,
consta de siete clases, un conjunto tanto de entrenamiento como de prueba de 175
lecturas. Para este conjunto de datos resulta muy parecido el comportamiento que
tiene la parte de entrenamiento y la parte de prueba (véase Figura 5.14). Los seg-
mentos donde se separan mejor las clases son muy cortos, aunque debido al pequeño
número de clases, se tiene la posibilidad de una buena clasificación, caso contrario
al caso de la serie de tiempo “Adiac” (véase Figura 5.11).

50 words.
Las series de tiempo de la base de datos “50 words” tienen una longitud de 270 datos,
consta de cincuenta clases, un conjunto de entrenamiento de 450 lecturas y un con-
junto de prueba de 455 lecturas. Es el conjunto de datos que tiene el mayor número
de clases. La mayorı́a de las series de tiempo que conforman la base de datos, están
dentro del rango de -0.25 a 0.5. Pocas clases se encuentran fuera de ese rango. Éstas
al ser más visibles, nos ayudan para considerar cierta similitud entre la parte de en-
trenamiento y de prueba (véase Figura 5.15). Se aprecia cierta semejanza en algunas
de éstas, pero al concentrarse la mayorı́a en el rango anteriormente mencionado y
aparentar ser semejantes, se puede concluir que tiene un comportamiento parecido.
La clasificación para estas series de tiempo no es muy buena dada la concurrencia en
una misma zona, sin embargo tienen mayor contraste las series de tiempo por clase.

Yoga.

Discretización de series de tiempo 67 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.1 Series de tiempo Capı́tulo 5

(a) Train set (b) Test set

Figura 5.15: Serie de tiempo 50 words

(a) Train set (b) Test set

Figura 5.16: Serie de tiempo Yoga

Las series de tiempo de la base de datos “Yoga” tienen una longitud de 426 datos,
consta de dos clases, un conjunto de entrenamiento de 300 lecturas y un conjunto de
prueba de 3000 lecturas. En este conjunto de datos, las señales por clase son prácti-
camente idénticas, las diferencias existentes son mı́nimas (véase Figura 5.16). Este
tipo de representación dificulta la calidad de la clasificación. Además, como tiene sólo
dos clases, existe gran probabilidad de darse un error en el proceso de clasificación.
En relación a los conjuntos de entrenamiento y prueba, las señales se comportan
de manera muy semejante. El conjunto de entrenamiento tiene mayor ruido que el
conjunto de prueba, las señales del conjunto de prueba son más suavizadas que las
otras.

Swedish Leaf.
Las series de tiempo de la base de datos “Swedish Leaf” tienen una longitud de 128
datos, consta de quince clases, un conjunto de entrenamiento de 500 lecturas y un

Discretización de series de tiempo 68 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.1 Series de tiempo Capı́tulo 5

(a) Train set (b) Test set

Figura 5.17: Serie de tiempo Swedish Leaf

conjunto de prueba de 625 lecturas. Este conjunto de datos tiene diferencias mı́nimas
entre la parte de entrenamiento y la de prueba. El comportamiento que denotan
estos conjuntos se asemeja a una campana Gaussiana con las orillas levantadas al
mismo nivel de la campana (véase Figura 5.17). Existe una gran aglomeración de
las señales por clase, dificultando el proceso de agrupación. Además, el número de
clases existentes es alto. En las partes más bajas de las señales se observan ciertos
segmentos donde la separación entre clases es más clara.
Face all.

(a) Train set (b) Test set

Figura 5.18: Serie de tiempo Face all

Las series de tiempo de la base de datos “Face all” tienen una longitud de 131 datos,
consta de catorce clases, un conjunto de entrenamiento de 560 lecturas y un conjunto
de prueba de 1690 lecturas. Este conjunto de datos lo determinamos como la serie
de tiempo más compleja de todas. Es un conjunto muy ruidoso y el proceso de
separación entre clases se intuye complicado. Además, la similitud entre las partes

Discretización de series de tiempo 69 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.1 Series de tiempo Capı́tulo 5

de entrenamiento y prueba es muy baja (véase Figura 5.18). No se puede definir


algún patrón, sólo se visualiza señales parecidas a las funciones seno y coseno, con
gran variabilidad en amplitudes y periodos, por clase y por conjunto de datos. Se
tiene una baja espectativa de obtener buenos resultados en esta base de datos.
Wafer.

(a) Train set (b) Test set

Figura 5.19: Serie de tiempo Wafer

Las series de tiempo de la base de datos “Wafer” tienen una longitud de 152 datos,
consta de dos clases, un conjunto de entrenamiento de 1000 lecturas y un conjunto de
prueba de 6164 lecturas. Para este conjunto de datos se visualiza un comportamiento
semejante para ambas partes (entrenamiento y prueba). La separación entre clases
es bastante visible, y se deduce que es la base de datos con mejor comportamiento
(véase Figura 5.19). El error de clasificación que esta base de datos pudiera tener es
mı́nimo.
Two pattern.
Las series de tiempo de la base de datos “Two pattern” tienen una longitud de 128
datos, consta de cuatro clases, un conjunto de entrenamiento de 1000 lecturas y un
conjunto de prueba de 4000 lecturas. Dentro del conjunto de datos de entrenamien-
to, la serie de tiempo se comporta más ruidosa (con más cambios violentos). En
cambio la parte de prueba tiene los cambios más suavizados. Básicamente, esa es la
diferencia más evidente entre ambos conjuntos (véase Figura 5.20). También se tiene
una variación en las amplitudes, pero es pequeña. Se encuentran segmentos donde se
pueden agrupar en dos grupos. Al principio de la señal se agrupan la clase A y B y en
otro grupo C y D. Al final se agrupan A y C y en otro grupo B y D. Desde el tiempo
80 hasta el tiempo 90 se separa perfectamente la clase D. En general el conjunto de
datos no es separable fácilmente, pero por las caracterı́sticas mencionadas se esperan
buenos resultados.
Se revisaron las series de tiempo utilizadas para las pruebas de nuestra propuesta
con el fin de adquirir caracterı́sticas representativas para contrastarlas con los resultados

Discretización de series de tiempo 70 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.2 Caracterı́sticas de las series de tiempo Capı́tulo 5

(a) Train set (b) Test set

Figura 5.20: Serie de tiempo Two pattern

obtenidos. Las caracterı́sticas expuestas en esta sección se explicarán con más detalle en
el siguiente apartado.

5.2. Caracterı́sticas de las series de tiempo


En la revisión anterior sobre los conjuntos de datos se encontraron caracterı́sti-
cas representativas que nos servirán para determinar las condiciones necesarias donde
nuestra propuesta se comporta de manera eficiente. Las gráficas muestran diferentes com-
portamientos, pero las más visibles fueron utilizadas como caracterı́sticas representativas:
división entre clases, ruido en series de tiempo, y representación similar entre conjunto de
entrenamiento y conjunto de prueba. Cabe aclarar que las caracterı́sticas agregadas a la
tabla fueron valores a partir de una estimación visual con base a las gráficas de cada base
de datos. Las gráficas utilizan los valores de la media, de la mediana y del promedio de
éstas sobre todas las lecturas por clase. Para la tabla de caracterı́sticas, se utilizan cinco
valores enteros desde uno hasta cinco, donde el valor uno equivale a muy bajo, el valor
dos bajo, el valor tres medio, el valor cuatro alto y el valor cinco muy alto.

1. La división entre clases es una caracterı́stica importante que determina la facilidad


para separar las series de tiempo por clase. Basándose en las gráficas de entrenamien-
to y de prueba, y a través de una apreciación visual, se evalua la separación entre
clases. Para este caso se asume no utilizar valores continuos, donde el valor uno
equivale a un conjunto que prácticamente no se puede dividir por clase, y el valor
cinco a un conjunto que es separable facilmente.

2. El ruido en series de tiempo es una caracterı́stica que se puede observar a partir de


los tres valores graficados por clase. El valor de la media es un valor sensible al ruido,
en cambio el de la mediana lo es en menor grado, por lo tanto el promedio de éstas

Discretización de series de tiempo 71 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.2 Caracterı́sticas de las series de tiempo Capı́tulo 5

delimita un punto que puede estar o no lejos de las otras medidas. Si están muy
separadas, significa que las señales tienen mucho ruido, caso contrario existe poco
ruido. Ésto respecto a los valores dentro del mismo intervalo de tiempo. También se
considera como ruido a los cambios de valor drásticos a lo largo del tiempo. El valor
uno equivale a un nivel muy bajo de ruido, y el valor cinco a un nivel muy alto de
ruido.

3. Las gráficas nos sirven de apoyo para decidir visualmente el grado de similitud entre
el conjunto de entrenamiento y el de prueba. Dificilmente los conjuntos de datos
tienen comportamientos idénticos, pero en algunos casos son muy parecidos. Esta
caracterı́stica es importante porque el conjunto de entrenamiento sirve para generar
un modelo que discretiza mejor al conjunto de datos. Si el conjunto de prueba varia
mucho con respecto al de entrenamiento, el modelo construı́do para el conjunto de
entrenamiento puede resultar ineficiente. El valor uno describe una similitud muy
baja, y el valor cinco una similitud muy alta.

En la tabla 5.2 se muestran los veinte conjuntos de datos con las caracterı́sticas
mencionadas anteriormente.

Tamaño  1) 2) Ruido  3) Similitud 


Número  Tamaño  Longitud 
Conjunto  conjunto  División  en series  entre conjuntos 
de  conjunto de  serie de 
de datos de  entre  de  (entrenamiento 
clases entrenamiento tiempo
prueba clases tiempo y prueba)
CBF (1º) 3 30 900 128 4 2 4
FaceFour (1º) 4 24 88 350 5 1 4
Coffee (t1º) 2 28 28 286 4 1 5
GunPoint (2ºr) 2 50 150 150 4 1 3
Beef (t1º) 5 30 30 470 4 1 5
ECG200 (t1º) 2 100 100 96 5 2 5
OliveOil (1º) 4 30 30 570 4 4 5
Lighting7 (1º) 7 70 73 319 3 4 3
Trace (1º) 4 100 100 275 4 2 3
Lighting2 (t1º) 2 60 61 637 4 3 3
Adiac (3º) 37 390 391 176 1 4 2
Synthetic Control 
6 300 300 60 5 1 5
(1º)
OSULeaf (3º) 6 200 242 427 3 3 1
Fish (2ºr) 7 175 175 463 3 1 5
50words (3º) 50 450 455 270 1 3 3
Yoga (3º) 2 300 3000 426 2 2 5
SwedishLeaf (2ºr) 15 500 625 128 2 2 4
FaceAll (3º) 14 560 1690 131 1 2 1
Wafer (t1º) 2 1000 6164 152 5 2 5
TwoPattern (2ºr) 4 1000 4000 128 3 2 4

Tabla 5.2: Conjuntos de datos utilizados con caracterı́sticas representativas

Discretización de series de tiempo 72 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.3 Resultados obtenidos Capı́tulo 5

Con el análisis realizado sobre las series de tiempo se buscará si existe algo sig-
nificativo al comparar con los resultados obtenidos por el algoritmo. De las caracterı́sti-
cas extraı́das, se esperan buenos resultados en los conjuntos de datos que tengan buena
división entre clases, contemplando valores mayores a 3; respecto al ruı́do en series de
tiempo, aquellas que tengan valores pequeños, o sea valores menores a 3; y por último
considerando la similitud entre las partes de entrenamiento y de prueba, valores altos, en
un rango con valores mayores a 3. Si se tiene un poco de flexibilidad podrı́a considerarse un
valor más a los lı́mites, pero se tendrı́a más holgura y por lo tanto más error en lo predicho.

Tomando como base lo anterior podemos determinar a los siguientes conjuntos de


datos tentativos a obtener buenos resultados: CBF, FaceFour, Coffee, Beef, ECG200, Syn-
thetic Control, Wafer. Si consideramos la holgura mencionada, los siguientes conjuntos
también serı́a tentativos a ofrecer buenos resultados: GunPoint, Trace, Lighting2, Fish y
TwoPattern.

En el apartado siguiente, se despliegan los resultados obtenidos. Se elaboraron nueve


resultados diferentes a partir de las combinaciones de tres valores diferentes para los dos
parámetros necesarios (número de generaciones y tamaño de la población).

5.3. Resultados obtenidos


En este apartado se presentarán los resultados obtenidos, ası́ como una tabla y
gráfica comparativa donde se pueda visualizar que parámetros resultaron más apropiados
para el algoritmo. El proceso para obtener los resultados, se estipuló más amplio con el
fin de adquirir un marco de referencia respecto a los parámetros del algoritmo. El objetivo
es verificar qué parámetros (número de generaciones y tamaño de la población) arrojan
mejores resultados o en su defecto, en que conjuntos de datos sucede ésto. Se realizaron
combinaciones para los dos parámetros necesarios con tres valores diferentes cada uno.

Nuestro algoritmo utiliza una función de utilidad multiobjetivo, la cual debe tener
valores para los tres pesos requeridos (α, β y γ) que suman el valor de 1 debido a que los
tres parámetros están normalizados y por tanto la suma lo debe estar también. Estos pesos
se definieron partiendo del objetivo de nuestra aplicación donde se busca tener el mejor
nivel de clasificación en los conjuntos de datos. Inicialmente se habı́a ponderado al primer
parámetro (α) con un valor de 1.00 y los demás con 0.00, sin embargo se originan mu-
chos empates entre los individuos y se descuidan los otros dós parámetros. Por lo tanto, se
modificó el valor del primer peso a un valor de 0.9009. Posteriormente se le dió prioridad al
parámetro de reducción de número de strings con un valor de 0.0900. Finalmente, el tercer
y último parámetro referente al nivel de reducción de la representación del individuo, se
le asignó un peso de 0.009. Los pesos anteriores se calcularon normalizando los siguientes
valores: 0.1 para el primer parámetro, 0.01 para el segundo y 0.001 para el tercero.

Como se mencionó en secciones anteriores, la elección de los parámetros fue hecha


a partir de pruebas sobre cinco conjuntos de datos, con el fin de tener un panorama del

Discretización de series de tiempo 73 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.3 Resultados obtenidos Capı́tulo 5

comportamiento del algoritmo. Los valores que se comportaron mejor fueron 50 para el
número de generaciones y 250 para el tamaño de la población. Asumir que esos son los
parámetros idóneos con pruebas en sólo cinco conjuntos de datos y con muchos valores
para los dos parámetros, no serı́a una forma adecuada de explorar el espacio de búsqueda
para ambos parámetros. Partir de los valores que mejores resultados nos dieron sobre las
pruebas, serı́a un buen camino para la exploración. Esos valores obtenidos fueron tomados
como punto central del espacio a explorar, y se consideraron valores menores y mayores
para ambos parámetros. Por lo tanto se decidió utilizar para las pruebas 25, 50 (el valor
central) y 75 para el número de generaciones, y 200, 250 (el valor central) y 300 para el
tamaño de la población. Al combinar los 3 valores de ambos parámetros se forma una
matriz de 3 x 3 que será nuestro espacio de soluciones a explorar para los parámetros del
algoritmo evolutivo.

Las gráficas de los resultados se muestran desde la Figura 5.21 hasta la Figura
5.29. Lo que se muestra en cada gráfica es el resultado de la mejor corrida de un to-
tal de 5. Los parámetros que utilizan los algoritmos con las etiquetas SAX(PEVOMO) y
SAX(GENEBLA) son los que se obtienen mediante los respectivos algoritmos (PEVOMO
y GENEBLA) necesarios para SAX (longitud de palabra y tamaño del alfabeto).

Figura 5.21: Resultados con 25 generaciones y una población de 200 individuos

Discretización de series de tiempo 74 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.3 Resultados obtenidos Capı́tulo 5

Figura 5.22: Resultados con 25 generaciones y una población de 250 individuos

Figura 5.23: Resultados con 25 generaciones y una población de 300 individuos

Discretización de series de tiempo 75 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.3 Resultados obtenidos Capı́tulo 5

Figura 5.24: Resultados con 50 generaciones y una población de 200 individuos

Figura 5.25: Resultados con 50 generaciones y una población de 250 individuos

Discretización de series de tiempo 76 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.3 Resultados obtenidos Capı́tulo 5

Figura 5.26: Resultados con 50 generaciones y una población de 300 individuos

Figura 5.27: Resultados con 75 generaciones y una población de 200 individuos

Discretización de series de tiempo 77 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.3 Resultados obtenidos Capı́tulo 5

Figura 5.28: Resultados con 75 generaciones y una población de 250 individuos

Figura 5.29: Resultados con 75 generaciones y una población de 300 individuos

A continuación se muestran las gráficas de los resultados obtenidos para los nueve

Discretización de series de tiempo 78 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.4 Análisis de resultados Capı́tulo 5

casos posibles. Los valores que se muestran en las gráficas son las tasas de error a partir del
clasificador K-NN (K-nearest neighbors). Se menciona que los mejores valores para k están
en 1, 3, y 5 [6]. Hacer las tres pruebas con las nueve combinaciones serı́a mucha información
para analizar además que los valores de la propuesta GENEBLA fueron brindados por el
autor sin la posibilidad de ejecutar su algoritmo para los demás valores de k. Por lo tanto
se usará k = 1 dado que las gráficas muestran un menor grado de error. Posteriormente,
con los mejores parámetros del algoritmo evolutivo (número de generaciones y tamaño de
la población) se revisarán los resultados para k = 3 y k = 5 (véase de Figura 5.30 hasta
la Figura 5.32).

La Tabla 5.3 muestra por cada caso de combinación de parámetros y por cada con-
junto de datos el desempeño que tuvo el algoritmo a partir de las gráficas. Se compite contra
los datos originales, la propuesta de GENEBLA y dos más utilizando SAX. Debido que
SAX requiere parámetros de longitud de palabra y tamaño del alfabeto, se utilizaron los
calculados por nuestra propuesta SAX(PEVOMO) y los de GENEBLA SAX(GENEBLA).
Existen seis casos posibles de PEVOMO para la tabla: cuando gana, cuando empata (es
decir, no pierde con ninguno pero empata con el mejor), cuando pierde contra una, dos,
tres o todas las propuestas. A partir de los valores que se obtienen, se saca la sumatoria por
cada caso de parámetros. Se remarca la columna con los parámetros que mejor desempeño
tuvieron al tener una menor sumatoria de casos perdidos.

Los resultados tienen diferentes comportamientos dependiendo los parámetros uti-


lizados. En el siguiente apartado se analizará cuales son los mejores parámetros para todos
los conjuntos de datos, y se buscará determinar la razón de ésto. Puede darse el caso de
comportarse mejor sólo en ciertos conjuntos de datos y no en todos.

5.4. Análisis de resultados


El objetivo de esta sección es determinar cuáles son los parámetros que mejores
resultados proporcionan y tener una referencia de por qué sucede ésto. En esta sección se
realizará un análisis respecto a todas las pruebas, y a partir de los mejores parámetros
encontrados con k = 1, se analizarán los demás valores sugeridos para k mediante el clasi-
ficador K-nn.

En la Tabla 5.4 se presentan los resultados para todos los conjuntos de datos y para
todas las combinaciones de parámetros (25, 50 y 75 generaciones y 200, 250 y 300 indivi-
duos dentro de la población) que fueron mostrados en las gráficas de la Figura 5.21 hasta
la Figura 5.29). Los valores que se muestran son las tasas de error mediante el clasificador
K-nn con k = 1 (valores normalizados entre 0 y 1).

A partir de los resultados obtenidos, se aprecia claramente que los parámetros con
mejor desempeño son: 50 para número de generaciones y 250 para tamaño de población.
Sumaron un total de 7 conjuntos de datos donde obtuvieron mejores resultados en com-
paración con las otras combinaciones de parámetros. Además, se puede remarcar que res-

Discretización de series de tiempo 79 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.4 Análisis de resultados Capı́tulo 5

Conjunto  25Gen  25Gen  25Gen  50Gen  50Gen  50Gen  75Gen  75Gen  75Gen 
de datos 200Pob 250Pob 300Pob 200Pob 250Pob 300Pob 200Pob 250Pob 300Pob
CBF Gana Gana Pierde 3 Gana Gana Pierde 1 Gana Gana Gana
FaceFour Gana Gana Gana Gana Gana Gana Gana Gana Gana
Coffee Gana Pierde 1 Pierde 1 Gana Empata Gana Gana Pierde 2 Gana
GunPoint Pierde 1 Pierde 1 Pierde 1 Pierde 1 Pierde 1 Pierde 1 Pierde 1 Pierde 1 Pierde 1
Beef Pierde 4 Empata Pierde 3 Pierde 3 Pierde 2 Pierde 2 Pierde 1 Pierde 3 Pierde 1
ECG200 Pierde 2 Pierde 2 Pierde 2 Empata Empata Pierde 2 Pierde 2 Pierde 1 Pierde 2
OliveOil Pierde 1 Pierde 1 Pierde 1 Pierde 1 Gana Pierde 1 Pierde 1 Pierde 1 Pierde 1
Lighting7 Gana Pierde 1 Gana Pierde 2 Pierde 1 Pierde 1 Pierde 2 Pierde 1 Pierde 2
Trace Gana Gana Gana Gana Gana Gana Gana Gana Gana
Lighting2 Pierde 2 Pierde 2 Pierde 1 Pierde 3 Pierde 1 Pierde 1 Pierde 1 Pierde 1 Pierde 4
Adiac Pierde 1 Pierde 3 Pierde 3 Pierde 2 Pierde 2 Pierde 3 Pierde 2 Pierde 3 Pierde 2
Synthetic 
Pierde 1 Pierde 2 Pierde 3 Pierde 1 Pierde 1 Empata Pierde 1 Pierde 4 Pierde 1
Control 
OSULeaf Pierde 4 Pierde 2 Pierde 4 Pierde 4 Pierde 4 Pierde 1 Pierde 4 Pierde 3 Pierde 4
Fish Pierde 3 Pierde 2 Pierde 3 Pierde 2 Pierde 1 Pierde 2 Pierde 2 Pierde 3 Pierde 2
50words Pierde 4 Pierde 3 Pierde 4 Pierde 4 Pierde 4 Pierde 4 Pierde 4 Pierde 1 Pierde 4
Yoga Pierde 1 Pierde 4 Pierde 4 Pierde 4 Pierde 4 Pierde 4 Pierde 4 Pierde 4 Pierde 3
SwedishLeaf Pierde 2 Pierde 1 Pierde 2 Pierde 2 Pierde 2 Pierde 2 Pierde 1 Pierde 2 Pierde 2
FaceAll Pierde 4 Pierde 3 Pierde 3 Pierde 1 Pierde 4 Pierde 4 Pierde 4 Pierde 3 Pierde 3
Wafer Empata Gana Pierde 1 Gana Gana Empata Empata Gana Empata
TwoPattern Pierde 1 Pierde 1 Pierde 1 Pierde 1 Pierde 1 Pierde 1 Pierde 1 Gana Pierde 1
Perdidas 
Pierde 31 Pierde 29 Pierde 40 Pierde 31 Pierde 28 Pierde 30 Pierde 32 Pierde 33 Pierde 33
Totales

Tabla 5.3: Resultados de las nueve pruebas

pecto al parámetro de tamaño de población, el valor de 250 obtiene buenos resultados no


importando el número de generaciones: para 25 generaciones 3 mejores resultados, para 50
generaciones los 7 anteriormente mencionados, y para 75 generaciones 5 mejores resultados.

Una vez comprobado que los parámetros elegidos inicialmente tienen el mejor
rendimiento y utilizando la solución de la mejor corrida de las 5 realizadas, exploraremos
las diferencias que se generan respecto al clasificador K-nn para valores de k = 1, k = 3
y k = 5. Para las pruebas de K-nn no se contemplaron las soluciones del algoritmo
GENEBLA ni las de SAX con los parámetros de GENEBLA. A continuación se muestran
las gráficas para los valores mencionados de k (véase desde la Figura 5.30 hasta la Figura
5.32).

Clasificador K-nn con k = 1.

Clasificador K-nn con k = 3.

Clasificador K-nn con k = 5.

Las gráficas mostradas anteriormente ejemplifican claramente que la menor tasa de


error del clasificador K-nn en todos los resultados está dado para valores de k = 1. Si el
valor para k incrementa, las tasas de error aumentan significativamente. Al incrementar los

Discretización de series de tiempo 80 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.5 Discusión Capı́tulo 5

25Gen  25Gen  25Gen  50Gen  50Gen  50Gen  75Gen  75Gen  75Gen 


200Pob 250Pob 300Pob 200Pob 250Pob 300Pob 200Pob 250Pob 300Pob
CBF (1º) 0.0878 0.0867 0.2056 0.1056 0.0789 0.1200 0.0967 0.0956 0.1044
FaceFour (1º) 0.1705 0.1818 0.1477 0.1591 0.1818 0.1818 0.1932 0.1364 0.1477
Coffee (t1º) 0.1786 0.3571 0.2500 0.1786 0.2500 0.1786 0.1429 0.3214 0.1786
GunPoint (2ºr) 0.1067 0.1200 0.0933 0.1133 0.1533 0.1067 0.1667 0.1267 0.1067
Beef (t1º) 0.5333 0.4000 0.5000 0.5000 0.4667 0.4667 0.4333 0.5000 0.4667
ECG200 (t1º) 0.1900 0.1600 0.1500 0.1200 0.1200 0.1400 0.1400 0.1300 0.1600
OliveOil (1º) 0.1667 0.2333 0.2333 0.2000 0.1000 0.2000 0.2000 0.1667 0.2333
Lighting7 (1º) 0.3836 0.3014 0.3014 0.4521 0.3973 0.3562 0.4247 0.3836 0.4247
Trace (1º) 0.1500 0.0900 0.1000 0.0800 0.0800 0.0900 0.0800 0.0800 0.1000
Lighting2 (t1º) 0.2131 0.2131 0.1967 0.2295 0.2131 0.1967 0.1967 0.2131 0.2623
Adiac (3º) 0.4808 0.8261 0.8159 0.5064 0.5115 0.8235 0.4962 0.7980 0.5422
Synthetic Control 
0.0767 0.1100 0.1500 0.1133 0.0867 0.0567 0.0833 0.4833 0.1133
(1º)
OSULeaf (3º) 0.5413 0.5041 0.5785 0.5413 0.5455 0.5537 0.5909 0.5165 0.5579
Fish (2ºr) 0.4000 0.3371 0.4000 0.3371 0.3029 0.4000 0.3314 0.4171 0.3600
50words (3º) 0.4615 0.4681 0.4769 0.4791 0.4549 0.4593 0.4571 0.3626 0.4747
Yoga (3º) 0.1860 0.2433 0.2340 0.2307 0.2227 0.2373 0.2370 0.2423 0.2390
SwedishLeaf (2ºr) 0.3200 0.3104 0.3520 0.3920 0.3232 0.3024 0.3424 0.4016 0.3296
FaceAll (3º) 0.4254 0.4284 0.4314 0.4337 0.3941 0.4178 0.4456 0.3982 0.4314
Wafer (t1º) 0.0050 0.0045 0.0060 0.0047 0.0042 0.0049 0.0058 0.0042 0.0049
TwoPattern (2ºr) 0.1360 0.1032 0.1073 0.1093 0.1215 0.1043 0.1210 0.0788 0.1027
Total 2 3 3 2 7 3 3 5 0

Tabla 5.4: Resultados de nuestra propuesta para las combinaciones de parámetros

valores para k, el desempeño de nuestra propuesta cambia respecto a los datos originales.
Para k = 1, se tienen 12 conjuntos de datos donde nuestra propuesta es mejor. Ahora para
k = 3, se tienen 13 conjuntos de datos donde se muestra mejor que los datos originales.
Finalmente, para k = 5, el cambio es bastante notorio, ya que se tienen 16 conjuntos de
datos donde se comporta mejor. Podemos concluir que conforme se incrementa el valor
para k, nuestra propuesta muestra una mejorı́a en el desempeño, pero en general las tasas
de error incrementan para los algoritmos y los datos originales.

En la siguiente sección se muestra la discusión de los resultados obtenidos y una


pequeña reseña de los parámetros que mostraron mejor comportamiento. Además, las
conclusiones respecto a los comportamientos que tuvieron los conjuntos de datos respecto
a los resultados y la tabla de caracterı́sticas representativas.

5.5. Discusión
Los resultados que fueron obtenidos por nuestra propuesta tienen un buen de-
sempeño respecto a las otras estrategias utilizadas para hacer la comparación, basándonos
en las tasas de error mostradas en las gráficas. Con respecto a los datos originales, también
tuvo un buen comportamiento, remarcando la importancia de requerir menor cantidad de
información. La propuesta de SAX en algunos casos mejoró los resultados, inclusive de

Discretización de series de tiempo 81 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.5 Discusión Capı́tulo 5

Figura 5.30: Resultados con 50 generaciones, población de 250 individuos y con k = 1

Figura 5.31: Resultados con 50 generaciones, población de 250 individuos y con k = 3

nuestra propuesta, pero se sabe que la principal deficiencia de este algoritmo es la necesi-
dad de los parámetros de longitud de palabra y tamaño del alfabeto.

La respuesta esperada a través de la tabla de caracterı́sticas que se realizó mediante


la visualización del comportamiento de las gráficas de la media, mediana y media de éstas
por clase, no concordó totalmente con lo obtenido por nuestra propuesta. Sin embargo,
se puede apreciar que en los conjuntos de datos con menor número de clases, nuestro al-
goritmo tuvo un desempeño uniforme, ganando en casi todos los casos, y perdiendo sólo
contra una propuesta (en su mayorı́a los datos continuos).

A pesar de no tener una concordancia muy grande, se tuvo mayor número de acier-
tos sobre los casos positivos predichos, que número de errores sobre los casos donde se
esperaba obtener buenos resultados. De la lista de siete elementos donde se tenı́a una alta
expectativa de buenos resultados, sólo cuatro los tuvieron (más del 50 %). Si agregamos
los otros elementos que mencionamos acerca de la holgura en los lı́mites, se tendrı́an cinco
casos más con la esperanza de tener mejores resultados, de los cuales tres resultaron con
valores competitivos (más del 50 %).

Los parámetros que se decidieron utilizar inicialmente fueron 50 para el número

Discretización de series de tiempo 82 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.5 Discusión Capı́tulo 5

Figura 5.32: Resultados con 50 generaciones, población de 250 individuos y con k = 5

de generaciones y 250 para el tamaño de la población. Se habı́a hecho la elección me-


diante pequeñas pruebas sobre cinco conjuntos de datos, pero como justificación no era
suficiente. Las pruebas efectuadas para justificar los parámetros que ocupa el algoritmo
basado en programación evolutiva fueron exitosas al corroborar que los parámetros elegi-
dos promueven mejores resultados. Suponiendo que el espacio de búsqueda se considera
como un area de 3 x 3 (3 parámetros para número de generaciones y 3 parámetros para
tamaño de población) e incluyendo como los valores de cada posición el total de conjuntos
de datos donde fueron mejores esa combinación de parámetros, se puede ver que la cima
está ubicada en el centro y una ligera pendiente sobre la fila central (referente al tamaño
de población con un valor de 250). La Figura 5.33 muestra más claro el modelado del
espacio de búsqueda para los parámetros probados.

Si se analiza la Tabla 5.4 en la columna con los mejores parámetros, nuestra pro-
puesta tiene un comportamiento sumamente eficiente. Gana en cinco de los veinte casos,
empata con la otra propuesta que ofrece mejores resultados en sólo dos de los casos. Hasta
este conteo lleva siete resultados provechosos. Un algoritmo difı́cilmente es competitivo en
todos los casos, como contraparte se tienen trece casos donde pierde con las otras propues-
tas. Sin embargo, en seis de esos casos pierde sólo contra una propuesta, donde en cuatro
de esos casos se pierde contra los datos continuos, y en los otros dos contra el algoritmo
SAX basado en los parámetros de GENEBLA. Los datos continuos tienen menores niveles
de error ya que utilizan toda la información comportandose como difı́ciles competidores
en los resultados. SAX tiene la deficiencia de requerir los parámetros los cuales fueron
brindados por otro algoritmo.

El clasificador del vecino más cercano (K-nn) es parte del proceso para evaluar la
bondad del algoritmo. Este proceso tiene una repercución sobre los resultados arrojados
dependiendo el valor del parámetro k. Previamente se sabı́a que los valores adecuados
para k eran 1, 3 y 5 [6], sin embargo no habı́a sido comprobado para nuestros datos dis-
cretizados. Es importante analizar que en algunos conjuntos de datos aunque el valor de
k incrementa, nuestra propuesta se mantiene en los mismos niveles de error, que com-
parando con las otras propuestas (datos originales y SAX(PEVOMO)), ésto no sucede.
Los conjuntos de datos como CBF, GunPoint, Trace y Synthetic Control se mantienen en

Discretización de series de tiempo 83 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.5 Discusión Capı́tulo 5

niveles muy similares, mostrando robustez de nuestra propuesta en los resultados.

Finalmente, los resultados obtenidos por el algoritmo evolutivo tuvieron un buen


desempeño. La principal ventaja de nuestra propuesta es la representación utilizada para la
búsqueda de soluciones. Los esquemas de discretización tienen un espacio de búsqueda muy
grande dadas las caracterı́sticas que presentan los datos. Por lo tanto, una caracterı́stica
interesante de los algoritmos evolutivos, es la capacidad de obtener buenas soluciones en
búsquedas de optimización con espacios de búsqueda muy grandes. La función de utilidad
tiene una aportación respecto al sesgo que se desea tener en la búsqueda. Los parámetros
elegidos para la función fueron escogidos de tal manera que se tuviera mayor precisión en
la clasificación, por lo tanto se ponderó con pesos muy altos en comparación a las otras dos
componentes de la función de utilidad. Los otros dos parámetros fueron ponderados con
el fin de evitar empates, pero con pesos muy bajos. En el capı́tulo siguiente se mostrarán
las conclusiones referentes a todo el trabajo, y el trabajo futuro para la propuesta descrita
en este documento.

Discretización de series de tiempo 84 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
5.5 Discusión Capı́tulo 5

(a) Vista número 1

(b) Vista número 2

Figura 5.33: Gráfica del espacio de búsqueda con respecto a los parámetros del algoritmo
evolutivo

Discretización de series de tiempo 85 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
Capı́tulo 6
Conclusiones y trabajo futuro

A lo largo de este trabajo, se revisaron propuestas sobre la problemática de dis-


cretización de series de tiempo. El proceso se puede dividir en dos partes principales: sobre
la longitud de la serie de tiempo (longitud de palabra) y sobre los valores categóricos (al-
fabeto). Nuestra solución propone aplicar el proceso en ambas partes al mismo tiempo,
ofreciendo una solución con una menor cantidad de datos y con el mı́nimo de valores
categóricos necesarios para explicar todos los valores continuos.

En este último capı́tulo se comentan las conclusiones a este trabajo realizado, las
ventajas que esta propuesta tiene, las desventajas y el trabajo futuro. Además, se profun-
diza sobre cada una de las principales caracterı́sticas donde es más factible una mejora.

6.1. Conclusiones
El trabajo propuesto en este documento, busca tener un desempeño competitivo
respecto a las otras propuestas revisadas en el proceso de discretización de series de tiem-
po. Para poder tener un marco de referencia, se utiliza un clasificador y el objetivo es
reducir la tasa de error respecto a otros algoritmos propuestos anteriormente y utilizan-
do los datos originales. Los resultados que fueron obtenidos son competitivos tomando
en cuenta que ganó 5 veces, empató 8 veces (considerando como empate los casos donde
pierde únicamente con los datos originales) y perdió 7 veces. El algoritmo tiene varias
ventajas respecto a las otras propuestas, aunque también tiene aspectos que se pueden
mejorar.

Dentro de las ventajas de la propuesta se encuentran las siguientes: baja compleji-


dad del algoritmo basado en programación evolutiva, mejor representación de soluciones
con la posibilidad de expandir el número de dimensiones, el tipo de algoritmo utilizado
para optimización en un espacio de búsqueda tan grande, y el uso de una función multi-
objetivo que permite sesgar la búsqueda.

Los aspectos considerados a mejorar en nuestra propuesta son los parámetros para

86
6.1 Conclusiones Capı́tulo 6

el algoritmo basado en programación evolutiva y los pesos dentro de la función de utilidad.


Cabe mencionar que los parámetros del algoritmo evolutivo no son considerados crı́ticos,
puesto que se logran obtener resultados suficientemente competitivos para los diferentes
parámetros detallados, aunque es notoria la mejorı́a con los parámetros optimos que se
encontraron. La función de utilidad contiene tres parámetros con el fin de variar el resul-
tado en los casos donde la aplicación requiera ponderar alguna otra caracterı́stica y no
sólo darle alta prioridad a la clasificación.

6.1.1. Ventajas
Se logra satisfacer en gran medida las caracterı́sticas deseables de nuestra propues-
ta. Se consigue realizar el mapeo de valores continuos a valores discretos de las series
de tiempo utilizadas para las pruebas del algoritmo. Respecto a la reducción de dimen-
sionalidad se obtienen representaciones de las series de tiempo más cortas que los datos
originales. La maximización de información se logra mediante los puntos de cortes que
mejor dividen a las series de tiempo a partir de sus valores de clase, donde la mejor di-
visión maximiza la clasificación concluyendo que se mantiene la información más relevante.

Las soluciones que se obtienen a través del algoritmo son generales dado que todo
el conjunto de datos es utilizado para adquirir los resultados.

La complejidad de la programación evolutiva es baja partiendo de que utiliza un


menor número de elementos básicos con respecto a los algoritmos genéticos. Esta técni-
ca utiliza únicamente cuatro operaciones elementales: operador de mutación, función de
utilidad, mecanismo de selección y mecanismo de reemplazo. Además, los mecanismos de
selección y de reemplazo son mucho más simples que los de otros algoritmos evolutivos.
En nuestro caso, para el mecanismo de selección basta con tomar el 50 % de los mejores
individuos y para el mecanismo de reemplazo tomar a los individuos mutados. Para otras
técnicas dentro del área de algoritmos evolutivos, se emplean torneos binarios o la técnica
de la ruleta.

Para la parte de complejidad computacional se puede concluir que los resultados se


obtuvieron en buenos tiempos de respuesta, hablando de un tiempo menor a doce horas
por la solución de todos los conjuntos de datos y con un total de tres pruebas cada uno
con el fin de ver la variabilidad de los resultados. En cuestiones de espacio y costo com-
putacional no se tuvo ninguna contrariedad.

La representación utilizada brinda una solución completa; no encuentra soluciones


parciales y posteriormente las une. De esta manera, en la mayorı́a de los casos, los resul-
tados obtenidos tienen mejor desempeño. La forma en como es representada la solución
permite la facilidad de agregar más dimensiones a la complejidad del problema, haciendo
relativamente simples las modificaciones necesarias para ser adaptada una nueva versión.

El espacio de soluciones para el problema de discretización es bastante amplio.


Los algoritmos genéticos tienen la caracterı́stica de explorar varios puntos en el espa-

Discretización de series de tiempo 87 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
6.1 Conclusiones Capı́tulo 6

cio de búsqueda elegidos aleatoriamente, sesgando la búsqueda hacia mejores soluciones


y reduciendo la probabilidad de quedar atrapado en mı́nimos y máximos locales. Por tal
motivo, hacer la exploración mediante un algoritmo del área de algoritmos evolutivos tiene
mayores posibilidades de encontrar una buena solución.

Finalmente, no se presenta la necesidad de parámetros crı́ticos definidos por el


usuario, sin embargo el algoritmo requiere de parámetros los cuales tiene una relación con
el desempeño del mismo. A partir de los resultados se aprecia un buen comportamiento
a pesar de los diferentes parámetros utilizados. Con relación a la función multiobjetivo
tampoco se consideran parámetros crı́ticos, en cambio ésta ofrece la posibilidad de sesgar
la búsqueda dependiendo los valores asignados a los tres parámetros que utiliza, lo que
por otra parte se podrı́a considerar una desventaja a causa del ajuste de los pesos para
obtener los mejores resultados. Si ésto se enfoca como la flexibilidad para que el usuario
le de prioridad al parámetro que desea optimizar, es considerado como ventaja. En caso
contrario, es un aspecto a mejorar que se expone en la subsección siguiente.

6.1.2. Aspectos a mejorar


Los algoritmos que se desarrollan buscan tener mejores desempeños que los uti-
lizados para realizar el trabajo. Sin embargo, difı́cilmente todos los aspectos pueden ser
mejorados. Las desventajas que tiene la propuesta son: el arreglo de los parámetros para
el algoritmo evolutivo (número de generaciones y tamaño de la población), el ajuste de
pesos para la función de utilidad en caso de querer optimizar los tres parámetros.

Los parámetros que requiere el algoritmo de programación evolutiva para obtener


resultados son muy importantes. Básicamente, estos parámetros exploran de cierta forma
el espacio de búsqueda dentro de la programación evolutiva. Encontrar los parámetros
óptimos es considerado como trabajo futuro. Una opción para resolver este aspecto se des-
cribe en la sección 6.2, a partir de un trabajo que intenta modelar una aproximación del
espacio de búsqueda. Para nuestro trabajo, este problema se resolvió mediante la ejecución
de un gran número de pruebas, concluyendo con la selección de los mejores parámetros.
Estos parámetros fueron considerados como el punto central del espacio de soluciones para
número de generaciones y tamaño de la población. Con el punto central se exploraron los
ocho vecinos más cercanos, considerando al espacio de soluciones una malla, donde las filas
eran un parámetro y las columnas eran el otro.

El ajuste de los pesos para la función de utilidad es considerado una desventaja si


se desea obtener la solución que optimize los tres parámetros. Si se busca lograr ésto, se
propone emplear una técnica basada en el concepto de dominancia de Pareto [18].

Discretización de series de tiempo 88 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
6.2 Trabajo futuro Capı́tulo 6

6.2. Trabajo futuro


El trabajo tiene varios puntos donde se pueden proponer alternativas que mejoren
los resultados como es mencionado en la Sección 6.1.2. Además, la optimización de los pa-
rámetros del algoritmo evolutivo podrı́a ser mejorada mediante una herramienta llamada
SPOT [19] que aproxima el comportamiento del espacio de búsqueda para los parámetros
necesarios. El análisis de las bases de datos es actualmente una pregunta abierta en el
área de inteligencia artificial, cuyo interés particular serı́a detectar las caracterı́sticas de
los casos donde nuestra propuesta se comporta mejor. Finalmente se podrı́a implementar
nuestro algoritmo para aplicaciones reales.

6.2.1. Optimización de los pesos de la función de utilidad


La función de utilidad tiene un papel muy importante en la búsqueda de soluciones.
Ésta tiene tres parámetros que pueden sesgar la búsqueda. Aunque serı́a altamente de-
seable encontrar un conjunto de soluciones que optimizen en la mayor medida posible los
tres parámetros. Basándonos en el concepto de dominancia de Pareto, se puede adaptar
una mejorı́a para analizar los resultados con esta idea [18]. La idea es constituir como
función de utilidad un conjunto de tres soluciones (dado que nuestra función tiene tres
parámetros) y considerlas con igual importancia. Para determinar el orden de individuos
aptos, se utiliza el concepto de dominancia, donde se van seleccionado los individuos no
dominados y son asignados a la primer capa. Después, se continúa el proceso con los indi-
viduos que fueron dominados y se incrementa el número de capa. Este proceso es iterativo
hasta que la condición de no contener más individuos dominados se cumpla.

Los parámetros utilizados en la función de utilidad tienen diferente grado de impor-


tancia. El primero (precisión de clasificación) es muy importante para nuestro experimento
que utiliza como marco de referencia un algoritmo de clasificación. También, tiene menor
relación con los otros dos parámetros (reducción en número de cadenas y reducción de
longitud), que se enfocan al nivel de reducción. Éstos entre sı́ tienen mucha relación al
compartir el objetivo de reducir el tamaño de la información.

De esta manera, para el trabajo con el concepto de dominancia de Pareto se


tomarı́an en cuenta dos parámetros: precisión de clasificación y la media de la reduc-
ción del número de cadenas y de la longitud. Ası́ la gráfica de Pareto que se obtendrı́a
serı́a en un extremo los individuos con buena clasificación pero con mucha longitud, y en
el otro, individuos con mala clasificación pero con poca longitud. Entre estos puntos, se
debe ajustar una curva donde los puntos centrales optimizan ambos parámetros.

6.2.2. Optimización de los parámetros del algoritmo evolutivo


Los parámetros que requiere el algoritmo de programación evolutiva sólo son dos:
número de generaciones y tamaño de la población. Modelar el espacio de búsqueda para

Discretización de series de tiempo 89 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
6.2 Trabajo futuro Capı́tulo 6

dos parámetros no es una tarea muy compleja. Desafortunadamente el número de posibles


combinaciones para los parámetros es una cantidad muy grande. De igual forma, realizar
las pruebas para todas las combinaciones nos llevarı́a mucho tiempo. La problemática del
modelado de parámetros puede ser resuelto a través de una herramienta llamada SPOT
[19]. La idea básicamente de esta herramienta es utilizar como función al algoritmo y el
resultado como la bondad que tuvo el algoritmo con ciertos parámetros. A través de una
distribución Normal explora valores de los parámetros entre el mı́nimo y el máximo asig-
nados por el usuario. Con la muestra que el algoritmo sugiere, construye una aproximación
del modelo del espacio de búsqueda.

6.2.3. Análisis de las bases de datos


Las bases de datos que fueron utilizadas para probar nuestro algoritmo son un to-
tal de veinte. Actualmente, en cualquier tipo de algoritmo, definir caracterı́sticas que nos
ayuden a determinar el desempeño es un problema abierto. Para nuestro trabajo se re-
alizaron gráficas donde se muestra un comportamiento por clase, utilizando como medida
la media y mediana de las lecturas por clase. También se extrajeron las caracterı́sticas a
partir de las gráficas de forma visual y las observaciones fueron reflejadas en una tabla. Se
podrı́a concluir que en bases de datos con pocas clases nuestra propuesta tiene un buen
desempeño, pero existe un caso donde ésto no sucede. Una problemática parecida se tiene
con los clasificadores, donde con ciertas bases de datos la tasa de error es mayor y con
otras es menor.

A través de herramientas, técnicas y medidas de la estadı́stica se podrı́a realizar


un trabajo a profundidad sobre las bases de datos utilizadas. Las medidas de tendencia
central como la media, mediana, desviación estándar, pueden ser de utilidad. Sin embargo,
serı́a necesario hacer muchas pruebas para lograr encontrar caracterı́sticas de importancia
que ofrezcan un panorama del comportamiento. Desarrollar nuevas medidas que tengan
como fundamento algunos conceptos estadı́sticos pueden ser de utilidad. El objetivo del
trabajo futuro serı́a encontrar caracterı́sticas que determinen con total precisión en que
casos nuestra propuesta es mejor, y determinar por qué sucede esto.

6.2.4. Aplicaciones del algoritmo


La discretización de series de tiempo es un proceso que en algunos casos sirve como
pre-procesamiento para diferentes tareas. Este procesamiento puede tener diversas aplica-
ciones en el mundo real. Dentro de los trabajos revisados se puede observar que es aplicable
en el área de colposcopı́a y en datos fMRI (functional Magnetic Resonance Imaging).

El área de colposcopı́a utiliza series de tiempo en la adquisición de datos. El objeti-


vo de esta área es determinar si la paciente tiene tejidos dañados. A partir de las series de
tiempo que arroja el proceso médico utilizado, se emplea un clasificador que determina una
de las dos posibles clases (sano o dañado). Utilizando un discretizador sobre las series de

Discretización de series de tiempo 90 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
6.2 Trabajo futuro Capı́tulo 6

tiempo, se obtendrı́an representaciones más pequeñas que pudieran servir para la minerı́a
de datos respecto a las lesiones. El desempeño del discretizador debe ser analizado con las
mismas pruebas que fueron realizadas con el conjunto de bases de datos utilizado en este
trabajo.

En el área de fMRI (functional Magnetic Resonance Imaging) se utilizan series de


tiempo, las cuales tienen valores para tres dimensiones llamados voxels (z cortes diferen-
tes, cuyos planos (x, y) conforman las tres dimensiones). Al ver la dimensionalidad del
problema, se puede suponer fácilmente el uso de nuestra propuesta. Básicamente, serı́a un
procesamiento sobre todos estos datos, con el fin de obtener la información más relevante.
Este proceso intermedio servirı́a para arrojar como salida la base de datos que serı́a uti-
lizada para el clasificador. Como se explicó al inicio del párrafo, esta aplicación requiere
la expansión del número de dimensiones.

6.2.5. Modificación sobre la estrategia de selección


El esquema general de la programación evolutiva utiliza los mejores individuos, y
éstos son mutados para reemplazar a los peores. Cuando se vuelve a hacer la evaluación
se comparan los individuos y los individuos mutados, por lo tanto, si el individuo mutado
tiene una mala aptitud, se puede asumir que el o los genes mutados eran partes de una
buena solución. Con esta idea se pueden debatir diferentes enfoques como posibles solu-
ciones.

Una posible modificación, consistirı́a en verificar, de todos los individuos, que cam-
bios son buenos y cuales malos. Con los cambios buenos, se pondrı́a constituir otro
individuo y evaluar su aptitud. Con los cambios malos, se podrı́a castigar esos posi-
bles genes.

Otro enfoque serı́a evaluar de todos los individuos cuales son los genes que tienen
mayor relevancia, agregarlos a todos los individuos y limitar el cambio de esos genes
a través de las iteraciones.

También existe otro enfoque que sesga la selección de genes para los nuevos indivi-
duos. El área es llamada “algoritmos evolutivos culturales” [20, 24].

Discretización de series de tiempo 91 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
Apéndice A
Gráficas comparativas entre generaciones y
tamaño de la población

En esta sección se muestran las gráficas donde se comparan los comportamientos


por generaciones, tamaño de la población y finalmente todos los resultados ordenados por
generaciones y por tamaño de la población.

Figura A.1: Resultados por generación con un valor de 25 generaciones

Figura A.2: Resultados por generación con un valor de 50 generaciones

92
GRÁFICAS COMPARATIVAS ENTRE GENERACIONES Y TAMAÑO
DE LA POBLACIÓN Capı́tulo A

Figura A.3: Resultados por generación con un valor de 75 generaciones

Figura A.4: Resultados por tamaño de la población para una población de 200 individuos

Figura A.5: Resultados por tamaño de la población para una población de 250 individuos

Discretización de series de tiempo 93 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
GRÁFICAS COMPARATIVAS ENTRE GENERACIONES Y TAMAÑO
DE LA POBLACIÓN Capı́tulo A

Figura A.6: Resultados por tamaño de la población para una población de 300 individuos

Figura A.7: Todos los resultados ordenados por generaciones y después por tamaño de
población

Figura A.8: Todos los resultados ordenados por tamaño de población y después por gene-
raciones

Discretización de series de tiempo 94 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
Referencias

[1] Tan, Pang-Ning (Michigan State University), Steinbach, Michael (University of Min-
nesota), and Kumar, Vipin (University of Minnesota and Army High Performance
Computing Research Center). Introduction to Data Mining. Pearson Addison-Wesley.
(2006).

[2] Goldberg, David E.: Genetic Algorithms in Search, Optimization, and Machine Learn-
ing. The University of Alabama. Editorial Addison-Wesley. Copyright: 1989.

[3] Michalewicz, Zbigniew: Genetic Algorithms + Data Structures = Evolution Programs.


Third, revised and extended edition. Springer. First corrected printing 1999.

[4] A.E. Eiben and J.E. Smith, Introduction to Evolutionary Computing, Springer, Nat-
ural Computing Series 1st edition, 2003.

[5] Last Mark, Kandel Abraham, Bunke Horst :Data Mining In Time Series Databases,
Series in Machine Perception and Artificial Intelligence (Vol. 57). World Scientific
Publishing 2004.

[6] Hastie Trevor, Tibshirani Robert y Friedman Jerome: The elements of Statistical
Learning. Springer 2009.

[7] Engelbrecht Adries P.: Computational Intelligence An Introduction. Second Edition.


University of Pretoria South Africa. Wiley. Copyright 2007 John Wiley & Sons, Ltd.

[8] Kurgan, L. and Cios, K.: CAIM Discretization Algorithm, IEEE Transactions On
Knowledge And Data Engineering. IEEE TRANSACTIONS ON KNOWLEDGE
AND DATA ENGINEERING, VOL. 16, NO. 2, FEBRUARY 2004. 145.

[9] Lin, J., Keogh, E., Lonardi, S. and Chiu, B.: A symbolic representation of time series,
with implications for streaming Algorithms. In proceedings of the 8th ACM SIGMOD
Workshop on Research Issues in Data Mining and Knowledge Discovery. San Diego,
CA. June 13, 2003.

[10] Acosta Mesa H.G., Cruz Ramı́rez, Nicandro, Garcı́a-López Daniel-Alejandro: Entropy
Based Linear Approximation Algorithm for Time Series Discretization. Advances in

95
REFERENCIAS REFERENCIAS

Artificial Intelligence and Applications. Volume 32. pp 214-224. Research in Comput-


ers Science (2007).
[11] Garcı́a-López Daniel-Alejandro, Acosta-Mesa Héctor-Gabriel and Cortés-Pérez
Ernesto. Discretization of Time Series Dataset with Genetic Search. Proceeding MI-
CAI ’09 Proceedings of the 8th Mexican International Conference on Artificial Intel-
ligence 2009: 201-212.
[12] Mörchen, F. and ltseh, A.: Optimizing Time Series Discretization for Knowledge
Discovery, In Proceeding of the Eleventh ACM SIGKDD interntaional Conference
on Knowledge Discovery in Data Mining. Chicago, IL, USA (2005).
[13] Dimitrova, E.S., McGee, J. and Laubenbacher, E.: Discretization of Time Series Data,
eprint arXiv:q-bio/0505028 (2005).
[14] Keogh, E., Chakrabarti, K., Pazzani, M. and S. Mehrotra S.: Locally Adaptive Dimen-
sionality Reduction for Indexing Large Time Series Databases, ACM Trans. DAtabase
Syst. (2002). Proceeding SIGMOD ’01 Proceedings of the 2001 ACM SIGMOD in-
ternational conference on Management of data. Volume 30 Issue 2, June 2001.
[15] Garcı́a-López Daniel Alejandro. Algoritmo de Discretización de Series de Tiempo
Basado en Entropı́a y su Aplicación en Datos Colposcópicos. Universidad Veracruzana
2007.
[16] Fayyad U., y Irani K.: Multi-interval Discretization of Continuous-Valued Attributes
for Classification Learning, In Proceedings of the 13th International JOint Conference
on ARtificial Intelligence, Proceedings of the Fifth SIAM International Conference on
Data Mining, Volume 119 (1993).
[17] Liu, Huan and Setiono, Rudy: Dimensionality Reduction via Discretization. Depart-
ment of Information Systems and Computer Science, National University of Singa-
pore. Dimensionality reduction via discretization, Knowledge Based Systems, Vol. 9,
No. 1, February 1996, pages 67-72.
[18] Deb Kalyanmoy, Pratap A., Agarwal S., y Meyarivan T.: A Fast and Elitist Multi-
objective Genetic Algorithm: NSGA-II. IEEE Transactions on evolutionary compu-
tation, VOL. 6, NO. 2, APRIL 2002.
[19] Thomas Bartz-Beielstein, Christian Lasarczyk, Mike Preu. SPOT: Sequential Param-
eter Optimization Toolbox. Faculty of Computer Science and Engineering Science
and Dept. of Computer Science, Germany. (2009).
[20] Lee Spector y Sean Luke. Cultural Transmission of Information in Genetic Program-
ming. School of Cognitive Science and Cultural Studies. Department of Computer
Science. Hampshire College. University of Maryland. Proceedings of the First Annual
Conference, 209–214. Cambridge, MA: The MIT Press. (1996).
[21] Hastie Trevor, Tibshirani Robert y Friedman Jerome: The elements of Statistical
Learning. Springer 2009.

Discretización de series de tiempo 96 Fernando Rechy Ramı́rez


con PE y función multiobjetivo
REFERENCIAS REFERENCIAS

[22] J. Bilmes. A Gentle Tutorial on the EM Algorithm and its Application to Parameter
Estimation for Gaussian Mixture and Hidden Markov Models. Technical Report ICSI-
TR-97-021, University of Berkeley, 1997.

[23] Hartemink, A. (2001) Principled computational methods for the validation and dis-
covery of genetic regulatory networks. Massachusetts Institute of Technology, Ph. D.
dissertation.

[24] Robert G. Reynolds, Bin Peng, Robert Whallon. Emergent Social Structures in Cul-
tural Algorithms. Dept. of Computer Science, Wayne State University. Museum of
Anthropology, University of Michigan.

[25] Keogh E., Xi C., Wei L., y Ratanamabatana C.A.: The UCR Time Series Classifica-
tion/Clustering Homepage: http://www.cs.ucr.edu/ eamonn/time series data/ (2003
- 2008).

[26] Han J., y Kamber M.: Data mining. Concepts and techniques Morgan Kaufmann,
(2001).

[27] Keogh E., S. Lonardi, y Ratanamabatana C.A., Towards parameter-free data min-
ing. In proceedings of Tenth ACM SIGKDD international Conference on Knowledge
Discovery and Data Mining, (2001).

[28] Last M., Kandel A., Bunke H.: Data mining in time series databases, World Scientific
Pub Co Inc, (2004).

[29] Satio N.: Local feature extraction and its application using a library of bases, PhD
thesis, Yale University, (1994).

Discretización de series de tiempo 97 Fernando Rechy Ramı́rez


con PE y función multiobjetivo

S-ar putea să vă placă și