Aprendizagem de Máquina

29
Aprendizagem de Máquina Aprendizado Associativo Indução de Regras de Associação Prof. Paulo Martins Engel Informática UFRGS 2 O foco da identificação de Regras Associativas (RA) é a identificação de dependências entre atributos que freqüentemente ocorrem juntos nos dados. Os atributos constantes no antecedente de uma RA permitem prever a ocorrência dos atributos listados no seu conseqüente. Esta tarefa está diretamente relacionada ao chamado problema da cesta de compras (PCC), que visa analisar um conjunto de transações equivalentes a cestas de compras de um supermercado, procurando encontrar associações entre os itens que são freqüentemente comprados juntos. Neste caso, é possível descobrir que um número relevante de clientes que vão ao supermercado comprar um conjunto de itens X, acaba comprando também um conjunto de itens Y. Regras de Associação

Transcript of Aprendizagem de Máquina

Page 1: Aprendizagem de Máquina

Aprendizagem de Máquina

Aprendizado Associativo

Indução de Regras de Associação

Prof. Paulo Martins Engel

Informática

UFRGS 2

• O foco da identificação de Regras Associativas (RA) é a identificação de dependências entre atributos que freqüentemente ocorrem juntos nos dados.

• Os atributos constantes no antecedente de uma RA permitem prever a ocorrência dos atributos listados no seu conseqüente.

• Esta tarefa está diretamente relacionada ao chamado problema dacesta de compras (PCC), que visa analisar um conjunto de transações equivalentes a cestas de compras de um supermercado, procurando encontrar associações entre os itens que são freqüentemente comprados juntos.

• Neste caso, é possível descobrir que um número relevante de clientes que vão ao supermercado comprar um conjunto de itens X, acaba comprando também um conjunto de itens Y.

Regras de Associação

Page 2: Aprendizagem de Máquina

Informática

UFRGS 3

• A associação entre subconjuntos de itens freqüentes é representada como uma regra associativa, do tipo:

“Se item X aparece na cesta, Então item Y também aparece na cesta”, ou ainda, X Y.

• Este problema pode ser analisado utilizando a teoria das probabilidades (TP).

• Na TP, a probabilidade condicional P(Y|X)corresponde à probabilidade de Y ocorrer dado que Xtenha ocorrido.

Introdução

Informática

UFRGS 4

Probabilidades Condicionais

• A probabilidade condicional P(Y|X) é a probabilidade de Yocorrer dado que X tenha ocorrido.

• Ela é calculada a partir da probabilidade conjunta P(X,Y) :

P(Y|X) =P(X,Y)

P(X)

• Esta probabilidade pode ser interpretada como um fator deconfiança que se pode inferir a partir dos dados na regra:

P(X) P(Y)

• P(X) e P(Y) são as probabilidades marginais (a priori) de X e Y.

• No caso de X e Y serem atributos de uma BD, as probabilidades são calculadas pelas suas freqüências (relativas) de ocorrências.

Page 3: Aprendizagem de Máquina

Informática

UFRGS 5

• O problema da cesta de compras assume que tenhamos um grande número de itens, p.ex., “pão”, “leite”, etc.

• Os clientes enchem as suas cestas de compras com um subconjunto desses itens e nós dispomos da informação sobre quais itens foram comprados juntospara cada cliente.

• A área de marketing usa esta informação para posicionar os itens na loja e controlar a forma como um cliente típico se comporta na loja.

O problema da cesta de compras (PCC)

Informática

UFRGS 6

Exemplo de BD para aprendizagem de RATID leite café cerveja pão manteiga arroz feijão

1 0 1 0 1 1 0 0 2 1 0 1 1 1 0 0 3 0 1 0 1 1 0 0 4 1 1 0 1 1 0 0 5 0 0 1 0 0 0 0 6 0 0 0 0 1 0 0 7 0 0 0 1 0 0 0 8 0 0 0 0 0 0 1 9 0 0 0 0 0 1 1 10 0 0 0 0 0 1 0

• Probabilidades marginais:

P(leite) = 0,2 P(café) = 0,3 P(cerveja) = 0,2 P(pão) = 0,5

P(manteiga) = 0,5 P(arroz) = 0,2 P(feijão) = 0,2

• Algumas probabilidades conjuntas:

P(café, pão) = 0,3 P(pão, manteiga) = 0,4 P(pão, arroz) = 0,0

P(café, pão, manteiga) = 0,3 P(leite, café, pão, manteiga) = 0,1

• Algumas probabilidades condicionais:

P(pão | café) = 1,0 P(café | pão) = 0,6

Page 4: Aprendizagem de Máquina

Informática

UFRGS 7

• É interessante se notar que a identificação de associações em itens de cestas de compras deve não apenas evidenciar as associações triviais conhecidas, como, por exemplo, pão e manteiga, mas sim aquelas inevidentes.

• É bem conhecido o exemplo que, num supermercado, descobriu-se que nas sextas-feiras vários clientes compram fralda e cerveja.

O problema da cesta de compras (PCC)

Informática

UFRGS 8

• Os principais objetivos de aprendizagem para o problema da cesta de compras estão relacionados com a determinação dos seguintes relacionamentos:

1.Regras associativas, que têm a forma:

{X1, X2, ..., Xn} Y,

significando que se encontrarmos todos os itens X1, X2, ..., Xn na cesta de compras, então nós temos uma boa chance de encontrar também Y.

• A probabilidade de encontrar Y por esta regra é chamada de grau de certeza ou confiança da regra.

Objetivos para o problema da cesta de compras

Page 5: Aprendizagem de Máquina

Informática

UFRGS 9

• Normalmente procuramos apenas regras que tenham um grau de certeza maior que um determinado limiar.

• Além disso, nós devemos exigir que o grau de certeza seja bem maior que a probabilidade de se encontrar itens ao acaso em cestas de compra.

• Por exemplo, poderíamos encontrar a regra

{leite, manteiga} pão simplesmente porque muitos clientes compram pão.

• Entretanto, a regra {fralda} cerveja é válida com um grau de certeza maior que a fração de cestas que contêm cerveja.

Objetivos para o problema da cesta de compras

