Title:
1Association mining
2Cosè lassociation mining
- Identifica frequenze/collegamenti/correlazioni/cau
salità tra insiemi di item (articoli) in database
transazionali - Ogni transazione contiene una lista di item
- Es. gli acquisti fatti dai vari clienti sono
memorizzati come transazione nel database di un
negozio - Esempi
- Forma della regola Body Head support,
confidence. - compra(x, pannolini) compra(x, birra)
0.5, 60 - laurea(x, Informatica) esame(x, DB)
voto(x, 100?110) 1, 75 - Applicazioni
- Basket data analysis, cross-marketing, catalog
design, clustering, classification, etc.
3Regole associative concetti base
- Dati
- (1) database di transazioni
- (2) ogni transazioni è una lista di articoli
(acquistati da un cliente in una visita al
supermercato) - I i1 , i2 , ,in è un insieme di item
distinti - Una transazione T è un sottoinsieme di I, T ?
I. - D, il database, è un insieme di transazioni
- Trova tutte le regole che correlano la presenza
di un insieme di articoli con quello di un altro
insieme di articoli - Una regola associativa ha la forma A-gtB,
- dove A ? I, B ? I, e AnB ?
- Es. il 98 della gente che acquista pneumatici e
accessori per auto richiede anche di effettuare
manutenzioni periodiche dellauto
4Esempio di dataset transazionale e MBA
Market-Basket transactions
Market Basket Analysis (MBA)
Esempio di regola associativa
5Misure di interesse delle regole
Clienti che comprano entrambi
Clienti che comprano pannolini
- Esempio pannolini ? birra
- Trova tutte le regole X ? Z con confidenza e
supporto minimo - Supporto, s, è la probabilità che una transazione
contenga X ? Z - Sup (X ? Z ) Probabilità (X ? Z )
- Confidenza, c, è la probabilità condizionale che
una transazione che include X contenga anche Z - Conf (X ? Z ) Probabilità (Z X )
Clienti che comprano birra
D
- Per
- 50 supporto minimo
- 50 confidenza minima
- abbiamo che
- A ? C (50, 66.6)
- C ? A (50, 100)
6Calcolo di regole frequenti e confidenti
- Sia X un itemset, e sia ?(X) ? D il numero di
transazioni in D che contengono X
Esempio Pannolini,Latte ?s,c Birra s
?(Pannolini,Latte,Birra) / Tot_trans
2/5 0.4 40 c ?(Pannolini,Latte,Birra) /
?(Pannolini,Latte) 2/3 0.66
66 Il supporto è la probabilità che un certo
itemset appaia nelle transazioni del dataset.
sP(Pannolini,Latte, Birra) La confidenza è
una probabilità condizionata
cP(Pannolini,Latte, Birra
Pannolini,Latte)
TID
Items
1
Pane, Latte
2
Birra, Pane, Pannolini, Uova
3
Birra, Coca, Pannolini, Latte
4
Birra, Pane, Pannolini, Latte
5
Coca, Pane, Pannolini, Latte
Association rule X?s,c y Support s ?(X?y)
/ D Confidence c ?(X?y) / ?(X)
7Estrazione di Regole Associative Applicazione 1
- Marketing e Promozione delle Vendite
- Supporre che sia stata scoperta la regola
- Coca, --gt Patatine
- Patatine come conseguenza gt Regola può essere
impiegata per capire cosa può essere usato per
promuovere le vendite di patatine. Coca
nellantecedente gt Regola può essere usata per
vedere le vendite di quali prodotti sarebbero
interessati se il negozio smettesse di vendere
Coca.
8Estrazione di Regole Associative Applicazione 2
- Gestione degli scaffali nel supermercato
- Scopo Identificare gli articoli che sono
comprati assieme da un numero sufficientemente
grande di clienti - Approccio Processare i dati collezionati con gli
scanner di codici a barre per trovare dipendenze
tra gli articoli. - Una regola classica
- Se un cliente acquista pannolini e latte, allora
con alta probabilità acquisterà birra - Quindi, non bisogna essere sorpresi se troviamo
pacchi da 6 birre disposti negli scaffali a
fianco dei pannolini! ?
9Estrazione di Regole Associative Applicazione 3
- Gestione dellinventario
- Scopo Unazienda di riparazione di piccoli
elettrodomestici ha necessità di - anticipare la natura delle riparazioni dei
prodotti richiesti dai clienti - mantenere i veicoli (usati dai riparatori)
equipaggiati con i pezzi di ricambio giusti,
questo per ridurre i numeri delle visite alle
abitazioni dei clienti - Approccio Processa i dati sugli strumenti e
parti richieste nelle precedenti riparazioni
presso le varie visite presso i clienti, e scopri
le co-occorrenze dei pattern
10Tipi di analisi associative
- Boolean vs. quantitative associations (Dipende
dal tipo di valori analizzati) - buys(x, SQLServer) buys(x, DMBook)
buys(x, DBMiner) 0.2, 60 - age(x, 30..39) income(x, 42..48K)
buys(x, PC) 1, 75 - Single dimension vs. multiple dimensional
associations (vedi il secondo esempio di sopra) - Single level vs. multiple-level analysis
- Che tipo di birra è associata con che marca di
pannolini? - Varie estensioni
- Correlazione, analisi di causalitÃ
- Associazioni non necessariamente implica
correlazione o causalità - Maxpatterns e closed itemsets
- Vincoli
- Es piccole svendite (sum lt 100) danno luogo a
grandi acquisti (sum gt 1,000)?
11Mining di regole booleane a singola-dimensione
Min. support 50 Min. confidence 50
- Per la regola A ? C
- support support(A ? C) 50
- confidence support(A ? C) / support(A)
66.6 - Il principio Apriori
- Ogni sottoinsieme di un itemset frequente DEVE
essere frequente
12Generazione delle regole dagli itemset frequenti
- Esempio di regole
- Milk,Diaper ? Beer (s0.4, c0.67)Milk,Beer
? Diaper (s0.4, c1.0) - Diaper,Beer ? Milk (s0.4, c0.67)
- Beer ? Milk,Diaper (s0.4, c0.67) Diaper
? Milk,Beer (s0.4, c0.5) - Milk ? Diaper,Beer (s0.4, c0.5)
- Osservazione
- Tutte le regole di sopra fanno riferimento allo
stesso itemset frequente (s40) Milk,
Diaper, Beer - Le regole così ottenute hanno supporto identico
ma possono avere confidenza differente
13Mining frequent itemset il passo chiave dell
association mining
- Trova i frequent itemsets gli insiemi di item
che hanno supporto minimo - Un sottoinsieme di un frequent itemset è
anchesso frequente (proprietà anti-monotonica) - Se AB è un frequent itemset, sia A e sia
B sono frequenti - ?(A) ? ?(AB) e ?(B) ? ?(AB)
- Sia I un itemset. Se un sottoinsieme di I non è
frequente, allora I non è frequente - Se A NON è un frequente, allora anche A,B
NON è frequente - I frequent itemsets possono essere individuati
iterativamente - Prima quelli di cardinalità 1 (1-itemset)
- Poi quelli di cardinalità 2 (2-itemset)
- .
- Infine quelli di cardinalità k (k-itemset)
- Usa i frequent itemsets per generare le regole
associative
14Il reticolo degli itemsets
Power Set di un insieme di d items (d5 in questo
caso) Ci sono 2d itemset possibili
15Come calcolare gli itemset frequenti
- Approccio naive
- Ogni itemset nel reticolo è un candidato itemset
frequente - Conta il supporto di ogni candidato con la
scansione di tutte le transazioni del database - Complessità O(NM) gt costosa poiché M 2d !!!
16Approcci per il mining degli Itemset Frequenti
- Ridurre il numero di candidati (M)
- Ricerca completa M2d
- Usa invece leuristica Apriori per ridurre M
- Redurre il numero di transazioni (N)
- Ridurre la dimensione N via via che la dimensione
k degli itemset aumenta - Dataset pruning
- Ridurre il numero di confronti necessari (NM)
- Usa strutture dati efficienti/compresse per
memorizzare candidati/frequenti/transazioni - Lo scopo è evitare di effettuare il matching di
ogni candidato contro ciascuna transazione
17Usare il principio di Apriori per il pruning dei
candidati
Se un itemset è NON frequente, allora tutti i
suoi superset devono anche essere NON frequenti
Abbiamo scoperto che è NON frequente
Super-itemset eliminati (pruned), e non
controllati
18Lalgoritmo Apriori
- Ck è linsieme dei candidati (k-itemset)
alliterazione k - Il supporto dei candidati deve essere calcolato
per generare Lk - Lk è linsieme dei frequent itemset (k-itemset)
alliterazione k - Si tratta di un sottoinsieme di Ck
- Assieme ad ogni itemset in Lk, viene restituito
anche il supporto relativo - Nota L sta per large. Nellarticolo originale di
Apriori, gli itemset frequenti erano chiamati
large itemset - Gen Step Ck1 è generato facendo il join di
Lk con sé stesso, e prendendo solo, tra gli
itemset otenuti, quelli di lunghezza k1 che
contengono item distinti - Prune Step Un k-itemset non può essere
frequente, e quindi non sarà un candidato, se
qualcuno dei suoi sottoinsiemi non è frequente
19Lalgoritmo Apriori
- Pseudo-code
- Ck Candidate itemset of size k
- Lk frequent itemset of size k
- L1 frequent items
- for (k 1 Lk !? k) do begin
- Ck1 candidates generated from Lk
- for each transaction t in database D do
- increment the count of all candidates in
Ck1 - that are contained in t
- Lk1 candidates in Ck1 with min_support
- end
- return ?k Lk
20Lalgoritmo Apriori un esempio (minsup 2)
Database D
L1
C1
Scan D
C2
C2
L2
Scan D
L3
C3
Scan D
21Apriori visita Breadth first del reticolo
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
abcd abce abde acde bcde
abcde
22Genera i Candidati di dimensione 1
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
abcd abce abde acde bcde
abcde
23Conta i supporti dei Candidati di dim. 1
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
abcd abce abde acde bcde
abcde
24Genera i Candidati di dimensione 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
abcd abce abde acde bcde
abcde
25Conta i supporti dei Candidati di dim. 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
abcd abce abde acde bcde
abcde
26Pruna gli itemset infrequenti
a b c d e
ac ad ae bc bd be cd ce de
acd ace ade bcd bce bde cde
acde bcde
27Genera i Candidati di dimensione 3
a b c d e
ac ad ae bc bd be cd ce de
acd ace ade bcd bce bde cde
acde bcde
28Conta i supporti dei Candidati di dim. 3
a b c d e
ac ad ae bc bd be cd ce de
acd ace ade bcd bce bde cde
acde bcde
29Pruna gli itemset infrequenti
a b c d e
ac ad ae bc bd be cd ce de
acd ace ade bce bde cde
acde
30Genera i Candidati di dimensione 4
a b c d e
ac ad ae bc bd be cd ce de
acd ace ade bce bde cde
acde
31Conta i supporti dei Candidati di dim. 3
a b c d e
ac ad ae bc bd be cd ce de
acd ace ade bce bde cde
acde
32Passo di generazione dei candidati
- Supponi che
- gli item allinterno degli itemset siano
ordinati, - gli itemset in Lk-1 siano ordinati secondo
lordine lessicografico indotto - Step 1 self-joining Lk-1
- insert into Ck
- all pairs (p, q) ?Lk-1
- where p.item1q.item1, , p.itemk-2q.itemk-2,
p.itemk-1 lt q.itemk-1 - (p e q condividono un prefisso comune di
lunghezza k-2) - (la condizione p.itemk-1 lt q.itemk-1 assicura
che non vengano prodotti duplicati) - Step 2 pruning
- forall itemsets c in Ck do
- forall (k-1)-subsets s of c do
- if (s is not in Lk-1) then delete c from Ck
33Esempio di generazione dei candidati
- L3abc, abd, acd, ace, bcd
- Self-joining L3L3
- abcd da abc e abd
- acde da acd e ace
- Pruning
- acde è rimosso perché ade non è in L3
- C4abcd
34Conteggio del supporto dei candidati
- Perchè contare il supporto dei candidati potrebbe
essere problematico? - Il numero di candidati potrebbe essere enorme
- Una transazione potrebbe contenere molti
candidati - Metodo
- Itemsets Candidati memorizzati in un hash-tree
- La profondità massima dellhash-tree dipende
dalla lunghezza k dei candidati memorizzati - Nodi foglia dellhash-tree contengono una lista
di itemset candidati, con i contatori associati - Nodi interni contengono un hash table
- Funzione di subsetting trova tutti i candidati
contenuti in una transazione visitando lhash tree
35Metodi per migliorare lefficienza di Apriori
- Hash-tree per memorizzare i candidati
- Albero ternario, con funzione hash di modulo sul
valore degli item - Foglie memorizzano lista di candidati (ordered
sets) - Subsetting check sulla radice dellalbero, data
la transazione 1,2,3,5,6
36Hash-tree per memorizzare i candidati
Hash Function
Candidate Hash Tree
Nota che 4 e 7 appaionoanche in questi bin
1,4,7
3,6,9
2,5,8
Hash on 1, 4 or 7
37Hash-tree per memorizzare i candidati
Hash Function
Candidate Hash Tree
1,4,7
3,6,9
2,5,8
Hash on 2, 5 or 8
38Hash-tree per memorizzare i candidati
Hash Function
Candidate Hash Tree
1,4,7
3,6,9
2,5,8
Hash on 3, 6 or 9
39Operazione di Subsetting su una transazione
Data una transazione t, quali sono i possibili
sottoinsiemi di size 3?
40Operazione di Subsetting su una transazione
- Controllo di subsetting ricorsivo
Hash Function
1 2 3 5 6
transaction
1,4,7
3,6,9
2,5,8
Per evitare duplicati,cerco sempre
insiemiordinati di 3 elementi 1 combinato con
2, o 3, o 5, ma non con 6non esiste 1,6,x,
xgt6, nella transazione !!!
1 3 6
3 4 5
1 5 9
41Operazione di Subsetting su una transazione
Hash Function
transaction
1,4,7
3,6,9
2,5,8
1 3 6
3 4 5
1 5 9
42Operazione di Subsetting su una transazione
Hash Function
transaction
1,4,7
3,6,9
2,5,8
1 3 6
3 4 5
1 5 9
La transazione contiene ben 11 di tutti i 15
candidati
43Metodi per migliorare lefficienza di Apriori
- Hash-based itemset counting
- Alliterazione k-1 provo a prevedere gli itemset
che finiranno in Ck - Scopo aumentare la capacità di pruning per
ridurre la dimensione di Ck - I k-itemset presenti in una transazione sono
mappati, tramite una funzione hash, in una
tabella hash relativamente piccola ? meno
contatori di Ck - Tutti gli k-itemset la cui locazione hash
corrispondente è al di sotto del supporto minimo - Non possono essere frequenti
- Possono essere prunati da Ck
- Esempio Alliterazione k1, crea la tabella hash
H2 - hash function h(x y) (x 10 y) mod 7
- min_supp 3
44Metodi per migliorare lefficienza di Apriori
- Transaction pruning Una transazione che non
contiene nessun k-itemset frequente, è inutile
nelle successione scansione del database - Sampling mining su un sottoinsieme dei dati.
Perdiamo in accuratezza ma miglioriamo in
efficienza - Partitioning Un itemset che è frequente nel
database D deve essere frequente in almeno una
delle partizioni di D (relativamente al size
della partizione).Purtroppo un itemset frequente
in una partizione di D potrebbe essere NON
frequente nel database completo D.
45- D1, D2, D3
- Se X è frequent, allora supp(X)
suppD1(X) suppD2(X) suppD3(X) gt s
(D1 D2 D3) - ?i, suppDi(X) lt s Di ? X è infrequente
globalmente - A ? B (per def. è equivalente a A ?
B) - A ? B è equivalente a
- B ? A (che per def. è equiv. a B ? A)
-
- X è frequente globalmente ? ?i, suppDi(X) gt
s Di
46Generazione delle regole
- Algoritmo non ottimizzato
- for each frequent itemset l do
- for each subset c of l do
- if (support(l) / support(l-c) ? minconf)
then - output rule (l-c) ? c, with
- confidence support(l) / support(l-c)
- support support(l)
c è frequente per definizione
47Generazione delle regole (2)
- Considera la regola (l-c) ? c
- Se c1 ? c, allora
- l c ? l - c1
- support(l - c) ? support(l c1)
- support(l)/support(l - c1) ?
support(l)/support(l - c) - conf((l - c1) ? c1) ? conf((l - c) ? c)
- Quindi, se una conseguenza c genera una regola
valida, usando tutti i sottoinsiemi c1 di c
generiamo regole valide (con confidenza maggiore)
? proprietà di antimonotonia - Possiamo quindi usare questa proprietà per
effettuare il pruning delle regole candidate,
generando prima le regole con le conseguenze più
corte (a livelli) - Considera un itemset ABCDE.
- se ACDE ? B e ABCE ? D sono le sole regole valide
con singola conseguenza (cioè con confidenza
minima), allora ACE ? BD è la sola altra regola
che deve essere testata. - se ACD ? BE fosse valida, dovrebbe essere valida
anche se ABCD ? E
l
c
c1
48Colli di bottiglia di Apriori
- I concetti base di Apriori
- Visita a livelli dello spazio di ricerca
- Usa i (k 1)-itemset per generare i k-itemset
candidati - Ad ogni livello, scandisci il database, usa
pattern matching per aggiornare i contatori dei
k-itemsets candidati - Approccio Counting-based
- Colli di bottiglia
- I candidati possono essere tantissimi
- 104 1-itemset frequenti genereranno 107
2-itemset candidati - Per scoprire un pattern frequente di dimensione
100, es. a1, a2, , a100, è necessario contare
2100 ? 1030 candidati. - Scansioni multiple del database
- Necessari (n 1 ) scansioni, dove n è la
lunghezza del pattern più lungo
49Mining dei pattern frequenti senza generazione
dei candidati
- Comprimi il database in una strutura dati
compatta Frequent-Pattern tree (FP-tree) - Struttura dati TRIE, solitamente utile per
memorizzare stringhe ed effettuare ricerche - FP-tree è compresso, ma completo per lestrazione
dei pattern frequenti con i relativi supporti - Si riducono le scansioni del database
- Metodo efficiente basato sull FP-tree per
effettuare il mining dei pattern frequenti - Metodo divide-and-conquer decomponiamo il task
completo in altri più piccoli - Si evita la generazione dei candidati
50Costruzione dellFP-tree a partire dal DB
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 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
min_support 0.5
- Passi
- Scandisci il database per trovare gli 1-itemset
frequenti - Ordina gli items frequenti in ordine decrescente
- Scandisci il DB nuovamente, e costruisci l
FP-tree
51Costruzione FP-tree
null
Letura TID1
Transaction Database
A1
B1
Lettura TID2
null
B1
A1
B1
C1
D1
52Costruzione FP-tree
Transaction Database
null
B3
A7
B5
C3
C1
D1
D1
Header table
C3
D1
E1
D1
E1
D1
Puntatori utili per estrarre gli itemset frequenti
53Proprietà dellFP-tree
- Preserva linformazione completa per estrarre i
pattern frequenti - Riduzione delle informazioni irrilevanti gli
item non frequenti sono eliminati - Ordinati in ordine decrescente di frequenza item
più frequenti hanno più probabilità di essere
condivisi - LFP-tree è solitamente più piccolo del database
originale (senza contare link e contatori) - Esempio per connect-4 DB, rapporto di
compressione maggiore di 100
54Mining i pattern frequenti tramite lFP-tree
- Idea generale
- In maniera ricorsiva, fai crescere i pattern
frequenti usando lFP-tree - Visita Depth-First del reticolo
55FIM attraverso una visita depth first
- Supponi di avere un dataset che contenga gli item
- a, b, c, d, e
- Conta il supporto degli item singoli
- Rimuovi gli item non frequenti
- Trova tutti gli itemset frequenti che contengono
a - possiamo rimuovere proiettare il dataset
rimuovendo le trans. che non contengono a - Trova tutti gli itemset frequenti che contengono
b ma non a - possiamo rimuovere proiettare il dataset
rimuovendo le trans. che non contengono b - rimuovendo anche a da ogni trans. restante
- Trova tutti gli itemset frequenti che contengono
c ma non a e b - possiamo rimuovere proiettare il dataset
rimuovendo le trans. che non contengono b - rimuovendo anche a e b da ogni trans. restante
-
- NOTA anche se nellesempio usiamo lordine
lessicale tra gli item per determinare lordine
della visita, qualsiasi ordine potrebbe essere
usato.Un ordine spesso utilizzato è quello
indotto dalla frequenze degli item, considerando
per primi gli item meno/più frequenti
56FIM attraverso una visita depth first
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
abcd abce abde acde bcde
abcde
57Trova itemset frequenti contenenti a
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
abcd abce abde acde bcde
abcde
58Trova itemset frequenti contenenti a ma non b
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
abcd abce abde acde bcde
abcde
59 contenenti c ma non a e non b
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
abcd abce abde acde bcde
abcde
60 contenenti d ma non a, non b, e non c
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
abcd abce abde acde bcde
abcde
61 contenenti d ma non a, b, c, d
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
abcd abce abde acde bcde
abcde
62Ricorsione es. per gli itemset contenenti a
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
abcd abce abde acde bcde
abcde
63Passi di FP-growth
- Costruisci il conditional pattern base per
ciascun item nelFP-tree - proiezione del database per prepararsi alla
visita depth-first - quando visito per estrarre gli itemset che
iniziano per c, ma non contengono né a e né b, mi
è sufficiente un database ridotto (proiettato),
da cui ho rimosso a e b - Costruisci il conditional FP-tree da ciascun
conditional pattern-base - ogni conditional FP-tree corrisponde alla
compressione del database proiettato (rimuovo gli
itemset localmente infrequenti) - Passo ricorsivo sui conditional FP-trees
- rispetto al mining degli itemset che iniziano per
a, calcolo prima gli itemset che iniziano per ab,
poi quelli che iniziano per ac e non ab, poi
quelli che iniziano per ad
64Passo 1 dall FP-tree al Conditional Pattern Base
- A partire dal frequent header table dell FP-tree
- Attraversa nellFP-tree la lista di ciascun item
frequente - Accumula i prefix path di quellitem in modo da
formare la conditional pattern base
Conditional pattern bases item cond. pattern
base c f3 a fc3 b fca1, f1, c1 m fca2,
fcab1 p fcam2, cb1
65Proprietà importanti per la creazione delle basi
condizionali
- Proprietà dei Node-link
- Per ogni frequent item ai, tutti i possibili
frequent pattern che contengono ai possono essere
ottenuti seguendo i link del nodo ai, iniziando
dalla testa della lista di ai nellFP-tree header - Proprietà dei prefix path
- Per calcolare i frequent pattern per un nodo ai
nel path P dellalbero (P va dalla radice ad una
foglia dellalbero), solo il prefix sub-path di
ai in P deve essere accumulato nella base, e il
suo conteggio di frequenza deve portare lo stesso
conteggio del nodo ai.
66Passo 2 costruzione dei conditional FP-tree
- Per ciascuna pattern-base
- Accumula i conteggi per ciascun item nella base
- Costruisci lFP-tree condizionale includendo solo
gli item frequenti presenti nella pattern-base - Litem b viene eliminato dall m-base perché non
frequente
m-conditional pattern base fca2, fcab1
Header Table Item frequency head
f 4 c 4 a 3 b 3 m 3 p 3
f4
c1
All frequent patterns concerning m m, fm, cm,
am, fcm, fam, cam, fcam
b1
b1
c3
?
?
p1
a3
b1
m2
p2
m1
67Basi e FP-tree condizionali
68Passo 3 ricorsione
- In modo ricorsivo, riapplica FP-growth agli
FP-tree condizionali
Cond. pattern base di am (fc3)
Cond. pattern base of cm (f3)
f3
cm-conditional FP-tree
Cond. pattern base of cam (f3)
f3
cam-conditional FP-tree
69Generazione a partire da un FP-tree a singolo path
- Supponi che un FP-tree T ha un singolo path P
- Linsieme completo dei frequent pattern di T può
essere generato enumerando tutte le combinazioni
dei sub-paths di P
Tutti i frequent patterns relativi a m m, fm,
cm, am, fcm, fam, cam, fcam
f3
?
c3
a3
m-conditional FP-tree
70Prestazioni
- Performance
- FP-growth è un ordine di grandezza più veloce di
Apriori - Ragioni
- Non abbiamo candidate generation, e nemmeno
candidate test - Strutture dati compatte
- Solo per alcuni tipi di database, purtroppo
- Si evitano ripetuti scan del database
- Loperazione base diventa il conteggio e la
costruzione dellFP-tree
71FP-growth tempo di esecuzione rispetto al
supporto minimo
Data set T25I20D10K
72FIM algorithms formato database
- Database Orizzontale vs. Verticale
- Record orizzontale (transazione) Tid Item0,
, Itemk - Record verticale (tidlist) Item Tid0, ,
Tidh
Verticale
Orizzontale
73FIM algorithms metodo per calcolare i supporti
- Metodo per calcolare il supporto
- Count-based
- E il metodo usato da Apriori
- Sfrutta un database orizzontale, confrontando le
transazioni con i candidati, incrementando i
contatori associati - Intersection-based
- Sfrutta un database verticale
- Per ogni itemset candidato, interseca
(set-intersection) le tidlist degli item che
appaiono nel candidato - la cardinalità del tidlist risultante dopo le
intersezioni corrisponde al supporto del
candidato
74Count-based vs Intersection-based
- Come possiamo determinare il supporto dei
candidati? - Apriori è count-based, e usa un dataset
orizzontale - Partition/Eclat è intersection-based, e usa un
dataset verticale
Transaction
TID-list
75Intersection-based
- k-way intersection
- Determina il supporto di un k-itemset attraverso
il set intersection di k tid-list atomiche,
contando alla fine la cardinalità della lista
ottenuta - Vantaggio bassa occupazione di memoria
- Svantaggio lentezza nel conteggio
?
?
?
- 2-way intersection
- Determina il supporto di un k-itemset attraverso
il set intersection di 2 tid-list associate a due
dei suoi (k-1)-sottoinsiemi frequenti - Vantaggio velocissimo conteggio del supporto
Svantaggio la dimensione di tutte le liste
intermedie può diventare grandissima
?
?
76Frequent Set Counting algorithms
- Spazio di ricerca P(I), power set di I, P(I)
2I - Spazio di ricerca molto grande, ma la proprietÃ
di Apriori introduce molto pruning
- DFS
- Depth-First Search
- in profonditÃ
- non si riesce a sfruttare pienamente la proprietÃ
di antimonotonia per il pruning - BFS
- Breadth-First Search
- Per livelli, come lalgoritmo di Apriori
77Classificazione dei vari algoritmi per FSC
Search space visiting method
BFS
DFS
Support computing method
Support computing method
Counting
Intersecting
Counting
Intersecting
Apriori
Partition
FP-growth
Eclat
Horizontal DB
Vertical DB
Vertical DB
Horizontal DB
Level-wise, strictly iterative
Divide conquer, recursive
78DCI Direct Counting Intersecting
- Algorithm Level-wise (BFS)
- Metodo ibrido per determinare il supporto dei
frequent itemsets - Count-based durante the prime iterazioni
- Metodo innovative per memorizzare e accedere i
candidati per countare il loro supporto - Pruning del database orizzontale (disk-stored)
- Intersection-based quando il database è piccolo
abbastanza da stare in memoria principale ?
resource-aware - Trasformazione Orizzontale-a-Verticale
- Intersezione k-way ottimizzata
79DCI fase intersection-based
- Quando il database prunato entra in memoria, DCI
costruisce al volo un bit-vector database
verticale - Grazie alla rappresentazione bit-vector e al
pruning, questo accade molto presto (2o o 3o
iterazione)
nk trans
1
0
mk items
80DCI intersezione delle tidlist (bitvector)
- Intersectioni a k-vie
- Intersezione di tidlists associate con singoli
item (atomi) - Poca memoria, ma troppe intersezioni!
- Intersectioni a 2-vie
- a partire da tidlist associate con frequent
(k-1)-itemset - tantissima memoria, ma poche intersezioni!
- DCI ? compromesso tra 2-vie e k-vie
- Basato su intersezioni a k-vie di bitvector,
- MA usa cache per memorizzare le intersezioni
parziali corrispondenti ai vari prefissi del
candidato corrente
k-2 bitvector di nk bit
Cache size
81DCI intersezione delle tidlist (bitvector)
i0
i1
i2
i3
i4
i5
C6
Buffer di (k-2) vettori di nk bit usati per il
caching delle intersezioni intermedie
3
5
11
17
24
31
Candidato corrente
5
11
17
24
47
3
5
11
17
31
47
3
3 5
3 5 11
3 5 11 17
3 5 11 17 24
82DCI numero delle operazioni AND
83DCI database sparsi vs. densi
- Sparsi
- I bit-vector sono sparsi
- contengono pochi 1, e lunghe sequenze di 0
- è possibile identificare grandi sezioni di word
uguali a zero - possiamo skip-are queste sezioni durante le
intersezioni - Densi
- Forte correlazione tra gli item più frequenti, i
cui bit-vectors sono densi e molto simili - contengono pochi 0, e lunghe sequenze di 1
- DCI
- Adotta automaticamente strategie di
ottimizzazione differenti per database densi e
sparsi
84DCI migliore di FP-growth
- Database denso
- Pattern lunghissimi
- Apriori è troppo costoso
- tempo diApriori non commensurabile
85DCI migliore di FP-growth
- Database reale e sparso
- Dati di click-stream da un sito web di
e-commerce - Pattern di lunghezza media per supporti piccoli
86Visualizzazione di regole associative (Forma
tabellare)
87Visualizzazione grafico tridimensionale
88Visualizzazione associazioni come link
89Regole associative multi-livello
- Gli item spesso associati ad una gerarchia
- Item e relative regole ai livelli più bassi hanno
supporti più bassi - Regole riguardanti itemset agli appropriati
livelli possono risultare utili e significative - Possiamo esplorare regole a livelli multipli
- Dato un supporto assoluto, la regola "Outwear ?
Shoes" può essere valida anche se "Jackets ?
Shoes" e SkiPants ? Shoes" non lo sono
90Regole associative multi-livello
- Un approccio top_down, che progressivamente
scende di livello - Prima trova regole più forti ad alto-livello
- milk bread
20, 60 - Poi trova regole più deboli al loro livello più
basso - 2 milk wheat
bread 6, 50
91Regole associative multi-livello Uniform
Support vs. Reduced Support
- Supporto uniforme stesso supporto minimo per
tutti i livelli della gerarchia - Un solo valore soglia per il supporto minimo
- Non abbiamo necessità di esaminare itemset che
contengono item i cui antenati non godono del
supporto minimo - I livelli più bassi non sono sicuramente
frequenti - Se il valore soglia del supporto è
- Troppo alto ? perdiamo regole a livello basso
- Troppo basso ? generiamo troppe regole di alto
livello - Riduzione progressiva del supporto
- supporto minimo viene via via ridotto ai livelli
più bassi della gerarchia
92Regole associative multi-livello Uniform Support
vs. Reduced Support
Milk support 10
Level 1 min_sup 5
2 Milk support 6
Skim Milk support 4
Level 2 min_sup 5
93Regole associative multi-livello Uniform Support
vs. Reduced Support
Level 1 min_sup 5
Milk support 10
2 Milk support 6
Skim Milk support 4
Level 2 min_sup 3
94Regole associative multi-dimensionali
- Regole a singola dimensione
- Regole intra-dimension (singolo predicato)
- buys(X, milk) ? buys(X, bread)
- Regole multi-dimensionali e quantitative
- Regole inter-dimension (senza predicati ripetuti)
- age(X,19-25) ? occupation(X,student) ?
buys(X,coke) - Regole hybrid-dimension (predicati ripetuti)
- age(X,19-25) ? buys(X, popcorn) ? buys(X,
coke) - Problemi con dimensioni contenenti attributi
quantitativi - Attr. numerici, ordinati implicitamente
- Da discretizzare staticamente o dinamicamente
95Critiche alle misure di supporto/confidenza
- Esempio 1
- Tra 5000 studenti
- 3000 giocano a calcio
- 3750 mangiano cereali
- 2000 sia giocano a calcio e sia mangiano
cereali - La regola gioca a calcio ? mangia cereali 40,
66.7 è fuorviante, poiché la percentuale
totale di studenti che mangiano cereali è del
75, che è più grande del 66.7La misura di
conf. ignora la prob. ass. della parte destra
della regola - La regola gioca a calcio ? non mangia cereali
20, 33.3 è più significativa, anche se ha un
supporto e una confidenza minore
96Critiche alle misure di supporto/confidenza
- Esempio 2
- X e Y correlati positivamente,
- X e Z correlati negativamente
- Supporto e confidenza di
- X ?Z domina
97Unaltra misura Interesse
- Interesse (lift)
- Si considerano sia P(A) e sia P(B)
- P(AB)P(B)P(A), se A e B sono eventi
indipendenti - A e B sono correlati negativamente se il valore
è minore di 1 - A e B sono correlati positivamente se il valore
è maggiore di 1
98Atri tipi di patterns
- Maximal and Closed Itemsets
- Negative Associations
- Indirect Associations
- Frequent Subgraphs
- Cyclic Association Rules
- Sequential Patterns
99Maximal frequent itemsets
Maximal Itemsets
Infrequent Itemsets
Border
100Closed frequent itemsets
- Un itemset X è closed se NON esistono itemset X
tali che - X è un superset di X
- Tutte le transazioni che contengono X contengono
pure X - supp(X) supp(X)
A1 A10 B1 B10 C1 C10
Numero degli itemset frequenti Numero Closed
Itemset 3 A1,,A10, B1,,B10,
C1,,C10 Numero Itemset massimali 3
111111111100000000000000000000 1111111111000000000
00000000000 111111111100000000000000000000 1111111
11100000000000000000000 00000000001111111111000000
0000 000000000011111111110000000000 00000000001111
1111110000000000 000000000011111111110000000000 00
0000000000000000001111111111 000000000000000000001
111111111 000000000000000000001111111111 000000000
000000000001111111111
101Maximal vs Closed Itemsets
Transaction Ids
Non supportati da alcuna transazione
102Maximal vs Closed Itemsets
Closed but not maximal
Minimum support 2
Closed and maximal
CD
Closed 10 Maximal 5
A ? D (s2, c 2/3 0,66) AC ? D (s2, c
2/3 0,66)
regola non generata se partiamo dai closed
103Classificatori basati su regole associative
- Dati su cui costruire il classificatore
- Insieme di record in D classificati, ovvero
contenenti un attributo categorico y?Y, che
determina la classe di appartenenza - Trasformiamo il dataset per poter applicare un
algoritmo Apriori-like - Ogni record deve diventare una transazione che
contiene un insieme di item ? I - Gli attributi categorici vengono mappati su
insiemi di interi consecutivi - Gli attributi continui sono discretizzati e
trasformati come quelli categorici - Ogni record diventa una ennupla di item distinti
appartenenti a I, dove ogni item è una coppia
(Attribute, Integer-value) - Le regole estratte (CARClass Association Rule)
con supporto/confidenza minimi hanno quindi forma - condset ? y
- Dove condset è un insieme di item (Attribute,
Integer-value)
104Classificatori basati su regole associative
- Una CAR ha confidenza c
- se il c dei campioni in D che contengono condset
contengono anche y (ovvero appartengono alla
classe y) - Una CAR ha supporto s
- se l s dei campioni in D contengono sia
condset e sia y (ovvero contengono condset ed
appartengono anche alla classe y )
105Classificatori basati su CAR in dettaglio
- 1 passo (generazione delle CAR)
- Algoritmo iterativo (come Apriori) che ricerca
k-ruleitems frequenti (CAR frequenti il cui
condset contiene K item) - Scansione multipla del database
- Cerca ad ogni iterazione k 1, 2, 3, i
k-ruleitems frequenti - La conoscenza dei k-ruleitems frequenti viene
usata per generare i (k1)-ruleitems candidati
106Classificatori basati su CAR in dettaglio
- 2 passo (generazione del Classificatore)
- Ricerca delle CAR più accurate
- Metodo euristico, basato su un ordinamento tra
CAR - Una regola ri precede una regola rj (ri lt rj)
se - La confidenza di ri è più grande di rj
- La confidenza è la stessa, ma ri ha un supporto
più grande - La confidenza e il supporto delle due regole sono
uguali, ma ri è stata generata prima di rj - Al termine lalgoritmo seleziona un insieme di
CAR ordinate che coprono tutti i campioni in D - Uso del classificatore
- Nel classificare un nuovo campione, si usa
lordine tra le CAR - Si sceglie la prima regola il cui condset
soddisfa il campione. - E necessaria una regola di default, a precedenza
minima, che specifica una classe di default - Serve per classificare nel caso in cui nessuna
regola soddisfa il nuovo campione da classificare - Buoni risultati sia in velocità e sia in
accuratezza rispetto a C4.5
107Conclusioni
- Association rule mining
- Probabilmente costituisce il contributo più
notevole al KDD da parte di ricercatori su DB e
algoritmi - Moltissimi algoritmi sono stati pubblicati
- Usato anche come analisi di base per alg. di
clustering e classificazione - Direzioni di ricerca interessanti
- Analisi delle associazioni in altri tipi di dati
spaziali, multimedia, serie temporali, grafi,
etc.