REGRAS DE ASSOCIAÇÃO
Aprendizado de Máquinas (PPGCC - UFPA)
9 Novembro 2016 1 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Frequent PaJern Mining
Frequent Pattern
Analysis
Clustering
Outlier Analysis
Classification
Frequent
Pattern-Based
Classification
9 Novembro 2016 2 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesAlgoritmos de Data Mining (DM)
•
Data mining (DM)
–
is a broad area that integrates techniques from
several fields including machine learning,
sta7s7cs, pa9ern recogni7on, ar7ficial
intelligence, database system,…
C4.5
K-means
SVM
Apriori
EM
PageRank
AdaBoost
kNN
NaiveBayes
CART
Top-10 DM
Algorithms by
ICDM IEEE
9 Novembro 2016 3 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesProblema: Encontrar padrões de
associação
•
Walmart DB
Ticket Data
•
Ex:
1 1901,1881,199,901
2 901,1661
3 676,199,177,100
…..
…
120099 78,1881,199,8
•
Exemplo de perguntas a
responder:
•
Que produtos estão associadas
ao consumo de cerveja X ?
•
Como podemos descrever a
população consumidora de
amendoins?
•
Onde devem estar localizadas os
produtos de limpeza domés\ca ?
•
Como se relacionam os produtos
1661 e 199 ?
Número da transacçãoitem
9 Novembro 2016 4 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesComo expressar a informação extraída ?
•
Regras que relacionam produtos (items),
901 & 1661 à 67
Todas as regras ?
Como obter ?
Como seleccionar ?
Como organizar ?
Há um número explosivo de
potenciais regras que podem ser
derivadas!
Qual o procedimento
eficiente a aplicar?
Como discriminar regras
“boas” de “más” ?
Qualidade das regras
expressa por medidas
estatísticas.
9 Novembro 2016 5 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
A
B
C
D
AD
AC
AB
BC
BD
ABCD
ABD
ACD
ABC
CD
Set indica inclusão matemáticaItemset
Item
BCD
Espaço de pesquisa –
NP difícil
9 Novembro 2016 6 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Medidas de Interesse
•
A mais popular é o suporte (contagem) dos itemsets.
•
As regras são qualificadas por uma métrica de interesse
(previsibilidade, solidez ou força da regra).
•
Normalmente é usada a confiança (probabilidade
condicional)
•
Assim, a regra de associação:
•
Deve ser lida como:
a compra conjunta dos produtos 901, 707 e 1088
ocorre em 30% das transacções. Por outro lado, verifica-se que 90% das
transacções que contêm 901 e 707 também contêm o produto 1088.
•
Outra leitura:
90% da sub-população definida pelos produtos 901 e 707
consomem 1088.
901 & 707 à 1088 (sup=0.3,conf=0.9)
9 Novembro 2016 7 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesAplicações
•
Sistemas de recomendação,
•
Web adapta\vo
–
Amazon: o site recomenda novos interesses
usando os items visitados/comprados pelo
u\lizador.
•
Proteômica – Interação de proteínas
•
Transcriptômica – Perfil de expressão gênica
9 Novembro 2016 8 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesSistemas de Recomendação - Web
index.html
A
B
C
D
E
A D
Obs.:
Rules:
A E à D
A D à F
A B
F
à D
A à D
(conf: 0,8)
(conf: 0,7)
(conf: 0,6)
(conf: 0,5)
Recommendations (top 2):
F
X
(0,6)
(0,4)
click stream
9 Novembro 2016 9 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesGeração de Regras
•
Cálculo da confiança: conf(AàC) = s(A U C) / s(A).
•
Noção de thresholds de conf e sup (minsup e minconf)
•
Algoritmo “trivial”:
Tendo ABC,
testar, sabendo s(AB) e s(ABC),
se s(ABC) / s(AB) ≥ minconf
Fazer este procedimento para todos os
s∈{ABC} em que #s > 1.
9 Novembro 2016 10 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesCálculo de Items Frequentes
(frequent itemsets)
•
Algoritmo naive:
Seja K = { items em DB},
Derivar o P(K) (power_set),
Percorrer DB para contar as ocorrências de P(K)
Filtrar os itemset em P(K) que não verificam minsup.
•
Intractável!!!!!!!!
•
Melhor: fazer uso da propriedade downward closure do
suporte
Se X ⊆ Y então s(X) ≥ s(Y)
9 Novembro 2016 11 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesAlgoritmo Apriori [Agrawal & Srikant 94]
C
k
: Candidate itemset of size k
L
k
: frequent itemset of size k
L
1
= {frequent items};
for
(k = 1; L
k
!= ; k++)
do begin
C
k+1
= candidates generated from L
k
;
for each
transac\on t in database do
increment the count of all candidates in C
k+1
that are
contained in t
L
k+1
= candidates in C
k+1
with min_support
end
return
k
L
k
;
9 Novembro 2016 12 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesAplicação da Propriedade An\-monótona
A
B
C
D
AD
AC
AB
BC
BD
ABCD
ABD
ACD
ABC
CD
Infrequente
BCD
9 Novembro 2016 13 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesApriori “em ação…”
Database TDB
1
stscan
C
1L
1L
2C
2C
22
ndscan
C
33
rdscan
L
3Tid
Items
10
A, C, D
20
B, C, E
30
A, B, C, E
40
B, E
Itemset sup
{A}
2
{B}
3
{C}
3
{D}
1
{E}
3
Itemset sup
{A}
2
{B}
3
{C}
3
{E}
3
Itemset
{A, B}
{A, C}
{A, E}
{B, C}
{B, E}
{C, E}
Itemset sup
{A, B}
1
{A, C}
2
{A, E}
1
{B, C}
2
{B, E}
3
{C, E}
2
Itemset sup
{A, C}
2
{B, C}
2
{B, E}
3
{C, E}
2
Itemset
{B, C, E}
Itemset sup
{B, C, E}
2
Sup
min= 2
9 Novembro 2016 14 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesTipos de Algoritmos para Cálculo de
termos frequentes (FIM)
•
Breath-First
Apriori
Par\\on
Dic
Sampling
•
Depth-First
FP-growth
Inverted Matrix
Eclat
9 Novembro 2016 15 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
16
{}
f:4
c:1
b:1
p:1
b:1
c:3
a:3
b:1
m:2
p:2 m:1
Header Table
Item frequency head
f 4
c 4
a 3
b 3
m 3
p 3
min_support = 3
TID
Items bought
(ordered) frequent items
100
{f, a, c, d, g, i, m, p} {f, c, a, m, p}
200
{a, b, c, f, l, m, o}
{f, c, a, b, m}
300
{b, f, h, j, o, w}
{f, b}
400
{b, c, k, s, p}
{c, b, p}
500
{a, f, c, e, l, p, m, n} {f, c, a, m, p}
1. Scan DB uma vez, buscar
1-itemset
2. Ordenar itenset
frequentes (descending
order, f-list)
3. Scan DB outra vez, criar
FP-tree
f-list
= f-c-a-b-m-p
17
Algoritmo FP-Growth
•
Começar pela tabela de itemset frequentes na FP-tree
•
Percorrer a FP-tree através do link de cada item p
•
Acumumular
transformed prefix paths
do item p para a formar p
’
s
condi=onal pa>ern base
Conditional pattern bases
item cond. pattern base
c f:3
a fc:3
b fca:1, f:1, c:1
m fca:2, fcab:1
p fcam:2, cb:1
{}
f:4
c:1
b:1
p:1
b:1
c:3
a:3
b:1
m:2
p:2 m:1
Header Table
Item frequency head
f 4
c 4
a 3
b 3
m 3
p 3
18
Algoritmo FP-Growth
•
Para cada pa9ern-base
–
Acumular a contagem para cada item na pa9ern base
–
Criar FP-tree para itemsets na pa9ern base
m-conditional pattern base:
fca:2, fcab:1
{}
f:3
c:3
a:3
m-conditional FP-tree
All frequent
patterns relate to m
m,
fm, cm, am,
fcm, fam, cam,
fcam
Ú
Ú
{}
f:4
c:1
b:1
p:1
b:1
c:3
a:3
b:1
m:2
p:2
m:1
Header Table
Item frequency head
f 4
c 4
a 3
b 3
m 3
p 3
Recursão: Algoritmo FP-Growth
{}
f:3
c:3
a:3
m-conditional FP-tree
Cond. pattern base of “am”: (fc:3)
{}
f:3
c:3
am-conditional FP-tree
Cond. pattern base of “cm”: (f:3)
{}
f:3
cm-conditional FP-tree
Cond. pattern base of “cam”: (f:3)
{}
f:3
cam-conditional FP-tree
9 Novembro 2016 19 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Algoritmos: Representações
•
Horizontais
–
Transacções são listas de items. Ex:
t12: 1,4,6,7,12,129,929
t15: 2,4,5,6,14,189,901
•
Ver\cais
–
Representar a cobertura de cada item nas
transacções. Ex:
Tidlist(6) = [t12,t15,t24,t123,t300,…]
Tidlist(14)= [t15,t120,t541,…]
Tidlist(129)=[t12,t18,t45,…]
9 Novembro 2016 21 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesRepresentações Ver\cais
•
Cover Lists
–
Ideal para “sparse” data
–
Tidlist(I) = [t4,t9,t12,t45,t312,…]
–
sup(I) = #coverlist(I)
–
Tidlist(A U B) = \dlist(A) ∩ \dlist(B)
•
BitMaps
–
Melhores resultados com “dense” data
–
bitmap(I)= “0010011100011000”
–
sup(I) = bitcount(bitmap(I))
–
bitmap(A U B) = bitmap(A) & bitmap(B)
Bitwise logical and
Contar bits ligados
9 Novembro 2016 22 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Representações Ver\cais (2)
•
DiffSets (altamente escalável)
–
Em vez de representar todo o \dlist, usar só as
“alterações” ao \dlist para calcular suporte.
–
Diffset(A U B) = \dlist(A) – \dlist(B) (
elementos de A que não ocorrem em
B
)
–
s(AB) = s(A) - #ds(AB)
–
ds(ABC) = ds(AC) – ds(AB)
–
s(ABC) = s(AB) - #ds(ABC)
•
Exemplo:
–
t(A) = [1,3,4,5], t(B)=[1,2,3,4,5,6], t(C)=[2,4,5,6].
–
ds(AB)=[ ],ds(AC)=[1,3], ds(ABC)=[1,3],
–
S(ABC)= 4 – 0 – 2 = 2.
• Inicialmente temos
diffsets < tidlists
• Ficam mais pequenos
conforme os itemsets se
tornam mais longos
9 Novembro 2016 23 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Representações condensadas de
termos frequentes
•
All itemsets frequentes (FIS)
•
Itemsets máximos (MIS)
•
Closed itemsets (CIS)
•
Free-sets (FS)
Em certas aplicações é viável calcular versões
condensadas dos itemsets. Simplifica-se o
cálculo e evita-se alguma redundância.
All Patterns Closed Patterns Maximal Patterns 9 Novembro 2016 24 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesRepresentações condensadas de
termos frequentes
9 Novembro 2016 25 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Regras de Inferência de contagem
•
Alguns algoritmos usam regras de inferência de
contagem (evitando algum esforço), derivando a
contagem de um itemset à custa das contagem dos
seus subconjuntos.
•
Exemplos:
–
(support lower bound)
Sejam X,Y,Z itemsets,
–
(support inference)
Sejam X,Y,Z itemsets,
)
sup(
)
sup(
)
sup(
)
sup(
XYZ
≥
XY
+
XZ
−
X
)
sup(
)
sup(
)
sup(
)
sup(
XY
=
X
⇒
XYZ
=
XZ
9 Novembro 2016 26 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesMedidas de Interesse
•
Li†
•
Convic\on
•
Leverage
•
Χ
2
•
Reliability
•
etc
Teste de Χ
2
entre antecedente
e consequente
)
(
)
(
)
(
C
s
C
A
conf
C
A
Lift
→
=
→
)
(
1
)
(
1
)
(
C
A
conf
C
s
C
A
conv
→
−
−
=
→
)
(
)
(
)
(
A
C
conf
A
C
s
C
R
→
=
→
−
)
(
*
)
(
)
(
)
(
A
C
s
A
C
s
A
s
C
leve
→
=
∪
−
9 Novembro 2016 27 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesMedidas de Interesse (2)
)
(
)
(
)
(
C
s
C
A
conf
C
A
Lift
→
=
→
)
(
)
(
)
(
A
s
C
A
s
C
A
conf
→
=
∪
Confiança:
•
mede probabilidade condicional
P(C) dado A
• Tende a dar ênfase a regras não
correlacionadas (spurious rules).
Lift:
•
Mede a distância para a independência
entre A e C
• varia entre [0, +oo[
• Valor 1 à independência,
• Valores longe de 1 à indicam que a evidencia
de A fornece informação sobre C.
• mede co-ocorrência (não implicação)
• é simétrica!
9 Novembro 2016 28 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Medidas de Interesse (3)
)
(
1
)
(
1
)
(
C
A
conf
C
s
C
A
conv
→
−
−
=
→
)
(
)
(
)
(
)
(
A
C
s
A
C
s
A
s
C
leve
→
=
∪
−
×
Conviction:
• motivada pelas fraquezas de conf e lift
• varia entre [0.5, +oo[
• tenta capturar o grau de implicação entre A e C
• é directional i.e. conv(A àC) ≠ conv(C à A)
• valor 1 indica independência
• motivação (implicação lógica): A à C ó ~A υ C ó ~(A
∩
~C)
• medir quanto (A
∩
~C) se desvia da independência.
• inverto o rácio entre s(A υ ~C) e s(A) x s(~C) para lidar com negação
• excelente medida para classificação.
Leverage:
• varia entre ]-0.25,0.25[
• mede o número de casos extra obtidos
em relação ao esperado (à independência)
9 Novembro 2016 29 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Problemas da métrica Confiança
)
(
)
(
)
(
A
C
s
A
s
C
s
∪
=
×
∑
−
=
Χ
n
r
i RE
r
r
E
r
O
ε[
]
])
[
)
(
(
2
2
A confiança pode não detectar independência. A
regra ovos à leite pode ter conf=80% mas
podemos saber que o consumo de ovos é
independente de leite.
Independência entre A e C:
Noutros casos podemos ter dependência positiva/negativa.
Podemos usar uma medida de X^2 para medir correlação
Entre antecedente e consequente.
Aplicar teste de X^2 com um valor de conf=95% e 1 grau de liberdade,
Se X^2 >= 3.84 rejeita-se a hipótese de independência.
9 Novembro 2016 30 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Pruning nos itemsets
•
Aplicar teste de X^2 durante a contagem de termos
frequentes.
•
Problema: X^2 não sa\sfaz a propriedade downward closure.
Isto é, AC e BC podem não sa\sfazer o teste de X
2
mas ABC
pode. Upward closure property:
–
Se X
2(AC) ≥ 3.84 então não necessariamente X
2(ABC) ≥ 3.84
•
Corre-se o risco de não gerar todas as regras possíveis.
Potencialmente incompleto!
9 Novembro 2016 31 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Fraquezas do framework
suport-confiança
•
Pode ser diŠcil definir um suporte mínimo ideal
•
Certos problemas podem exigir suporte mínimos
extremamente baixos e.g. caviar à champagne
•
Solução: procurar as k-op\mal rules (sendo óp\mas
em relação a uma medida específica)
•
Suporte e confiança mínimas altas podem perder
regras interessantes
•
Confiança pode atribuir alto interesse a regras não
correlacionadas (como vimos!)
•
Outras medidas sofrem de problemas similares
9 Novembro 2016 32 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesSeleção e Pruning de Regras
•
Um algoritmo de FIM (mesmo com filtragem de suporte
confiança mínima) pode gerar milhões de regras. Podemos ter
#{regras} >> #{transacções} !!!
•
Maioria das regras são geradas fruto do acaso (no sen\do
esta‹s\co). Noção de false discoveries
•
Regras não correlacionadas (em que o antecedente e o
consequente são independentes)
•
Aparecimento de regras redundantes. Regras contêm items
no antecedente que são explicados por outros items também
no antecedente. Ex
(
grávida => mulher
):
• Grávida & mulher à retenção_de_liquidos
–
Descartar regra redundante x à y se:
–
Existe z ∈ x : s(x à y) = s(x - z à y)
9 Novembro 2016 33 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Pruning de Regras
Problema de improvement nas regras
Conf = 0.300 oranges ß bananas & peaches
Conf = 0.315 oranges ß peaches
Noção de improvement:
uma regra mais especifica tem de produzir uma mais valia em
termos de valor de medida de interesse.
met pode ser ={conf,li†,conv,X^2,etc}
Se o improvement > 0 dizemos que são regras produc7vas.
))
'
(
)
(
:
'
min(
)
(
A
C
A
A
met
A
C
met
A
C
imp
→
=
∀
⊂
→
−
→
9 Novembro 2016 34 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves“
from Tan et al SIGKDD’02”
Null-invariant &
Downward Closure
Discre\zação
•
Supervisionada:
–
Fayyad & Irani: Entropy oriented
–
Class intervals (caren)
–
Chi-Merge
•
Não supervisionada:
–
Equi-depth (intervalos de igual nº de elementos)
–
Equi-width (intervalos de igual largura)
–
Srikant (caren)
–
K-means
9 Novembro 2016 36 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Geração de Regras de Associação para
propriedades de interesse numéricas
Ideia geral: Ter regras em que o consequente é a
representação de uma propriedade numérica.
Exemplos:
Sex=female è Wage: mean=$7.9 (overall mean=$9.02)
non-smoker & wine-drinker è life-expectancy=85 (overall=80)
9 Novembro 2016 37 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Regras de Associação com propriedades
numéricas (cont)
•
Várias propostas
–
Quan\ta\ve Associa\on Rules (Aumann &
Lindell99)
–
Impact Rules (Webb 2001)
–
Distribu\on Rules (Jorge & Azevedo 2006)
•
Ideia comum a todas as propostas:
Gerar regras que representam o comportamento de uma
propriedade numérica numa sub população interessante. Diferentes
propostas de noção de regra interessante.
9 Novembro 2016 38 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Modelos de Previsão
com Regras de Associação
•
Ver um conjunto de regras seleccionadas
como um modelo de previsão.
•
Para fazer previsão sobre um caso, usar as
previsões derivadas das regras que cobrem
esse caso.
•
Usados em:
–
Sistemas de recomendação
–
Classificação
–
Previsão numérica
9 Novembro 2016 39 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesBestRule Predic\on
•
Para um novo caso:
–
Produzir um rank com as regras que cobrem caso,
–
Escolher a regra do topo do rank,
–
A previsão é o consequente desta regra,
–
Rank é produzido pela seguinte ordenação:
)
(
min
arg
)
(
rank
r
bestrule
x
F
r
x
=
∈
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
2 1 2 1 2 1 2 1 2 1 2 1 2 1R
ant
R
ant
R
sup
R
sup
R
meas
R
meas
or
R
sup
R
sup
R
meas
R
meas
or
R
meas
R
meas
if
R
R
<
∧
==
∧
==
>
∧
==
>
≺
9 Novembro 2016 40 Aprendizado de Máquinas >> Regras de Associação >> Ronnie AlvesVo\ng
•
Para um novo caso:
–
Seleccionar as regras que cobrem o caso,
–
Cada regra vote na classe que representa
(consequente).
–
A votação é ponderada pelo valor da medida de
interesse
–
Alterna\vamente, a votação é uniforme
9 Novembro 2016 41 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves9 Novembro 2016 42 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Sta\s\cal significance
5/7
9 Novembro 2016 44 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Mining Efficiency - GAA
Top-k
Top-k
9 Novembro 2016 45 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves
Classifica\on Accuracy - GAA
9 Novembro 2016 46 Aprendizado de Máquinas >> Regras de Associação >> Ronnie Alves