Associa - PowerPoint PPT Presentation

About This Presentation
Title:

Associa

Description:

Associa o: algoritmos (parte 2) prof. Luis Otavio Alvares INE/UFSC – PowerPoint PPT presentation

Number of Views:123
Avg rating:3.0/5.0
Slides: 60
Provided by: Comput784
Category:

less

Transcript and Presenter's Notes

Title: Associa


1
Associação algoritmos (parte 2)prof. Luis
Otavio AlvaresINE/UFSC

2
CLOSET An Efficient Algorithm for Mining
Frequent Closed Itemsets
  • Utiliza uma representação comprimida do banco de
    dados usando uma FP-tree
  • Depois da construção da FP-tree utiliza a
    abordagem de dividir para conquistar para
    encontrar os conjuntos de itens fechados
    frequentes

3
FP-Tree
  • FP-Tree é uma estrutura de dados compacta para a
    mineração eficiente de padrões freqüentes.
  • Considere o seguinte banco de dados transacional
    (duas primeiras colunas) e suporte 3

TID Itens Itens Freqüentes (Ordenados p/ frequência)
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
4
FP-Tree - Observações
  • 1. Como somente os itens freqüentes serão
    importantes na mineração de padrões freqüentes, é
    necessário realizar uma varredura no banco de
    dados para identificar o conjunto de itens
    freqüentes.
  • 2. O armazenamento do conjunto de itens
    freqüentes em uma estrutura compacta pode evitar
    varreduras repetidas do banco de dados.

5
FP-Tree - Observações
  • 3. Se múltiplas transações compartilham um
    conjunto de itens freqüentes idêntico, eles podem
    ser agrupados em um único conjunto com o número
    de ocorrências registrado em uma variável count.
  • É fácil verificar se dois conjuntos são
    idênticos se os itens freqüentes de todas as
    transações estão ordenados conforme uma ordem
    fixada.

6
FP-Tree - Observações
  • 4. Se duas transações compartilham um prefixo
    comum, conforme uma ordenação dos itens
    freqüentes, as partes compartilhadas podem ser
    agrupadas utilizando uma única estrutura de
    prefixo, desde que a variável count seja
    computada corretamente.
  • Se os itens freqüentes estão ordenados de forma
    decrescente de valores de freqüência, existem
    melhores chances de que mais prefixos possam ser
    compartilhados.

7
FP-Tree - Execução
  • 1. Primeira varredura no banco de dados para
    obter a lista ordenada L dos itens freqüentes
  • L lt(f4), (c4), (a3), (b3), (m3), (p3)gt

TID Itens Itens Freqüentes (Ordenados)
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
8
FP-Tree - Execução
  • 2. Criação da raiz, nomeada com null.

root
TID Itens Itens Freqüentes (Ordenados)
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
9
FP-Tree - Execução
  • 3. Nova varredura do BD, transação por transação

Item Início da lista de nodos
f
c
a
b
m
p
root
f1
c1
a1
TID Itens Itens Freqüentes (Ordenados)
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
m1
p1
10
FP-Tree - Execução
  • 3. Nova varredura do BD, transação por transação

Item Início da lista de nodos
f
c
a
b
m
p
root
f2
c2
a2
TID Itens Itens Freqüentes (Ordenados)
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
b1
m1
m1
p1
11
FP-Tree - Execução
  • 3. Nova varredura do BD, transação por transação

Item Início da lista de nodos
f
c
a
b
m
p
root
f3
b1
c2
a2
TID Itens Itens Freqüentes (Ordenados)
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
b1
m1
m1
p1
12
FP-Tree - Execução
  • 3. Nova varredura do BD, transação por transação

Item Início da lista de nodos
f
c
a
b
m
p
root
c1
f3
b1
b1
c2
a2
p1
TID Itens Itens Freqüentes (Ordenados)
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
b1
m1
m1
p1
13
FP-Tree - Execução
  • 3. Nova varredura do BD, transação por transação