Informática

UFRGS 10

2. Causalidade.

• Idealmente, nós gostaríamos de saber que numa regra associativa a presença de X1, X2, ..., Xn influencia fortemente a compra de Y.

• Por exemplo, se “compra de fralda influencia a compra de cerveja”, nós poderíamos abaixar o preço da fralda e aumentar o preço da cerveja, atraindo compradores de fralda que têm maior probabilidade de comprar também cerveja, quando estão na loja, compensando a nossa perda com as fraldas.

• Entretanto, se fizermos o contrário, abaixarmos o preço da cerveja e aumentarmos o da fralda, não teremos compradores de cerveja que também comprarão fraldas, em número suficiente para compensar a perda com a cerveja.

Page 6: Aprendizagem de Máquina

Informática

UFRGS 11

3. Conjuntos freqüentes de itens.

• Em muitas situações, nos preocupamos apenas com regras associativas ou causalidades envolvendo conjuntos de itens que aparecem freqüentemente nas cestas.

• Por exemplo, não se pode fazer uma boa estratégia de marketing envolvendo itens que ninguém compra.

• Nestes casos, o processo de aprendizagem considera apenas conjuntos de itens com alto suporte; i. e., eles aparecem juntos em muitas cestas de compras.

• Nós procuramos então regras associativas envolvendo apenas conjuntos de itens {X1, X2, ..., Xn, Y} que apareçam numa percentagem mínima de cestas, chamada de limiar de suporte.

Informática

UFRGS 12

• Suponha a seguinte descrição formal do problema:

• Seja I = {i1, i2, ..., im} um conjunto de literais, chamados itens, Dum conjunto de transações, onde cada transação T é um conjunto de itens tal que T I.

• Em outras palavras, I é um conjunto de atributos sobre o domínio binário {0, 1}.

• Uma tupla T da base de dados D é representada pelos atributos com valor 1. A cada transação está associado um identificador TID.

• Um conjunto de itens é denominado X, com X I. Dizemos que uma transação T contém um conjunto de itens X, se X T.

Identificação de Regras Associativas

Page 7: Aprendizagem de Máquina

Informática

UFRGS 13

• Uma regra associativa é uma implicação da forma:

X Y, onde X I, Y I e X Y = .

• A regra X Y é válida no conjunto de transações D com confiança c, se c% das transações em D que contêm X, também contêm Y.

• A regra X Y tem suporte s no conjunto de transações D se s% das transações em D contêm X Y.

• Dado um conjunto de transações D, o problema de identificar regras associativas consiste em gerar todas as regras associativas que têm um suporte mínimo (supmin) e confiança mínima (confmin), especificados.

Identificação de Regras Associativas

Informática

UFRGS 14

• O primeiro passo no processo de descoberta de RA é determinar os conjuntos de itens que aparecem freqüentemente juntos em cestas de compras.

• Dado um BD com N atributos, representando itens possíveis de serem encontrados numa cesta de compras, existe um número limitado e conhecido de conjuntos de itens que podem aparecer juntos numa cesta: (2N – 1).

• Uma solução imediata (e ingênua) para o problema de RA é criar (2N – 1) contadores, um para cada combinação possível de itens, e, posteriormente, ler cada registro do BD e incrementar cada contador que é coberto pelo conjunto de itens deste registro.

• No final, é necessário podar os conjuntos cujo contador não satisfaz o limiar mínimo especificado (suporte mínimo).

• Problema: complexidade computacional é exponencial!

Solução ingênua para identificar Regras Associativas

Page 8: Aprendizagem de Máquina

Informática

UFRGS 15

• A solução de verificar a posteriori se a condição do suporte mínimo foi satisfeita por cada contador só faz sentido para Npequeno, pois o número de contadores gerados aumenta exponencialmente.

• Além disso, a experiência mostra que apenas uma pequena fração dos contadores satisfaz a condição de suporte mínimo.

24 – 1 = 1525 – 1 = 3126 – 1 = 6327 – 1 = 127

:230 – 1 109 (um milhão de combinações → giga) 240 – 1 1012 (um bilhão de combinações → tera) 250 – 1 1015 (um milhão de bilhões de combinações!)

Explosão combinatória

Informática

UFRGS 16

Exemplo de aplicação do método ingênuo para RA

7 atributos:27 – 1 = 127

127 contadores

• Inicialmente são gerados 127 contadores• A seguir, cada registro é lido e é verificado quais são (todas) as

combinações de itens que aparecem juntos na respectiva cesta de compra.

• Os contadores correspondentes a estas combinações são incrementados.

• Poda-se as combinações cujos contadores não atingem o limiar de suporte mínimo.

TID leite café cerveja pão manteiga arroz feijão 1 0 1 0 1 1 0 0 2 1 0 1 1 1 0 0 3 0 1 0 1 1 0 0 4 1 1 0 1 1 0 0 5 0 0 1 0 0 0 0 6 0 0 0 0 1 0 0 7 0 0 0 1 0 0 0 8 0 0 0 0 0 0 1 9 0 0 0 0 0 1 1 10 0 0 0 0 0 1 0

Page 9: Aprendizagem de Máquina

Informática

UFRGS 17

Extração das tuplas de cada registro

TID leite café cerveja pão manteiga arroz feijão 1 0 1 0 1 1 0 0 2 1 0 1 1 1 0 0 3 0 1 0 1 1 0 0 4 1 1 0 1 1 0 0 5 0 0 1 0 0 0 0 6 0 0 0 0 1 0 0 7 0 0 0 1 0 0 0 8 0 0 0 0 0 0 1 9 0 0 0 0 0 1 1

10 0 0 0 0 0 1 0

TID tuplas

1 {café,pão,manteiga}

2 {leite,cerveja,pão,manteiga}

3 {café,pão,manteiga}

4 {leite,café,pão,manteiga}

5 {cerveja}

6 {manteiga}

7 {pão}

8 {feijão}

9 {arroz,feijão}

10 {arroz}

Informática

UFRGS 18

Geração das combinações cobertas por cada registro

TID tupla

1 {café,pão,manteiga}

2 {leite,cerveja,pão,manteiga}

