La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Data Mining - S. Orlando “Association mining” Salvatore Orlando.

Presentazioni simili


Presentazione sul tema: "1 Data Mining - S. Orlando “Association mining” Salvatore Orlando."— Transcript della presentazione:

1 1 Data Mining - S. Orlando “Association mining” Salvatore Orlando

2 2 Data Mining - S. Orlando Cos’è l’association mining  Identifica frequenze/collegamenti/correlazioni/causalità 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  ead [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 3 Data Mining - S. Orlando 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 = {i 1, i 2, …,i n } è 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->B, dove A  I, B  I, e A∩B =  –Es.: il 98% della gente che acquista pneumatici e accessori per auto richiede anche di effettuare manutenzioni periodiche dell’auto

4 4 Data Mining - S. Orlando Esempio di dataset transazionale e MBA Market-Basket transactions Esempio di regola associativa: Market Basket Analysis (MBA)

5 5 Data Mining - S. Orlando Misure di interesse delle regole  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 ) Per 50% : supporto minimo 50% : confidenza minima abbiamo che –A  C (50%, 66.6%) –C  A (50%, 100%) Clienti che comprano pannolini Clienti che comprano birra Clienti che comprano entrambi D

6 6 Data Mining - S. Orlando Calcolo di regole frequenti e confidenti  Sia X un itemset, e sia  (X)  |D| il numero di transazioni in D che contengono X TIDItems 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) 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. s=P({Pannolini,Latte, Birra}) La confidenza è una probabilità condizionata c=P({Pannolini,Latte, Birra} | {Pannolini,Latte})

7 7 Data Mining - S. Orlando Estrazione di Regole Associative: Applicazione 1  Marketing e Promozione delle Vendite: –Supporre che sia stata scoperta la regola {Coca, … } --> {Patatine} –Patatine come conseguenza => Regola può essere impiegata per capire cosa può essere usato per promuovere le vendite di patatine. Coca nell’antecedente => Regola può essere usata per vedere le vendite di quali prodotti sarebbero interessati se il negozio smettesse di vendere Coca.

8 8 Data Mining - S. Orlando 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 9 Data Mining - S. Orlando Estrazione di Regole Associative: Applicazione 3  Gestione dell’inventario: –Scopo: Un’azienda 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 10 Data Mining - S. Orlando 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 1,000)?

11 11 Data Mining - S. Orlando 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 12 Data Mining - S. Orlando Generazione delle regole dagli itemset frequenti Esempio di regole: {Milk,Diaper}  {Beer} (s=0.4, c=0.67) {Milk,Beer}  {Diaper} (s=0.4, c=1.0) {Diaper,Beer}  {Milk} (s=0.4, c=0.67) {Beer}  {Milk,Diaper} (s=0.4, c=0.67) {Diaper}  {Milk,Beer} (s=0.4, c=0.5) {Milk}  {Diaper,Beer} (s=0.4, c=0.5) Osservazione: Tutte le regole di sopra fanno riferimento allo stesso itemset frequente (s=40%): {Milk, Diaper, Beer} Le regole così ottenute hanno supporto identico ma possono avere confidenza differente

13 13 Data Mining - S. Orlando 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 è anch’esso 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 14 Data Mining - S. Orlando Il reticolo degli itemsets Power Set di un insieme di d items (d=5 in questo caso) Ci sono 2 d itemset possibili

15 15 Data Mining - S. Orlando 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) => costosa poiché M = 2 d !!!

16 16 Data Mining - S. Orlando Approcci per il mining degli Itemset Frequenti  Ridurre il numero di candidati (M) –Ricerca completa: M=2 d –Usa invece l’euristica 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 17 Data Mining - S. Orlando 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 18 Data Mining - S. Orlando L’algoritmo Apriori  C k è l’insieme dei candidati (k-itemset) all’iterazione k  Il supporto dei candidati deve essere calcolato per generare L k  L k è l’insieme dei frequent itemset (k-itemset) all’iterazione k  Si tratta di un sottoinsieme di C k  Assieme ad ogni itemset in L k, viene restituito anche il supporto relativo  Nota: L sta per large. Nell’articolo originale di Apriori, gli itemset frequenti erano chiamati “large itemset”  Gen Step: C k+1 è generato facendo il join di L k con sé stesso, e prendendo solo, tra gli itemset otenuti, quelli di lunghezza k+1 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 19 Data Mining - S. Orlando L’algoritmo Apriori  Pseudo-code: 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 transaction t in database D 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

