Documente Academic
Documente Profesional
Documente Cultură
Directores de tesis:
Dr. Héctor Gabriel Acosta Mesa
Dr. Efrén Mezura Montes
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 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 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 música favorita que me sirve siempre para estar enfocado y darle un buen
toque a mi vida.
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
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
iv
ÍNDICE DE FIGURAS ÍNDICE DE FIGURAS
vi
Índice de Algoritmos
vii
Capı́tulo 1
Introducción
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.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.
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.
tiempo.
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.
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.
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.
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
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.
Población
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].
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-
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.
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.
1. Discretización de datos.
10
2.2 Discretización de datos Capı́tulo 2
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.
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.
qir
La probabilidad conjunta estimada, se obtiene por: pir = p(Ci , Dr|F ) = M
, donde
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 ].
Hacer adiciones consecutivas de un nuevo lı́mite que resulta dentro del valor
más alto localmente del criterio de CAIM.
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.
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
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
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 .
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
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 ).
(a) Ejemplo de un grafo construı́do (b) Niveles generados por cada vez que el grafo
se desconecta
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).
(alfabeto).
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.
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.
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
Reducción de dimensionalidad.
Maximización de información.
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
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.
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.
28
3.2 Reducción de dimensionalidad Capı́tulo 3
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.
ideal, se estarán delimitando los mejores puntos de corte sobre la longtiud de palabra,
maximizando la información de cada conjunto de datos.
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:
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.
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:
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.
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.
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.
a la misma clase.
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.
37
METODOLOGÍA Capı́tulo 4
[ ]: 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.
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.
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.
flushVector: Esta función ordena el vector de entrada y por cuestiones del lenguaje
utilizado en la implementación elimina valores de relleno.
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.
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.
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.
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.
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.
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.
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
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).
1
, donde: inv(value) es el valor inverso de value ( valor ).
(
(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.
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.
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.
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
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.
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.
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
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.
lores reales. El Algoritmo 4.11 muestra todo el proceso de mutación aplicado a todos los
individuos.
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.
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.
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
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.
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
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.
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.
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.
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).
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.
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
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
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.
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.
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
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.
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.
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
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.
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
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
obtenidos. Las caracterı́sticas expuestas en esta sección se explicarán con más detalle en
el siguiente apartado.
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.
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.
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.
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).
A continuación se muestran las gráficas de los resultados obtenidos para los nueve
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.
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-
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
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).
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.
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
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.
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 %).
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
Figura 5.33: Gráfica del espacio de búsqueda con respecto a los parámetros del algoritmo
evolutivo
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.
Los aspectos considerados a mejorar en nuestra propuesta son los parámetros para
86
6.1 Conclusiones Capı́tulo 6
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.
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.
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].
92
GRÁFICAS COMPARATIVAS ENTRE GENERACIONES Y TAMAÑO
DE LA POBLACIÓN Capı́tulo A
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
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
[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.
[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.
[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
[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).