3 {café,pão,manteiga}

4 {leite,café,pão,manteiga}

5 {cerveja}

6 {manteiga}

7 {pão}

8 {feijão}

9 {arroz,feijão}

10 {arroz}

TID itens duplas trincas quadras

1 {café}{pão}{manteiga}

{café,pão}{café,manteiga}{pão,manteiga}

{café,pão,manteiga}

2 {leite}{cerveja}{pão}{manteiga}

{leite,cerveja}{leite,pão}{leite,manteiga}{cerveja,pão}{cerveja,manteiga}{pão,manteiga}

{leite,cerveja,pão}{leite,cerveja,manteiga}{leite,pão,manteiga}{cerveja,pão,manteiga}

{leite,cerveja,pão,manteiga}

3 {café}{pão}{manteiga}

{café,pão}{café,manteiga}{pão,manteiga}

{café,pão,manteiga}

4 {leite}{café}{pão}{manteiga}

{leite,café}{leite,pão}{leite,manteiga}{café,pão}{café,manteiga}{pão,manteiga}

{leite,café,pão}{leite,café,manteiga}{leite,pão,manteiga}{café,pão,manteiga}

{leite,café,pão,manteiga}

5 {cerveja}

6 {manteiga}

7 {pão}

8 {feijão}

9 {arroz}{feijão}

{arroz,feijão}

10 {arroz}

Considere que o suporte mínimo seja 3

Page 10: Aprendizagem de Máquina

Informática

UFRGS 19leite café cerveja pão manteiga arroz feijão

x - - - - - -

- x - - - - -

- - x - - - -

- - - x - - -

- - - - x - -

- - - - - x -

- - - - - - x

x x - - - - -

x - x - - - -

x - - x - - -

x - - - x - -

x - - - - x -

x - - - - - x

- x x - - - -

- x - x - - -

- x - - x - -

- x - - - x -

- x - - - - x

- - x x - - -

- - x - x - -

- - x - - x -

- - x - - - x

- - - x x - -

- - - x - x -

- - - x - - x

- - - - x x -

- - - - x - x

- - - - - x x

x x x - - - -

x x - x - - -

x x - - x - -

x x - - - x -

leite café cerveja pão manteiga arroz feijão

x x - - - - x

x - x x - - -

x - x - x - -

x - x - - x -

x - x - - - x

x - - x x - -

x - - x - x -

x - - x - - x

x - - - x x -

x - - - x - x

x - - - - x x

- x x x - - -

- x x - x - -

- x x - - x -

- x x - - - x

- x - x x - -

- x - x - x -

- x - x - - x

- x - - x x -

- x - - x - x

- x - - - x x

- - x x x - -

- - x x - x -

- - x x - - x

- - x - x x -

- - x - x - x

- - x - - x x

- - - x x x -

- - - x x - x

- - - x - x x

- - - - x x x

x x x x - - -

leite café cerveja pão manteiga arroz feijão

x x x - x - -

x x x - - x -

x x x - - - x

x x - x x - -

x x - x - x -

x x - x - - x

x x - - x x -

x x - - x - x

x x - - - x x

x - x x x - -

x - x x - x -

x - x x - - x

x - x - x x -

x - x - x - x

x - x - - x x

x - - x x x -

x - - x x - x

x - - x - x x

x - - - x x x

- x x x x - -

- x x x - x -

- x x x - - x

- x x - x x -

- x x - x - x

- x x - - x x

- x - x x x -

- x - x x - x

- x - x - x x

- x - - x x x

- - x x x x -

- - x x x - x

- - x x - x x

Identificação dos contadores cobertos pelo BD

Informática

UFRGS 20

leite café cerveja pão manteiga arroz feijão

- - x - x x x

- - - x x x x

x x x x x - -

x x x x - x -

x x x x - - x

x x x - x x -

x x x - x - x

x x x - - x x

x x - x x x -

x x - x x - x

x x - x - x x

x x - - x x x

x - x x x x -

x - x x x - x

x - x x - x x

x - x - x x x

x - - x x x x

- x x x x x -

- x x x x - x

- x x x - x x

- x x - x x x

- x - x x x x

- - x x x x x

x x x x x x -

x x x x x - x

x x x x - x x

x x x - x x x

x x - x x x x

x - x x x x x

- x x x x x x

x x x x x x x

Combinações cobertas pelo BD (26):

7 itens / 3 com suporte mínimo10 pares / 3 com suporte mínimo7 trincas / 1 com suporte mínimo2 quadras / nenhuma com suporte mínimo

Combinações possíveis (127):

7 itens21 pares35 trincas35 quadras21 quinas7 senas1 setena

Conjunto de itens suporte{café} 3 {pão} 5

{manteiga} 5

Conjunto de itens suporte {café, pão} 3

{café, manteiga} 3 {pão, manteiga} 4

Conjunto de itens suporte {café, pão, manteiga} 3

Page 11: Aprendizagem de Máquina

Informática

UFRGS 21

C1

L1

C3 = L3

C2 = L2

Solução mais eficiente: Algoritmo Apriori

• Geração (ordenada) a priori das combinações cobertas pelo BD, que satisfazem o suporte mínimo, porque os conjuntos com maior número de itens só são formados se todos os seus subconjuntos existirem.

12345678910

Café134

Pão12347

Manteiga12345

Café, Pão134

Café, Manteiga134

Pão, Manteiga1234

Café, Pão, Manteiga134

12345678910

Café134

Pão12347

Manteiga12345

Café, Pão134

Café, Manteiga134

Pão, Manteiga1234

Café, Pão, Manteiga134

Conjunto de itens suporte {leite} 2 {café} 3

{cerveja} 2 {pão} 5

{manteiga} 5 {arroz} 2 {feijão} 2

Conjunto de itens suporte{café} 3 {pão} 5

{manteiga} 5

Conjunto de itens suporte {café, pão} 3

{café, manteiga} 3 {pão, manteiga} 4

Conjunto de itens suporte{café, pão, manteiga} 3

TID tuplas

1 {café,pão,manteiga}

2 {leite,cerveja,pão,manteiga}