20 20 Data Mining - S. Orlando Database D Scan D C1C1 L1L1 L2L2 C2C2 C2C2 C3C3 L3L3 L’algoritmo Apriori: un esempio (minsup = 2)

21 21 Data Mining - S. Orlando abcdeabcde abacadaebcbdbecdcede abcabdabeacdaceadebcdbcebdecde abcdabceabdeacdebcde abcde Apriori: visita Breadth first del reticolo

22 22 Data Mining - S. Orlando abcdeabcde abacadaebcbdbecdcede abcabdabeacdaceadebcdbcebdecde abcdabceabdeacdebcde abcde Genera i Candidati di dimensione 1

23 23 Data Mining - S. Orlando abcdeabcde abacadaebcbdbecdcede abcabdabeacdaceadebcdbcebdecde abcdabceabdeacdebcde abcde Conta i supporti dei Candidati di dim. 1

24 24 Data Mining - S. Orlando abcdeabcde abacadaebcbdbecdcede abcabdabeacdaceadebcdbcebdecde abcdabceabdeacdebcde abcde Genera i Candidati di dimensione 2

25 25 Data Mining - S. Orlando abcdeabcde abacadaebcbdbecdcede abcabdabeacdaceadebcdbcebdecde abcdabceabdeacdebcde abcde Conta i supporti dei Candidati di dim. 2

26 26 Data Mining - S. Orlando abcdeabcde acadaebcbdbecdcede acdaceadebcdbcebdecde acdebcde Pruna gli itemset infrequenti

27 27 Data Mining - S. Orlando abcdeabcde acadaebcbdbecdcede acdaceadebcdbcebdecde acdebcde Genera i Candidati di dimensione 3

28 28 Data Mining - S. Orlando abcdeabcde acadaebcbdbecdcede acdaceadebcdbcebdecde acdebcde Conta i supporti dei Candidati di dim. 3

29 29 Data Mining - S. Orlando abcdeabcde acadaebcbdbecdcede acdaceadebcebdecde acde Pruna gli itemset infrequenti

30 30 Data Mining - S. Orlando abcdeabcde acadaebcbdbecdcede acdaceadebcebdecde acde Genera i Candidati di dimensione 4

31 31 Data Mining - S. Orlando abcdeabcde acadaebcbdbecdcede acdaceadebcebdecde acde Conta i supporti dei Candidati di dim. 3

32 32 Data Mining - S. Orlando Passo di generazione dei candidati  Supponi che –gli item all’interno degli itemset siano ordinati, –gli itemset in L k-1 siano ordinati secondo l’ordine lessicografico indotto  Step 1: self-joining L k-1 insert into C k all pairs (p, q)  L k-1 where p.item 1 =q.item 1, ……, p.item k-2 =q.item k-2, p.item k-1 < q.item k-1 (p e q condividono un prefisso comune di lunghezza k-2) (la condizione p.item k-1 < q.item k-1 assicura che non vengano prodotti duplicati)  Step 2: pruning forall itemsets c in C k do forall (k-1)-subsets s of c do if (s is not in L k-1 ) then delete c from C k

33 33 Data Mining - S. Orlando Esempio di generazione dei candidati  L 3 ={abc, abd, acd, ace, bcd}  Self-joining: L 3 *L 3 –abcd da abc e abd –acde da acd e ace  Pruning: –acde è rimosso perché ade non è in L 3  C 4 ={abcd}

34 34 Data Mining - S. Orlando 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 dell’hash-tree dipende dalla lunghezza k dei candidati memorizzati –Nodi foglia dell’hash-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 l’hash tree

