You are on page 1of 4

1

Discovery of Frequent Episodes in Event


Sequences
Carlos Ari Merma, Lucas Maia guimaraes
Brayan Llamosas Lazo, Brenda Manrique salas

abstract—The topic discussed by the authors reveals the discovery of frequent episodes as a data mining method, and
also shows that to discover these episodes is necessary to find the frequency of the a sequence of events. Thus we
understand as an episode a collection of events that have dependencies between each other in a certain order, allowing
once the episode is known to describe or predict the pattern of the sequence. The authors also describe algorithms that
will help us understand and implement efficiently the discovery of all frequent episodes of a given class of episodes.

resumen—El tema tratado por los autores nos revela el descubrimiento de episodios frecuentes como un método de
minerı́a de datos, ası́ también nos muestra que para descubrir estos episodios es necesario encontrar la frecuencia en el
cual se produce una secuencia de acontecimientos. Es ası́ que entendemos como episodio, una colección de eventos
que tienen dependencias entre sı́ y en un determinado orden, permitiendo que una vez conocido dicho episodio se
pueda describir o predecir el patrón de la secuencia correspondiente. Los autores describen también algoritmos que
nos ayudarán a entender y aplicar con eficiencia el descubrimiento de todos los episodios frecuentes de una secuencia
de eventos.

index term—Data mining, event sequences, frequent episodes, Windows, Sequence Analysis.

palabras clave—Mineria de datos, Secuencia de eventos, Episodios frecuentes, Ventanas, Analisis de secuencia.

1 I NTRODUCTION y Tf < Hf. La primera manera ofrece un detalle


mayor en la frecuencia de un evento elegido
E N este paper se estudiara la detección de
eventos frecuentes en un determinado in-
tervalo de tiempo. Se consideran dos maneras
aleatoriamente, pero es lento al inicio, sin em-
bargo la segunda aproximación al problema
para lograrlo; la primera, WINEPI, se basa en es más rápido al inicio de su ejecución pero
la estimación de un tiempo umbral o ventana no ofrece tanto detalle en la frecuencia. Los
en el cual los eventos deben ocurrir para que se algoritmos permiten, por fortuna, una mescla
consideren relevantes. Una colección de even- entre ellos, utilizando el MINEPI al inicio y
tos se denomina Episodio, un episodio puede luego WINEPI haciendo que el inicio de la
contener otros episodios relevantes que deben ejecución sea rápido y luego se obtiene un buen
ser considerados en el momento de analizar la nivel de detalle en el análisis.
secuencia. En la segunda manera, denominada
MINEPI, se sustituyen las ventanas por reglas 2 E STADO DEL ARTE
de detección, lo que permite establecer dos
o más umbrales de tiempo, es decir que un El algoritmo 1 simplemente encuentra dos
episodio se detecta en un intervalo (Ti,Tf) y otro episodios frecuentes, de los cuales uno (β)
episodio en un intervalo (Hi,Hf) tal que Ti < Hi es sub-episodio del otro (α) que cumplan la
condición que al suceder β sea muy probable
• C. Ari E-mail: arjnskarl@live.com
que suceda α (el algoritmo tiene un umbral
• B. Llamosas E-mail: rayan gilmer@hotmail.com para esto, min conf), lo que se puede ver en
• B. Manrique E-mail: tifis ms@hotmail.com la lı́nea 6, en la cual divide la frecuencia del
• L. Maia E-mail: lucas.rmg@hotmail.com
evento α sobre el evento β, lo que nos da la
2

probabilidad que si ya sucedió β después se


dará el evento α. Para obtener los eventos fre-
cuentes (lı́nea 2) emplea el algoritmo 2, al cual
le envı́a la secuencia de eventos que queremos
analizar, el ancho de la ventana que usaremos
(definida por el usuario), y un umbral que in-
dica que tanto se debe dar un evento para que
se considere frecuente (min fr). Después de
este procedimiento podremos saber las reglas
para los episodios dados, es decir, podremos
predecir eventos futuros en base a los datos
actuales, ver cómo es que influencian ciertos Para entender este algoritmo primero debe-
eventos en que sucedan otros, etc. Teniendo la mos ver la definición de bloque. Teniendo una
información (que es el objetivo del data mining, colección de episodios de la misma longitud
transformar datos en información) de que es lo (que es la entrada para este algoritmo) un
más probable que se dé en base a los eventos bloque se considera como la mayor cantidad
actuales esto se puede interpretar de forma que de episodios consecutivos en la colección que
se genere conocimiento, como en los ejemplos tengan sus l - 1 elementos iguales (es decir
anteriores (en la segunda lı́nea de este parrafo). que solo tenga el último evento diferente). Lo
que hace el algoritmo es recorrer el arreglo de
episodios (lı́neas 4 y 6), teniendo las 2 posi-
ciones i y j que pertenecen a un mismo bloque,
lo que se hace es crear un nuevo episodio
de longitud l + 1 del cual los l - 1 primeros
episodios pertenecen a los 2 episodios i y j (que
son los mismos pues pertenecen a un mismo
bloque), los 2 eventos faltantes los componen
los últimos eventos de los episodios i y j (lı́neas
Las entradas al algoritmo 2 se definieron 9 y 10). Al tener ya un nuevo episodio lo que se
anteriormente, las variables que se usan en hace es ver si es un buen super-episodio, válido
este algoritmo son: Cl que es una colección de para ser un episodio candidato, lo que se hace
episodios candidatos a ser evaluados; Fl son en el bucle de la lı́nea 12, en este proceso lo
los episodios que ya han sido declarados como que se hace en recorrer el episodio y en cada
frecuentes de los episodios candidatos y que iteración se le extrae temporalmente el evento
serán la salida del algoritmo, l es la amplitud y -esimo, si ese sub-episodio temporal no existe
del episodio, es decir el numero de eventos en el arreglo de entrada de episodios entonces
en el episodio. La colección de episodios can- no es buen episodio candidato y se detiene la
didatos se inicia como episodios de longitud validación y se va al siguiente episodio j + 1
1, teniendo un episodio por cada evento en la para continuar generando más super-episodios
secuencia de eventos, esta colección se procesa (lı́nea 15). Los super-episodios aceptados como
por los algoritmos 4 y 5 para seleccionar los buenos episodios candidatos son la salida del
episodios frecuentes, teniendo los episodios algoritmo y se almacenan en la variable Cl+1 .
frecuentes se usa el algoritmo 3 para generar Este algoritmo es usado para una entrada y
otros candidatos de una longitud mayor en 1 salida de episodios paralelos, para usarlo para
(los sub-episodios de los episodios candidatos episodios secuenciales simplemente se cambia
son también agregados por lo explicado en el la lı́nea 6 por:
lema 1), este proceso se repite mientras existan En este punto empieza a actuar la ven-
candidatos de una longitud l + 1, es decir tana (que como ya se explico es la longitud
mientras el algoritmo 3 nos dé más episodios máxima en la que deberı́a suceder el episo-
candidatos a evaluar. dio). Este algoritmo es utilizado para evaluar
3

