Académique Documents
Professionnel Documents
Culture Documents
2
Introdução
A geração de Regras de Associação (RA) é
uma tarefa descritiva (Aprendizado Não
Supervisionado)
Outros termos: AR (Association Rule), ARM
(Association Rule Mining), Link Analysis, Affinity
Analysis, Market Basket Analysis
RAs são utilizadas para mostrar o relacionamento
entre os exemplos (itens de dados)
Os relacionamentos descobertos não são
inerentes aos exemplos e eles não representam
nenhum tipo de causa ou correlação
Ao invés, RAs detectam o uso comum de itens
3
Introdução
A tarefa de associação tem como objetivo encontrar
elementos que implicam na presença de outros
elementos em uma mesma transação, ou seja, encontrar
relacionamentos ou padrões freqüentes entre conjuntos
de exemplos
Portanto, Regras de Associação representam padrões
existentes nas transações de um banco de dados
Um exemplo típico consiste em transações nas quais são
armazenados os itens adquiridos por clientes
Uma regra de associação para este exemplo poderia ser
{leite, pão} → {manteiga}, que indica que se o cliente compra
leite e pão, com um determinado grau de certeza, ele também
compra manteiga
4
Formato dos Exemplos
Os exemplos podem estar armazenados como transações
ou no formato de tabela atributo-valor
Formato de transação
A, B
A, C, D, E
A, D, F
Formato de tabela atributo-valor
X1 X2 X3
A, B, D
B, C, E
Dados no formato de tabela precisam ser convertidos
para o formato de transação para aplicar o algoritmo de
regras de associação
Usando a tabela atributo-valor anterior, a transformação para o
formato de transações é
X1=A, X2=B, X3=D
X1=B, X2=C, X3=E
5
Regra de Associação
Uma regra assume a forma if L then R que é equivalente
a L → R ≡ R ← L ≡ R :- L
Normalmente, as partes esquerda L e direita R são
complexos sem atributos comuns entre eles, ou seja
atributos(L) ∩ atributos(R) = Ø
A parte esquerda L é denominada condição, premissa,
antecedente, cauda ou corpo da regra
A parte direita R é denominada conclusão ou cabeça da
regra
Note que em uma regra de associação não existe uma
definição explícita de classe e qualquer atributo (ou
atributos) pode ser usado na conclusão da regra
Exemplo
if X3='S' and X5 > 2 then X1='N‘ and X2<1
6
Complexo
7
Item
Na nomenclatura de RA, existem algumas
definições adicionais e específicas da área, tais
como item e itemset que são derivadas do
conceito de complexo
Um item pode ser visto como um único teste do
tipo atributo-valor, ou seja, é um complexo
contendo uma única condição
Exemplos
aparência=sol
temperatura=quente
umidade=alta
8
Itemset
Um itemset é uma conjunção de items, ou seja, os testes
em um itemset estão ligados entre si pelo conectivo
lógico e (∧)
É óbvio que não há interesse em itemsets contendo dois
diferentes valores para o mesmo atributo, já que ele não
pode ocorrer nos exemplos de treinamento
Por exemplo: aparência=sol ∧ aparência=nublado
Normalmente omite-se a representação do conectivo,
usando espaços ou vírgulas por simplificação
Exemplos
aparência=sol
aparência=sol, umidade=normal
aparência=sol temperatura=quente umidade=alta jogar=não
9
Itemset
O número de condições determina a
dimensão de um itemset
Um itemset contendo teste em um único
atributo é denominado 1-itemset
Um itemset contendo testes em dois
atributos é denominado 2-itemset
De forma geral, um itemset contendo r
testes (r ≤ m, onde m é o número de
atributos do conjunto de exemplos) é um r-
itemset
10
Exemplos (Esporte Favorito)
1-itemsets 3-itemsets
aparência=sol aparência=sol,
aparência=nublado temperatura=quente,
aparência=chuva umidade=alta
temperatura=fria aparência=sol,
temperatura=quente,
temperatura=agradável jogar=não
... ...
2-itemsets 4-itemsets
aparência=sol, aparência=sol,
temperatura=fria temperatura=quente,
aparência=sol, umidade=alta,
temperatura=quente jogar=não
aparência=sol, aparência=sol,
umidade=normal umidade=alta,
... ventando=falso,
jogar=não
...
11
Geração de RA
Regras de associação são similares a regras de
classificação
Seria possível empregar o algoritmo de indução
de regras para cada itemset possível que
poderia ocorrer na conclusão (parte direita) da
regra
Entretanto, isso geraria um número enorme de
regras de associação
Para m itens únicos, existem 2m itemsets candidatos
(na realidade, 2m-1 itemsets se desprezarmos o
itemset vazio, já que não temos interesse nele)
Assim, algum critério tem que ser escolhido para
diminuir a quantidade de regras
12
Geração de RA
5 ∅
= 1
0
5 A B C D E
= 5
1
5
= 10 AB AC AD AE BC BD BE CD CE DE
2
5
= 10 ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
3
5
= 5 ABCD ABCE ABDE ACDE BCDE
4
5
= 1 ABCDE
5
13
Geração de RA
m Itemsets Número de Regras
1 2 1
Dados m itens (únicos) 2 4 5
Há m r-itemsets 3 8 19
r 4 16 65
5 32 211
6 64 665
Número total de itemsets 7 128 2059
m
m 8 256 6305
= ∑ = 2 m 9 512 19171
r =0 r
10 1024 58025
3
60 x 10
Cada r-itemset gera 2r-1
regras em potencial 50
Número de Regras
Portanto, o número total de 40
regras de associação é 30
m
m 20
= ∑ × (2 r − 1) 10
r =1 r
0
= 3m − 2 m 1 2 3 4 5
m
6 7 8 9 10
14
Exemplo (Esporte Favorito)
15
Algoritmo Apriori
O algoritmo Apriori é o algoritmo de regras de
associação mais conhecido e utilizado em
diversas aplicações
Ele pode ser dividido em duas etapas
Encontrar os itemsets freqüentes (aqueles com suporte
≥ min_sup)
Gerar as regras a partir dos itemsets freqüentes (com
confiança ≥ min_conf)
Os valores min_sup e min_conf são parâmetros
que devem ser fornecidos ao algoritmo
16
Apriori: Ordem dos Itens
17
Suporte
Para reduzir o número de regras evita-se gerar
regras que cobrem poucos exemplos
Para tanto, é definindo um valor mínimo para o
suporte (min_sup)
Somente os itemsets com suporte ≥ min_sup são
considerados pelo algoritmo
Os itemsets com suporte ≥ min_sup são denominados
itemsets freqüentes (large or frequent itemsets)
Os itemsets com suporte < min_sup são itemsets não
freqüentes
18
Suporte
Em RA, o suporte pode ser expresso de forma
absoluta ou relativa:
Suporte (absoluto): número de exemplos cobertos
(corretamente) pelo itemset
Suporte (relativo): número de exemplos cobertos
(corretamente) pelo itemset dividido pelo número total
de exemplos no conjunto de exemplos de treinamento
Não há ambigüidade no uso de ambos:
se 0 ≤ suporte ≤ 1 então trata-se de um valor relativo
se suporte ≥ 1 e assume valores inteiros (número de
exemplos) então trata-se de um valor absoluto
Vamos ignorar por alguns momentos a distinção
entre os lados esquerdo e direito de uma regra e
procurar por itemsets freqüentes
19
Exemplo, min_sup=2
Suponha um supermercado, no qual quatro
clientes fizeram compras de produtos
(itens)
Os exemplos no formato transacional são
Cliente 1 comprou produtos A, C, D
Cliente 2 comprou produtos B, C, E
Cliente 3 comprou produtos A, B, C, E
Cliente 4 comprou produtos B, E
Vamos gerar os itemsets freqüentes,
assumindo min_sup=2
20
Exemplo, min_sup=2
1-itemset 1-itemset sup
Varredura do
Transações conjunto de {A} {A} 2 1-itemset sup
exemplos
A, C, D {B} {B} 3 {A} 2
B, C, E {C} {C} 3 {B} 3
A, B, C, E C1 F1 {C} 3
{D} {D} 1
B, E {E} {E} 3 {E} 3
C2
3-itemset 2-itemset sup 2-itemset sup 2-itemset
Varredura do
{A, B, C} {A, C} 2 {A, B} 1 conjunto de {A, B}
exemplos
{B, C} 2 {A, C} 2 {A, C}
{A, B, E}
{B, E} 3 {A, E} 1 {A, E}
{A, C, E} C3 F2
{C, E} 2 {B, C} 2
{B, C}
{B, C, E} {B, E} 3
{B, E}
{C, E} 2
3-itemset sup {C, E}
{A, B, C} 1 F3
{A, B, E} 1 3-itemset sup
Varredura do {A, C, E} 1 {B, C, E} 2
conjunto de
exemplos {B, C, E} 2
21
Exemplo, min_sup=2
∅
A B C D E
AB AC AD AE BC BD BE CD CE DE
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
ABCDE
22
Exemplo, min_sup=2
∅
A B C D E
AB AC AD AE BC BD BE CD CE DE
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
ABCDE
23
Algoritmo Apriori
Apriori utiliza o Princípio do Itemsets Freqüentes
Qualquer subconjunto de um itemset freqüente também é
freqüente
Este princípio é válido devido à seguinte propriedade da
métrica suporte:
∀X ∀Y : X ⊆ Y → suporte(X) ≥ suporte(Y)
O suporte de um itemset Y nunca excede o suporte de seus sub-
itemsets X
Também conhecida como propriedade anti-monotônica do suporte
O contra-positivo dessa propriedade é que se um itemset
não é freqüente então não é necessário gerar quaisquer
superconjuntos dele como candidatos, porque eles
também serão não freqüentes
Os itemsets candidatos gerados ainda precisam ser
confirmados se efetivamente são freqüentes, pela
varredura do conjunto de exemplos
24
Geração de Itemsets
Como pode ser observado, os itemsets formam
um conjunto parcialmente ordenado (reticulado
ou lattice)
Assim, na geração de itemsets freqüentes é
utilizada a seguinte idéia: usar os 1-itemsets
freqüentes para gerar 2-itemsets, usar os 2-
itemsets freqüentes para gerar 3-itemsets e
assim por diante
Se {A,B} é um itemset freqüente, então {A} e {B}
devem também ser itemsets freqüentes
Em geral, se X é um r-itemset freqüente, então todos
os (r-1)-itemsets de X são também freqüentes
Assim, a computação de um r-itemset é feita pela
fusão de (r-1)-itemsets
25
Exemplo: ACD é freqüente
∅
A B C D E
AB AC AD AE BC BD BE CD CE DE
Itemset
verificado
como
freqüente ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
(sub)itemsets
ABCD ABCE ABDE ACDE BCDE
que também
são
freqüentes
ABCDE
26
Exemplo: AB é não freqüente
∅
A B C D E
Itemset
verificado
como não AB AC AD AE BC BD BE CD CE DE
freqüente
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
27
Exemplo (Esporte Favorito),
min_sup=2
28
1-Itemsets com min_sup=2
1. aparência=sol (5)
2. aparência=nublado (4)
3. aparência=chuva (5)
4. temperatura=fria (4)
5. temperatura=agradável (6)
6. temperatura=quente (4)
7. umidade=normal (7)
8. umidade=alta (7)
9. ventando=verdadeiro (6)
10. ventando=falso (8)
11. jogar=sim (9)
12. jogar=não (5)
29
2-Itemsets com min_sup=2
1. aparência=sol 10. aparência=nublado
temperatura=agradável (2) umidade=normal (2)
2. aparência=sol 11. aparência=nublado
temperatura=quente (2) umidade=alta (2)
3. aparência=sol 12. aparência=nublado
umidade=normal (2) ventando=verdadeiro (2)
4. aparência=sol 13. aparência=nublado
umidade=alta (3) ventando=falso (2)
5. aparência=sol ...
ventando=verdadeiro (2) 38. umidade=normal
6. aparência=sol ventando=falso (4)
ventando=falso (3) 39. umidade=normal
7. aparência=sol jogar=sim (6)
jogar=sim (2) 40. umidade=alta
8. aparência=sol ventando=verdadeiro (3)
jogar=não (3) ...
9. aparência=nublado 47. ventando=verdadeiro
temperatura=quente (2) jogar=não (2)
30
3-Itemsets com min_sup=2
1. aparência=sol 9. aparência=nublado
temperatura=quente umidade=normal
umidade=alta (2) jogar=sim (2)
2. aparência=sol 10. aparência=nublado
temperatura=quente umidade=alta
jogar=não (2) jogar=sim (2)
3. aparência=sol 11. aparência=nublado
umidade=normal ventando=verdadeiro
jogar=sim (2) jogar=sim (2)
4. aparência=sol 12. aparência=nublado
umidade=alta ventando=falso
ventando=falso (2) jogar=sim (2)
5. aparência=sol 13. aparência=chuva
umidade=alta temperatura=fria
jogar=não (3) umidade=normal (2)
6. aparência=sol ...
ventando=falso 38. umidade=normal
jogar=não (2) ventando=falso
7. aparência=nublado jogar=sim (4)
temperatura=quente 39. umidade=alta
ventando=falso (2) ventando=falso
8. aparência=nublado jogar=não (2)
temperatura=quente
jogar=sim (2)
31
4-Itemsets com min_sup=2
1. aparência=sol 4. aparência=chuva
temperatura=quente temperatura=agradável
umidade=alta ventando=falso
jogar=não (2) jogar=sim (2)
2. aparência=sol 5. aparência=chuva
umidade=alta umidade=normal
ventando=falso ventando=falso
jogar=não (2) jogar=sim (2)
3. aparência=nublado 6. temperatura=fria
temperatura=quente umidade=normal
ventando=falso ventando=falso
jogar=sim (2) jogar=sim (2)
32
Confiança
Assim que todos os itemsets freqüentes foram gerados, o
próximo passo consiste em transformar cada itemset em
uma regra (ou conjunto de regras) com uma precisão
(confiança) mínima especificada, denotada por min_conf
Dado um itemset somente as regras com confiança ≥
min_conf são geradas
De forma geral, a confiabilidade positiva (prel) é utilizada
como métrica de precisão (confiança)
lr
prel( L → R) = p( R | L) =
l
36
Apriori
Algoritmo Iterativo: Encontre todos os 1-itemsets
freqüentes, depois encontre os 2-itemsets
freqüentes e assim por diante
Em cada iteração k, apenas considere k-itemsets que contenham
(k-1)-itemsets freqüentes
Encontre itemsets de tamanho 1: F1 (varredura
inicial)
A partir de k = 2
Ck = candidatos de tamanho k: aqueles itemsets de
tamanho k que podem ser freqüentes, dado Fk-1
Fk = itemsets que realmente são freqüentes, Fk ⊆ Ck
(necessita uma varredura do conjunto de exemplos)
37
Exemplo, min_sup=2
Varredura inicial de T Transações
A, C, D
C1: {A}:2, {B}:3, {C}:3, {D}:1, {E}:3
B, C, E
F1: {A}:2, {B}:3, {C}:3, {E}:3 A, B, C, E
C2: {A,B}, {A,C}, {A,E}, {B,C}, {B,D}, {C,E} B, E
2a. Varredura de T
C2: {A,B}:1, {A,C}:2, {A,E}:1, {B,C}:2, {B,E}:3, {C,E}:2
F2 : {A,C}:2, {B,C}:2, {B,E}:3, {C,E}:2
C3: {B,C,E}
3a. Varredura de T
C3: {B, C, E}:2
F3: {B, C, E}
38
Apriori
Algoritmo Apriori(T)
C1 ← varredura_inicial(T);
F1 ← {f | f ∈ C1, f.count ≥ min_sup};
for (k = 2; Fk-1 ≠ ∅; k++) do
Ck ← Apriori_gen(Fk-1);
for cada transação t ∈ T do
for cada candidato c ∈ Ck do
if c está contido em t then
c.count++;
endif
next candidato
next transação
Fk ← {c ∈ Ck | c.count ≥ min_sup};
end
return F ← Uk Fk;
39
Apriori Gen
Function Apriori_gen(Fk-1)
// Input: conjunto Fk-1
// Output: candidatos para Fk
Ck ← ∅;
forall f1, f2 ∈ Fk-1
com f1 = {i1, … , ik-2, ik-1}
e f2 = {i1, … , ik-2, i’k-1}
e ik-1 < i’k-1 do
c ← {i1, …, ik-1, i’k-1}; // juntar f1 e f2
Ck ← Ck ∪ {c};
for cada (k-1)-subconjunto s de c do
if (s ∉ Fk-1) then
remova c de Ck; // podar
endif
next
next
return Ck;
40
Considerações Importantes
Utilizando um único valor para min_sup implica
que o algoritmo assume que todos os itens
possuem freqüências similares
Em muitos domínios, isso não é válido, pois
alguns itens aparecem muito frequentemente
enquanto outros raramente aparecem
Por exemplo
Em um supermercado, clientes compram panelas e
frigideiras muito menos frequentemente do que pão e
leite
Em um hospital, pacientes com doenças de alta
complexidade ocorrem com muito mais freqüência do
que de baixa complexidade
41
Considerações Importantes
Escolha de min_sup
Diminuir o valor de min_sup resulta em maior quantidade de
itemsets freqüentes
Isso pode aumentar o número de candidatos e a dimensão
máxima dos itemsets freqüentes (gerando regras com mais
condições/conclusões)
Número de itens no conjunto de exemplos
Quanto mais itens, maior o espaço necessário para armazenar o
suporte de cada item
Se o número de itemsets freqüentes também for grande, o tempo
de computação e de I/O também podem aumentar
Número de transações (tamanho do banco de dados ou
conjunto de exemplos)
O tempo de execução pode aumentar com o aumento do número
de transações, uma vez que o algoritmo Apriori efetua múltiplas
varreduras
42
Considerações Importantes
Se há uma grande variação na freqüência
dos itens, há dois problemas
Se min_sup for muito grande as regras que
envolvem itens raros não serão encontradas
Para encontrar regras que envolvem tanto
itens freqüentes como itens raros, min_sup
deve ser bem pequeno
Isso pode causar uma explosão combinatória já que
os itens freqüentes (1-itemsets) serão associados
entre si de todas as formas possíveis, anulando a
poda no reticulado
43
Resumo
Duas métricas usualmente utilizadas em RA são suporte
e confiança
Há duas etapas na indução de RA
Geração de itemsets com min_sup
gera todos os 1-itemsets com min_sup fornecido e então os usa para
gerar os 2-itemsets, 3-itemsets e assim por diante
¾ Cada operação envolve uma varredura no conjunto de exemplos para
contar os itens em cada itemset
A partir de cada itemset determinar as regras que possuem
min_conf
avalia cada itemset e gera regras, verificando se elas têm min_conf
especificada
Na prática, o tempo de computação necessário depende
do min_sup especificado, pois ele determina o número
de varreduras efetuadas em todo o conjunto de exemplos
44