3 {café,pão,manteiga}

4 {leite,café,pão,manteiga}

5 {cerveja}

6 {manteiga}

7 {pão}

8 {feijão}

9 {arroz,feijão}

10 {arroz}

Informática

UFRGS 22

• Decompor o problema em dois subproblemas:

(1) Encontrar todas as combinações de itens com suporte maior ou igual ao mínimo especificado. Estas combinações são chamadas de conjuntos de itens freqüentes.

(2) Utilizar os conjuntos de itens freqüentes para gerar as regras desejadas.

A idéia é que se ABCD e AB são conjuntos de itens freqüentes, então nós podemos determinar se a regra AB CD é válida calculando a razão r = suporte(ABCD) / suporte(AB).

A regra será válida somente se r confmin.

Note que a regra terá suporte mínimo porque ABCD é freqüente.

Descoberta de conjuntos de itens freqüentes

Page 12: Aprendizagem de Máquina

Informática

UFRGS 23

(1) Encontre os itens que aparecem ao menos numa fração das cestas igual a supmin. Este conjunto é chamado L1, dos itens freqüentes (grande conjunto de itens).

(2) Os pares dos itens em L1 se tornam pares candidatos C2 para o segundo passo. Os pares em C2 cuja contagem alcançar supminsão os pares freqüentes L2.

(3) As trincas candidatas C3 são aqueles conjuntos {A, B, C} tais que todos os {A, B}, {A, C} e {B, C} estão em L2. No terceiro passo, conte a ocorrência das trincas em C3; aquelas cuja contagem alcançar supmin são as trincas freqüentes, L3.

(4) Proceda da mesma forma para tuplas de ordem mais elevada, até os conjuntos se tornarem vazios. Li são os conjuntos freqüentes de tamanho i; Ci+1 é o conjunto de tamanho i+1 tal que cada subconjunto de tamanho i está em Li.

Algoritmo Apriori

Informática

UFRGS 24

Exemplo de descoberta de regras associativas

• Dada a tabela abaixo onde cada registro corresponde a uma transação de um cliente, com itens assumindo valores binários (sim/não), indicando se o cliente comprou ou não o respectivo item, descobrir todas as regras associativas, determinando o seu suporte (sup) e grau de certeza (conf).

TID leite café cerveja pão manteiga arroz feijão 1 0 1 0 1 1 0 0 2 1 0 1 1 1 0 0 3 0 1 0 1 1 0 0 4 1 1 0 1 1 0 0 5 0 0 1 0 0 0 0 6 0 0 0 0 1 0 0 7 0 0 0 1 0 0 0 8 0 0 0 0 0 0 1 9 0 0 0 0 0 1 1 10 0 0 0 0 0 1 0

Page 13: Aprendizagem de Máquina

Informática

UFRGS 25

(1) Calcular o suporte de conjuntos com um item.

Determinar os itens freqüentes com sup 0,3.

(2) Calcular o suporte de conjuntos com dois itens.

Determinar conjuntos de itens freqüentes com sup 0,3.

Obs: se um item não é freqüente em (1), pode ser ignorado aqui.

Descobrir as regras com alto fator de certeza.

(3) Calcular o suporte de conjuntos com três itens.

Determinar conjuntos de itens freqüentes com sup 0,3.

Obs: pelo mesmo motivo anterior, só é necessário se considerar conjuntos de itens que são freqüentes pelo passo anterior.

Descobrir regras com alto fator de certeza.

• Dada uma regra de associação “Se X então Y”, os fatores sup e conf são:

sup = Número de registros com X e Y

Número total de registros

conf = Número de registros com X e Y

Número de registros com X

Informática

UFRGS 26

Conjunto de itens suporte{leite} 2{café} 3

{cerveja} 2{pão} 5

{manteiga} 5{arroz} 2{feijão} 2

Conjunto de itens suporte{café} 3{pão} 5

{manteiga} 5

C1

L1

Page 14: Aprendizagem de Máquina

Informática

UFRGS 27

C2 , L2

Conjunto de itens suporte{café, pão} 3

{café, manteiga} 3{pão, manteiga} 4

C3, L3Conjunto de itens suporte

{café, pão, manteiga} 3

Conjunto de itens suporte{café} 3{pão} 5

{manteiga} 5L1

Informática

UFRGS 28

Conjunto de itens: {café, pão}, |café,pão| = 3, |café| = 3, |pão| = 5

Se café Então pão conf = 1,0

Se pão Então café conf = 0,6

Conjunto de itens: {café, manteiga}, |café,manteiga| = 3, |café| = 3, |manteiga| = 5

Se café Então manteiga conf = 1,0

Se manteiga Então café conf = 0,6

Conjunto de itens: {pão, manteiga}, |pão,manteiga| = 4, |pão| = 5, |manteiga| = 5

Se pão Então manteiga conf = 0,8

Se manteiga Então pão conf = 0,8

Geração de RA a partir de conjuntos freqüentes

X

YXconf YX

,YX

,XY Y

YXconf XY

Se {X,Y} é um grande conjunto de itens, então testar as RA possíveis

Escolher a RA com a maior conf

Page 15: Aprendizagem de Máquina

Informática

UFRGS 29

• Regras candidatas com três itens com o seu valor de certeza:

Conjunto de itens: {café, pão, manteiga}, |café,pão,manteiga| = 3

Se café, pão Então manteiga conf = 1,0

Se café, manteiga Então pão conf = 1,0

Se manteiga, pão Então café conf = 0,75

Se café Então manteiga, pão conf = 1,0

Se manteiga Então café, pão conf = 0,6

Se pão Então café, manteiga conf = 0,6

• Padrões descobertos, minsup = 0,3 e minconf = 0,8:

Se café Então pão conf = 1,0

Se café Então manteiga conf = 1,0

Se pão Então manteiga conf = 0,8 decisão:

Se manteiga Então pão conf = 0,8 aumentar confmin

Se café, manteiga Então pão conf = 1,0

Se café, pão Então manteiga conf = 1,0

Se café Então manteiga, pão conf = 1,0

Informática

UFRGS 30

Descoberta de RA do problema do tempo

