22 pattern mining - sequences - fernando berzalelvex.ugr.es/idbis/dm/slides/22 pattern mining -...

30
Patrones secuenciales Patrones secuenciales © Fernando Berzal, © Fernando Berzal, [email protected] [email protected] Patrones secuenciales Patrones secuenciales Análisis de secuencias & patrones secuenciales. Análisis de secuencias & patrones secuenciales. GSP GSP [Generalized Generalized Sequential Sequential Patterns Patterns]. SPADE [Sequential PAttern Discovery using Equivalent Class] PrefixSpan PrefixSpan PrefixSpan PrefixSpan CloSpan CloSpan Patrones secuenciales con restricciones. Patrones secuenciales con restricciones. SSMiner SSMiner [Similar [Similar Sequence Sequence Miner Miner] Apéndice: Episodios Apéndice: Episodios 1

Upload: leminh

Post on 22-Sep-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Patrones secuencialesPatrones secuenciales© Fernando Berzal, © Fernando Berzal, [email protected]@acm.org

Patrones secuencialesPatrones secuenciales

�� Análisis de secuencias & patrones secuenciales.Análisis de secuencias & patrones secuenciales.

�� GSP GSP [[GeneralizedGeneralized SequentialSequential PatternsPatterns]]..

� SPADE [Sequential PAttern Discovery using Equivalent Class]

�� PrefixSpanPrefixSpan�� PrefixSpanPrefixSpan

�� CloSpanCloSpan

�� Patrones secuenciales con restricciones.Patrones secuenciales con restricciones.

�� SSMinerSSMiner [Similar [Similar SequenceSequence MinerMiner]]

�� Apéndice: EpisodiosApéndice: Episodios

11

Análisis de secuenciasAnálisis de secuencias

Basede datos

SecuenciaElemento

(Transacción)Evento(Item)

ClientesHistorial de compras

de un cliente determinado

Conjunto de artículos comprados por un cliente en un instante concreto

Libros, productos…

WebNavegación de un

visitante del sitio web

Colección de ficheros vistos por el visitante tras

Página inicial, información de

22

Web visitante del sitio webvistos por el visitante tras

un único click de ratóninformación de

contacto, fotografía…

EventosEventos generados

por un sensorEventos generador por un

sensor en un instante tTipos de alarmas

generadas

Genoma Secuencia de ADNElemento de la secuencia

de ADNBases A,T,G,C

secuencia

E1E2

E1E3

E2E3E4

E2

Elemento(transacción)

Evento(item)

Análisis de secuenciasAnálisis de secuencias

Una secuencia es una lista ordenada de elementos:Una secuencia es una lista ordenada de elementos:

s = < s = < ee1 1 ee22 ee33 … >… >

�� Cada elemento contiene una colección de eventos:Cada elemento contiene una colección de eventos:

eeii = {i= {i11, i, i22, …, , …, iikk}}

�� Cada elemento tiene una localización temporal Cada elemento tiene una localización temporal (o espacial) asociada.(o espacial) asociada.

�� La longitud de la secuencia, |s|, es el número de La longitud de la secuencia, |s|, es el número de elementos de la secuenciaelementos de la secuencia

�� Una kUna k--secuencia es una secuencia de k eventos.secuencia es una secuencia de k eventos.33

Análisis de secuenciasAnálisis de secuencias

EjemplosEjemplos

�� Secuencia de visitas en una página webSecuencia de visitas en una página web< {Homepage} {Electronics} {Tablets} {Kindle Fire HD} {Shopping Cart} < {Homepage} {Electronics} {Tablets} {Kindle Fire HD} {Shopping Cart} {Order Confirmation} {Return to Shopping} >{Order Confirmation} {Return to Shopping} >

�� Secuencia de eventos que inició el accidente nuclear de Secuencia de eventos que inició el accidente nuclear de 33--Mile Island Mile Island http://en.wikipedia.org/wiki/Three_Mile_Island_accidenthttp://en.wikipedia.org/wiki/Three_Mile_Island_accident< {clogged resin} {outlet valve closure} {loss of < {clogged resin} {outlet valve closure} {loss of feedwaterfeedwater} } {condenser polisher outlet valve shut} {booster pumps trip} {condenser polisher outlet valve shut} {booster pumps trip} {main {main waterpumpwaterpump trips} {main turbine trips} {reactor pressure trips} {main turbine trips} {reactor pressure increases}>increases}>

�� Secuencia de préstamos de libros en una bibliotecaSecuencia de préstamos de libros en una biblioteca<{Fellowship of the Ring} {The Two Towers} {Return of the King}><{Fellowship of the Ring} {The Two Towers} {Return of the King}>

44

Análisis de secuenciasAnálisis de secuencias

UnaUna secuenciasecuencia <a<a1 1 aa2 2 … a… ann> > estáestá contenidacontenida en en otraotra secuenciasecuencia <b<b1 1 bb2 2 … … bbmm> (m > (m ≥≥ n) n) sisi existeexiste un un conjuntoconjunto de de enterosenteros ii1 1 < i< i2 2 < … < i< … < inntales tales queque aa1 1 ⊆⊆ bbi1 i1 , , aa22 ⊆⊆ bbi1i1, …, , …, aann ⊆⊆ bbinin

Secuencia Subsecuencia ¿incluida?

55secuencia

E1E2

E1E3

E2E3E4

E2

Elemento(transacción)

Evento(item)

Secuencia Subsecuencia ¿incluida?

< {2,4} {3,5,6} {8} > < {2} {3,5} > Sí

< {1,2} {3,4} > < {1} {2} > No

< {2,4} {2,4} {2,5} > < {2} {4} > Sí

Análisis de secuenciasAnálisis de secuencias

�� El El soportesoporte de de unauna subsecuenciasubsecuencia S se define S se define comocomo la la fracciónfracción de de secuenciassecuencias de la base de de la base de datosdatos queque incluyenincluyenla la subsecuenciasubsecuencia S.S.

�� Un Un patrónpatrón secuencialsecuencial eses unauna subsecuenciasubsecuencia frecuentefrecuente�� Un Un patrónpatrón secuencialsecuencial eses unauna subsecuenciasubsecuencia frecuentefrecuente((estoesto eses, , unauna subsecuenciasubsecuencia con con soportesoporte ≥ ≥ MinSuppMinSupp))

66secuencia

E1E2

E1E3

E2E3E4

E2

Elemento(transacción)

Evento(item)

Análisis de secuenciasAnálisis de secuencias

Object Timestamp Events

A 10 2, 3, 5

A 20 6, 1

A 23 1

77

A 23 1

B 11 4, 5, 6

B 17 2

B 21 7, 8, 1, 2

B 28 1, 6

C 14 1, 7, 8

Base de Base de datosdatos

de de secuenciassecuencias

Patrones secuencialesPatrones secuenciales

ProblemaProblema

Extracción de patrones secuencialesExtracción de patrones secuenciales

DadosDadosDadosDados

�� una base de datos de secuencias yuna base de datos de secuencias y

�� un umbral de soporte mínimo un umbral de soporte mínimo MinSuppMinSupp,,

encontrar todas las encontrar todas las subsecuenciassubsecuencias frecuentesfrecuentes(esto es, las (esto es, las subsecuenciassubsecuencias con soporte con soporte ≥ ≥ MinSuppMinSupp).).

88

Patrones secuencialesPatrones secuenciales

MinSupp = 50%

Ejemplos de subsecuencias frecuentes:

< {1,2} > s=60%< {2,3} > s=60%

Object Timestamp Events

A 1 1,2,4

A 2 2,3

A 3 5

B 1 1,2

B 2 2,3,4

C 1 1, 2

99

< {2,3} > s=60%< {2,4}> s=80%< {3} {5}> s=80%< {1} {2} > s=80%< {2} {2} > s=60%< {1} {2,3} > s=60%< {2} {2,3} > s=60%< {1,2} {2,3} > s=60%

C 1 1, 2

C 2 2,3,4

C 3 2,4,5

D 1 2

D 2 3, 4

D 3 4, 5

E 1 1, 3

E 2 2, 4, 5

Patrones secuencialesPatrones secuenciales

¿Cuántas k¿Cuántas k--subsecuenciassubsecuencias existen en una nexisten en una n--secuencia?secuencia?

<{a b} {c d e} {f} {g h <{a b} {c d e} {f} {g h ii}>}> n = 9n = 9

Y _ _ Y Y _ _ Y YY _ _ _ Y_ _ _ Y k = 4k = 4

<{a} {d e} {<{a} {d e} {ii}> }>

1010

1264

9=

=

k

n

Patrones secuencialesPatrones secuenciales

Dados n Dados n eventoseventos (items): i(items): i11, i, i22, i, i33, …, i, …, inn

�� nn 11--subsecuencias subsecuencias candidatascandidatas<{i<{i11}>, <{i}>, <{i22}>, <{i}>, <{i33}>, …, <{i}>, …, <{inn}>}>

�� n(nn(n--1)/2 + n1)/2 + n22 22--subsecuencias subsecuencias candidatascandidatas::<{i<{i11, i, i22}>, <{i}>, <{i11, i, i33}>, …, <{i}>, …, <{i11} {i} {i11}>, <{i}>, <{i11} {i} {i33}>, …, <{i}>, …, <{inn--11} {i} {inn}>}>

�� ¿?¿? 33--subsecuencias subsecuencias candidatascandidatas::<{i<{i11, i, i2 2 , i, i33}>, <{i}>, <{i11, i, i2 2 , i, i44}>, …, <{i}>, …, <{i11, i, i22} {i} {i11}>, <{i}>, <{i11, i, i22} {i} {i22}>, …,}>, …,

<{i<{i11} {i} {i1 1 , i, i22}>, <{i}>, <{i11} {i} {i1 1 , i, i33}>, …, <{i}>, …, <{i11} {i} {i11} {i} {i11}>, <{i}>, <{i11} {i} {i11} {i} {i22}>, }>, ……

1111

GSP GSP [[GeneralizedGeneralized SequentialSequential PatternsPatterns]]

Fase 1:Fase 1:Recorrer la base de datos para obtener Recorrer la base de datos para obtener todas las secuencias frecuentes de 1 elemento.todas las secuencias frecuentes de 1 elemento.

Fase 2:Fase 2:

Mientras se encuentren nuevas secuencias frecuentes:Mientras se encuentren nuevas secuencias frecuentes:Mientras se encuentren nuevas secuencias frecuentes:Mientras se encuentren nuevas secuencias frecuentes:

�� Generación:Generación: Generar kGenerar k--secuencias candidatas secuencias candidatas a partir de las (ka partir de las (k--1)1)--secuencias frecuentes.secuencias frecuentes.

�� Poda:Poda: Podar kPodar k--secuencias candidatas que secuencias candidatas que contengan alguna (kcontengan alguna (k--1)1)--secuencia no frecuente.secuencia no frecuente.

�� Conteo:Conteo: Recorrer nuevamente el conjunto de Recorrer nuevamente el conjunto de datos para obtener el soporte de las candidatas.datos para obtener el soporte de las candidatas.

�� Eliminación:Eliminación: Eliminar las kEliminar las k--secuencias candidatas secuencias candidatas cuyo soporte real esté por debajo de cuyo soporte real esté por debajo de MinSuppMinSupp.. 1212

GSP GSP [[GeneralizedGeneralized SequentialSequential PatternsPatterns]]

Generación de candidatosGeneración de candidatos

Caso base (k=2)Caso base (k=2)

La combinación de dos 1La combinación de dos 1--secuenciassecuencias <{i<{i11}> e <{i}> e <{i22}> }> produce dos 2produce dos 2--secuencias secuencias candidatascandidatasproduce dos 2produce dos 2--secuencias secuencias candidatascandidatas

<{i<{i11} {i} {i22}> & <{i}> & <{i1 1 ii22}>}>

1313

GSP GSP [[GeneralizedGeneralized SequentialSequential PatternsPatterns]]

Generación de candidatosGeneración de candidatos

Caso general (k>2)Caso general (k>2)

Dos (kDos (k--1)1)--secuencias frecuentes, wsecuencias frecuentes, w11 y wy w22, se , se combinan para producir una kcombinan para producir una k--secuencia candidata secuencia candidata combinan para producir una kcombinan para producir una k--secuencia candidata secuencia candidata si la si la subsecuenciasubsecuencia obtenida al eliminar el primer obtenida al eliminar el primer evento de wevento de w11 es la misma que la es la misma que la subsecuenciasubsecuenciaobtenida al eliminar el último evento de wobtenida al eliminar el último evento de w22

La kLa k--secuenciasecuencia candidatacandidata vendrávendrá dada dada porpor la la extensiónextensiónde de ww1 1 con el con el últimoúltimo eventoevento de de ww22..

�� Si los dos Si los dos últimosúltimos eventoseventos de de ww2 2 correspondencorresponden al al mismomismo elementoelemento, el , el últimoúltimo eventoevento de de ww2 2 pasapasa a a formarformar parte del parte del últimoúltimo elementoelemento de de ww11

1414

GSP GSP [[GeneralizedGeneralized SequentialSequential PatternsPatterns]]

Generación de candidatosGeneración de candidatos

EjemplosEjemplos

�� ww11=<{1} {2 3} {4}> y w=<{1} {2 3} {4}> y w22 =<{2 3} {4 5}> =<{2 3} {4 5}> producen la secuencia candidata < {1} {2 3} {4 5}>producen la secuencia candidata < {1} {2 3} {4 5}>

�� ww11=<{1} {2 3} {4}> y w=<{1} {2 3} {4}> y w22 =<{2 3} {4} {5}> =<{2 3} {4} {5}> producen la secuencia candidata < {1} {2 3} {4} {5}>producen la secuencia candidata < {1} {2 3} {4} {5}>

�� ww11 =<{1} {2 6} {4}> y w=<{1} {2 6} {4}> y w22 =<{1} {2} {4 5}> =<{1} {2} {4 5}> no es necesario combinarlas para producir la no es necesario combinarlas para producir la secuencia candidata < {1} {2 6} {4 5}>, ya que, si secuencia candidata < {1} {2 6} {4 5}>, ya que, si dicha secuencia es una posible candidata, se obtendrá dicha secuencia es una posible candidata, se obtendrá combinando wcombinando w1 1 con < {1} {2 6} {5}>con < {1} {2 6} {5}> 1515

GSP GSP [[GeneralizedGeneralized SequentialSequential PatternsPatterns]]

1616

GSP GSP [[GeneralizedGeneralized SequentialSequential PatternsPatterns]]

�� Candidatos iniciales: “Candidatos iniciales: “singletonsingleton sequencessequences”:”:<a>, <b>, <c>, <d>, <e>, <f>, <g>, <h><a>, <b>, <c>, <d>, <e>, <f>, <g>, <h>

�� Recorrido inicial de la base de datos: Recorrido inicial de la base de datos: Conteo del soporte de cada candidatoConteo del soporte de cada candidatoConteo del soporte de cada candidatoConteo del soporte de cada candidato

1717

<a(bd)bcb(ade)>50

<(be)(ce)d>40

<(ah)(bf)abf>30

<(bf)(ce)b(fg)>20

<(bd)cb(ac)>10

SequenceSeq. ID Cand Supp

<a> 3

<b> 5

<c> 4

<d> 3

<e> 3

<f> 2

<g> 1

<h> 1MinSupp =2

GSP GSP [[GeneralizedGeneralized SequentialSequential PatternsPatterns]]

51 candidatos51 candidatos

de tamaño 2de tamaño 2

cumplen lacumplen la

propiedad propiedad AprioriApriori

<a> <b> <c> <d> <e> <f>

<a> <aa> <ab> <ac> <ad> <ae> <af>

<b> <ba> <bb> <bc> <bd> <be> <bf>

<c> <ca> <cb> <cc> <cd> <ce> <cf>

<d> <da> <db> <dc> <dd> <de> <df>

<e> <ea> <eb> <ec> <ed> <ee> <ef>propiedad propiedad AprioriApriori

1818

<e> <ea> <eb> <ec> <ed> <ee> <ef>

<f> <fa> <fb> <fc> <fd> <fe> <ff>

<a> <b> <c> <d> <e> <f>

<a> <(ab)> <(ac)> <(ad)> <(ae)> <(af)>

<b> <(bc)> <(bd)> <(be)> <(bf)>

<c> <(cd)> <(ce)> <(cf)>

<d> <(de)> <(df)>

<e> <(ef)>

<f>

Se poda el 44.57% de las 92 secuencias posibles(8*8+8*7/2)

GSP GSP [[GeneralizedGeneralized SequentialSequential PatternsPatterns]]

<abb> <aab> <aba> <baa> <bab> …

<abba> <(bd)bc> …

<(bd)cba>

2nd scan:

3rd scan: 46 cand. 19 length-3 seq. pat.

4th scan: 8 cand. 6 length-4 seq. pat.

5th scan: 1 cand. 1 length-5 seq. pat.

Candidatos por debajo del umbral de soporte mínimo

Candidatos que no aparecenen la base de datos

1919<a(bd)bcb(ade)>50

<(be)(ce)d>40

<(ah)(bf)abf>30

<(bf)(ce)b(fg)>20

<(bd)cb(ac)>10

SequenceSeq. ID

MinSupp =2

<a> <b> <c> <d> <e> <f> <g> <h>

<aa> <ab> … <af> <ba> <bb> … <ff> <(ab)> … <(ef)>

1st scan: 8 cand. 6 length-1 seq. pat.

2nd scan: 51 cand. 19 length-2 seq. pat.

SPADESPADE

Sequential PAttern Discovery using Equivalent Class [Zaki]

� Método de identificación de secuencias frecuentes

basado en una representación vertical (tipo Eclat).basado en una representación vertical (tipo Eclat).

� La base de datos de secuencias se transforma en un

conjunto enorme de items <SID, EID>.

� Las subsecuencias van creciendo usando el

algoritmo de generación de candidatos de Apriori.

2020

SPADESPADE

2121

GSP & SPADEGSP & SPADE

LimitacionesLimitaciones

�� Se Se recorrerecorre la base de la base de datosdatos variasvarias vecesveces..

�� BúsquedaBúsqueda en en anchuraanchura [Breadth[Breadth--first search].first search].

�� Los Los patronespatrones largos se largos se construyenconstruyen a a partirpartir de de patronespatrones másmás cortoscortos, lo , lo queque obligaobliga a a considerarconsiderar un un patronespatrones másmás cortoscortos, lo , lo queque obligaobliga a a considerarconsiderar un un númeronúmero exponencialexponencial de de candidatoscandidatos..

�� Se genera un Se genera un conjuntoconjunto enormeenorme de de candidatoscandidatos: : 1000 1000 patronespatrones de de tamañotamaño 1 1 dandan lugarlugar a 1.5M a 1.5M patronespatrones de de tamañotamaño 2.2.

�� DescubrirDescubrir unauna secuenciasecuencia de de tamañotamaño 100 100 necesitanecesitaconsiderarconsiderar 10103030 subsecuenciassubsecuencias

2222

500,499,12

999100010001000 =

×+×

30100100

1

1012100

≈−=

∑=i i

PrefixSpanPrefixSpan

Mining Sequential Patterns by Prefix ProjectionsMining Sequential Patterns by Prefix Projections

Prefijos de una secuenciaPrefijos de una secuencia

SecuenciaSecuencia <a(<a(abcabc)()(acac)d()d(cfcf)>)>SecuenciaSecuencia <a(<a(abcabc)()(acac)d()d(cfcf)>)>

Prefijos Prefijos <a>, <<a>, <aaaa>, <a(ab)>, <a(>, <a(ab)>, <a(abcabc)>…)>…

2323

Prefix Suffix (Prefix-Based Projection)

<a> <(abc)(ac)d(cf)>

<aa> <(_bc)(ac)d(cf)>

<ab> <(_c)(ac)d(cf)>

PrefixSpanPrefixSpan

EstrategiaEstrategia

Paso 1: Paso 1: EncontrarEncontrar patronespatrones secuencialessecuenciales de de longitudlongitud 1.1.

<a>, <b>, <c>, <d>, <e>, <f><a>, <b>, <c>, <d>, <e>, <f>

Paso 2: Paso 2: DividirDividir el el espacioespacio de de búsquedabúsqueda. .

El El conjuntoconjunto completocompleto de de patronespatrones secuencialessecuenciales se se puedepuede dividirdividir en 6 en 6 subconjuntossubconjuntos::

�� Los Los patronespatrones queque tienentienen comocomo prefijoprefijo <a><a>

�� Los Los patronespatrones queque tienentienen comocomo prefijoprefijo <b><b>

�� ……

�� Los Los patronespatrones queque tienentienen comocomo prefijoprefijo <f><f>2424

PrefixSpanPrefixSpan

�� Para encontrar los patrones con prefijo <a> sólo hay Para encontrar los patrones con prefijo <a> sólo hay que considerar las proyecciones con respecto a <a>que considerar las proyecciones con respecto a <a>

Base de datos proyectada sobre <a>:Base de datos proyectada sobre <a>:

<(<(abcabc)()(acac)d()d(cfcf)>)>

SID Secuencia

10 <a(abc)(ac)d(cf)><(<(abcabc)()(acac)d()d(cfcf)>)>

<(_d)c(<(_d)c(bcbc)()(aeae)>)>

<(_b)(<(_b)(dfdf))cbcb>>

<(_f)<(_f)cbccbc>>

�� A continuación, se identifican los patrones de longitud A continuación, se identifican los patrones de longitud 2 que tienen <a> como prefijo:2 que tienen <a> como prefijo:

<<aaaa>, <>, <abab>, <(>, <(abab)>, <ac>, <ad>, <)>, <ac>, <ad>, <afaf>>

2525

20 <(ad)c(bc)(ae)>

30 <(ef)(ab)(df)cb>

40 <eg(af)cbc>

PrefixSpanPrefixSpan

SID Secuencia

10 <a(abc)(ac)d(cf)>

20 <(ad)c(bc)(ae)>

30 <(ef)(ab)(df)cb>

40 <eg(af)cbc>

Patrones de secuenciales de longitud 1<a>, <b>, <c>, <d>, <e>, <f>

Prefijo <a>Prefijo <b>

Prefijos <c>, …, <f>

2626

<a>-projected database<(abc)(ac)d(cf)><(_d)c(bc)(ae)><(_b)(df)cb><(_f)cbc>

Patrones secuencialesde longitud 2 con prefijos<aa>, <ab>, <(ab)>,<ac>, <ad>, <af>

Prefijo <aa>

<aa>-proj. db … <af>-proj. db

Prefijo <af>

<b>-projected database …

Prefijo <b>

… …

PrefixSpanPrefixSpan

Ventajas de Ventajas de PrefixSpanPrefixSpan

�� No se generan secuencias candidatas.No se generan secuencias candidatas.

�� Las proyecciones son cada vez más pequeñas.Las proyecciones son cada vez más pequeñas.�� Las proyecciones son cada vez más pequeñas.Las proyecciones son cada vez más pequeñas.

�� PseudoproyeccionesPseudoproyecciones(punteros en memoria):(punteros en memoria):

2727

s=<a(abc)(ac)d(cf)>

<(abc)(ac)d(cf)>

<(_c)(ac)d(cf)>

<a>

<ab>

s|<a>: ( , 2)

s|<ab>: ( , 4)

PrefixSpanPrefixSpan

PseudoproyeccionesPseudoproyecciones

2828

Performance comparison: with pseudo-projection vs. without pseudo-projection

PrefixSpanPrefixSpan

2929

Performance comparison on data set C10T8S8I8

Performance comparison on Gazelle data set

CloSpanCloSpan

MiningMining ClosedClosed SequentialSequential PatternsPatterns

�� Un patrón secuencial s es cerrado si no existe otro Un patrón secuencial s es cerrado si no existe otro patrón s’ con el mismo soporte tal que s ⊂ s’.

� Identificar directamente patrones cerrados permite � Identificar directamente patrones cerrados permite reducir el número de candidatos considerados.

3030

CloSpanCloSpan

3131

RestriccionesRestricciones

El uso de restricciones permite optimizar la exploración El uso de restricciones permite optimizar la exploración del espacio de patrones candidatos.del espacio de patrones candidatos.

Clasificación de las restriccionesClasificación de las restricciones

AntiAnti--monótonasmonótonas: : value_sumvalue_sum(S) < 150, min(S) > 10(S) < 150, min(S) > 10�� AntiAnti--monótonasmonótonas: : value_sumvalue_sum(S) < 150, min(S) > 10(S) < 150, min(S) > 10

�� MonótonasMonótonas: count (S) > 5, : count (S) > 5, S S ⊇⊇ {PC, {PC, digital_cameradigital_camera}}

�� SucintasSucintas:: length(S) length(S) ≥≥ 10, S 10, S ∈∈ {Pentium, MS/Office} {Pentium, MS/Office}

�� Convertibles:Convertibles: value_avgvalue_avg(S) < 25, (S) < 25, profit_sumprofit_sum (S) > (S) > 160, max(S)/160, max(S)/avgavg(S) < 2, median(S) (S) < 2, median(S) –– min(S) > 5min(S) > 5

�� InconvertiblesInconvertibles:: avgavg(S) (S) –– median(S) = 0 median(S) = 0

3232

RestriccionesRestricciones

{A B} {C} {D E}

<= ms

<= xg >ng

xg: max-gap

ng: min-gap

ms: maximum span

3333

Secuencia de datos Subsecuencia ¿Incluida?

< {2,4} {3,5,6} {4,7} {4,5} {8} > < {6} {5} > Sí

< {1} {2} {3} {4} {5}> < {1} {4} > No

< {1} {2,3} {3,4} {4,5}> < {2} {3} {5} > Sí

< {1,2} {3} {2,3} {3,4} {2,4} {4,5}> < {1,2} {5} > No

xg = 2, ng = 0, ms = 4

RestriccionesRestricciones

Identificación de patrones secuencialesIdentificación de patrones secuenciales

con restricciones temporalescon restricciones temporales

Estrategia 1Estrategia 1

� Identificar patrones ignorando las restricciones.� Identificar patrones ignorando las restricciones.

� Postprocesar los patrones identificados.

Estrategia 2

� Modificar el algoritmo (p.ej. GSP) para podar los candidatos que no satisfacen las restricciones.

¡OJO! Hay que comprobar la propiedad Apriori…3434

RestriccionesRestricciones

Object Timestamp Events

A 1 1,2,4

A 2 2,3

A 3 5

B 1 1,2

B 2 2,3,4

xg = 1 (max-gap)

ng = 0 (min-gap)

ms = 5 (maximum span)

MinSupp = 60%

3535

B 2 2,3,4

C 1 1, 2

C 2 2,3,4

C 3 2,4,5

D 1 2

D 2 3, 4

D 3 4, 5

E 1 1, 3

E 2 2, 4, 5

<{2} {5}> support = 40%

<{2} {3} {5}> support = 60% !!!

La restricción max-gap es la que causa el problema(no posee la propiedad Apriori).

RestriccionesRestricciones

Modificación de la etapa Modificación de la etapa

de generación de candidatosde generación de candidatos

� Sin la restricción max-gap: Una k-secuencia candidata se elimina si al menos una de sus (k-1)-subsecuenciasse elimina si al menos una de sus (k-1)-subsecuenciasno es frecuente.

� Con la restricción max-gap: Una k-secuencia candidata se elimina si al menos una de sus (k-1)-subsecuenciascontiguas no es frecuente.

3636

RestriccionesRestricciones

Ejemplo: Ejemplo: SubsecuenciasSubsecuencias contiguascontiguas

s s = < {1} {2} > = < {1} {2} >

�� s s eses unauna subsecuenciasubsecuencia contiguacontigua dede< < {1} {2 3{1} {2 3}> }> < < {1} {2 3{1} {2 3}> }> < < {1 2} {2} {3{1 2} {2} {3}>}>< < {3 4} {1 2} {2 3} {4} > {3 4} {1 2} {2 3} {4} >

�� s no s no eses unauna subsecuenciasubsecuencia contiguacontigua dede< < {1} {3} {2}> {1} {3} {2}> < < {2} {1} {3} {2}>{2} {1} {3} {2}>

3737

RestriccionesRestricciones

{A B} {C} {D E}

<= ms

<= xg >ng <= ws

xg: max-gap

ng: min-gap

ws: window size

ms: maximum span

3838

Secuencia de datos Subsecuencia ¿Incluida?

< {2,4} {3,5,6} {4,7} {4,6} {8} > < {3} {5} > No

< {1} {2} {3} {4} {5}> < {1,2} {3} > Sí

< {1,2} {2,3} {3,4} {4,5}> < {1,2} {3,4} > Sí

xg = 2, ng = 0, ws = 1, ms= 5

RestriccionesRestricciones

Modificación de la faseModificación de la fase

de conteo del soportede conteo del soporte

Dado un patrón candidato <{a, c}>, contribuirá al Dado un patrón candidato <{a, c}>, contribuirá al soporte del candidato cualquier secuencia que contengasoporte del candidato cualquier secuencia que contengasoporte del candidato cualquier secuencia que contengasoporte del candidato cualquier secuencia que contenga

<… <… {a c} … >,{a c} … >,

<… <… {a} … {c}…> {a} … {c}…> con timecon time({c}) ({c}) –– time({a}) time({a}) ≤≤ wsws

<… {<… {c} … {a} …> c} … {a} …> con timecon time({a}) ({a}) –– time({c}) time({c}) ≤≤ wsws

3939

RestriccionesRestricciones

Distintas formas de calcular el soporteDistintas formas de calcular el soporte

4040

xg = 2 (max-gap)

ng = 0 (min-gap)

ws = 0 (window size)

ms = 2 (maximum span)

SSMinerSSMiner [Similar [Similar SequenceSequence MinerMiner]]

IdeaIdea

�� Generación de candidatos: Secuencias candidatas de Generación de candidatos: Secuencias candidatas de k+1 elementos a partir de secuencias frecuentes de k k+1 elementos a partir de secuencias frecuentes de k elementos con kelementos con k--1 elementos en común.1 elementos en común.elementos con kelementos con k--1 elementos en común.1 elementos en común.

�� Conteo del soporte: Listas de ocurrencias de cada Conteo del soporte: Listas de ocurrencias de cada secuencia frecuente en las que se preserva secuencia frecuente en las que se preserva información acerca de la similitud entre patrones.información acerca de la similitud entre patrones.

NOTA: Sólo se lee el conjunto de datos NOTA: Sólo se lee el conjunto de datos 2 veces2 veces. .

4141

SSMinerSSMiner [Similar [Similar SequenceSequence MinerMiner]]

AlgoritmoAlgoritmo

4242

SSMinerSSMiner [Similar [Similar SequenceSequence MinerMiner]]

Listas de ocurrenciasListas de ocurrencias

TuplasTuplas (t, m, p, d, (t, m, p, d, ΘΘ) asociadas a cada patrón) asociadas a cada patrón

�� t: Identificador de la secuencia.t: Identificador de la secuencia.

�� m: elementos de la secuencia que corresponden a los m: elementos de la secuencia que corresponden a los �� m: elementos de la secuencia que corresponden a los m: elementos de la secuencia que corresponden a los (k(k--1) elementos del prefijo del patrón.1) elementos del prefijo del patrón.

�� p: posición del último elemento en el patrón.p: posición del último elemento en el patrón.

�� d: parámetro utilizado para garantizar que los d: parámetro utilizado para garantizar que los elementos del patrón son contiguos en la secuencia. elementos del patrón son contiguos en la secuencia.

�� ΘΘ indica la similitud entre la ocurrencia y el patrón.indica la similitud entre la ocurrencia y el patrón.4343

SSMinerSSMiner [Similar [Similar SequenceSequence MinerMiner]]

Listas de ocurrenciasListas de ocurrencias

Reunión de listas de ocurrenciasReunión de listas de ocurrencias

4444

SSMinerSSMiner [Similar [Similar SequenceSequence MinerMiner]]

EficienciaEficiencia

O(LK

* n * (S - K + 1)2)

L Número de items frecuentesL Número de items frecuentes

K Tamaño máximo de los patrones

n Número de secuencias

S Longitud de las secuencias

� Lineal con respecto al número de secuencias.

� Cuadrático con respecto a su longitud.

� Proporcional al número de patrones considerados.4545

SSMinerSSMiner [Similar [Similar SequenceSequence MinerMiner]]

Aplicación: Patrones musicalesAplicación: Patrones musicales

�� Una melodía puede verse como una secuencia de Una melodía puede verse como una secuencia de elementos musicales.elementos musicales.

�� “Motivo” [“Motivo” [motifmotif]: ]: Elemento melódico más pequeño con significado.Elemento melódico más pequeño con significado.

�� La identificación de “motivos” frecuentes puede servir…La identificación de “motivos” frecuentes puede servir…… para descubrir automáticamente el estribillo.… para descubrir automáticamente el estribillo.… para crear miniaturas [audio… para crear miniaturas [audio--thumbnailingthumbnailing].].… para indexar grandes bases de datos de canciones.… para indexar grandes bases de datos de canciones.

4646

SSMinerSSMiner [Similar [Similar SequenceSequence MinerMiner]]

EjemploEjemplo

SecuenciaSecuenciaG4 G4 A4 G4 E4 D5 E5 D5 B4 A4 G4 E4 D5 E5 D5 B4 G4 A4 G4 A4 G4 E4 A4 G4 B4 G4 A4 G4 E4G4 E4 A4 G4 B4 G4 A4 G4 E4 4747

SSMinerSSMiner [Similar [Similar SequenceSequence MinerMiner]]

EjemploEjemplo

SecuenciaSecuenciaG4 A4 G4 E4 D5 E5 D5 B4 G4 A4 G4 E4 A4 G4 B4 G4 A4 G4 E4G4 A4 G4 E4 D5 E5 D5 B4 G4 A4 G4 E4 A4 G4 B4 G4 A4 G4 E4 4848

SSMinerSSMiner [Similar [Similar SequenceSequence MinerMiner]]

Aplicación: Patrones musicalesAplicación: Patrones musicales

4949

ExactPattern

Similar Pattern

SSMinerSSMiner [Similar [Similar SequenceSequence MinerMiner]]

Aplicación: Patrones musicalesAplicación: Patrones musicales

10000

12000

14000

5050

0

2000

4000

6000

8000

<100 100-200 200-300 300-400 >500

Tim

e (m

s)

Number of notes

pitch-duration

pitch

transposition-duration

transposition

AlgoritmosAlgoritmos

Derivados de Derivados de AprioriApriori Derivados de FPDerivados de FP--GrowthGrowth

Algoritmos paralelosAlgoritmos paralelos

5151

BibliografíaBibliografía

�� CharuCharu CC. . AggarwalAggarwal & & JiaweiJiawei Han(Han(editorseditors):):FrequentFrequent PatternPattern MiningMining..SpringerSpringer, 2014., 2014.ISBN 3319078208.ISBN 3319078208.

5252

�� PangPang--NingNing Tan, Tan, Michael Michael SteinbachSteinbach& & VipinVipin KumarKumar::IntroductionIntroduction toto Data Data MiningMiningAddisonAddison--WesleyWesley, 2006. , 2006.

BibliografíaBibliografía

AddisonAddison--WesleyWesley, 2006. , 2006. ISBN 0321321367 ISBN 0321321367 [capítulos 6&7][capítulos 6&7]

�� JiaweiJiawei Han Han & & MichelineMicheline KamberKamber: : Data Data MiningMining: : ConceptsConcepts and and TechniquesTechniquesMorgan Morgan KaufmannKaufmann, 2006., 2006.ISBN 1558609016 ISBN 1558609016 [capítulo 5][capítulo 5] 5353

Bibliografía Bibliografía –– Algoritmos Algoritmos

Algoritmo original (tipo Algoritmo original (tipo AprioriApriori))�� RakeshRakesh AgrawalAgrawal & & RamakrishnanRamakrishnan SrikantSrikant: : MiningMining SequentialSequential PatternsPatterns. In . In ProceedingsProceedings of of

thethe EleventhEleventh International International ConferenceConference onon Data Data EngineeringEngineering (ICDE '95), pp. 3(ICDE '95), pp. 3--14. 14. ISBN 0ISBN 0--81868186--69106910--1.1.

GSP [GSP [GeneralizedGeneralized SequentialSequential PatternsPatterns]]�� RamakrishnanRamakrishnan SrikantSrikant & & RakeshRakesh AgrawalAgrawal: : MiningMining SequentialSequential PatternsPatterns: : GeneralizationsGeneralizations

and Performance and Performance ImprovementsImprovements. In . In ProceedingsProceedings of of thethe 5th International 5th International ConferenceConference ononand Performance and Performance ImprovementsImprovements. In . In ProceedingsProceedings of of thethe 5th International 5th International ConferenceConference ononExtendingExtending DatabaseDatabase TechnologyTechnology: : AdvancesAdvances in in DatabaseDatabase TechnologyTechnology (EDBT '96), pp. 3(EDBT '96), pp. 3--17. 17. ISBN 3ISBN 3--540540--6105761057--X.X.

SPADE [SPADE [Sequential Sequential PAtternPAttern Discovery using Equivalent ClassDiscovery using Equivalent Class]]�� Mohammed J. Mohammed J. ZakiZaki: : SPADE: an efficient algorithm for mining frequent sequencesSPADE: an efficient algorithm for mining frequent sequences. .

Machine Learning 42(1/2):31Machine Learning 42(1/2):31--60, January 2001. DOI 10.1023/A:1007652502315 60, January 2001. DOI 10.1023/A:1007652502315

SSMinerSSMiner [Similar Sequence Miner][Similar Sequence Miner]�� Aída Jiménez, Miguel MolinaAída Jiménez, Miguel Molina--Solana, Fernando Berzal & Waldo Fajardo: Solana, Fernando Berzal & Waldo Fajardo: MiningMining transposedtransposed

motifsmotifs in in musicmusic. . JournalJournal of of IntelligentIntelligent InformationInformation SystensSystens 36(1):9936(1):99--115, 115, FebruaryFebruary 2011. 2011. DOI 10.1007/s10844DOI 10.1007/s10844--010010--01220122--77

5454

Bibliografía Bibliografía –– Algoritmos Algoritmos

FreeSpanFreeSpan

�� JiaweiJiawei Han, Han, JianJian PeiPei, , BehzadBehzad MortazaviMortazavi--AslAsl, , QimingQiming ChenChen, , UmeshwarUmeshwar DayalDayal & & MeiMei--ChunChun HsuHsu: :

FreeSpanFreeSpan: : FrequentFrequent patternpattern--projectedprojected sequentialsequential patternpattern miningmining. . ProceedingsProceedings of of thethe

6th ACM SIGKDD International 6th ACM SIGKDD International ConferenceConference onon KnowledgeKnowledge discoverydiscovery and Data and Data MiningMining

(KDD '00), pp. 355(KDD '00), pp. 355--359. DOI 10.1145/347090.347167.359. DOI 10.1145/347090.347167.

PrefixSpanPrefixSpan

�� JianJian PeiPei, , JiaweiJiawei Han, Han, BehzadBehzad MortazaviMortazavi--AslAsl, Helen Pinto, , Helen Pinto, QimingQiming ChenChen, , UmeshwarUmeshwar DayalDayal & & �� JianJian PeiPei, , JiaweiJiawei Han, Han, BehzadBehzad MortazaviMortazavi--AslAsl, Helen Pinto, , Helen Pinto, QimingQiming ChenChen, , UmeshwarUmeshwar DayalDayal & &

MeichunMeichun HsuHsu: : PrefixSpanPrefixSpan: : MiningMining SequentialSequential PatternsPatterns byby PrefixPrefix--ProjectedProjected GrowthGrowth. .

ProceedingsProceedings of of thethe 17th International 17th International ConferenceConference onon Data Data EngineeringEngineering (ICDE’2001), pp. 215(ICDE’2001), pp. 215--

224. DOI 10.1109/ICDE.2001.914830224. DOI 10.1109/ICDE.2001.914830

�� JianJian PeiPei, , JiaweiJiawei Han, Han, BehzadBehzad MortazaviMortazavi--AslAsl, , JianyongJianyong Wang, Helen Pinto, Wang, Helen Pinto, QimingQiming ChenChen, ,

UmeshwarUmeshwar DayalDayal & & MeiMei--ChunChun HsuHsu: : MiningMining SequentialSequential PatternsPatterns byby PatternPattern--GrowthGrowth: : TheThe

PrefixSpanPrefixSpan ApproachApproach.. IEEE IEEE TransactionsTransactions onon KnowledgeKnowledge and Data and Data EngineeringEngineering 16(11): 16(11):

14241424--1440, 1440, NovemberNovember 2004. DOI 10.1109/TKDE.2004.772004. DOI 10.1109/TKDE.2004.77

IncSpanIncSpan

�� Hong Cheng, Hong Cheng, XifengXifeng Yan & Yan & JiaweiJiawei Han: Han: IncSpanIncSpan: incremental mining of sequential : incremental mining of sequential

patterns in large databasepatterns in large database. Proceedings of the 10th ACM SIGKDD International . Proceedings of the 10th ACM SIGKDD International

Conference on Knowledge Discovery and Data Mining (KDD '04), pp. 527Conference on Knowledge Discovery and Data Mining (KDD '04), pp. 527--532. 532.

DOI 10.1145/1014052.1014114DOI 10.1145/1014052.10141145555

Bibliografía Bibliografía –– Algoritmos Algoritmos

CloSpanCloSpan

�� XifengXifeng Yan, Yan, JiaweiJiawei Han & Han & RaminRamin AfsharAfshar: : CloSpanCloSpan: Mining closed sequential patterns in : Mining closed sequential patterns in

large databaseslarge databases. SIAM International Conference on Data Mining (SDM’2003). SIAM International Conference on Data Mining (SDM’2003)

BIDE [BIBIDE [BI--Directional Extension]Directional Extension]

�� JianyongJianyong Wang & Wang & JiaweiJiawei Han: Han: BIDE: Efficient Mining of Frequent Closed SequencesBIDE: Efficient Mining of Frequent Closed Sequences. .

Proceedings of the 20th International Conference on Data Engineering (ICDE '04), pp. 79Proceedings of the 20th International Conference on Data Engineering (ICDE '04), pp. 79--90.90.Proceedings of the 20th International Conference on Data Engineering (ICDE '04), pp. 79Proceedings of the 20th International Conference on Data Engineering (ICDE '04), pp. 79--90.90.

DOI 10.1109/ICDE.2004.1319986DOI 10.1109/ICDE.2004.1319986

ParPar--CSP [Parallel CSP [Parallel CloSpanCloSpan with with samPlingsamPling]]

�� ShengnanShengnan Cong, Cong, JiaweiJiawei Han & David Padua: Han & David Padua: Parallel mining of closed sequential Parallel mining of closed sequential

patternspatterns. Proceedings of the 11th ACM SIGKDD international conference on Knowledge . Proceedings of the 11th ACM SIGKDD international conference on Knowledge

Discovery in Data Mining (KDD '05), pp. 562Discovery in Data Mining (KDD '05), pp. 562--567. DOI 10.1145/1081870.1081937 567. DOI 10.1145/1081870.1081937

MGMG--FSM [Mind the Gap FSM [Mind the Gap –– Frequent Sequence Mining]Frequent Sequence Mining]

�� Iris Iris MiliarakiMiliaraki, Klaus , Klaus BerberichBerberich, Rainer , Rainer GemullaGemulla & Spyros & Spyros ZoupanosZoupanos: : Mind the gap: largeMind the gap: large--

scale frequent sequence miningscale frequent sequence mining. Proceedings of the 2013 ACM SIGMOD International . Proceedings of the 2013 ACM SIGMOD International

Conference on Management of Data (SIGMOD '13), pp. 797Conference on Management of Data (SIGMOD '13), pp. 797--808. 808.

DOI 10.1145/2463676.2465285DOI 10.1145/2463676.24652855656

BibliografíaBibliografía

pSPADEpSPADE [[ParallelParallel SPADE]SPADE]

�� Mohammed J. Mohammed J. ZakiZaki: : Parallel sequence mining on sharedParallel sequence mining on shared--memory machinesmemory machines. Journal of . Journal of

Parallel and Distributed Computing 61(3):401Parallel and Distributed Computing 61(3):401--426, March 2001. DOI 10.1006/jpdc.2000.1695 426, March 2001. DOI 10.1006/jpdc.2000.1695

Patrones secuenciales con restriccionesPatrones secuenciales con restricciones

�� MinosMinos N. N. GarofalakisGarofalakis, Rajeev , Rajeev RastogiRastogi & & KyuseokKyuseok Shim: Shim: SPIRIT: Sequential Pattern SPIRIT: Sequential Pattern

Mining with Regular Expression ConstraintsMining with Regular Expression Constraints. Proceedings of the 25th International . Proceedings of the 25th International Mining with Regular Expression ConstraintsMining with Regular Expression Constraints. Proceedings of the 25th International . Proceedings of the 25th International

Conference on Very Large Data Bases (VLDB '99), pp. 223Conference on Very Large Data Bases (VLDB '99), pp. 223--234. ISBN 1234. ISBN 1--5586055860--615615--77

�� JianJian Pei, Pei, JiaweiJiawei Han & Wei Wang: Han & Wei Wang: Mining sequential patterns with constraints in large Mining sequential patterns with constraints in large

databasesdatabases. Proceedings of the 11th International Conference on Information and Knowledge . Proceedings of the 11th International Conference on Information and Knowledge

ManagementManagement (CIKM '02), pp. 18(CIKM '02), pp. 18--25. DOI 10.1145/584792.58479925. DOI 10.1145/584792.584799

SurveySurvey

�� Carl H. Mooney and John F. Carl H. Mooney and John F. RoddickRoddick. 2013. . 2013. Sequential pattern mining Sequential pattern mining ---- approaches approaches

and algorithmsand algorithms.. ACM Computing SurveysACM Computing Surveys 45, 2, Article 19, March 2013, 39 pages. 45, 2, Article 19, March 2013, 39 pages.

DOI 10.1145/2431211.2431218DOI 10.1145/2431211.2431218

5757

Apéndice:Apéndice: EpisodiosEpisodios

PatronesPatrones secuencialessecuenciales alternativosalternativos

EpisodiosEpisodios y y expresionesexpresiones regularesregulares

�� EpisodiosEpisodios secuencialessecuenciales: A : A →→ BB

�� EpisodiosEpisodios paralelosparalelos: A & B: A & B

�� ExpresionesExpresiones regularesregulares: (A|B)C*(D : (A|B)C*(D →→ E)E)

Algoritmos para la identificación de patrones episódicos:Algoritmos para la identificación de patrones episódicos:

�� Variaciones de Variaciones de AprioriApriori/GSP/GSP

�� Extensiones de FPExtensiones de FP--GrowthGrowth: : ““ProjectionProjection--basedbased patternpattern growthgrowth””

5858

Apéndice:Apéndice: EpisodiosEpisodios

En En dominiosdominios en los en los queque se se tienetiene unauna únicaúnica secuenciasecuencia, ,

p.ejp.ej. . MonitorizaciónMonitorización del del tráficotráfico de de unauna redred

ObjetivoObjetivo

Encontrar secuencias frecuentes de eventos, también Encontrar secuencias frecuentes de eventos, también Encontrar secuencias frecuentes de eventos, también Encontrar secuencias frecuentes de eventos, también conocidas como episodios [conocidas como episodios [episodesepisodes].].

5959

E1

E2

E1

E2

E1

E2

E3

E4 E3 E4

E1

E2

E2 E4

E3 E5

E2

E3 E5

E1

E2 E3 E1

Patrón < {E1} {E3} >