Marcus Sampaio
DSC/UFCG
Marcus Sampaio
DSC/UFCG
O Modelo
Marcus Sampaio
DSC/UFCG
• Dados:
– Um banco de dados 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
– Exemplo: 98% das pessoas que compram fraldas e comidas
infantis também compram cerveja.
– Qualquer número de ítens no consequente Y / antecedente X
de uma regra
– Regras com restrições (i.e., encontrar somente regras
envolvendo produtos importados caros)
Aplicações
•
•
•
•
Marcus Sampaio
DSC/UFCG
Perfis de clientes (“Market basket analysis”)
“Merchandizing”
Detecção de fraudes em seguros de saúde
Organização de produtos em vitrines de lojas
Confiança e Suporte
Marcus Sampaio
DSC/UFCG
• Uma regra deve ter uma confiabilidade mínina
(confidence), especificada pelo usuário
– 1 & 2 => 3 tem 90% de confiabilidade se quando
um cliente comprou 1 e 2, em 90% dos casos, ele
também comprou 3
• Problema: poucas regras – sem validade estatística
• Solução: o conceito de suporte
• Uma regra deve ter um suporte (support)
mínimo especificado
– 1 & 2 => 3 1, 2 e 3 devem aparecer em pelo
menos uma quantidade mínima
Marcus Sampaio
DSC/UFCG
Exemplo
• Exemplo 1
Transaction Id
1
2
3
4
Purchased Items
{1, 2, 3}
{1, 4}
{1, 3}
{2, 5, 6}
• Para suporte mínimo = 50%, e confiabilidade
mínima = 50%, temos as seguintes regras
– 1 => 3 com 50% de suporte e 66% de
confiabilidade
– 3 => 1 com 50% de suporte e 100% de
confiabilidade
Exemplo (2)
Marcus Sampaio
DSC/UFCG
• Exemplo 2
Transaction Id
1
2
3
4
Purchased Items
{1, 2, 3}
{1, 4}
{1, 3}
{2, 5, 6}
• Para suporte mínimo = 50%, e confiabilidade mínima
= 90%, temos as seguintes regras
– 1 => 3 com 50% de suporte e 66% de confiabilidade –
excluída
– 3 => 1 com 50% de suporte e 100% de confiabilidade
• Conclusão: regras de associação não são
comutativas
O Algortimo Apriori de
Regras de Associação
Marcus Sampaio
DSC/UFCG
• Há dois motivos fortes para mostrar como
funciona um algoritmo de regras de
associação
– Os usuários do algoritmo ganham confiança
– Algoritmos de mineração de dados geralmente são
muito simples, não requerendo técnicas de
inteligência artificial, como linguagens indutivas do
tipo Prolog
• Resultados inteligentes
• Algoritmos tradicionais, e mais importante, com bom
desempenho
• Veremos o seminal algoritmo Apriori
Apriori (2)
Marcus Sampaio
DSC/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 gerar as regras
• Fase leve, em termos de custos
Marcus Sampaio
DSC/UFCG
Apriori (3)
TID
1
2
3
4
Items
{1, 2, 3}
{1, 3}
{1, 4}
{2, 5, 6}
Frequent Itemset
{1}
{2}
{3}
{1, 3}
Suporte mínimo = 50%
Confiabilidade mínima = 50%
Support
75%
50%
50%
50%
Para a regra 1 => 3:
•Suporte = Suporte({1, 3}) = 50%
•Confiabilidade = Suporte({1,3})/Suporte({1}) = 66%
Apriori - Etapa 1
•
•
•
•
Marcus Sampaio
DSC/UFCG
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
Apriori - Etapa 2
Marcus Sampaio
DSC/UFCG
• Entrada: k Fk
• Para cada Fk
– Para cada X, Y  Fk
• Se (Suporte(Fk) / Suporte(X))  Confiança então
seleciona a regra X  Y
Otimização
Marcus Sampaio
DSC/UFCG
• Cada subconjunto do um conjunto de ítens
freqüente é também um conjunto de ítens
freqüente
• Um conjunto de ítens candidato – Fk – em
Ck+1 deve ser removido (“pruned”) se
qualquer um dos seus subconjuntos não
estiver contido em Fk
Marcus Sampaio
DSC/UFCG
Exemplo
Banco de Dados BD
TID
1
2
3
4
F1
C1
Items
Varre BD
{1, 3, 4}
{2, 3, 5}
Suporte > 50%
{1, 2, 3, 5}
{2, 5}
Itemset
{1}
{2}
{3}
{4}
{5}
Sup.
2
3
3
1
3
C2
Varre BD
{2, 3}
{2, 5}
{3, 5}
Itemset
{2}
{3}
{5}
Sup.
3
3
3
F2
2
3
2
Itemset
{2, 5}
Sup.
3
Regras de Associação
Generalizadas
Marcus Sampaio
DSC/UFCG
• Hierarquias de ítens
vestuário
outwear
jaquetas
camisas
calças
calçados
sapatos
botas
• 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
Regras de Associação
Quantitativas
Marcus Sampaio
DSC/UFCG
• Atributos numéricos (i.e. idade, rendimentos)
• Atributos nominais ou categóricos (i.e. temperatura
alta)
CID
Age
Married NumCars
1
2
3
4
5
23
25
29
34
38
No
Yes
No
Yes
Yes
1
1
0
2
2
suporte mínimo = 40% confiabilidade mínima = 50%
• [Idade: 30..39] e [Casado: Sim] => [NumCarros:2]
Regras de Associação
com Restrições
Marcus Sampaio
DSC/UFCG
• Restrições são especificadas para focar
somente em partes do BD de interesse
– Exemplo: encontrar regras de associação em que
os preços dos ítens são no máximo 200 reais
Regras de Associação
Temporais
Marcus Sampaio
DSC/UFCG
• Pode descrever 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ã
Padrões de Seqüência
Marcus Sampaio
DSC/UFCG
• 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
Download

II.1 Regras de Associação