35 35 Data Mining - S. Orlando Metodi per migliorare l’efficienza 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 dell’albero, data la transazione {1,2,3,5,6}

36 36 Data Mining - S. Orlando Hash-tree per memorizzare i candidati ,4,7 2,5,8 3,6,9 Hash Function Candidate Hash Tree Hash on 1, 4 or 7 Nota che 4 e 7 appaiono anche in questi bin

37 37 Data Mining - S. Orlando Hash-tree per memorizzare i candidati ,4,7 2,5,8 3,6,9 Hash Function Candidate Hash Tree Hash on 2, 5 or 8

38 38 Data Mining - S. Orlando Hash-tree per memorizzare i candidati ,4,7 2,5,8 3,6,9 Hash Function Candidate Hash Tree Hash on 3, 6 or 9

39 39 Data Mining - S. Orlando Operazione di Subsetting su una transazione Data una transazione t, quali sono i possibili sottoinsiemi di size 3?

40 40 Data Mining - S. Orlando Operazione di Subsetting su una transazione ,4,7 2,5,8 3,6,9 Hash Function transaction Per evitare duplicati, cerco sempre insiemi ordinati di 3 elementi 1 combinato con 2, o 3, o 5, ma non con 6 non esiste {1,6,x}, x>6, nella transazione !!! Controllo di subsetting ricorsivo

41 41 Data Mining - S. Orlando Operazione di Subsetting su una transazione ,4,7 2,5,8 3,6,9 Hash Function transaction

42 42 Data Mining - S. Orlando Operazione di Subsetting su una transazione ,4,7 2,5,8 3,6,9 Hash Function transaction La transazione contiene ben 11 di tutti i 15 candidati

43 43 Data Mining - S. Orlando Metodi per migliorare l’efficienza di Apriori  Hash-based itemset counting: –All’iterazione k-1 provo a prevedere gli itemset che finiranno in C k Scopo: aumentare la capacità di pruning per ridurre la dimensione di C k –I k-itemset presenti in una transazione sono mappati, tramite una funzione hash, in una tabella hash relativamente piccola  meno contatori di C k –Tutti gli k-itemset la cui locazione hash corrispondente è al di sotto del supporto minimo Non possono essere frequenti Possono essere prunati da C k  Esempio: All’iterazione k=1, crea la tabella hash H2 –hash function: h(x; y) = (x * 10 + y) mod 7 –min_supp = 3

44 44 Data Mining - S. Orlando Metodi per migliorare l’efficienza 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 45 Data Mining - S. Orlando  D1, D2, D3  Se X è frequent, allora: supp(X) = supp D1 (X) + supp D2 (X) + supp D3 (X) >= s% (|D1| +|D2| +|D3|)  i, supp Di (X) < 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, supp Di (X) >= s% |Di|

46 46 Data Mining - S. Orlando 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 47 Data Mining - S. Orlando Generazione delle regole (2)  Considera la regola (l-c)  c  Se c 1  c, allora l – c   l - c 1 support(l - c)  support(l – c 1 ) support(l)/support(l - c 1 )  support(l)/support(l - c) conf((l - c 1 )   c 1 )   conf((l - c)   c)  Quindi, se una conseguenza c genera una regola valida, usando tutti i sottoinsiemi c 1 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 c1c1

48 48 Data Mining - S. Orlando 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: itemset frequenti genereranno itemset candidati Per scoprire un pattern frequente di dimensione 100, es. {a 1, a 2, …, a 100 }, è necessario contare  candidati. –Scansioni multiple del database: Necessari (n +1 ) scansioni, dove n è la lunghezza del pattern più lungo

49 49 Data Mining - S. Orlando 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 l’estrazione 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 50 Data Mining - S. Orlando Costruzione dell’FP-tree a partire dal DB {} f:4c:1 b:1 p:1 b:1c:3 a:3 b:1m:2 p:2m:1 Header Table Item frequency head f4 c4 a3 b3 m3 p3 min_support = 0.5 TIDItems 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} Passi: 1.Scandisci il database per trovare gli 1-itemset frequenti 2.Ordina gli items frequenti in ordine decrescente 3.Scandisci il DB nuovamente, e costruisci l’ FP-tree

