Você está na página 1de 23

Marcus Sampaio

DSC/UFCG
Marcus Sampaio

O Problema DSC/UFCG

Dados
Um banco de transaes de compra
Cada transao 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 tambm compram cerveja
O Modelo de Regras Marcus Sampaio
DSC/UFCG

de Associao
Regras do tipo Se X ento Y
Outra representao: X Y

X Y =
Qualquer nmero de tens no conseqente
(Y)
Qualquer nmero de tens no antecedente (X)
Clusulas conjuntivas
Antecedente e conseqente
Uma generalizao de regras de classificao
Marcus Sampaio

Aplicaes DSC/UFCG

Perfis de compra de clientes (Market basket


analysis)
Merchandizing
Organizao de produtos em vitrines de lojas
Mtricas de Marcus Sampaio
DSC/UFCG

Desempenho
Um modelo induzido de Regras de
Associao deve ser avaliado
Duas mtricas de desempenho
Suporte
Confiana
Marcus Sampaio

Confiana DSC/UFCG

Uma regra deve ter uma confiana


(confidence) mnina, especificada pelo
usurio
1 & 2 => 3 outra representao de regra de
associao tem 90% de confiabilidade se
quando um cliente comprou 1 e 2, em 90% dos
casos, ele tambm comprou 3
S Confiana no suficiente
Problema: poucas regras sem validade
estatstica
Soluo: a mtrica suporte, junto com confiana
Marcus Sampaio

Suporte DSC/UFCG

Uma regra deve ter um suporte (support)


mnimo especificado pelo usurio
1 & 2 => 3
1, 2 e 3 devem aparecer em pelo menos uma quantidade
mnima de transaes de compra
Marcus Sampaio

Exemplos DSC/UFCG

Exemplo 1
Id Transaao Itens Comprados
1 {1, 2, 3}
2 {1, 4}
3 {1, 3}
4 {2, 5, 6}

Para suporte mnimo = 50%, e confiana


mnima = 50%, temos as seguintes regras
1 => 3 com 50% de suporte e 66% de confiana
3 => 1 com 50% de suporte e 100% de confiana
Marcus Sampaio
DSC/UFCG

Regras de Associao no so comutativas!


O usurio especificou 40% de suporte mnimo, e
85% de confiana mnima
Somente a regra 3 => 1 0,5 1,0 vlida
Note esta outra representao de regra de associao,
com seu suporte e sua confiana
Na WEKA, a representao ainda um pouco diferente
Marcus Sampaio
DSC/UFCG

Exemplo 2
Id Transao Itens Comprados
1 {1, 2, 3}
2 {1, 4}
3 {1, 3}
4 {2, 5, 6}
Para suporte mnimo = 50%, e confiana
mnima = 90%, temos as seguintes regras
3 => 1 com 50% de suporte e 100% de confiana
O Algortimo Apriori de Marcus Sampaio
DSC/UFCG
Regras de Associao
H dois motivos fortes para mostrar como
funciona um algoritmo de regras de
associao, ou como funciona qualquer
algoritmo de Minerao de Dados
Os usurios do algoritmo ganham confiana
Algoritmos de minerao de dados geralmente so
muito simples, no requerendo tcnologias de
inteligncia 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 mnimo conjuntos de tens
freqentes
Fase mais pesada, em termos de custos
Muitos trabalhos de pesquisa em otimizao
Etapa 2: Uso dos conjuntos de tens freqentes
para induzir as regras de associao, com suporte
e confinaa acima dos mnimos especificados
Fase leve, em termos de custos
Marcus Sampaio
DSC/UFCG

TID Itens
1 {1, 2, 3} Suporte mnimo = 50%
2 {1, 3}
3 {1, 4}
Confiana mnima = 50%
4 {2, 5, 6}

Conjunto Freqente Suporte


{1} 75%
{2} 50%
{3} 50%
{1, 3} 50%
Para a regra 1 => 3:
Suporte = Suporte({1, 3}) = 50%
Confiana = Suporte({1,3}) / Suporte({1}) = 66%
Marcus Sampaio

Apriori - Etapa 1 DSC/UFCG

Fk : Conjuntos de tens freqentes de tamanho k


Ck : Conjuntos de tens candidatos de tamanho k
F1 = {conjuntos de tens de tamanho 1}
Para ( k=1; Fk != ; k++) faa {
Ck+1 = Novos candidatos gerados de Fk
Para cada transao t no banco de dados faa
Incremente o contador de todos os candidatos em
Ck+1 que esto contidos em t
Fk+1 = Candidatos em Ck+1 com suporte mnimo
}
Sada: k Fk
Marcus Sampaio

Apriori - Etapa 2 DSC/UFCG

Entrada: k Fk
Para cada Fk 1
Para cada X, Y Fk
Se (Suporte(Fk) / Suporte(X)) Confiana Mnima ento
seleciona a regra X Y
Marcus Sampaio

Otimizao DSC/UFCG

Cada subconjunto do um conjunto de tens


freqente tambm um conjunto de tens
freqente
Um conjunto candidato de tens deve ser
removido (pruned) se qualquer um dos seus
subconjuntos no for um Fk
Uma Instanciao do Marcus Sampaio
DSC/UFCG
Apriori
Etapa 1: Suporte > 50%
Banco de Transaes (BD) C1 F1
TID Itens It. Freq. Sup. It. Freq. Sup.
Varre BD
1 {1, 3, 4} {1} 2 {2} 3
2 {2, 3, 5} Suporte > 50% {2} 3 {3} 3
3 {1, 2, 3, 5} {3} 3 {5} 3
4 {2, 5} {4} 1
{5} 3

C2 F2
{2, 3} 2 It. Freq. Sup.
Varre BD
{2, 5} 3 {2, 5} 3
{3, 5} 2
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 1,0 1,0
5 => 2 1,0 1,0
Marcus Sampaio
DSC/UFCG

A Famlia Apriori
O algoritmo Apriori *seminal*
Inspirou muitos outros algoritmos de regra de
associao
Essas variaes constituem a famlia de
algoritmos Apriori
Algumas variaes diferem do Apriori com
relao abordagem
Apriori: consulta aberta
Variaes: consultas semi-abertas
Algoritmos parametrizados
Outras variaes exploram o carter temporal
das transaes
Regras de Associao Marcus Sampaio
DSC/UFCG

Generalizadas
Hierarquias de tens
vesturio
outwear camisas calados

jaquetas calas sapatos botas

Associaes atravs de hierarquias


A regra vesturio => calados pode ser vlida
mesmo que vesturio => botas no seja vlida
Regras de Associao Marcus Sampaio
DSC/UFCG
com Restries
Restries so especificadas para focar
somente em partes de interesse
Exemplo: encontrar regras de associao em que
os preos dos tens so no mximo 200 reais
Regras de Associao Marcus Sampaio
DSC/UFCG
Temporais
Descrevem o rico carter temporal dos dados
Exemplo
{fralda} {cerveja} (suporte = 5%, confiabilidade
= 87%)
O suporte desta regra pode saltar para 25% aos
sbados de manh
Marcus Sampaio

Padres de Seqncia DSC/UFCG

Dadas
Uma seqncia de transaes de clientes
Cada transao um conjunto de tens
Encontrar os padres das seqncias de
transaes desses clientes
Exemplo: 10% dos clientes que compraram
um PC fizeram um upgrade da memria do
PC em uma transao subsequente
10% o suporte dos padres de seqncia

Você também pode gostar