Tempo Temperatura Umidade Ventoso Joga

ensolarado quente alta falso não

ensolarado quente alta verdadeiro não

nublado quente alta falso sim

chuvoso amena alta falso sim

chuvoso fria normal falso sim

chuvoso fria normal verdadeiro não

nublado fria normal verdadeiro sim

ensolarado amena alta falso não

ensolarado fria normal falso sim

chuvoso amena normal falso sim

ensolarado amena normal verdadeiro sim

nublado amena alta verdadeiro sim

nublado quente normal falso sim

chuvoso amena alta verdadeiro não

• Descubra todas as RA induzidas pelo BD do problema do tempo, reproduzido abaixo, com supmin = 0,3 (4) e confmin = 0,9.

Page 16: Aprendizagem de Máquina

Informática

UFRGS 31

Descoberta de RA do problema do tempo

Tempo Temperatura Umidade Ventoso Joga

ensolarado quente alta falso não

ensolarado quente alta verdadeiro não

nublado quente alta falso sim

chuvoso amena alta falso sim

chuvoso fria normal falso sim

chuvoso fria normal verdadeiro não

nublado fria normal verdadeiro sim

ensolarado amena alta falso não

ensolarado fria normal falso sim

chuvoso amena normal falso sim

ensolarado amena normal verdadeiro sim

nublado amena alta verdadeiro sim

nublado quente normal falso sim

chuvoso amena alta verdadeiro não

Itens freqüentes, L(1), para supmin = 0,3 (4)

item sup

ensolarado 5

nublado 4

chuvoso 5

quente 4

amena 6

fria 4

alta 7

normal 7

falso 8

verdadeiro 6

não 5

sim 9

C(1) = L(1)

Informática

UFRGS 32

Duplas candidatas: C(2)

items sup

ensolarado quente 2

ensolarado amena 2

ensolarado fria 1

ensolarado alta 3

ensolarado normal 2

ensolarado falso 3

ensolarado verdadeiro 2

ensolarado não 3

ensolarado sim 2

nublado quente 2

nublado amena 1

nublado fria 1

nublado alta 2

nublado normal 2

nublado falso 2

nublado verdadeiro 2

nublado não 0

nublado sim 4

items sup

chuvoso quente 0

chuvoso amena 3

chuvoso fria 2

chuvoso alta 2

chuvoso normal 3

chuvoso falso 3

chuvoso verdadeiro 2

chuvoso não 2

chuvoso sim 3

quente alta 3

quente normal 1

quente falso 3

quente verdadeiro 1

quente não 2

quente sim 2

amena alta 4

amena normal 2

amena falso 3

amena verdadeiro 3

amena não 2

amena sim 4

items sup

fria alta 0

fria normal 4

fria falso 2

fria verdadeiro 2

fria não 1

fria sim 3

alta falso 4

alta verdadeiro 3

alta não 4

alta sim 3

normal falso 4

normal verdadeiro 3

normal não 1

normal sim 6

falso não 2

falso sim 6

verdadeiro não 3

verdadeiro sim 3

Page 17: Aprendizagem de Máquina

Informática

UFRGS 33

Descoberta de RA do problema do tempo

Tempo Temperatura Umidade Ventoso Joga

ensolarado quente alta falso não

ensolarado quente alta verdadeiro não

nublado quente alta falso sim

chuvoso amena alta falso sim

chuvoso fria normal falso sim

chuvoso fria normal verdadeiro não

nublado fria normal verdadeiro sim

ensolarado amena alta falso não

ensolarado fria normal falso sim

chuvoso amena normal falso sim

ensolarado amena normal verdadeiro sim

nublado amena alta verdadeiro sim

nublado quente normal falso sim

chuvoso amena alta verdadeiro não

Duplas freqüentes, L(2), para supmin = 0,3 (4)

items sup

nublado sim 4

amena alta 4

amena sim 4

fria normal 4

alta falso 4

alta não 4

normal falso 4

normal sim 6

falso sim 6

L(2)

Informática

UFRGS 34

Descoberta de RA do problema do tempo

Trincas freqüentes para supmin = 0,3 (4)

items sup

normal falso sim 4

C(3) = L(3)

items sup

nublado sim 4

amena alta 4

amena sim 4

fria normal 4

alta não 4

alta falso 4

normal falso 4

normal sim 6

falso sim 6

L(2)

normal, falso5, 9, 10, 13

normal, sim5, 7, 9, 10, 11, 13

falso, sim3, 4 5, 9, 10, 13

normal, falso, sim5, 9, 10, 13

Page 18: Aprendizagem de Máquina

Informática

UFRGS 35

Descoberta de RA do problema do tempo

RA induzidas pelo problema do tempo, com supmin = 0,3 (4) e confmin = 0,9.

items sup

normal falso sim 4

L(3)

items sup

nublado sim 4

amena alta 4

amena sim 4

fria normal 4

alta não 4

alta falso 4

normal falso 4

normal sim 6

falso sim 6

L(2)item sup

ensolarado 5

nublado 4

chuvoso 5

quente 4

amena 6

fria 4

alta 7

normal 7

falso 8

verdadeiro 6

não 5

sim 9

L(1)

fria 4 → normal 4 conf: (1)

nublado 4 → sim 4 conf: (1)

normal, falso 4 → sim 4 conf: (1)

Se Tempo = nubladoEntão Joga = sim

Se Umidade = normalE Ventoso = falsoEntão Joga = sim

Se Temperatura = friaEntão Umidade = normal

Informática

UFRGS 36

• A abordagem tradicional para geração de RA produz muitas regras redundantes.

• RA não redundantes estão relacionadas com conjuntos de itens fechados.

• O fechamento é em relação aos mapeamentos de itens e transações do conjunto de dados.

• A base de dados é uma relação binária I T, onde I é o conjunto de itens i e Té o conjunto de transações t, identificadas pelo seu tid.

• Se um item i ocorre na transação t, então (i, t) ou it.

• Considerando ainda um subconjunto de itens X I e um subconjunto de transações Y T, então os mapeamentos:

t : I T, t(X) = {y T | x X, xy}

i : T I, i(Y) = {x I | y Y, xy}

