23
Mineração de Dados: Associação - Aula 18 Prof a Janniele Aparecida Soares Araujo CSI462 – Sistemas de Apoio à Decisão

Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

  • Upload
    others

  • View
    20

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

Mineração de Dados: Associação - Aula 18

Profa Janniele Aparecida Soares Araujo

CSI462 – Sistemas de Apoio à Decisão

Page 2: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

2

Mineração de dados: associação

● Introdução● É a tarefa de descobrir relacionamentos interessantes entre registros

em grandes bases de dados● Transações de cestas de compras● Identificar relações entre convicções e o voto de eleitores

Page 3: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

3

Mineração de dados: associação

● Regras de Associação● Um algoritmo de associação procura por regras de associação● Atendem a um suporte e confiança mínimos preestabelecidos● Uma regra de associação é expressa na seguinte forma:

X → Y● Seja σ(X)X)) a quantidade de vezes em que um conjunto X aparece e

σ(X)X) ∪ Y) ) a quantidade de vezes em que os conjuntos X e Y aparecem em união:● Suporte: sup(X)X)) = σ(X)X))/NN● Suporte: sup(X)X) ∪ Y) ) = σ(X)X) ∪ Y) )/NN● Confiança: conf (X)X) → Y) ) = σ(X)X) ∪ Y) )/Nσ(X)X))

Page 4: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

4

Mineração de dados: associação

● Exemplos● Regras(X → Y): {Leite, Fraldas} → {Cerveja}

● σ(X Y) = 2 ∪Y) = 2 ● σ(X) = 3

● sup(X Y) = 2/5 = 0,4∪Y) = 2 ● sup(X) = 3/5 = 0,6

● conf (X → Y) = 2/3 = 0,67

TID Itens

1 {Pão, Leite}

2 {Pão, Fraldas, Cerveja, Ovos}

3 {Leite, Fraldas, Cerveja, Cola}

4 {Pão, Leite, Fraldas, Cerveja}

5 {Pão, Leite, Fraldas, Cola}

Page 5: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

5

Mineração de dados: associação

● Definições● Associação é um processo de duas etapas:

1)Gerar o conjunto de itemsets frequentes (que atendem ao suporte mínimo)

2)Gerar as regras a partir dos itemsets frequentes (que atendem à confiança mínima)

Page 6: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

6

Mineração de dados: associação● Geração do conjunto de itens

frequentes por força bruta● Listar todos os conjuntos de itens

possíveis e calcular seu suporte● A primeira tabela representa uma

base de dados de compras efetuadas

TID Itens

1 {Pão, Leite}

2 {Pão, Fraldas, Cerveja, Ovos}

3 {Leite, Fraldas, Cerveja, Cola}

4 {Pão, Leite, Fraldas, Cerveja}

5 {Pão, Leite, Fraldas, Cola}

Candidatos Suporte

{Pão} 4/5 = 0.9

{Leite} 4/5 = 0.9

{Fraldas} 4/5 = 0.9

{Cerveja} 3/5 = 0.8

{Ovos} 1/5 = 0.2

{Cola} 2/5 = 0.4

{Pão,Leite} 3/5 = 0.8

{Pão,Fraldas} 3/5 = 0.9

{Pão, Cerveja} 2/5 = 0.4

... ...

Page 7: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

7

Mineração de dados: associação

● Extremamente ineficiente!● O(N x M x W)● N = número de transações● M = número de conjuntos de itens candidatos (2k - 1, k = itens)● W = Tamanho da maior transação● Nosso pequeno exemplo levaria a (5 * 63 * 4) = 1260 comparações

Page 8: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

8

Mineração de dados: associação

● Princípio do Apriori● Se um conjunto de itens é

frequente, então todos os seus subconjuntos também o são

Page 9: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

9

Mineração de dados: associação

● Princípio do Apriori● Se um conjunto de itens é

