Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de...

24
Marcus Sampaio DSC/UFCG

Transcript of Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de...

Page 1: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

Page 2: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCGO Problema

• Dados– Um banco de transações de compra– Cada transação é um conjunto de ítens comprados

• Encontrar todas as regras X => Y que associam um conjunto de ítens X com outro conjunto de ítens Y, com um certo grau de confiabilidade– Exemplo: 98% das pessoas que compram fraldas

e comidas infantis também compram cerveja

Page 3: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

O Modelo de Regrasde Associação• Regras do tipo Se X então Y

– Outra representação: X Y– …

• X Y = • Qualquer número de ítens no conseqüente (Y)• Qualquer número de ítens no antecedente (X)• Cláusulas conjuntivas

– Antecedente e conseqüente• Uma generalização de regras de classificação

Page 4: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCGAplicações

• Perfis de compra de clientes (“Market basket analysis”)

• “Merchandizing”• Organização de produtos em vitrines de lojas

Page 5: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

Métricas de Desempenho• Um modelo induzido de Regras de

Associação deve ser avaliado• Duas métricas de desempenho

– Suporte– Confiança

Page 6: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCGConfiança

• Uma regra deve ter uma confiança (“confidence”) mínina, especificada pelo usuário– 1 & 2 => 3 outra representação de regra de

associação tem 90% de confiabilidade se quando um cliente comprou 1 e 2, em 90% dos casos, ele também comprou 3

• Só Confiança não é suficiente– Problema: poucas regras – sem validade

estatística– Solução: a métrica suporte, junto com confiança

Page 7: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCGSuporte

• Uma regra deve ter um suporte (“support”) mínimo especificado pelo usuário– 1 & 2 => 3

• 1, 2 e 3 devem aparecer em pelo menos uma quantidade mínima de transações de compra

Page 8: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCGExemplos

• Exemplo 1

• Para suporte mínimo = 50%, e confiança mínima = 50%, temos as seguintes regras– 1 => 3 com 50% de suporte e 66% de confiança– 3 => 1 com 50% de suporte e 100% de confiança

Id Transaçao Itens Comprados 1 {1, 2, 3}2 {1, 4}3 {1, 3}4 {2, 5, 6}

Page 9: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

• Regras de Associação não são comutativas!– O usuário especificou 40% de suporte mínimo, e

85% de confiança mínima• Somente a regra 3 => 1 0,5 1,0 é válida

– Note esta outra representação de regra de associação, com seu suporte e sua confiança

– Na WEKA, a representação é ainda um pouco diferente

Page 10: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

• Exemplo 2

• Para suporte mínimo = 50%, e confiança mínima = 90%, temos as seguintes regras– 3 => 1 com 50% de suporte e 100% de confiança

Id Transação Itens Comprados 1 {1, 2, 3}2 {1, 4}3 {1, 3}4 {2, 5, 6}

Page 11: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

O Algortimo Apriori deRegras de Associação• Há dois motivos fortes para mostrar como

funciona um algoritmo de regras de associação, ou como funciona qualquer algoritmo de Mineração de Dados– Os usuários do algoritmo ganham confiança– Algoritmos de mineração de dados geralmente são

muito simples, não requerendo técnologias de inteligência artificial, como linguagens indutivas do tipo Prolog

• Resultados inteligentes• Algoritmos tradicionais, e mais importante, com bom

desempenho

Page 12: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

• Algoritmo Apriori– Etapa 1: Encontrar todos os conjuntos de ítens

com suporte mínimo — conjuntos de ítens freqüentes

• Fase mais pesada, em termos de custos• Muitos trabalhos de pesquisa em otimização

– Etapa 2: Uso dos conjuntos de ítens freqüentes para induzir as regras de associação, com suporte e confinaça acima dos mínimos especificados

• Fase leve, em termos de custos

Page 13: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

TID Itens1 {1, 2, 3}2 {1, 3}3 {1, 4}4 {2, 5, 6}

Conjunto Freqüente Suporte{1} 75%{2} 50%{3} 50%{1, 3} 50%

Suporte mínimo = 50%Confiança mínima = 50%

