5-AnaliseDeAssociacao

Propaganda
Marcus Sampaio
DSC/UFCG
O Problema
Marcus Sampaio
DSC/UFCG
• 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
O Modelo de Regras
de Associação
Marcus Sampaio
DSC/UFCG
• 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
Aplicações
Marcus Sampaio
DSC/UFCG
• Perfis de compra de clientes (“Market basket
analysis”)
• “Merchandizing”
• Organização de produtos em vitrines de lojas
Métricas de
Desempenho
• Um modelo induzido de Regras de
Associação deve ser avaliado
• Duas métricas de desempenho
– Suporte
– Confiança
Marcus Sampaio
DSC/UFCG
Confiança
Marcus Sampaio
DSC/UFCG
• 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
Suporte
Marcus Sampaio
DSC/UFCG
• 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
Marcus Sampaio
DSC/UFCG
Exemplos
• Exemplo 1
Id Transaçao
1
2
3
4
Itens Comprados
{1, 2, 3}
{1, 4}
{1, 3}
{2, 5, 6}
• 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
Marcus Sampaio
DSC/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
Marcus Sampaio
DSC/UFCG
• Exemplo 2
Id Transação
1
2
3
4
Itens Comprados
{1, 2, 3}
{1, 4}
{1, 3}
{2, 5, 6}
• Para suporte mínimo = 50%, e confiança
mínima = 90%, temos a seguinte regra
– 3 => 1 com 50% de suporte e 100% de confiança
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, 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
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 induzir as regras de associação, com suporte
e confiança acima dos mínimos especificados
• Fase leve, em termos de custos
Marcus Sampaio
DSC/UFCG
TID
1
2
3
4
Itens
{1, 2, 3}
{1, 3}
{1, 4}
{2, 5, 6}
Suporte mínimo = 50%
Confiança mínima = 95%
Conjunto Freqüente
{1}
{2}
{3}
{1, 3}
Suporte
75%
50%
50%
50%
Marcus Sampaio
DSC/UFCG
• Regra 1 => 3?
– Suporte = Suporte({1, 3}) = 50%
– Confiança = Suporte({1,3}) / Suporte({1}) = 66%
– Resposta: Não
• Regra 3 => 1?
– Suporte = Suporte({1, 3}) = 50%
– Confiança = Suporte({1,3}) / Suporte({3}) = 100%
– Resposta: Sim
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  1
– Para cada X, Y  Fk
• Se (Suporte(Fk) / Suporte(X))  Confiança Mínima 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 candidato de ítens deve ser
removido (“pruned”) se qualquer um dos seus
subconjuntos não for um conjunto freqüente
Outra Instanciação do
Apriori
Marcus Sampaio
DSC/UFCG
Etapa 1: Suporte > 50%
Banco de Transações (BD)
TID
1
2
3
4
Itens
Varre BD
{1, 3, 4}
{2, 3, 5}
Suporte > 50%
{1, 2, 3, 5}
{2, 5}
F1
C1
It. Freq.
{1}
{2}
{3}
{4}
{5}
Sup.
2
3
3
1
3
C2
Varre BD
{2, 3}
{2, 5}
{3, 5}
It. Freq.
{2}
{3}
{5}
Sup.
3
3
3
F2
2
3
2
It. Freq.
{2, 5}
Sup.
3
Marcus Sampaio
DSC/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 0,75 1,0
• 5 => 2 0,75 1,0
A Família Apriori
Marcus Sampaio
DSC/UFCG
• 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
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
com Restrições
Marcus Sampaio
DSC/UFCG
• 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
Regras de Associação
Temporais
Marcus Sampaio
DSC/UFCG
• 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ã
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
Marcus Sampaio
DSC/UFCG
Download