infrequente, então todos os seus superconjuntos também o são

Page 10: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

10

Mineração de dados: associação

● Algoritmo Apriori● Inicialmente cada item é considerado um conjunto candidato de 1

item● Os que não atendem o suporte mínimo são descartados● Posteriormente, procura-se conjuntos candidatos de 2 itens usando

apenas os conjuntos de 1 item● O processo é repetido até não restarem mais conjuntos de candidatos

a serem testados

Page 11: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

11

Mineração de dados: associação

apriori(minSup, conjunto de transações T, conjunto de itens I)

1.K = 1;

2. F = Fk = {i | i ∈ I ∧ σ(i) ≥ minSup x |T|}; //Gera o conjunto de 1-itemsets frequentes

3. faça

1. ++k;

2. Ck = genCandidatos(Fk-1); //Gera o conjunto itens candidatos

3. para cada t ∈ T

1. Ct = subset(Ck, t); //Separa os candidatos que estão contidos na transação 2. para cada candidato c ∈ C

1. ++σ(c); //Incrementa seu valor de suporte3. Fim-para

4. Fim-para

5. Fk = {c | c ∈ Ck ∧ σ(c) ≥ minSup x |T |}; //Adiciona os candidatos que atendem ao suporte mínimo

6. F = F ∪Y) = 2 Fk;

4.ate que Fk = ∅;

5. retorne F;

fimAssociador

Page 12: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

12

Mineração de dados: associação

● Algoritmo Apriori● A função genCandidatos(Fk-1)

● Funde pares de conjuntos frequentes de tamanho k-1, gerando conjuntos frequentes de tamanho k● Usa ordenação lexicográfica para evitar candidatos duplicados

Conjunto de 2 itens

{Cerveja, Fraldas}

{Fraldas, Leite}

{Fraldas, Pão}

{Leite, Pão}

Conjunto de 2 itens

{Cerveja, Fraldas}

{Fraldas, Leite}

{Fraldas, Pão}

{Leite, Pão}

Conjunto de 3 itens

{Fraldas, Leite, Pão}

Page 13: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

13

Mineração de dados: associação

● Algoritmo Apriori● Calcular o suporte de todos os conjuntos de tamanho 1 e, em seguida,

eliminar aqueles que não possuem o suporte mínimo.● Minsup = 0.5

TID Itens

1 {Pão, Leite}

2 {Pão, Fraldas, Cerveja, Ovos}

3 {Leite, Fraldas, Cerveja, Cola}

4 {Pão, Leite, Fraldas, Cerveja}

5 {Pão, Leite, Fraldas, Cola}

Conjunto de 1 item frequente

{Cerveja} σ = 3 sup = 0.6

{Fraldas} σ = 4 sup = 0.8

{Leite} σ = 4 sup = 0.8

{Pão} σ = 4 sup = 0.8

Page 14: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

14

Mineração de dados: associação

● Algoritmo Apriori● Formar todos os possíveis conjuntos de tamanho 2 a partir daqueles

de tamanho 1 resultantes do passo anterior.

Conjunto de 1 item frequente

{Cerveja}

{Fraldas}

{Leite}

{Pão}

Conjunto de 1 item frequente

{Cerveja}

{Fraldas}

{Leite}

{Pão}

Candidatos de 2 itens

{Cerveja, Fraldas} σ = 3 sup = 0.6

{Cerveja, Leite} σ = 2 sup = 0.4

{Cerveja, Pão} σ = 2 sup = 0.4

{Fraldas, Leite} σ = 3 sup = 0.6

{Fraldas, Pão} σ = 3 sup = 0.6

{Leite, Pão} σ = 3 sup = 0.6

Page 15: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

15

Mineração de dados: associação

● Algoritmo Apriori● Criar um subset Ct a partir

dos novos candidatos e da base de compras

Page 16: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

16

Mineração de dados: associação