Item Início da lista de nodos
f
c
a
b
m
p
root
c1
f4
b1
b1
c3
a3
p1
TID Itens Itens Freqüentes (Ordenados)
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
b1
m2
m1
p2
14
FP-Tree - Análise
  • 2 varreduras do banco de dados
  • Contar itens frequentes
  • Gerar a FP-tree
  • O custo para inserir uma transação Trans na
    FP-Tree é O(Trans), onde Trans é o número de
    itens freqüentes em Trans.

15
FP-Tree - Análise
  • Dado um banco de dados transacional DB e um
    suporte mínimo minSup, sua FP-Tree correspondente
    contém toda a informação necessária para a
    mineração de padrões freqüentes no DB
    (completeness).
  • Sem considerar a raiz, o tamanho de uma FP-Tree é
    limitado ao total de ocorrências dos itens
    freqüentes no DB e a altura é limitada pelo maior
    número de itens freqüentes em uma transação
    (compactness).
  • Diferentemente do método Apriori-like que pode
    gerar um número exponencial de candidatos no pior
    caso, sob nenhuma circunstância uma FP-Tree com
    um número exponencial de nodos será gerada.

16
Mineração de Padrões Sequenciais
Agrawal, R. Srikant, R., "Mining sequential
patterns". Proceedings of the Eleventh
International Conference on Data Engineering,
pp.3-14, 1995
17
MP-Sequenciais
  • Mineração de Padrões
  • Quais itens são comprados juntos em uma
    transação?
  • Mineração de Padrões Sequenciais
  • Quais itens são comprados em sequência, mas em
    ocasiões diferentes?

18
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

19
MP-Sequenciais
  • Problema
  • Dado uma base de dados D com transações, quais
    as associações das transações dos clientes com o
    passar do tempo?

20
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
  • lt(3) (4,5) (8)gt
  • lt(3) (4,5) (8)gt está contido em lt(7) (3,8) (9)
    (4,5,6) (8)gt
  • A sequência lt(3) (5)gt não está contida em lt(3,5)gt

Notação O que está entre parênteses representa
uma transação e os números representam os itens
comprados. A ordem das transações é da esquerda
para a direita
21
MP-Sequenciais
  • Problema
  • Dada uma base de dados D com transações, quais
    as associações das transações dos clientes com o
    passar do tempo?
  • 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.
  • Ex

Padrões sequenciais (minsup25)
(30) (90)
(30) (40, 70)
comprador Sequencia
1 (30) (90)
2 (10, 20) (30) (40, 60, 70)
3 (30, 50, 70)
4 (30) (40, 70) (90)
5 (90)
22
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

23
Fases
  • Sort
  • Litemset
  • Transformação
  • Sequencia
  • Maximal

24
Sort
  • Ordenar a base de dados por ID do comprador e por
    data da transação
  • Realizado de forma simples por um comando SQL

25
Sort
Arquivo original
Após o sort
ID comprador Data Itens
1 25/03/93 30
1 30/03/93 90
2 10/06/93 10, 20
5 12/06/93 90
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
ID comprador Data Itens
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
26
Fases
  • Sort
  • Litemset
  • Transformação
  • Sequencia
  • Maximal

27
Litemset
  • Encontrar o conjunto de todos os l-itemsets
    (itemsets frequentes).
  • Passos
  • Agrupar dados por ID
  • Gerar itemsets frequentes

28
Litemset Agrupamento
ID comprador Data Itens
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 lt(30) (90)gt
2 lt(10, 20) (30) (40, 60, 70)gt
3 lt(30, 50, 70)gt
4 lt(30) (40, 70) (90)gt
5 lt(90)gt
29
Litemset encontrar os conjuntos frequentes
ID comprador Itens
1 lt(30) (90)gt
2 lt(10,20) (30) (40,60, 70)gt
3 lt(30, 50, 70)gt
4 lt(30) (40, 70) (90)gt
5 lt(90)gt
Considerando minsup 2, os conjuntos frequentes
são (30), (40), (70), (90) e (40,70)
30
Fases
  • Sort
  • Litemset
  • Transformação
  • Sequencia
  • Maximal