sendo t(X) o conjunto de (todas) transações em que X aparece e i(Y) o conjunto de (todos) os itens que aparecem nas transações listadas em Y.

• t(X) e i(Y) definem uma conexão de Galois entre as ordenações parciais (P(I), ) e (P(T), ), que são os conjuntos potência de I e T, que, por sua vez, formam reticulados completos.

Conjuntos de itens fechados

Page 19: Aprendizagem de Máquina

Informática

UFRGS 37

• Considere uma BD contendo 6 transações envolvendo subconjuntos de um universo de 5 itens, conforme descrito abaixo:

I = {A, C, D, T, W} T = {1, 2, 3, 4, 5, 6}

Exemplo de BD

tid A C D T W

1 1 1 0 1 1

2 0 1 1 0 1

3 1 1 0 1 1

4 1 1 1 0 1

5 1 1 1 1 1

6 0 1 1 1 0

• A transação 2 corresponde a: {C2, D2, W2}

• Um conjunto itens: {A, C} ou AC

• Um conjunto de transações: {2, 4, 5} ou 245

• t(AC) = t(A) t(C) = 1345 123456 = 1345

• i(245) = i(2) i(4) i(5) = CDW ACDW ACDTW = CDW

• i(1345) = ACW

• O suporte de um conjunto de itens X, (X) ou |X|, é o número de transações nas quais ele ocorre como subconjunto. Ex.: |ACW| = 4

• Um conjunto de itens é dito freqüente se o seu suporte for maior ou igual a um suporte mínimo, supmin, especificado pelo usuário. Ex. se supmin 3 (50%), ACW é freqüente.

• Na BD são conjuntos freqüentes para supmin = 3 (com as transações onde eles ocorrem):A 1345, C 123456, D 2456, T 1356, W 12345AC 1345, AT 135, AW 1345, CD 2456, CT 1356, CW 12345, DW 245 TW 135ACT 135, ACW 1345, ATW 135, CDW 245, CTW 135ACTW 135

Informática

UFRGS 38

•O conjunto de todos os conjuntos itens freqüentes P(X+) forma um semi-reticulado, pois, p. ex., para qualquer subconjunto S de P(X+) existe um limite inferior máximo (meet, S), mas nem sempre existe um limite superior mínimo (join, S).

•Ex. S = {ATW, CDW} ou {AC, DW}.

Conjuntos de itens freqüentes

123456

A1345

C123456

D2456

T1356

W12345

AT135

CD2456

DW245

TW135

AC1345

AW1345

CT1356

CW12345

ACT135

CTW135

ACW1345

ATW135

CDW245

ACTW135

Page 20: Aprendizagem de Máquina

Informática

UFRGS 39

• A partir das funções t(X) e i(Y), podemos encontrar os conjuntos fechados que são induzidos pela relação binária dos dados de entrada.

• Um conjunto de itens X é fechado, se a composição i o t aplicada a ele, resultar nele mesmo, ou seja: X = i(t(X))

• Para qualquer conjunto de itens fechado X, existe um conjunto de transações que é fechado, dado por Y, com a propriedade: Y = t(X) e X = i(Y)

• O que resulta em Y = t(i(Y)), que é a condição para Y ser fechado. • Então, se X é fechado, o seu Y correspondente no mapeamento de Galois também

é fechado.• O par de conjunto de itens fechado e seu conjunto de transações fechado

correspondente é chamado de conceito induzido pela relação binária .• Para um conj. qualquer de itens X, o conj. de suas transações em comum t(X) é

igual ao de seu fechamento; da mesma forma, para um conj. de transações Y, o conjunto de itens comuns, (máximo) i(Y) é igual ao de seu fechamento.

• Portanto, podemos identificar os conceitos procurando no grafo os nós com o maior número de itens, para cada conjunto de transações.

Conjuntos de itens fechados

Informática

UFRGS 40

•Para um conjunto de transações que aparece em P(X+), p. ex, 1345, obtemos de , o conjunto máximo de itens, i(1345) = ACW, encontrando assim o conceito ACW 1345.

•ACW é o conjunto de itens fechado de A, AC, AW, correspondendo ao conjunto de itens máximo para aquele conjunto de transações.

Determinação de conjuntos fechados

123456

A1345

C123456

D2456

T1356

W12345

AT135

CD2456

DW245

TW135

AC1345

AW1345

CT1356

CW12345

ACT135

CTW135

ACW1345

ATW135

CDW245

ACTW135

Page 21: Aprendizagem de Máquina

Informática

UFRGS 41

•A partir do semi-reticulado de itens freqüentes P(X+), podemos determinar os conjuntos fechados freqüentes e portanto os conceitos induzidos pela relação :

• Conceitos: C 123456, CW 12345, CT 1356, CD 2456, ACW 1345, CDW 245, ACtW 135

•Sobre estes conceitos é que se extraem as regras não redundantes

Determinação de conjuntos fechados

C123456

CD2456

CT1356

CW12345

ACW1345

CDW245

ACTW135

Informática

UFRGS 42

• O algoritmo codifica o conjunto de dados usando uma estrutura compacta chamada de FP-tree de onde extrai os conjuntos de itens frequentes.

• Numa FP-tree, cada transação é mapeada em um caminho, representado como um conjunto de nós, correspondentes aos itens, ligados por elos.

• Como as transações podem ter itens em comum, os caminhos podem se superpor.• Quanto maior a superposição de caminhos, maior a compressão obtida pela

árvore.• Se a FP-tree couber em memória, os conjuntos de itens frequentes podem ser

extraídos diretamente dela, em vez de exigir várias passadas sobre os dados.• O tamanho da FP-tree tipicamente é menor que o tamanho dos dados originais e

depende de como os itens são ordenados. Em geral, ordenando-se de forma decrescente pelo suporte produz árvores menores.

• Uma FP-tree contém também uma lista de pointers conectando nodos que tenham os mesmos itens, que são utilizados para facilitar o acesso aos itens individuais.

FP-Growth

Page 22: Aprendizagem de Máquina

Informática

UFRGS 43