51 51 Data Mining - S. Orlando Costruzione FP-tree null A:1 B:1 null A:1 B:1 C:1 D:1 Letura TID=1: Lettura TID=2: Transaction Database

52 52 Data Mining - S. Orlando Costruzione FP-tree null A:7 B:5 B:3 C:3 D:1 C:1 D:1 C:3 D:1 E:1 Puntatori utili per estrarre gli itemset frequenti D:1 E:1 Transaction Database Header table

53 53 Data Mining - S. Orlando Proprietà dell’FP-tree  Preserva l’informazione 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  L’FP-tree è solitamente più piccolo del database originale (senza contare link e contatori) –Esempio: per connect-4 DB, rapporto di compressione maggiore di 100

54 54 Data Mining - S. Orlando Mining i pattern frequenti tramite l’FP-tree  Idea generale –In maniera ricorsiva, fai crescere i pattern frequenti usando l’FP- tree –Visita Depth-First del reticolo

55 55 Data Mining - S. Orlando 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 nell’esempio usiamo l’ordine lessicale tra gli item per determinare l’ordine 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 56 Data Mining - S. Orlando abcdeabcde abacadaebcbdbecdcede abcabdabeacdaceadebcdbcebdecde abcdabceabdeacdebcde abcde FIM attraverso una visita depth first

57 57 Data Mining - S. Orlando abcdeabcde abacadaebcbdbecdcede abcabdabeacdaceadebcdbcebdecde abcdabceabdeacdebcde abcde Trova itemset frequenti contenenti “a”

58 58 Data Mining - S. Orlando abcdeabcde abacadaebcbdbecdcede abcabdabeacdaceadebcdbcebdecde abcdabceabdeacdebcde abcde Trova itemset frequenti contenenti “a” ma “non b”

59 59 Data Mining - S. Orlando abcdeabcde abacadaebcbdbecdcede abcabdabeacdaceadebcdbcebdecde abcdabceabdeacdebcde abcde … contenenti “c” ma “non a” e “non b”

60 60 Data Mining - S. Orlando abcdeabcde abacadaebcbdbecdcede abcabdabeacdaceadebcdbcebdecde abcdabceabdeacdebcde abcde … contenenti “d” ma “non a”, “non b”, e “non c”

61 61 Data Mining - S. Orlando abcdeabcde abacadaebcbdbecdcede abcabdabeacdaceadebcdbcebdecde abcdabceabdeacdebcde abcde … contenenti “d” ma “non a, b, c, d”

62 62 Data Mining - S. Orlando abcdeabcde abacadaebcbdbecdcede abcabdabeacdaceadebcdbcebdecde abcdabceabdeacdebcde abcde Ricorsione: es. per gli itemset contenenti “a”

63 63 Data Mining - S. Orlando Passi di FP-growth 1)Costruisci il conditional pattern base per ciascun item nel’FP- 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 2)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) 3)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 64 Data Mining - S. Orlando Passo 1: dall’ FP-tree al Conditional Pattern Base  A partire dal frequent header table dell’ FP-tree  Attraversa nell’FP-tree la lista di ciascun item frequente  Accumula i prefix path di quell’item in modo da formare la conditional pattern base Conditional pattern bases itemcond. pattern base cf:3 afc:3 bfca:1, f:1, c:1 mfca:2, fcab:1 pfcam:2, cb:1 {} f:4c:1 b:1 p:1 b:1c:3 a:3 b:1m:2 p:2m:1 Header Table Item frequency head f4 c4 a3 b3 m3 p3

65 65 Data Mining - S. Orlando Proprietà importanti per la creazione delle basi condizionali  Proprietà dei Node-link –Per ogni frequent item a i, tutti i possibili frequent pattern che contengono a i possono essere ottenuti seguendo i link del nodo a i, iniziando dalla testa della lista di a i nell’FP-tree header  Proprietà dei prefix path –Per calcolare i frequent pattern per un nodo a i nel path P dell’albero (P va dalla radice ad una foglia dell’albero), solo il prefix sub-path di a i in P deve essere accumulato nella base, e il suo conteggio di frequenza deve portare lo stesso conteggio del nodo a i.