31
Transformação
  • Em uma transformação de sequência de um
    comprador
  • Cada transação é substituída pelo conjunto de
    todos os l-itemsets contidos na transação
  • Passos
  • Transformação (considera minSup)
  • Mapeamento

32
Transformação suporte mínimo
ID comprador Itens
1 lt(30) (90)gt
2 lt(10,20) (30) (40, 60, 70)gt
3 lt(30, 50, 70)gt
4 lt(30) (40, 70) (90)gt
5 lt(90)gt
ID comprador Itens
1 lt(30) (90)gt
2 lt(30) (40), (70), (40 , 70)gt
3 lt(30),(70)gt
4 lt(30) (40), (70), (40, 70) (90)gt
5 lt(90)gt
33
Transformação Mapeamento
ID comprador Itens
1 lt(30) (90)gt
2 lt(30) (40), (70), (40 70)gt
3 lt(30), (70)gt
4 lt(30) (40), (70), (40 70) (90)gt
5 lt(90)gt
Mapa Mapa
Item Símbolo
(30) 1
(40) 2
(70) 3
(40 70) 4
(90) 5
ID comprador Itens
1 ?1 5?
2 ?1 2, 3, 4?
3 ?1, 3?
4 ?1 2, 3, 4 5?
5 ?5?
34
Fases
  • Sort
  • Litemset
  • Transformação
  • Sequencia
  • Maximal

35
Sequencia
  • Usa o conjunto de l-itemsets para encontrar as
    sequências máximas desejadas.
  • Conta todas as l-sequencias, incluindo as não
    máximas
  • Ex. AprioriAll

36
Fases
  • Sort
  • Litemset
  • Transformação
  • Sequencia
  • Maximal

37
Maximal
  • Encontrar as sequências máximas entre as
    sequências frequentes.

38
Maximal
l-sequências
?1 5?
?1 2, 3?
?1?
Mapa Mapa
Item Símbolo
(30) 1
(40) 2
(70) 3
(40 70) 4
(90) 5
l-sequências
?(30) (90)?
?(30) (40 70)?
39
Exemplo de algoritmo AprioriAll
  • A cada fase gera as k-sequências frequentes
  • Recebe os dados da fase de transformação para
    inicializar o 1-sequência
  • Base de exemplo (diferente da anterior)
  • Suporte mínimo 2

Base de Dados
?1 5 2 3 4?
?1 3 4 3 5?
?1 2 3 4?
?1 3 5?
?4 5?
1-sequencia Suporte
?1? 4
?2? 2
?3? 4
?4? 4
?5? 4
40
AprioriAll
41
AprioriAll
  • Continuando com o exemplo para gerar
  • 2-sequências frequentes gera os candidatos

2-sequencia 2-sequencia 2-sequencia
?1 1? ?2 5? ?4 4?
?1 2? ?3 1? ?4 5?
?1 3? ?3 2? ?5 1?
?1 4? ?3 3? ?5 2?
?1 5? ?3 4? ?5 3?
?2 1? ?3 5? ?5 4?
?2 2? ?4 1? ?5 5?
?2 3? ?4 2?
?2 4? ?4 3?
1-sequencia Suporte
?1? 4
?2? 2
?3? 4
?4? 4
?5? 4
42
AprioriAll
43
AprioriAll
  • Verifica o suporte mínimo para as 2-sequências
    (Passando pelo banco)
  • Retira as que não possuem o suporte mínimo