• Exemplo de um conjunto de dados D contendo dez transações e cinco itens.• Scan 1: determinar os itens frequentes, ordenando-os pelo suporte (decrescente).• Scan 2: cada item de uma transação gera um nó na árvore, incrementando o seu contador, e

um caminho é formado para codificar a transação ligando seus itens por elos.

FP-Tree

TID Itens

1 {a, b}

2 {b, c, d}

3 {a, c, d, e}

4 {a, d, e}

5 {a, b, c}

6 {a, b, c, d}

7 {a}

8 {a, b, c}

9 {a, b, d}

10 {b, c, e}

null

a:1

b:1

|a| = 8; |b| = 7; |c| = 6; |d| = 5; |e| = 3

Informática

UFRGS 44

• Exemplo de um conjunto de dados D contendo dez transações e cinco itens.• Scan 1: determinar os itens frequentes, ordenando-os pelo suporte (decrescente).• Scan 2: cada item de uma transação gera um nó na árvore, incrementando o seu contador, e

um caminho é formado para codificar a transação ligando seus itens por elos.

FP-Tree

TID Itens

1 {a, b}

2 {b, c, d}

3 {a, c, d, e}

4 {a, d, e}

5 {a, b, c}

6 {a, b, c, d}

7 {a}

8 {a, b, c}

9 {a, b, d}

10 {b, c, e}

null

a:1

b:1

b:1

c:1

d:1

|a| = 8; |b| = 7; |c| = 6; |d| = 5; |e| = 3

Page 23: Aprendizagem de Máquina

Informática

UFRGS 45

• Exemplo de um conjunto de dados D contendo dez transações e cinco itens.• Scan 1: determinar os itens frequentes, ordenando-os pelo suporte (decrescente).• Scan 2: cada item de uma transação gera um nó na árvore, incrementando o seu contador, e

um caminho é formado para codificar a transação ligando seus itens por elos.

FP-Tree

TID Itens

1 {a, b}

2 {b, c, d}

3 {a, c, d, e}

4 {a, d, e}

5 {a, b, c}

6 {a, b, c, d}

7 {a}

8 {a, b, c}

9 {a, b, d}

10 {b, c, e}

null

a:2

b:1

b:1

c:1

d:1

c:1

d:1

e:1

|a| = 8; |b| = 7; |c| = 6; |d| = 5; |e| = 3

Informática

UFRGS 46

• Exemplo de um conjunto de dados D contendo dez transações e cinco itens.• Scan 1: determinar os itens frequentes, ordenando-os pelo suporte (decrescente).• Scan 2: cada item de uma transação gera um nó na árvore, incrementando o seu contador, e

um caminho é formado para codificar a transação ligando seus itens por elos.

FP-Tree

TID Itens

1 {a, b}

2 {b, c, d}

3 {a, c, d, e}

4 {a, d, e}

5 {a, b, c}

6 {a, b, c, d}

7 {a}

8 {a, b, c}

9 {a, b, d}

10 {b, c, e}

null

a:3

b:1

b:1

c:1

d:1

c:1

d:1

d:1

e:1e:1

|a| = 8; |b| = 7; |c| = 6; |d| = 5; |e| = 3

Page 24: Aprendizagem de Máquina

Informática

UFRGS 47

• Exemplo de um conjunto de dados D contendo dez transações e cinco itens.• Scan 1: determinar os itens frequentes, ordenando-os pelo suporte (decrescente).• Scan 2: cada item de uma transação gera um nó na árvore, incrementando o seu contador, e

um caminho é formado para codificar a transação ligando seus itens por elos.

FP-Tree

TID Itens

1 {a, b}

2 {b, c, d}

3 {a, c, d, e}

4 {a, d, e}

5 {a, b, c}

6 {a, b, c, d}

7 {a}

8 {a, b, c}

9 {a, b, d}

10 {b, c, e}

null

a:4

b:2

c:1

b:1

c:1

d:1

c:1

d:1

d:1

e:1e:1

|a| = 8; |b| = 7; |c| = 6; |d| = 5; |e| = 3

Informática

UFRGS 48

• Exemplo de um conjunto de dados D contendo dez transações e cinco itens.• Scan 1: determinar os itens frequentes, ordenando-os pelo suporte (decrescente).• Scan 2: cada item de uma transação gera um nó na árvore, incrementando o seu contador, e

um caminho é formado para codificar a transação ligando seus itens por elos.

FP-Tree

TID Itens

1 {a, b}

2 {b, c, d}

3 {a, c, d, e}

4 {a, d, e}

5 {a, b, c}

6 {a, b, c, d}

7 {a}

8 {a, b, c}

9 {a, b, d}

10 {b, c, e}

null

a:5

b:3

c:2

d:1

b:1

c:1

d:1

c:1

d:1

d:1

e:1e:1

|a| = 8; |b| = 7; |c| = 6; |d| = 5; |e| = 3

Page 25: Aprendizagem de Máquina

Informática

UFRGS 49

• Exemplo de um conjunto de dados D contendo dez transações e cinco itens.• Scan 1: determinar os itens frequentes, ordenando-os pelo suporte (decrescente).• Scan 2: cada item de uma transação gera um nó na árvore, incrementando o seu contador, e

um caminho é formado para codificar a transação ligando seus itens por elos.

FP-Tree

TID Itens

1 {a, b}

2 {b, c, d}

3 {a, c, d, e}

4 {a, d, e}

5 {a, b, c}

6 {a, b, c, d}

7 {a}

8 {a, b, c}

9 {a, b, d}

10 {b, c, e}

null

a:6

b:3

c:2

d:1

b:1

c:1

d:1

c:1

d:1

d:1

e:1e:1

|a| = 8; |b| = 7; |c| = 6; |d| = 5; |e| = 3

Informática

UFRGS 50

• Exemplo de um conjunto de dados D contendo dez transações e cinco itens.• Scan 1: determinar os itens frequentes, ordenando-os pelo suporte (decrescente).• Scan 2: cada item de uma transação gera um nó na árvore, incrementando o seu contador, e

um caminho é formado para codificar a transação ligando seus itens por elos.

FP-Tree

TID Itens

1 {a, b}

