- PowerPoint PPT Presentation

1 / 107
About This Presentation
Title:

Description:

Title: Presentazione di PowerPoint Author: SALVATORE ORLANDO Last modified by: SALVA Created Date: 2/16/2003 6:34:17 PM Document presentation format – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 108
Provided by: SALVA85
Category:
Tags: clustering | data

less

Transcript and Presenter's Notes

Title:


1
Association mining
  • Salvatore Orlando

2
Cosè 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.

3
Regole 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

4
Esempio di dataset transazionale e MBA
Market-Basket transactions
Market Basket Analysis (MBA)
Esempio di regola associativa
5
Misure 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)

6
Calcolo 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)
7
Estrazione 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.

8
Estrazione 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! ?

9
Estrazione 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

10
Tipi 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)?

11
Mining 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

12
Generazione 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

13
Mining 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

14
Il reticolo degli itemsets
Power Set di un insieme di d items (d5 in questo
caso) Ci sono 2d itemset possibili
15
Come 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 !!!

16
Approcci 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

17
Usare 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
18
Lalgoritmo 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

19
Lalgoritmo 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

20
Lalgoritmo Apriori un esempio (minsup 2)
Database D
L1
C1
Scan D
C2
C2
L2
Scan D
L3
C3
Scan D
21
Apriori 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
22
Genera 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
23
Conta 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
24
Genera 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
25
Conta 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
26
Pruna 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
27
Genera 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
28
Conta 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
29
Pruna gli itemset infrequenti
a b c d e
ac ad ae bc bd be cd ce de
acd ace ade bce bde cde
acde
30
Genera 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
31
Conta 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
32
Passo 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

33
Esempio 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

34
Conteggio 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

35
Metodi 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

36
Hash-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
37
Hash-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
38
Hash-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
39
Operazione di Subsetting su una transazione
Data una transazione t, quali sono i possibili
sottoinsiemi di size 3?
40
Operazione 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
41
Operazione 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
42
Operazione 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
43
Metodi 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

44
Metodi 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

46
Generazione 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
47
Generazione 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
48
Colli 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

49
Mining 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

50
Costruzione 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

51
Costruzione FP-tree
null
Letura TID1
Transaction Database
A1
B1
Lettura TID2
null
B1
A1
B1
C1
D1
52
Costruzione 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
53
Proprietà 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

54
Mining i pattern frequenti tramite lFP-tree
  • Idea generale
  • In maniera ricorsiva, fai crescere i pattern
    frequenti usando lFP-tree
  • Visita Depth-First del reticolo

55
FIM 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

56
FIM 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
57
Trova 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
58
Trova 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
62
Ricorsione 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
63
Passi 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

64
Passo 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
65
Proprietà 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.

66
Passo 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
67
Basi e FP-tree condizionali
68
Passo 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
69
Generazione 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
70
Prestazioni
  • 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

71
FP-growth tempo di esecuzione rispetto al
supporto minimo
Data set T25I20D10K
72
FIM algorithms formato database
  • Database Orizzontale vs. Verticale
  • Record orizzontale (transazione) Tid Item0,
    , Itemk
  • Record verticale (tidlist) Item Tid0, ,
    Tidh

Verticale
Orizzontale
73
FIM 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

74
Count-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
75
Intersection-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

?
?
76
Frequent 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

77
Classificazione 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
78
DCI 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

79
DCI 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
80
DCI 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
81
DCI 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
82
DCI numero delle operazioni AND
83
DCI 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

84
DCI migliore di FP-growth
  • Database denso
  • Pattern lunghissimi
  • Apriori è troppo costoso
  • tempo diApriori non commensurabile

85
DCI 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

86
Visualizzazione di regole associative (Forma
tabellare)
87
Visualizzazione grafico tridimensionale
88
Visualizzazione associazioni come link
89
Regole 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

90
Regole 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

91
Regole 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

92
Regole associative multi-livello Uniform Support
vs. Reduced Support
  • Supporto uniforme

Milk support 10
Level 1 min_sup 5
2 Milk support 6
Skim Milk support 4
Level 2 min_sup 5
93
Regole associative multi-livello Uniform Support
vs. Reduced Support
  • Supporto ridotto

Level 1 min_sup 5
Milk support 10
2 Milk support 6
Skim Milk support 4
Level 2 min_sup 3
94
Regole 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

95
Critiche 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

96
Critiche alle misure di supporto/confidenza
  • Esempio 2
  • X e Y correlati positivamente,
  • X e Z correlati negativamente
  • Supporto e confidenza di
  • X ?Z domina

97
Unaltra 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

98
Atri tipi di patterns
  • Maximal and Closed Itemsets
  • Negative Associations
  • Indirect Associations
  • Frequent Subgraphs
  • Cyclic Association Rules
  • Sequential Patterns

99
Maximal frequent itemsets
Maximal Itemsets
Infrequent Itemsets
Border
100
Closed 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
101
Maximal vs Closed Itemsets
Transaction Ids
Non supportati da alcuna transazione
102
Maximal 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
103
Classificatori 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)

104
Classificatori 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 )

105
Classificatori 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

106
Classificatori 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

107
Conclusioni
  • 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.
Write a Comment
User Comments (0)
About PowerShow.com