● Algoritmo Apriori● Eliminar os novos conjuntos que não possuem o suporte mínimo

Candidatos de 2 itens

{Cerveja, Fraldas} σ = 3 sup = 0.6

{Cerveja, Leite} σ = 2 sup = 0.4

{Cerveja, Pão} σ = 2 sup = 0.4

{Fraldas, Leite} σ = 3 sup = 0.6

{Fraldas, Pão} σ = 3 sup = 0.6

{Leite, Pão} σ = 3 sup = 0.6

Candidatos de 2 itens

{Cerveja, Fraldas} σ = 3 sup = 0.6

{Fraldas, Leite} σ = 3 sup = 0.6

{Fraldas, Pão} σ = 3 sup = 0.6

{Leite, Pão} σ = 3 sup = 0.6

Page 17: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

17

Mineração de dados: associação

● Algoritmo Apriori● Formar todos os possíveis conjuntos de tamanho 3 a partir daqueles

de tamanho 2 resultantes do passo anterior

Candidatos de 2 itens

{Cerveja, Fraldas}

{Fraldas, Leite}

{Fraldas, Pão}

{Leite, Pão}

Candidatos de 2 itens

{Cerveja, Fraldas}

{Fraldas, Leite}

{Fraldas, Pão}

{Leite, Pão}

Candidatos de 3 itens

{Fraldas, Leite, Pão}

Page 18: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

18

Mineração de dados: associação

● Algoritmo Apriori● Criar um subset Ct a partir dos novos candidatos e da base de

compras.● Eliminar os novos conjuntos que não possuem o suporte mínimo

Page 19: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

19

Mineração de dados: associação

● Algoritmo Apriori● Repetir o procedimento anterior até que, no k-ésimo passo, nenhum

novo conjunto de tamanho conjuntos de tamanho k, obtido a partir dos conjuntos de tamanho k-1, tenha suporte mínimo.

Candidatos de 3 itens

{Fraldas, Leite, Pão}

Candidatos de 3 itens frequentes

Page 20: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

20

Mineração de dados: associação

● E para gerar as regras!?● Para cada conjunto frequente f F, gere todas as possibilidades de ∈

regras e avalie sua confiança● Valores de suporte, previamente armazenados são utilizados para tal,

assim não é necessário ler a base de dados novamente● Conjuntos frequentes de tamanho 1 são descartados

Page 21: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

21

Mineração de dados: associação

● E para gerar as regras!?● Seguindo o exemplo, suponha minConf = 0.9

Conjunto de itens frequentes (X)F)

{Cerveja, Fraldas} α = 3

{Fraldas, Leite} α = 3

{Fraldas, Pão} α = 3

{Leite, Pão} α = 3

{Cerveja}α = 3

{Fraldas} α = 4

{Leite} α = 4

{Pão} α = 4

Regras

{Cerveja} → {Fraldas} conf = 1.00

{Fraldas} → {Cerveja} conf = 0.75

{Fraldas} → {Leite} conf = 0.75

{Leite} → {Fraldas} conf = 0.75

{Fraldas} → {Pão} conf = 0.75

{Pão} → {Fraldas} conf = 1.00

{Leite} → {Pão} conf = 0.75

{Pão} → {Leite} conf = 0.75

Page 22: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

22

Exercícios

1) Execute o manualmente algoritmo Apriori para a seguinte base de dados considerando. minSup = 0.5 e minConf = 0.6

Page 23: Mineração de Dados: Associação - Aula 18professor.ufop.br/sites/default/files/janniele/files/...Mineração de dados: associação Algoritmo Apriori Calcular o suporte de todos

23

Bibliografia

● Introdução ao Data Mining. Steinbach, Michael; Kumar, Vipin; Tan, Pang-ning, Rio de Janeiro: Ed. Ciencia Moderna, 2009.

● Notas de Data Mining. Fonseca, G.H.G, Universidade Federal de Ouro Preto, 2013