22 pattern mining - sequences - fernando berzalelvex.ugr.es/idbis/dm/slides/22 pattern mining -...
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} >