Professional Documents
Culture Documents
algoritmos (parte 2)
4
FP-Tree - Observações
5
FP-Tree - Observações
6
FP-Tree - Execução
100 f, a, c, d, g, i, m, p f, c, a, m, p
200 a, b, c, f, l, m, o f, c, a, b, m
300 b, f, h, j, o f, b
400 b, c, k, s, p c, b, p
500 a, f, c, e, l, p, m, n f, c, a, m, p
7
FP-Tree - Execução
root
100 f, a, c, d, g, i, m, p f, c, a, m, p
200 a, b, c, f, l, m, o f, c, a, b, m
300 b, f, h, j, o f, b
400 b, c, k, s, p c, b, p
500 a, f, c, e, l, p, m, n f, c, a, m, p
FP-Tree - Execução
f root
c
a f:1
b
m c:1
p
a:1
TID Itens Itens Freqüentes (Ordenados)
100 f, a, c, d, g, i, m, p f, c, a, m, p
m:1
200 a, b, c, f, l, m, o f, c, a, b, m
300 b, f, h, j, o f, b
400 b, c, k, s, p c, b, p p:1
500 a, f, c, e, l, p, m, n f, c, a, m, p 9
04/02/2018
FP-Tree - Execução
f root
c
a f:2
b
m c:2
p
a:2
TID Itens Itens Freqüentes (Ordenados)
100 f, a, c, d, g, i, m, p f, c, a, m, p b:1
m:1
200 a, b, c, f, l, m, o f, c, a, b, m
300 b, f, h, j, o f, b
m:1
400 b, c, k, s, p c, b, p p:1
500 a, f, c, e, l, p, m, n f, c, a, m, p
04/02/2018
FP-Tree - Execução
f root
c
a f:3
b b:1
m c:2
p
a:2
TID Itens Itens Freqüentes (Ordenados)
100 f, a, c, d, g, i, m, p f, c, a, m, p b:1
m:1
200 a, b, c, f, l, m, o f, c, a, b, m
300 b, f, h, j, o f, b
m:1
400 b, c, k, s, p c, b, p p:1
500 a, f, c, e, l, p, m, n f, c, a, m, p 11
04/02/2018
FP-Tree - Execução
f root
c
f:3 c:1
a
b b:1
m c:2 b:1
p
a:2 p:1
TID Itens Itens Freqüentes (Ordenados)
100 f, a, c, d, g, i, m, p f, c, a, m, p b:1
m:1
200 a, b, c, f, l, m, o f, c, a, b, m
300 b, f, h, j, o f, b
m:1
400 b, c, k, s, p c, b, p p:1
500 a, f, c, e, l, p, m, n f, c, a, m, p 12
04/02/2018
FP-Tree - Execução
f root
c
f:4 c:1
a
b b:1
m c:3 b:1
p
a:3 p:1
TID Itens Itens Freqüentes (Ordenados)
100 f, a, c, d, g, i, m, p f, c, a, m, p b:1
m:2
200 a, b, c, f, l, m, o f, c, a, b, m
300 b, f, h, j, o f, b
m:1
400 b, c, k, s, p c, b, p p:2
500 a, f, c, e, l, p, m, n f, c, a, m, p 13
04/02/2018
FP-Tree - Análise
14
FP-Tree - Análise
15
Seja o seguinte arquivo de dados e a respectiva FP-tree (minsup=2)
null
500 c, e, f
d:1
a:1
d:1
Lista de itens frequentes (minsup=2) TID Itens
100 c, e, f, a, d
f_list = <c:4, e:4, f:4, a:3, d:2>
200 e, a
300 c, e, f
400 c, f, a, d
500 c, e, f
sup(cefad) = 1
c:4 e:1 sup(cfad) = 2 c:2
a:1
f:3 a:1
f:1
d:1
a:1
a:1
d:1
cfad é um frequent closed itemset
Os subconjuntos que contém a mas não d
a-conditional null
FP-tree original
c:4 e:1
e:1 f:1
f-conditional null
FP-tree original
null
c:4
sup(f) = 4
c:4 e:1
TDB|f = <ce, c>
e:3
a:1
sup(cef) = 3
e:3 f:1
sup(cf) = 4
a:1
f:3 cf é frequent closed itemset, pois
sup(f) = sup(cf)
d:1
a:1
cef é frequent closed itemset, pois
não é subconjunto de qquer itemset
d:1 encontrado com suporte idêntico.
Os subconjuntos que contém e mas não f, a nem d
c:4 e:1
TDB|e = <c> c:3
d:1
Os subconjuntos que contém somente c
Mineração de Padrões
– Quais itens são comprados juntos em uma transação?
26
MP-Sequenciais
• Suporte mínimo:
– Relativo a quantidade de clientes em relação ao
número total de clientes
– Diferente do apriori que considera a quantidade total
de transações
• Comparando
– MP:
•Ocorrência do item ÷ número de transações
– MP-Sequencial:
•Número de clientes com a transação ÷ número total de clientes
27
MP-Sequenciais
Problema:
1. Dado uma base de dados D com transações, quais
as associações das transações dos clientes com o
passar do tempo?
28
MP-Sequenciais
• Definições:
– Conjunto de Itens: itens comprados ao mesmo tempo (na
mesma transação)
– Sequência: sequência de conjuntos de itens
– Sequência máxima: Não está contida em nenhuma outra
sequência.
• Exemplos:
– <(3) (4,5) (8)>
– <(3) (4,5) (8)> está contido em <(7) (3,8) (9) (4,5,6) (8)>
– A sequência <(3) (5)> não está contida em <(3,5)>
Problema:
1. Dada uma base de dados D com transações, quais
as associações das transações dos clientes com o
passar do tempo?
2. Dado D, mineração de padrão sequencial é
encontrar as sequências máximas entre todas as
sequências que tem certo suporte mínimo.
3. Ex:
comprador Sequencia Padrões sequenciais
1 (30) (90) (minsup=25%)
2 (10, 20) (30) (40, 60, 70) (30) (90)
3 (30, 50, 70) (30) (40, 70)
4 (30) (40, 70) (90)
5 (90)
30
MP-Sequenciais
Relembrando o suporte
– MP:
Ocorrência do item ÷ número de transações
– MP-Sequencial:
Número de clientes com a transação ÷ número de clientes
31
Fases
Sort
Litemset
Transformação
Sequencia
Maximal
32
Sort
33
Sort
34
Fases
• Sort
• Litemset
• Transformação
• Sequencia
• Maximal
35
Litemset
• Passos:
1. Agrupar dados por ID;
2. Gerar itemsets frequentes;
36
Litemset – Agrupamento
ID Data Itens
comprador
1 25/03/93 30
1 30/03/93 90
2 10/06/93 10, 20
2 15/06/93 30
2 20/06/93 40, 60, 70
3 25/06/93 30, 50, 70
4 25/06/93 30
4 30/06/93 40, 70
4 25/07/93 90
5 12/06/93 90
ID comprador Itens
1 <(30) (90)>
2 <(10, 20) (30) (40, 60, 70)>
3 <(30, 50, 70)>
4 <(30) (40, 70) (90)>
5 <(90)>
37
Litemset – encontrar os conjuntos frequentes
ID comprador Itens
1 <(30) (90)>
2 <(10,20) (30) (40,60, 70)>
3 <(30, 50, 70)>
4 <(30) (40, 70) (90)>
5 <(90)>
38
Fases
• Sort
• Litemset
• Transformação
• Sequencia
• Maximal
39
Transformação
• Passos:
1. Transformação (considera minSup)
2. Mapeamento;
40
Transformação – suporte mínimo
ID comprador Itens
1 <(30) (90)>
2 <(10,20) (30) (40, 60, 70)>
3 <(30, 50, 70)>
4 <(30) (40, 70) (90)>
5 <(90)>
ID comprador Itens
1 <{(30)} {(90)}>
2 <{(30)} {(40), (70), (40 , 70)}>
3 <{(30),(70)}>
4 <{(30)} {(40), (70), (40, 70)} {(90)}>
5 <{(90)}>
Transformação – Mapeamento
ID comprador Itens
1 <{(30)} {(90)}>
2 <{(30)} {(40), (70), (40 70)}>
3 <{(30), (70)}>
4 <{(30)} {(40), (70), (40 70)} {(90)}>
5 <{(90)}>
Mapa
Item Símbolo
(30) 1
ID Itens
(40) 2
comprador
1 〈{1} {5}〉 (70) 3
2 〈{1} {2, 3, 4}〉 (40 70) 4
3 〈{1, 3}〉
4 〈{1} {2, 3, 4} {5}〉 (90) 5
5 〈{5}〉
42
Fases
• Sort
• Litemset
• Transformação
• Sequencia
• Maximal
43
Sequencia
44
Fases
• Sort
• Litemset
• Transformação
• Sequencia
• Maximal
45
Maximal
46
Maximal
l-sequências
〈{1} {5}〉 Mapa
〈{1} {2, 3}〉
Item Símbolo
〈{1}〉
(30) 1
(40) 2
(70) 3
(40 70) 4
l-sequências
〈(30) (90)〉 (90) 5
〈(30) (40 70)〉
47
Exemplo de algoritmo: AprioriAll
48
AprioriAll
Gera os candidatos
da próxima fase
Verifica o suporte
mínimo passando
pelo banco
49
AprioriAll
2-sequencia
〈1 1〉 〈2 5〉 〈4 4〉
1-sequencia Suporte 〈1 2〉 〈3 1〉 〈4 5〉
〈1〉 4 〈1 3〉 〈3 2〉 〈5 1〉
〈2〉 2 〈1 4〉 〈3 3〉 〈5 2〉
〈3〉 4 〈1 5〉 〈3 4〉 〈5 3〉
〈4〉 4 〈2 1〉 〈3 5〉 〈5 4〉
〈5〉 4 〈2 2〉 〈4 1〉 〈5 5〉
〈2 3〉 〈4 2〉
〈2 4〉 〈4 3〉
50
AprioriAll
Gera os candidatos
da próxima fase
Verifica o suporte
mínimo passando
pelo banco
51
AprioriAll
2-sequencia Suporte
Base de Dados 〈1 2〉 2
〈1 3〉 4
〈{1 5} {2} {3} {4}〉
〈1 4〉 3
〈{1} {3} {4} {3 5}〉 〈1 5〉 3
〈2 3〉 2
〈{1} {2} {3} {4}〉
〈2 4〉 2
〈{1} {3} {5}〉 〈3 4〉 3
〈{4} {5}〉 〈3 5〉 2
〈4 5〉 2
52
AprioriAll
Gera os candidatos
da próxima fase
Verifica o suporte
mínimo passando
pelo banco
53
AprioriAll
54
AprioriAll
2-sequencia Suporte
〈1 2〉 2
〈1 3〉 4
〈1 4〉 3
〈1 5〉
〈2 3〉
〈2 4〉
3
2
2
?
〈3 4〉 3
〈3 5〉 2
〈4 5〉 2
55
AprioriAll
2-sequencia Suporte
〈1 2〉 2 〈5 2 1〉
〈1 3〉 4
?
〈1 4〉 3
〈1 5〉 3
〈2 3〉 2
〈2 4〉 2
〈3 4〉 3 〈1 2 5〉
〈3 5〉 2 ?
〈4 5〉 2
56
AprioriAll
São candidatas as 3-sequências em que as 3 sequencias de 2 itens
que a formam são frequentes
Ex: 〈1 2 3〉 é candidata porque 〈1 2〉, 〈1 3〉 e 〈2 3〉 são frequentes
2-sequencia Suporte
〈1 2〉 2 3-sequência
〈1 3〉 4 〈1 2 3〉
〈1 4〉 3 〈1 2 4〉
〈1 5〉 3 〈1 3 4〉
〈2 3〉 2 〈1 3 5〉
〈2 4〉 2 〈1 4 5〉
〈3 4〉 3 〈2 3 4〉
〈3 5〉 2 〈3 4 5〉
〈4 5〉 2
57
AprioriAll
Gera os candidatos
da próxima fase
Verifica o suporte
mínimo passando
pelo banco
58
AprioriAll
Gera os candidatos
da próxima fase
Verifica o suporte
mínimo passando
pelo banco
60
AprioriAll
3-sequencia Suporte
〈1 2 3〉 2 4-sequencia
〈1 2 3 4〉
〈1 2 4〉 2
〈1 3 4〉 3
〈1 3 5〉 2
〈2 3 4〉 2
61
AprioriAll
Gera os candidatos
da próxima fase
Verifica o suporte
mínimo passando
pelo banco
62
AprioriAll
Base de Dados
63
AprioriAll- sequências máximas
L4
〈1 2 3 4〉 Passos forward
C3 Remove as sequências
〈1 2 3〉 que são sub-sequência
〈1 2 4〉 de outra sequência
〈1 3 4〉
〈1 3 5〉
〈2 3 4〉
Máximas
〈1 2 3 4〉
L2
〈1 2〉
〈1 3〉
〈1 4〉
〈1 5〉
〈2 3〉
〈2 4〉
〈3 4〉
〈3 5〉
〈4 5〉
64
AprioriAll
L4
〈1 2 3 4〉 Passos forward
L3 Remove as sequências
〈1 2 3〉 que são sub-sequência
〈1 2 4〉 de outra sequência
〈1 3 4〉
〈1 3 5〉
〈2 3 4〉 Sub-sequências
Máximas
L2 〈1 2 3 4〉
〈1 2〉
〈1 3〉
〈1 4〉
〈1 5〉
〈2 3〉
〈2 4〉
〈3 4〉
〈3 5〉
〈4 5〉
65
AprioriAll
L4
〈1 2 3 4〉 Passos forward
L3 Remove as sequências
〈1 3 5〉 que são sub-sequência
L2 de outra sequência
〈1 2〉
〈1 3〉
〈1 4〉 Sub-sequências
Máximas
〈1 5〉 〈1 2 3 4〉
〈2 3〉
〈1 3 5〉
〈2 4〉
〈3 4〉
〈3 5〉
〈4 5〉
66
AprioriAll
L4
〈1 2 3 4〉 Passos forward
L3 Remove as sequências
〈1 3 5〉 que são sub sequência
L2 de outra sequência
〈4 5〉
Máximas
〈1 2 3 4〉
〈1 3 5〉
〈4 5〉
67
Referências
Jiawei Han, Jian Pei, and Yiwen Yin. Mining Frequent Patterns
without Candidate Generation , ACM-SIGMOD, 2000.