Para a regra 1 => 3:• Suporte = Suporte({1, 3}) = 50%• Confiança = Suporte({1,3}) / Suporte({1}) = 66%

Page 14: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

• Regra geral para o cálculo da confiança, em termos de suporte– X Y

• Confiança = Suporte (XY) / Suporte (X)• XY X, Y X AND Y

• Confiança e Probabilidade Condicional– Confiança = P(Y|X)– Interpretação

• Probabilidade de Y acontecer, se X acontecer

Page 15: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCGApriori - Etapa 1

• Fk : Conjuntos de ítens freqüentes de tamanho k

• Ck : Conjuntos de ítens candidatos de tamanho k• F1 = {conjuntos de ítens de tamanho 1}

• Para ( k=1; Fk != ; k++) faça {

Ck+1 = Novos candidatos gerados de Fk

Para cada transação t no banco de dados faça Incremente o contador de todos os candidatos em Ck+1 que estão contidos em t Fk+1 = Candidatos em Ck+1 com suporte mínimo

}• Saída: k Fk

Page 16: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCGApriori - Etapa 2

• Entrada: k Fk

• Para cada Fk 1– Para cada X, Y Fk

• Se (Suporte(Fk) / Suporte(X)) Confiança Mínima então seleciona a regra X Y

Page 17: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCGOtimização

• Cada subconjunto do um conjunto de ítens freqüente é também um conjunto de ítens freqüente

• Um conjunto candidato de ítens deve ser removido (“pruned”) se qualquer um dos seus subconjuntos não for um Fk

Page 18: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

Uma Instanciação doApriori

TID Itens1 {1, 3, 4}2 {2, 3, 5}3 {1, 2, 3, 5}4 {2, 5}

It. Freq. Sup.{1} 2{2} 3{3} 3{4} 1{5} 3

It. Freq. Sup.{2} 3{3} 3{5} 3

{2, 3} 2{2, 5} 3{3, 5} 2

It. Freq. Sup.{2, 5} 3

Banco de Transações (BD) C1 F1

C2 F2

Varre BD

Varre BD

Suporte > 50%

Etapa 1: Suporte > 50%

Page 19: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

• Etapa 2– Entrada: {2,5}

• 2 => 5?– Suporte {2,5} / Suporte {2} = 3 / 3 = 100%

• 5 => 2?– Suporte {2,5} / Suporte {5} = 3 / 3 = 100%

– Regras Induzidas• 2 => 5 1,0 1,0• 5 => 2 1,0 1,0

Page 20: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCGA Família Apriori

• O algoritmo Apriori é *seminal*– Inspirou muitos outros algoritmos de regra de

associação– Essas variações constituem a família de

algoritmos Apriori• Algumas variações diferem do Apriori com

relação à abordagem– Apriori: consulta aberta– Variações: consultas semi-abertas

• Algoritmos parametrizados

• Outras variações exploram o caráter temporal das transações

Page 21: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

Regras de AssociaçãoGeneralizadas• Hierarquias de ítens

• Associações através de hierarquias– A regra vestuário => calçados pode ser válida

mesmo que vestuário => botas não seja válida

vestuário

outwear camisas

jaquetas calças

calçados

sapatos botas

Page 22: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

Regras de Associaçãocom Restrições• Restrições são especificadas para focar

somente em partes de interesse– Exemplo: encontrar regras de associação em que

os preços dos ítens são no máximo 200 reais

Page 23: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCG

Regras de AssociaçãoTemporais• Descrevem o rico caráter temporal dos dados• Exemplo

– {fralda} {cerveja} (suporte = 5%, confiabilidade = 87%)

– O suporte desta regra pode saltar para 25% aos sábados de manhã

Page 24: Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.

Marcus SampaioDSC/UFCGPadrões de Seqüência

• Dadas– Uma seqüência de transações de clientes– Cada transação é um conjunto de ítens

• Encontrar os padrões das seqüências de transações desses clientes

• Exemplo: 10% dos clientes que compraram um PC fizeram um “upgrade” da memória do PC em uma transação subsequente– 10% é o suporte dos padrões de seqüência