66 66 Data Mining - S. Orlando Passo 2: costruzione dei conditional FP-tree  Per ciascuna pattern-base –Accumula i conteggi per ciascun item nella base –Costruisci l’FP-tree condizionale includendo solo gli item frequenti presenti nella pattern-base L’item b viene eliminato dall’ m-base perché non frequente m-conditional pattern base: fca:2, fcab:1 {} f:3 c:3 a:3 m-conditional FP-tree All frequent patterns concerning m m, fm, cm, am, fcm, fam, cam, fcam   {} f:4c:1 b:1 p:1 b:1c:3 a:3 b:1m:2 p:2m:1 Header Table Item frequency head f4 c4 a3 b3 m3 p3 Passo 3

67 67 Data Mining - S. Orlando Basi e FP-tree condizionali Empty f {(f:3)}|c{(f:3)}c {(f:3, c:3)}|a{(fc:3)}a Empty{(fca:1), (f:1), (c:1)}b {(f:3, c:3, a:3)}|m{(fca:2), (fcab:1)}m {(c:3)}|p{(fcam:2), (cb:1)}p Conditional FP-treeConditional pattern-base Item

68 68 Data Mining - S. Orlando Passo 3: ricorsione  In modo ricorsivo, riapplica FP-growth agli FP-tree condizionali {} f:3 c:3 a:3 m-conditional FP-tree Cond. pattern base di “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

69 69 Data Mining - S. Orlando Generazione a partire da un FP-tree a singolo path  Supponi che un FP-tree T ha un singolo path P  L’insieme completo dei frequent pattern di T può essere generato enumerando tutte le combinazioni dei sub-paths di P {} f:3 c:3 a:3 m-conditional FP-tree Tutti i frequent patterns relativi a m m, fm, cm, am, fcm, fam, cam, fcam 

70 70 Data Mining - S. Orlando 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 –L’operazione base diventa il conteggio e la costruzione dell’FP- tree

71 71 Data Mining - S. Orlando FP-growth: tempo di esecuzione rispetto al supporto minimo Data set T25I20D10K

72 72 Data Mining - S. Orlando FIM algorithms: formato database  Database Orizzontale vs. Verticale –Record orizzontale (transazione):Tid: Item 0, …, Item k –Record verticale (tidlist):Item: Tid 0, …, Tid h Orizzontale Verticale

73 73 Data Mining - S. Orlando 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 74 Data Mining - S. Orlando 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 TID-list Transaction

75 75 Data Mining - S. Orlando 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 76 Data Mining - S. Orlando Frequent Set Counting algorithms  Spazio di ricerca: P(I), power set di I, |P(I)| = 2 |I| –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 l’algoritmo di Apriori

77 77 Data Mining - S. Orlando Classificazione dei vari algoritmi per FSC Support: computing method AprioriPartitionFP-growthEclat Search space: visiting method BFS DFS Counting Intersecting Counting Intersecting Level-wise, strictly iterativeDivide & conquer, recursive Horizontal DB Vertical DB Support: computing method

78 78 Data Mining - S. Orlando 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 79 Data Mining - S. Orlando DCI: fase intersection-based n k trans m k items 10  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 (2 o o 3 o iterazione)

80 80 Data Mining - S. Orlando 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 Cache size: k-2 bitvector di n k bit

81 81 Data Mining - S. Orlando DCI: intersezione delle tidlist (bitvector) Buffer di (k-2) vettori di n k bit usati per il caching delle intersezioni intermedie i0i0 i1i1 i2i2 i3i3 i4i4 i5i5 C6C6 3 & 53 & 5 3 & 5 & 11 3 & 5 & 11& 17 3 & 5 & 11& 17 & 24 Candidato corrente 3 & 5 & 11& 17 & 24 Riuso di questa Intersezione presente in cache 3 3 Candidato corrente

82 82 Data Mining - S. Orlando DCI: numero delle operazioni AND