2 {b, c, d}

3 {a, c, d, e}

4 {a, d, e}

5 {a, b, c}

6 {a, b, c, d}

7 {a}

8 {a, b, c}

9 {a, b, d}

10 {b, c, e}

null

a:7

b:4

c:3

d:1

b:1

c:1

d:1

c:1

d:1

d:1

e:1e:1

|a| = 8; |b| = 7; |c| = 6; |d| = 5; |e| = 3

Page 26: Aprendizagem de Máquina

Informática

UFRGS 51

• Exemplo de um conjunto de dados D contendo dez transações e cinco itens.• Scan 1: determinar os itens frequentes, ordenando-os pelo suporte (decrescente).• Scan 2: cada item de uma transação gera um nó na árvore, incrementando o seu contador, e

um caminho é formado para codificar a transação ligando seus itens por elos.

FP-Tree

TID Itens

1 {a, b}

2 {b, c, d}

3 {a, c, d, e}

4 {a, d, e}

5 {a, b, c}

6 {a, b, c, d}

7 {a}

8 {a, b, c}

9 {a, b, d}

10 {b, c, e}

null

a:8

b:5

c:3

d:1

b:1

c:1

d:1

c:1

d:1

d:1

d:1

e:1e:1

|a| = 8; |b| = 7; |c| = 6; |d| = 5; |e| = 3

Informática

UFRGS 52

• Exemplo de um conjunto de dados D contendo dez transações e cinco itens.• Scan 1: determinar os itens frequentes, ordenando-os pelo suporte (decrescente).• Scan 2: cada item de uma transação gera um nó na árvore, incrementando o seu contador, e

um caminho é formado para codificar a transação ligando seus itens por elos.

FP-Tree

TID Itens

1 {a, b}

2 {b, c, d}

3 {a, c, d, e}

4 {a, d, e}

5 {a, b, c}

6 {a, b, c, d}

7 {a}

8 {a, b, c}

9 {a, b, d}

10 {b, c, e}

null

a:8

b:5

c:3

d:1

b:2

c:2

d:1

e:1

c:1

d:1

d:1

d:1

e:1e:1

|a| = 8; |b| = 7; |c| = 6; |d| = 5; |e| = 3

Page 27: Aprendizagem de Máquina

Informática

UFRGS 53

• O algoritmo procura conjuntos de itens frequentes de forma ordenada, começando pelos itens de menor suporte.

• Inicialmente são extraídos da FP-tree os caminhos (de prefixo) que terminam no nodo associado ao item buscado (pela ordem), usando os pointers associados a ele.

• Somando-se as contagens associadas ao nó, testa-se se ele é um conjunto de itens frequente.

• Se ele for um conjunto frequente, os caminhos de prefixo são convertidos numa FP-tree condicional, que representa os seus caminhos de prefixo contendo apenas itens frequentes.

• O algoritmo prossegue recursivamente, construindo FP-trees condicionais para pares de itens frequentes a partir de uma FP-tree condicional e assim sucessivamente para conjuntos de itens frequentes de ordem mais alta.

• Dependendo do fator de compactação obtido pela estrutura FP-tree, o algoritmo FP-growth pode ter um desempenho ordens de magnitude superior ao do algoritmo Apriori.

Geração dos conjuntos de itens frequentes pelo FP-Growth

Informática

UFRGS 54

Caminhos de prefixo terminando no nodo ‘e’

FP-Tree condicionais

null

a:8 b:2

c:2

e:1

c:1

d:1

d:1

e:1e:1

null

a:8

b:5

c:3

d:1

b:2

c:2

d:1

e:1

c:1

d:1

d:1

d:1

e:1e:1

Page 28: Aprendizagem de Máquina

Informática

UFRGS 55

Caminhos de prefixo terminando no nodo ‘e’

FP-Tree condicionais

null

a:8 b:2

c:2

e:1

c:1

d:1

d:1

e:1e:1

FP-tree condicional para o nodo ‘e’:apenas nós com suporte mínimo

null

a:2

c:1

c:1

d:1 d:1

• As contagens ao longo dos caminhos de prefixo devem ser atualizadas, excluindo as transações que não contêm o item ‘e’.

• Os caminhos são truncados removendo os nós para ‘e’.• Nós que não satisfazem o suporte mínimo (2) são retirados. As setas pontilhadas apontam

para nós do mesmo item, cujas contagens devem ser somadas.• A FP-tree condicional para ‘e’ é usada para encontrar os conjuntos de itens frequentes

terminando em ‘de’, ‘ce’ e ‘ae’.

null

a:2 b:1

c:1

e:1

c:1

d:1

d:1

e:1e:1

Informática

UFRGS 56

FP-Tree condicionais

FP-tree condicional para o nodo ‘e’:apenas nós com suporte mínimo

null

a:2

c:1

c:1

d:1 d:1

null

a:2

c:1

d:1

d:1

FP-tree condicional para ‘de’

null

a:2

{a, d, e}

Caminhos de prefixo para ‘de’

null

a:2

c:1c:1

Caminhos de prefixo para ‘ce’

{c, e}

null

a:2

Caminhos de prefixo e FP-treecondicional para ‘ae’

{a, e}conjunto

frequente

FP-tree condicional para ‘ce’

null

c:2

conjunto frequente

conjunto frequente

Page 29: Aprendizagem de Máquina

Informática

UFRGS 57

Agrawal, R. & Srikant (1994). Fast Algorithms for Mining AssociationRules. Proc. of the 20th Int’l Conference on Very Large Databases, Santiago, Chile, Sept. 1994.

Agrawal, R., Imielinski, T., Swami, A (1999). Mining Association Rulesbetween Sets of Items in Large Databases. Proc. of the ACM-SIGMOD 1993, International Conference on Management of Data, Washington D.C., May 1993, 207-216.

Zaki, M. (2004). Mining Non-Redundant Association rules. Data Mining andKnowledge Discovery, 9, 223-248, 2004.

Han, J., Pei, J., Yin, Y, Mao, R. Mining Frequent Pattern Without Candidate Generation. Data Mining and Knowledge Discovery, 8, 53-87, 2004.

Referências