2-sequencia Suporte
?1 2? 2
?1 3? 4
?1 4? 3
?1 5? 3
?2 3? 2
?2 4? 2
?3 4? 3
?3 5? 2
?4 5? 2
Base de Dados
?1 5 2 3 4?
?1 3 4 3 5?
?1 2 3 4?
?1 3 5?
?4 5?
44
AprioriAll
45
AprioriAll
  • Continuando com o exemplo para gerar
  • 3-sequências frequentes , inicialmente gera as
    3-sequências candidatas

46
AprioriAll
2-sequencia Suporte
?1 2? 2
?1 3? 4
?1 4? 3
?1 5? 3
?2 3? 2
?2 4? 2
?3 4? 3
?3 5? 2
?4 5? 2
?
47
AprioriAll
?5 2 1? ?
2-sequencia Suporte
?1 2? 2
?1 3? 4
?1 4? 3
?1 5? 3
?2 3? 2
?2 4? 2
?3 4? 3
?3 5? 2
?4 5? 2
?1 2 5? ?
48
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
?1 3? 4
?1 4? 3
?1 5? 3
?2 3? 2
?2 4? 2
?3 4? 3
?3 5? 2
?4 5? 2
3-sequência
?1 2 3?
?1 2 4?
?1 3 4?
?1 3 5?
?1 4 5?
?2 3 4?
?3 4 5?
49
AprioriAll
50
AprioriAll
  • Agora sim! Vamos ao banco!

3-sequencia Suporte
?1 2 3? 2
?1 2 4? 2
?1 3 4? 3
?1 3 5? 2
?1 4 5? 1
?2 3 4? 2
?3 4 5? 1
Base de Dados
?1 5 2 3 4)?
?1 3 4 3 5)?
?1 2 3 4)?
?1 3 5)?
?4 5)?
51
AprioriAll
52
AprioriAll
  • Continuando com o exemplo para gerar
  • 4-sequências frequentes

3-sequencia Suporte
?1 2 3? 2
?1 2 4? 2
?1 3 4? 3
?1 3 5? 2
?2 3 4? 2
4-sequencia
?1 2 3 4?
53
AprioriAll
54
AprioriAll
  • Contando com o banco

Base de Dados
?1 5 2 3 4?
?1 3 4 3 5?
?1 2 3 4?
?1 3 5?
?4 5?
4-sequencia Suporte
?1 2 3 4? 2
55
AprioriAll- sequências máximas
L4
?1 2 3 4?
Passos forward
Remove as sequências que são sub-sequência de outra sequência
C3
?1 2 3?
?1 2 4?
?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?
56
AprioriAll
L4
?1 2 3 4?
Passos forward
Remove as sequências que são sub-sequência de outra sequência
L3
?1 2 3?
?1 2 4?
?1 3 4?
?1 3 5?
?2 3 4?
Sub-sequências
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?
57
AprioriAll
L4
?1 2 3 4?
Passos forward
Remove as sequências que são sub-sequência de outra sequência
L3
?1 3 5?
L2
?1 2?
?1 3?
?1 4?
?1 5?
?2 3?
?2 4?
?3 4?
?3 5?
?4 5?
Sub-sequências
Máximas
?1 2 3 4?
?1 3 5?
58
AprioriAll
L4
?1 2 3 4?
Passos forward
Remove as sequências que são sub sequência de outra sequência
L3
?1 3 5?
L2
?4 5?
Máximas
?1 2 3 4?
?1 3 5? ?4 5?
59
Referências
  • Agrawal, R. Srikant, R., Mining sequential
    patterns. Proceedings of the Eleventh
    International Conference on Data Engineering,
    pp.3-14, 1995.
  • Jiawei Han, Jian Pei, and Yiwen Yin. Mining
    Frequent Patterns without Candidate Generation ,
    ACM-SIGMOD, 2000.
  • Jian Pei, Jiawei Han e Runying Mao. CLOSET An
    Efficient Algorithm for Mining Frequent Closed
    Itemsets. ACM-SIGMOD DMKD workshop, 2000.
Write a Comment
User Comments (0)
About PowerShow.com