83 83 Data Mining - S. Orlando 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 84 Data Mining - S. Orlando DCI: migliore di FP-growth n Database denso Pattern lunghissimi n Apriori è troppo costoso tempo di Apriori non commensurabile

85 85 Data Mining - S. Orlando DCI: migliore di FP-growth n Database reale e sparso Dati di click- stream da un sito web di e-commerce n Pattern di lunghezza media per supporti piccoli

86 86 Data Mining - S. Orlando Visualizzazione di regole associative (Forma tabellare)

87 87 Data Mining - S. Orlando Visualizzazione: grafico tridimensionale

88 88 Data Mining - S. Orlando Visualizzazione: associazioni come link

89 89 Data Mining - S. Orlando 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 90 Data Mining - S. Orlando 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%] Food bread milk skim SunsetFraser 2%white wheat

91 91 Data Mining - S. Orlando 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 92 Data Mining - S. Orlando Regole associative multi-livello: Uniform Support vs. Reduced Support  Supporto uniforme Milk [support = 10%] 2% Milk [support = 6%] Skim Milk [support = 4%] Level 1 min_sup = 5% Level 2 min_sup = 5%

93 93 Data Mining - S. Orlando Regole associative multi-livello: Uniform Support vs. Reduced Support  Supporto ridotto 2% Milk [support = 6%] Skim Milk [support = 4%] Level 1 min_sup = 5% Level 2 min_sup = 3% Milk [support = 10%]

94 94 Data Mining - S. Orlando 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 95 Data Mining - S. Orlando 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.7% La 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 96 Data Mining - S. Orlando 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  Abbiamo bisogno di una misura che metta in evidenza eventi correlati, ovvero inter-dipendenti P(B|A)/P(B) è anche chiamato il lift della regola A  B

97 97 Data Mining - S. Orlando Un’altra misura: Interesse  Interesse (lift) –Si considerano sia P(A) e sia P(B) –P(A^B)=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 98 Data Mining - S. Orlando Atri tipi di patterns  Maximal and Closed Itemsets  Negative Associations  Indirect Associations  Frequent Subgraphs  Cyclic Association Rules  Sequential Patterns

99 99 Data Mining - S. Orlando Maximal frequent itemsets Border Infrequent Itemsets Maximal Itemsets

100 100 Data Mining - S. Orlando 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’) A 1 … A 10 B 1 … B 10 C 1 … C 10 Numero degli itemset frequenti: Numero Closed Itemset = 3 {A 1,…,A 10 }, {B 1,…,B 10 }, {C 1,…,C 10 } Numero Itemset massimali = 3

101 101 Data Mining - S. Orlando Maximal vs Closed Itemsets Transaction Ids Non supportati da alcuna transazione

102 102 Data Mining - S. Orlando Maximal vs Closed Itemsets Minimum support = 2 # Closed = 10 # Maximal = 5 Closed and maximal Closed but not maximal CD A  D (s=2, c = 2/3 = 0,66%) AC  D (s=2, c = 2/3 = 0,66%) regola non generata se partiamo dai closed

103 103 Data Mining - S. Orlando 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 (CAR=Class Association Rule) con supporto/confidenza minimi hanno quindi forma –condset  y –Dove condset è un insieme di item (Attribute, Integer-value)

104 104 Data Mining - S. Orlando 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 105 Data Mining - S. Orlando 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 (k+1)-ruleitems candidati

106 106 Data Mining - S. Orlando 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 r i precede una regola r j (r i < r j ) se La confidenza di r i è più grande di r j La confidenza è la stessa, ma r i ha un supporto più grande La confidenza e il supporto delle due regole sono uguali, ma r i è stata generata prima di r j –Al termine l’algoritmo seleziona un insieme di CAR ordinate che coprono tutti i campioni in D  Uso del classificatore –Nel classificare un nuovo campione, si usa l’ordine 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 107 Data Mining - S. Orlando 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.


Scaricare ppt "1 Data Mining - S. Orlando “Association mining” Salvatore Orlando."

Presentazioni simili


Annunci Google