evento en la secuencia que se obtiene al mover


la ventana un espacio (desde la lı́nea 14), den-
tro de esto lo que hace es aumentar el contador
del evento que se acaba de agregar (lı́nea 16) y
luego se ve si algún episodio tiene esa cantidad
de instancias del evento que se agrego (lı́nea
17), si existe entonces a esos episodios se le
suman al contador la cantidad de instancias
del evento (lı́nea 18) y si ya se han encon-
trado todos los eventos del episodio entonces
el episodio está presente en la ventana, por
lo que se le da valor al campo inwindow del
episodio (lı́nea 19). El siguiente paso es sacar el
evento que quedo excluido por el avance de la
ventana (lı́nea 20), dentro del cual se ve si hay
episodios que contienen el evento (lı́neas 21 y
22), si es ası́ y este episodio está en la ventana
que acaba de pasar se incrementa el contador
de frecuencia del episodio y se decrementa el
contador de eventos del episodio (lı́neas 23,
24 y 25). Al final del algoritmo se divide el
contador de frecuencia de todos los episodios
si una colección de eventos PARALELOS son sobre la cantidad de ventanas, lo que nos da
frecuentes. El algoritmo encargado de ver los la frecuencia del evento, y si este es igual o
episodios SECUENCIALES se verá después (al- superior al umbral dado en la entrada, entonces
goritmo 5). Para este algoritmo se considera es válido para la salida.
un campo contador en los eventos, que in-
dicara cuantas instancias de ese evento están
presentes en la ventana que se esté tratando.
Los episodios tendrán campos para contar los
eventos que han coincidido (de modo que al
cumplir todos los eventos se sabrá que está
presente en la ventana), otro campo contador
de frecuencia que nos dirá en cuantas ventanas
está presente el evento y otro (inwindow) que
indica donde empieza la ventana en donde
fue encontrada (a esto se verá su utilidad de-
spués). Por razones de eficiencia la idea del
algoritmo no es tomar ventana a ventana y
verificar si existe algún episodio dentro, sino
que aprovechando que se saben los eventos
actuales en la ventana simplemente se consid-
era que se debe agregar el evento que sigue
en la secuencia de eventos y sacar el primer
elemento. Para esto es necesario tener una
función contains(A, i) la cual nos dará una lista
de todos los episodios que contienen i numero
de instancias del evento de clase A. Después
de iniciar las variables lo primero que se hace Para esto se utilizan otras funciones (que
es considerar que se debe agregar el siguiente actúan como autómatas que esperan ciertos
4

eventos), cada episodio tiene un arreglo de cias


initialized para sus eventos que indica cuando Este algoritmo, en términos generales, es igual
un autómata se empezó a hacer cargo de él. al descrito anteriormente, su principal diferen-
También contiene funciones wait para saber cia es que no usa una ventana para delimitar
por cual evento está esperando un episodio, a los episodios, simplemente busca las ocur-
transition para saber de dónde vino una agre- rencias mı́nimas (esto significa la ocurrencia
gación de un evento en un episodio y begin- del episodio, pero sin eventos de más antes o
sat para guardar los tiempos de inicio de los después), esto da más precisión al algoritmo.
autómatas. La idea general del algoritmo es Además se pueden inCl uir un arreglo de ven-
igual que el anterior, primero se debe consid- tanas como reglas, por ejemplo: Teniendo 2
erar las acciones al agregar el evento siguiente, ventanas se puede decir que la mitad de la
en el cual se guardan las transacciones hechas izquierda se dé en una longitud máxima del
y se registras los waits ya satisfechos y se ancho de la primera ventana y la mitad de la
guardan los datos de los autómatas. En la parte derecha en una longitud máxima del ancho de
que excluye el evento anterior (a partir de la la segunda ventana.
lı́nea 30) revisa si la ventana que sale contiene
algú‘n episodio, de ser el caso se aumenta el
contador de frecuencias (lı́nea 32). Básicamente
el funcionamiento es igual al algoritmo 4, pero
este cuida el orden de los eventos (pues esto
es básico en episodios secuenciales), lo cual se
logra con el uso de autómatas.

Un algoritmo alternativo: minimas ocurren-

You might also like