Você está na página 1de 42

Minerao de Dados

Regras de Associao
David Correa Martins Jr
david.martins@ufabc.edu.br
Slides adaptados do material dos profs Arthur Gonzalez,
Francisco Zampirolli, Carlos Silva Santos e Ronaldo Prati
Cesta de Compras
Cada transao composta por um ou mais itens
Visto de outra forma, cada exemplo caracterizado
por seus atributos
Transao
ou exemplo
Cesta de Compras
Se a tabela for muito extensa, como costuma ser
em casos reais, pode ser ainda mais conveniente
representar cada um de seus itens na forma de um
atributo associado a um valor booleano
Tabela
do
Tempo
Exemplo clssico de uma
Base de Dados usada em
artigos sobre Minerao
Os dados se referem a
uma partida de um
esporte no especificado
Como alguns desses
atributos sempre
ocorrem juntos, vrias
Regras de Associao
podem ser extradas
Regras de associao
Regras IF-THEN
Regra de Associao
Estrutura de uma Regra
Exemplos de Regras
If (Temperatura = Baixa) then (Umidade = Normal) (1)
If (Umidade = Normal) and (Vento = Falso) then (Partida = Sim) (2)
If (Dia = Ensolarado) and (Partida = No) then (Umidade = Alta) (3)
Com base na Tabela do Tempo, vrias Regras
de Associao podem ser formuladas
Classificao vs Regras de Associao
Regras de Classificao
Foco em um nico
atributo alvo (dos
rtulos)
Aplicvel em todos os
casos
Medidas de avaliao:
Acurcia
Regras de Associao
Muitos atributos alvos
Aplicvel em alguns casos
Medidas: Suporte,
Confiana
Mtricas de Avaliao
Para selecionar as Regras de Associao mais
representativas, i.e., aquelas que se apliquem a um
grande nmero de exemplos com alta probabilidade
de acerto, precisaremos de mtricas para avaliar o
alcance ou a fora de cada regra
Dois indicadores conhecidos so Suporte e Confiana
Suporte
Para cada regra do tipo X Y, o Suporte indica a
proporo de exemplos da tabela que so satisfeitos
pela regra
Ou seja, indica sua cobertura com relao ao nmero
total N de exemplos da tabela
Para a Tabela do Tempo, N = 14 exemplos
Exemplo de Suporte
Com relao regra (1)
h 4 exemplos em que {X Y} =
{Temperatura=Baixa, Umidade=Normal}
If (Temperatura = Baixa) then (Umidade =Normal)
Exemplo de Suporte
Com relao regra (2)
h 4 exemplos em que {X Y} =
{Umidade=Normal,Vento=Falso,Partida=Sim}
If (Umidade = Normal) and (Vento = Falso)
Then (Partida = Sim)
Exemplo de Suporte
Com relao regra (3)
h 4 exemplos em que {X Y} =
{Dia=Ensolarado,Partida=No,Umidade=Alta}
If (Dia = Ensolarado) and (Partida = No)
Then (Umidade = Alta)
Confiana
A Confiana de uma regra reflete o nmero de
exemplos que contm Y dentre todos aqueles que
contm X
Em outras palavras, a Confiana determina quantos
so os exemplos em que X ocorre junto com Y,
comparado ao total de exemplos em que X ocorre.
Exemplo de Confiana
Com relao regra (1)
h 4 exemplos em que {X Y} =
{Temperatura=Baixa, Umidade=Normal}
e 4 exemplos em que
{X} = {Temperatura=Baixa}
If (Temperatura = Baixa) then (Umidade = Normal)
Exemplo de Suporte
Com relao regra (2)
h 4 exemplos em que {X Y} =
{Umidade=Normal,Vento=Falso,Partida=Sim}
e 4 exemplos em que
{Umidade=Normal,Vento=Falso}
If (Umidade = Normal) and (Vento = Falso)
Then (Partida = Sim)
Exemplo de Suporte
Com relao regra (3)
h 3 exemplos em que {X Y} =
{Dia=Ensolarado,Partida=No,Umidade=Alta}
e 3 exemplos em que
{Dia=Ensolarado,Partida=No}
If (Dia = Ensolarado) and (Partida = No)
Then (Umidade = Alta)
Outro Exemplo de Confiana
Para a regra (4)
h 1 exemplo em que
{X Y} = {Vento=Falso, Partida=No,
Temperatura=Elevada, Umidade=Alta} e
2 exemplos em que
{X} = {Vento=Falso, Partida=No}
If (Vento = Falso) and (Partida = No) then
(Temperatura = Elevada) and (Umidade = Alta) (4)
Alcance ou Fora de uma Regra
O fato de poucos itens poderem gerar muitas
regras de associao faz com que o nmero de
regras seja to grande que a maioria dessas regras
no tenha qualquer interesse prtico
Para contornar esta situao, antes de comear a
gerar as regras, comum estabelecer um valor de
Suporte Mnimo (SupMin) e de Confiana Mnima
(ConfMin)
SupMin e ConfMin
Tarefa de Minerao
Dados:
Banco de dados de transaes T
Um limite mnimo de suporte
0 < SupMin 1
Um limite mnimo de confiana
0 < ConfMin 1
Problema: como encontrar todas as
boas regras de associao r em T?
Sup(r) SupMin e Conf(r) SupMin
Soluo ingnua
Enumerar todos os subconjuntos de itens que
aparecem nas transaes de T
Construir todos os subconjuntos dos itens
Calcular o suporte de cada um destes subconjuntos
Suponha uma base de dados com 1 milho de
transaes e 10000 itens diferentes
N de sub-conjuntos = 2
10000
=
N de testes (n de vezes em que um subconjunto
aparece em T) = 10
6
x 2
10000
Algoritmo Apriori
Gerao de Conjuntos
Frequentes
Conjuntos Frequentes
Propriedade importante
Se um conjunto de itens frequente
Todos os seus subconjuntos tambm so frequentes
Conjuntos Frequentes
De acordo com o algoritmo Apriori, para se obter Conjuntos
Frequentes, inicialmente devem ser criados Conjuntos Frequentes
com 1 item apenas e que satisfaam o critrio de Suporte Mnimo
A seguir so criados recursivamente Conjuntos Frequentes com 2
itens, depois com 3 itens, e assim sucessivamente
Conjunto Frequente com 1 Item
Suponhamos que o SupMin tenha sido definido como 2/5, ou seja, 40%
Como o conjunto {E} no satisfaz SupMin, ele deve ser eliminado!!!!
Possveis CF com 1 Item CF com 1 Item e SupMin 2/5 5 Transaes
Conjunto Frequente com 2 Itens
Possveis CF com 2 Itens
CF=1 e SupMin2/5 CF=2 e SupMin2/5
Conjunto Frequente com 3 Itens
CF=1 e
SupMin2/5
CF=2 e
SupMin2/5
CF=3 e
SupMin2/5
Possveis CF
com 3 Itens
Observao: na verdade {A,F,G} nem foi levado em conta pelo algoritmo, j que {A,F} e
{A,G} no so conjuntos frequentes
Conjunto Frequente com 4 Itens
CF=1 e
SupMin2/5
CF=2 e
SupMin2/5
CF=3 e
SupMin2/5
CF=4 e
SupMin2/5
Se houvesse ao menos dois CF = 4,
poderamos ainda tentar gerar CF = 5
Mas como h apenas um CF = 4, esta
primeira etapa do Apriori termina aqui
Gerao de regras de
associao
Subconjuntos dos CFs
Para extrair as Regras de Associao de um CF necessrio
primeiramente gerar todos os subconjuntos no-vazios desse
CF, e para cada subconjunto S de CF produzir uma Regra de
Associao do tipo S (CF - S) que satisfaa o critrio de
Confiana ConfMin
S
CF
S
CF - S
Exemplo de Subconjunto de CF
Por exemplo, dado o CF = {A, B, C}, seus subconjuntos no-
vazios possveis so S = {{A}, {B}, {C}, {A, B}, {A, C}, {B, C}}
Portanto, possvel extrair seis Regras de Associao do
CF = {A, B, C}:
{A} {B, C},
{B} {A, C},
{C} {A, B},
{A, B} {C},
{A, C} {B},
{B, C} {A}
Suporte e Confiana
Como o Suporte de todos os subconjuntos j foi calculado na
Etapa 1, no ser necessrio percorrer novamente a Base de
Dados para calcular a Confiana de cada Regra de Associao
Basta reutilizar estes valores calculados, pois
= S
CF - S
U
S
CF
Voltando ao Exemplo Inicial
Vamos voltar ao Exemplo Inicial
O Suporte do CF = {A, B, C}
Sup({A, B, C}) = 2/5
e de seus subconjuntos
Sup({A}) = 4/5
Sup({B}) = 3/5,
Sup({C}) = 2/5,
Sup({A, B}) = 3/5,
Sup({A, C}) = 2/5,
Sup({B, C}) = 2/5
Confiana das Regras
Portanto, a Confiana das seis possveis Regras de
Associao do CF = {A, B, C} so:
Conf({A} {B, C}) = (2/5)/(4/5) = 0,50
Conf({B} {A, C}) = (2/5)/(3/5) = 0,66
Conf({C} {A, B}) = (2/5)/(2/5) = 1,00
Conf({A, B} {C}) = (2/5)/(3/5) = 0,66
Conf({A, C} {B}) = (2/5)/(2/5) = 1,00
Conf({B, C} {A}) = (2/5)/(2/5) = 1,00
Regras Aprovadas
Suponha que para o problema em questo tenha sido adotado
SupMin = 40% e ConfMin = 90%, ento apenas trs das regras
acimas seriam aproveitadas:
Conf({C} {A, B}) = 1,00 {Batata} {Arroz, Feijo}
Conf({A, C} {B}) = 1,00 {Arroz, Batata} {Feijo}
Conf({B, C} {A}) = 1,00 {Feijo, Batata} {Arroz}
Aplicando-se o procedimento explicado
acima para todos os 18 CFs obtidos na
Etapa 1, seriam geradas aproximadamente
30 Regras de Associao com SupMin =
40% e ConfMin = 90%
Consideraes Finais
No exemplo da cesta de artigos, vimos como
gerar regras de associao que indiquem venda
casada dos artigos mais comuns
Mas os especialistas em vendas no esto muito
interessados nesses itens porque a associao entre
eles j conhecida
De fato, especialistas buscam pares de itens dos
quais um deles um produto barato e o outro tem
alta taxa de lucro
Assim, lanar uma superpromoo do produto barato
faz com que as vendas do produto com alta taxa de
lucro aumente
Consideraes Finais
Em nossa cesta de artigos, as seguintes regras
envolvendo Queijo e Vinho foram aprovadas
Queijo => Vinho (SupMin = 2/5, ConfMin = 2/2)
Vinho => Queijo (SupMin = 2/5, ConfMin = 2/2)
Talvez, numa campanha de inverno, cadeias de
supermercados possam fazer promoes de
queijos com o nico propsito de vender mais
vinhos
Mas se o SupMin fosse mais restrito (> 2/5), essa
regra de associao poderia no ser detectada pelo
fato da compra de queijo e vinho no ser frequente
Embora essa seja justamente a informao desejada!
Referncia Bibliogrfica
AGRAWAL, R.; IMIELINSKI, T. & SWAMI, A. Mining Association Rules
Between Sets of Items in Large Databases. Proceedings of the 1993
ACM SIGMOD International Conference on Management of Data,
Washington, DC. New York: ACM, 1993.
PADHY, N. P. Artificial Intelligence and Intelligent Systems. New Delhi:
Oxford University Press, 2010.
QUINLAN, J. R. Induction of Decision Trees. Machine Learning, Vol. 1, No. 1,
pp. 81-106. Boston: Kluwer Academic Publishers, 1986.
ROCHA, M.; CORTEZ, P. & NEVES, J. M. Anlise Inteligente de Dados:
Algoritmos e Implementao em Java. Lisboa: FCA Editora de
Informtica, 2008.
TAN, P.N.; STEINBACH, M. & KUMAR, V. Introduo ao Data Mining
Minerao de Dados. Rio de Janeiro: Editora Cincia Moderna Ltda.,
2009.
WITTEN, I. H. & FRANK, E. Data Mining: Practical Machine Learning Tools
and Techniques. Second Edition. Amsterdam: Morgan Kaufmann
Publishers, 2005.