Association mining Salvatore Orlando
|
|
- Gianmaria Marinelli
- 5 anni fa
- Visualizzazioni
Transcript
1 Association mining Salvatore Orlando 1
2 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 Head [support, confidence]. compra(x, pannolini ) compra(x, birra ) [0.5%, 60%] laurea(x, Informatica ) ^ esame(x, DB ) voto(x, ) [1%, 75%] Applicazioni: Basket data analysis, cross-marketing, catalog design, clustering, classification, etc. 2
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 = {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: AB, 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 3
4 Esempio di dataset transazionale e MBA Market-Basket transactions Market Basket Analysis (MBA) Esempio di regola associativa: 4
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 ) Clienti che comprano birra D 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%) 5
6 Calcolo di regole frequenti e confidenti Sia X un itemset, e sia σ(x) D il numero di transazioni in D che contengono X 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 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 % Support: s =σ(x y) / D Confidence: c = σ(x y) / σ(x) 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}) 6
7 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. 7
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! 8
9 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 9
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, ) ^ income(x, K ) 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 < 100) danno luogo a grandi acquisti (sum > 1,000)? 10
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 11
12 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 12
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 è anch esso frequente (proprietà anti-monotonica) Se {AB} è un itemset frequente, sia {A} e sia {B} sono frequenti σ({a}) σ({ab}) e σ({b}) σ({ab}) Se un sottoinsieme di un itemset I è infrequente, allora I è infrequente Se {A} è un infrequente, allora anche {A,B} è infrequente min_supp > σ({a}) σ({ab}) 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 13
14 Il reticolo degli itemsets Power Set di un insieme di d items (d=5 in questo caso) Ci sono 2 d itemset possibili 14
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) => costosa poiché M = 2 d!!! 15
16 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 Ridurre 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 16
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 17
18 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 ottenuti, 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 18
19 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 19
20 L algoritmo Apriori: un esempio (minsup = 2) Database D Scan D C 1 L 1 L 2 Scan D C 2 C 2 C 3 Scan D L 3 20
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 21
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 22
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 23
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 24
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 25
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 26
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 27
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 28
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 29
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 30
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 31
32 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 32
33 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} 33
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 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 34
35 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} 35
36 Hash-tree per memorizzare i candidati Hash Function Candidate Hash Tree Nota che 4 e 7 appaiono anche in questi bin 1,4,7 3,6,9 Il nodo non è stato espanso, poiché contiene un basso numero di itemset candidati 2,5,8 Hash on 1, 4 or
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
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
39 Operazione di Subsetting su una transazione Data una transazione t, quali sono i possibili sottoinsiemi di size 3? 39
40 Operazione di Subsetting su una transazione Controllo di subsetting ricorsivo transaction Hash Function ,4,7 3,6, ,5, Per evitare duplicati, cerco sempre insiemi ordinati di 3 elementi 1 combinato con 2, o 3, o 5, ma non con 6 Nella transazione non esiste alcun itemset, dove {1,6,x}, x>6!!! 40
41 Operazione di Subsetting su una transazione transaction Hash Function ,4,7 2,5,8 3,6,
42 Operazione di Subsetting su una transazione transaction Hash Function ,4,7 2,5,8 3,6, La transazione contiene 3 di tutti i 11 candidati (su 15 itemset memorizzati nel tree) 42
43 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 43
44 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. 44
45 Partitioning 3 partizioni di D D1, D2, D3 Se X è frequente, allora: (1) supp(x) = supp D1 (X) + supp D2 (X) + supp D3 (X) >= s% ( D1 + D2 + D3 ) i, supp Di (X) < s% Di X è infrequente globalmente, poiché non vale la proprietà (1) 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 45
46 Generazione delle regole Algoritmo non ottimizzato: for each frequent itemset l do for each subset c of l do c è frequente per definizione if (support(l) / support(l-c) minconf) then output rule (l-c) c, with confidence = support(l) / support(l-c) support = support(l); 46
47 Generazione delle regole (2) Considera la regola (l-c) c Se c 1 c, allora c 1 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 47
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: 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 48
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 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 49
50 Costruzione dell FP-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: 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 Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 {} f:4 c:1 c:3 a:3 b:1 b:1 p:1 m:2 p:2 b:1 m:1 50
51 Costruzione FP-tree Transaction Database Letura TID=1: A:1 null B:1 Lettura TID=2: null A:1 B:1 B:1 C:1 D:1 51
52 Costruzione FP-tree Transaction Database null A:7 B:3 B:5 C:1 D:1 C:3 Header table C:3 D:1 D:1 E:1 D:1 D:1 E:1 Puntatori utili per estrarre gli itemset frequenti 52
53 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
54 Mining i pattern frequenti tramite l FP-tree Idea generale In maniera ricorsiva, fai crescere i pattern frequenti usando l FPtree Visita Depth-First del reticolo 54
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 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 55
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 56
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 57
58 Trova itemset frequenti contenenti b ma non 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
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 59
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 60
61 contenenti e 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 61
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 62
63 Passi di FP-growth 1) Costruisci il conditional pattern base per ciascun item nel FPtree 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 patternbase 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 63
64 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. 64
65 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 Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 {} f:4 c:1 c:3 a:3 b:1 b:1 p:1 m:2 p:2 b:1 m:1 Conditional pattern bases item cond. pattern base c f:3 a fc:3 b fca:1, f:1, c:1 m fca:2, fcab:1 p fcam:2, cb:1 65
66 Passo 2: costruzione dei conditional FP-tree Per ciascun 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 Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 {} f:4 c:1 c:3 a:3 b:1 b:1 p:1 m:2 p:2 b:1 m:1 m-conditional pattern base: fca:2, fcab:1 {} 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 Passo 3 66
67 Basi e FP-tree condizionali Item p m b a c f Conditional pattern-base {(fcam:2), (cb:1)} {(fca:2), (fcab:1)} {(fca:1), (f:1), (c:1)} {(fc:3)} {(f:3)} Empty Conditional FP-tree {(c:3)} p {(f:3, c:3, a:3)} m Empty {(f:3, c:3)} a {(f:3)} c Empty 67
68 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) Cond. pattern base of cm : (f:3) {} f:3 c:3 am-conditional FP-tree {} f:3 cm-conditional FP-tree Cond. pattern base of cam : (f:3) f:3 cam-conditional FP-tree 68
69 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 69
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 L operazione base diventa il conteggio e la costruzione dell FPtree 70
71 FP-growth: tempo di esecuzione rispetto al supporto minimo Data set T25I20D10K 71
72 FIM algorithms: formato database Database Orizzontale vs. Verticale Record orizzontale (transazione): Tid: Item 0,, Item k Record verticale (tidlist): Item: Tid 0,, Tid h Verticale Orizzontale 72
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 73
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 74
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 75
76 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 76
77 Classificazione dei vari algoritmi per FSC Apriori Partition FP-growth Eclat Horizontal DB Vertical DB Horizontal DB Vertical DB Level-wise, strictly iterative Divide & conquer, recursive 77
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 78
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 (2 o o 3 o iterazione) n k trans m k 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 n k bit 80
81 DCI: intersezione delle tidlist (bitvector) C 6 Candidato corrente Candidato corrente i 0 i 1 i 2 i 3 i 4 i Buffer di (k-2) vettori di n k bit usati per il caching delle intersezioni intermedie 3 & 5 3 & 5 & 11 3 & 5 & 11& 17 3 & 5 & 11& 17 & 24 Riuso di questa Intersezione presente in cache 81
82 DCI: numero delle operazioni AND 82
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 E possibile identificare grandi sezioni di word uguali a uno possiamo skip-are queste sezioni durante le intersezioni DCI Adotta automaticamente strategie di ottimizzazione differenti per database densi e sparsi 83
84 DCI: migliore di FP-growth Database denso Pattern lunghissimi Apriori è troppo costoso tempo di Apriori non commensurabile 84
85 DCI: migliore di FP-growth Database reale e sparso Dati di clickstream da un sito web di e-commerce Pattern di lunghezza media per supporti piccoli 85
86 Visualizzazione di regole associative (Forma tabellare) 86
87 Visualizzazione: grafico tridimensionale 87
88 Visualizzazione: associazioni come link 88
89 Regole associative multi-livello Gli item spesso associati ad una gerarchia Item e relative regole ai livelli più bassi hanno supporti più bassi es. 100 persone acquistano Outwear, di cui solo 80 Jacket 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 89
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%] Food milk bread skim Fraser 2% white wheat Sunset 90
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 91
92 Regole associative multi-livello: Uniform Support vs. Reduced Support Supporto uniforme Level 1 min_sup = 5% Milk [support = 10%] Level 2 min_sup = 5% 2% Milk [support = 6%] Skim Milk [support = 4%] 92
93 Regole associative multi-livello: Uniform Support vs. Reduced Support Supporto ridotto Level 1 min_sup = 5% Milk [support = 10%] Level 2 min_sup = 3% 2% Milk [support = 6%] Skim Milk [support = 4%] 93
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, ) occupation(x, student ) buys(x, coke ) Regole hybrid-dimension (predicati ripetuti) age(x, ) buys(x, popcorn ) buys(x, coke ) Problemi con dimensioni contenenti attributi quantitativi Attr. numerici, ordinati implicitamente Da discretizzare staticamente o dinamicamente 94
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.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 95
96 Critiche alle misure di supporto/confidenza Esempio 2: X e Y: correlati positivamente, X e Z: correlati negativamente Ma 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 96
97 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 97
98 Atri tipi di patterns Maximal and Closed Itemsets Negative Associations Indirect Associations Frequent Subgraphs Cyclic Association Rules Sequential Patterns 98
99 Maximal frequent itemsets Maximal Itemsets AC Infrequent Itemsets Border 99
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 Ovvero, se non è vero che 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 100
101 Maximal vs Closed Itemsets Minimum support = 2 Transaction Ids Non supportati da alcuna transazione 101
102 Maximal vs Closed Itemsets Minimum support = 2 Closed but not maximal Closed and maximal CD # Closed = 10 # Maximal = 5 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 102
103 Regole associative per classificare 103
104 Classificatori basati su regole associative Di solito gli algoritmi che estraggono le regole associative restituiscono tutte le regole possibili Ogni item (o itemset) può apparire come condizione o conseguenza di una regola Nelle applicazioni ai problemi di classificazione, l utente è interessato a specifioci target/conseguenze Es., l analista ha un insieme di documenti di testo i cui topic/argomenti/ classi sono noti. Egli è interessato a capire la presenza di quali parole sono associate o correlate con ciascun topic 104
105 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 Apriorilike 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) 105
106 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 ) 106
107 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 107
108 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 C
109 Classificatori basati su CAR in dettaglio Esempio che fa riferimento ad una collezione di documenti testuali doc 1: Student, Teach, School : Education doc 2: Student, School : Education doc 3: Teach, School, City, Game : Education doc 4: Baseball, Basketball : Sport doc 5: Basketball, Player, Spectator : Sport doc 6: Baseball, Coach, Game, Team : Sport doc 7: Basketball, Team, City, Game : Sport Scegliendo minsup = 20% e minconf = 60%, abbiamo le seguenti CAR: Student, School Education [sup= 2/7, conf = 2/2] game Sport [sup= 2/7, conf = 2/3] 109
110 Regole associative per clusterizzare 110
111 Clustering di documenti Ci sono dei problemi per clusterizzare documenti a causa dello spazio multi-dimensionale Vettori associati ai documenti, con numero di dimensioni uguale ai termini della collezione Transazioni = Vettori binari Association Rule Hypergraph Partitioning (ARHP) Clustering di transazioni/documenti Prima trova gli itemset frequenti (insiemi di parole) Ogni itemset è supportato da un insieme di transazioni La sua esistenza determina una relazione di similarità tra le transazioni che lo supportano Ogni itemset Visto come un hyperedge di un hypergraph Hypergraph V = insieme di nodi associati ai documenti E = insieme di iperarchi che unisce i nodi 111
112 Clustering di documenti Gli iperedge sono pesati Es.: la confidenza media di tutte le regole associative che coinvolgono gli item (parole) che appaiono in ogni itemset frequente Per partizionare l ipergrafo, viene impiegato HMETIS Un algoritmo veloce che partiziona l ipergrafo trovando componenti altamente connesse e minimizzando il numero di edge tagliati L algoritmo viene validato usando un collezione su cui abbiamo una conoscenza pregressa (documenti associati a classi) Un buon cluster contiene documenti associati ad una sola classe Se può impiegare l entropia per valutare la purezza di ogni cluster (entropia = 0 se il cluster è puro), e la media delle entropie per valutare l algoritmo Gli esperimenti hanno mostrato ottime prestazione di ARHP rispetto ai competitori, su collezioni di pagine HTML Soprattutto prunando dai documenti le parole infrequenti e mantenendo le parole enfatizzate, ovvero tagged in <TITLE>, <H1>, <H2>, ecc. 112
113 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. 113
Giuseppe Manco. Readings: Chapter 6, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman. Association rules mining
Lecture 14 Association Rules Giuseppe Manco Readings: Chapter 6, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman Association Rule Mining Dato un insieme di transazioni, trovare le regole che
DettagliParallel Frequent Set Counting
Parallel Frequent Set Counting Progetto del corso di Calcolo Parallelo AA 2001-02 Salvatore Orlando 1 Cosa significa association mining? Siano dati un insieme di item un insieme di transazioni, ciascuna
DettagliLecture 14. Association Rules
Lecture 14 Association Rules Giuseppe Manco Readings: Chapter 6, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman Association Rule Mining Dato un insieme di transazioni, trovare le regole che
DettagliAssociation mining Salvatore Orlando
Association mining Salvatore Orlando 1 Cos è l association mining Identifica frequenze/collegamenti/correlazioni/causalità tra insiemi di item (articoli) in database transazionali Ogni transazione contiene
DettagliParallel Frequent Set Counting
Parallel Frequent Set Counting Progetto del corso di Calcolo Parallelo AA 2010-11 Salvatore Orlando 1 Cosa significa association mining? Siano dati un insieme di item un insieme di transazioni, ciascuna
DettagliRegole associative. Il problema della scoperta di regole associative può essere espresso come segue Sia I = {i 1
Regole associative Regole associative Le regole associative descrivono correlazioni di eventi e possono essere viste come regole probabilistiche. Due eventi sono correlati quando sono frequentemente osservati
DettagliRegole associative. Regole associative. Regole associative. Regole associative
Le regole associative descrivono correlazioni di eventi e possono essere viste come regole probabilistiche. Due eventi sono correlati quando sono frequentemente osservati insieme. Esempio: database di
DettagliRegole di associazione
M B G Regole di associazione ATA MINING: REGOLE I ASSOCIAZIONE - 1 Regole di associazione Ricerca di correlazioni in una collezione di dati strumento efficace per analizzare i dati senza conoscenza a priori
DettagliVerifica 3 aprile Soluzioni
Università di Pisa A.A. 2007-2008 Data Mining - Corso di Laurea Specialistica in Informatica per l economia e l Azienda Verifica 3 aprile 2008 - Soluzioni Esercizio 1 - Sequential Patterns (8 punti) Si
DettagliRegole associative. Gianluca Amato
Regole associative Gianluca Amato Corso di Laurea Specialistica in Economia Informatica Università G. D'Annunzio di Chieti-Pescara ultimo aggiornamento: 24/04/09 1 Regole associative 2 Database transazionali
DettagliRegole associative Mario Guarracino Laboratorio di Sistemi Informativi Aziendali a.a. 2006/2007
Regole associative Mario Guarracino Laboratorio di Sistemi Informativi Aziendali a.a. 26/27 Introduzione Le regole associative si collocano tra i metodi di apprendimento non supervisionato e sono volte
DettagliGiuseppe Manco. Readings: Chapter 6, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman. Association rules mining
Lecture 15 Association Rules Giuseppe Manco Readings: Chapter 6, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman Ottimizzazioni DHP: Direct Hash and Pruning (Park, Chen and Yu, SIGMOD 95) Ottimizza
DettagliRegole associative. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna
Regole associative Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna Mining di regole associative Dato un insieme di transazioni, trovare le regole che segnalano la presenza di un elemento
DettagliPattern Sequenziali. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna
Pattern Sequenziali Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna Pattern sequenziali Spesso alle transazioni sono associate informazioni temporali che permettono di collegare tra
Dettagli5. La Market Basket Analysis
5. La Market Basket Analysis Riccardo Massari Metodi statistici per il Marketing Luiss, Roma R. Massari (Docente: P. D'Urso) 5. MBA 2017 1 / 51 Cosa impareremo sulla Market Basket Analysis 1 La Market
DettagliRegole Associative. Sistemi informativi per le Decisioni. Slide a cura di Prof. Claudio Sartori
Regole Associative Sistemi informativi per le Decisioni Slide a cura di Prof. Claudio Sartori Data Mining Estrazione (mining) di regolarità (pattern) da grandi quantità di dati. 1. Analisi complesse 2.
DettagliEsercizi sull Association Analysis
Data Mining: Esercizi sull Association Analysis 1 Esercizi sull Association Analysis 1. Si consideri il mining di association rule da un dataset T di transazioni, rispetto a delle soglie minsup e minconf.
DettagliRegole associative. Mining di regole associative
Regole associative Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna Mining di regole associative Dato un insieme di transazioni, trovare le regole che segnalano la presenza di un elemento
DettagliDizionari Liste invertite e Trie
Dizionari Liste invertite e Trie Lucidi tratti da Crescenzi Gambosi Grossi, Strutture di dati e algoritmi Progettazione, analisi e visualizzazione Addison-Wesley, 2006 Dizionari Universo U delle chiavi
DettagliDatabases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees
Databases Architettura di un DBMS: Struttura ad indice per i files, B + -Trees Indici Un indice consiste di coppie e supporta l efficiente recupero di tutte le etichette con chiave
Dettagli2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di
DettagliIngegneria della Conoscenza e Sistemi Esperti Lezione 2: Apprendimento non supervisionato
Ingegneria della Conoscenza e Sistemi Esperti Lezione 2: Apprendimento non supervisionato Dipartimento di Elettronica e Informazione Politecnico di Milano Apprendimento non supervisionato Dati un insieme
DettagliFILE E INDICI Architettura DBMS
FILE E INDICI Architettura DBMS Giorgio Giacinto 2010 Database 2 Dati su dispositivi di memorizzazione esterni! Dischi! si può leggere qualunque pagina a costo medio fisso! Nastri! si possono leggere le
DettagliRegole associative con Weka
Regole associative con Weka Soluzioni degli esercizi Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna Apriori parametri e output In questa fase utilizzeremo il data set CensusTrainining.arff
DettagliRegole associative con Weka Testo degli esercizi. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna
Regole associative con Weka Testo degli esercizi Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna Apriori parametri e output In questa fase utilizzeremo il data set CensusTrainining.arff
DettagliData Science e Tecnologie per le Basi di Dati
Data Science e Tecnologie per le Basi di Dati Esercitazione #3 Data mining BOZZA DI SOLUZIONE Domanda 1 (a) Come mostrato in Figura 1, l attributo più selettivo risulta essere Capital Gain, perché rappresenta
DettagliRegole di Associazione
Metodologie per Sistemi Intelligenti Regole di Associazione Prof. Pier Luca Lanzi Laurea in Ingegneria Informatica Politecnico di Milano Polo regionale di Como Esempio Esempio Regole di Associazione Scopo
DettagliTecniche di riconoscimento statistico
On AIR s.r.l. Tecniche di riconoscimento statistico Applicazioni alla lettura automatica di testi (OCR) Parte 9 Alberi di decisione Ennio Ottaviani On AIR srl ennio.ottaviani@onairweb.com http://www.onairweb.com/corsopr
DettagliRicerca Cieca. Spazio di Ricerca. ! albero di ricerca. Russell & Norvig: Introduzione al Problem Solving. Introduzione al Problem Solving
Ricerca Cieca Russell & Norvig: 3.4 3.6 Spazio di Ricerca! albero di ricerca Concetti di Base Albero di ricerca Espansione nodi Strategia di ricerca: Per ogni nodo determina quale nodo espandere Nodi di
DettagliInformatica 3. Informatica 3. LEZIONE 22: Politiche di risoluzione delle collisioni. Lezione 23 - Modulo 1. Politiche di risoluzione delle collisioni
Informatica 3 Informatica 3 LEZIONE 22: Politiche di risoluzione delle collisioni Lezione 23 - Modulo 1 Modulo 1: Open e closed hashing Modulo 2: Sequenze di probe Modulo 3: Analisi del closed hashing
DettagliParte III: Algoritmo di Branch-and-Bound
Parte III: Algoritmo di Branch-and-Bound Sia Divide et Impera z* = max {c T x : x S} (1) un problema di ottimizzazione combinatoria difficile da risolvere. Domanda: E possibile decomporre il problema (1)
DettagliAlgoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio
Algoritmi Greedy Tecniche Algoritmiche: tecnica greedy (o golosa) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi
DettagliOrganizzazione Fisica dei Dati (Parte II)
Modello Fisico dei Dati Basi di Dati / Complementi di Basi di Dati 1 Organizzazione Fisica dei Dati (Parte II) Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Modello Fisico
DettagliInformatica 3. Informatica 3. LEZIONE 23: Indicizzazione. Lezione 23 - Modulo 1. Indicizzazione. Introduzione. Indicizzazione:
Informatica 3 Informatica 3 LEZIONE 23: Indicizzazione Lezione 23 - Modulo 1 Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees Indicizzazione lineare, ISAM e
DettagliMemorizzazione di una relazione
Heap file File ordinati Indici o Hash o B+-tree Costo delle operazioni algebriche Simboli: NP: numero di pagine NR: numero record LP: lunghezza pagina LR: lunghezza record Memorizzazione di una relazione
Dettagli2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di
DettagliAlgoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari
Algoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.
DettagliLa gestione delle interrogazioni
La gestione delle interrogazioni Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 1 Appunti dalle lezioni Esecuzione e ottimizzazione delle query Un modulo del DBMS Query processor
DettagliAlgoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
DettagliAlgoritmi e Strutture Dati
Maria Rita Di Berardini 2, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 2 Polo di Scienze Università di Camerino ad Ascoli Piceno Il concetto di dato Il concetto
DettagliAlgoritmi e Strutture Dati
Strutture Elementari Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 29 ottobre 2008 Strutture Dati Astratte Il concetto di dato Il concetto
DettagliInformatica 3. LEZIONE 16: Heap - Codifica di Huffmann. Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann
Informatica 3 LEZIONE 16: Heap - Codifica di Huffmann Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann Informatica 3 Lezione 16 - Modulo 1 Heap e code di priorità Introduzione
DettagliInformatica 3. Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Lezione 21 - Modulo 1. Introduzione (1) Introduzione (2) Ricerca:
Informatica 3 Informatica 3 LEZIONE 21: Ricerca su liste e tecniche di hashing Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Lezione 21 - Modulo 1 Algoritmi sequenziali e basati su
DettagliIntelligenza Artificiale. Risoluzione dei Problemi
Intelligenza Artificiale Risoluzione dei Problemi Strategie non-informate: principali 1. breadth-first; 2. depth-first; 3. depth-first a profondità limitata; 4. ad approfondimento iterativo. Ricerca in
DettagliAlgoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari
lgoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.
DettagliRegole di Associazione: algoritmi
Regole di Associazione: algoritmi di Rosa Meo Regole di Associazione Originariamente proposte nella market basket analysis per rappresentare le regolarità di comportamento nell acquisto dei clienti. R.Agrawal,
DettagliPag Politecnico di Torino 1
Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica Linguaggio SQL: costrutti avanzati D B M G D B M G2 Organizzazione fisica dei dati All interno di un DBMS relazionale,
DettagliD B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica
Linguaggio SQL: costrutti avanzati D B M G Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica D B M G 2 Pag. 1 2007 Politecnico di Torino 1 D B M G Organizzazione
DettagliEsempio: rappresentare gli insiemi
Esempio: rappresentare gli insiemi Problema: rappresentare gli insiemi Vedremo che la scelta della rappresentazione per implementarli non è così ovvia come era stato per i numeri razionali In realtà ci
DettagliImplementazione di dizionari
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri campi in cui sono memorizzati i dati associati alla
DettagliEspressioni aritmetiche
Espressioni aritmetiche Consideriamo espressioni costruite a partire da variabili e costanti intere mediante applicazione delle operazioni di somma, sottrazione, prodotto e divisione (intera). Ad esempio:
DettagliImplementazione della ricerca dell informazione in documenti non strutturati
Parte 5 Implementazione della ricerca dell informazione in documenti non strutturati M. Diligenti Sistemi Gestione Documentale 1 Vector-Space o modello booleano?! Modello vector-space permette il ranking
DettagliI Componenti del processo decisionale 7
Indice Introduzione 1 I Componenti del processo decisionale 7 1 Business intelligence 9 1.1 Decisioni efficaci e tempestive........ 9 1.2 Dati, informazioni e conoscenza....... 12 1.3 Ruolo dei modelli
DettagliInformatica 3. LEZIONE 9: Introduzione ai linguaggi funzionali. Modulo 1: Introduzione ai linguaggi funzionali Modulo 2: LISP
Informatica 3 LEZIONE 9: Introduzione ai linguaggi funzionali Modulo 1: Introduzione ai linguaggi funzionali Modulo 2: LISP Informatica 3 Lezione 9 - Modulo 1 Introduzione ai linguaggi funzionali Linguaggi
DettagliAlberi binari e alberi binari di ricerca
Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Alberi Un albero è una collezione non vuota di: nodi con nome e informazioni
DettagliINDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso
INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo
DettagliAlberi di Regressione
lberi di Regressione Caso di studio di Metodi vanzati di Programmazione 2015-2016 Corso Data Mining Lo scopo del data mining è l estrazione (semi) automatica di conoscenza nascosta in voluminose basi di
DettagliINTRODUZIONE AL LIVELLO FISICO: FILE, PAGINE, RECORD E INDICI
INTRODUZIONE AL LIVELLO FISICO: FILE, PAGINE, RECORD E INDICI Roberto Basili Corso di Basi di Dati a.a. 2013/14 Dati su dispositivi di memorizzazione esterni Dischi: si può leggere qualunque pagina a costo
DettagliProblemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
DettagliRichiamo di Concetti di Apprendimento Automatico ed altre nozioni aggiuntive
Sistemi Intelligenti 1 Richiamo di Concetti di Apprendimento Automatico ed altre nozioni aggiuntive Libro di riferimento: T. Mitchell Sistemi Intelligenti 2 Ingredienti Fondamentali Apprendimento Automatico
DettagliAlberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica giovedì 9
DettagliInformatica 3. LEZIONE 17: Alberi generici. Modulo 1: Definizione e ADT Modulo 2: Implementazione Modulo 3: Alberi e classi di equivalenza
Informatica 3 LEZIONE 17: Alberi generici Modulo 1: Definizione e ADT Modulo 2: Implementazione Modulo 3: Alberi e classi di equivalenza Informatica 3 Lezione 17 - Modulo 1 Definizione e ADT Introduzione
DettagliScuola superiore classi seconde e terze
Scuola superiore classi seconde e terze Proposta di soluzioni Accoglienza 2014-2015 Esercizio 1 (7 punti) Dov è il ritratto? Si procede per esclusione e s individua che solo C dice la verità per cui il
DettagliEspansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati.
CERCARE SOLUZIONI Generare sequenze di azioni. Espansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati. Strategia di ricerca: ad ogni passo scegliere
DettagliIntroduzione ai grafi. Introduzione ai grafi p. 1/2
Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G é costituito da una coppia di insiemi (V,A) dove V é detto insieme dei nodi e A é detto insieme di archi ed é un sottinsieme di tutte
DettagliEsercitazione 4 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016
Esercitazione 4 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 5, 2016 Alberi Esercizio 1 * [Libro 5.2] Dato un albero ordinato i cui nodi contengono valori interi, se ne vogliono
DettagliUn applicazione di Text Mining
Un applicazione di Text Mining Knowledge Discovery in Text (KDT) Problema Un azienda erogatrice di servizi intende analizzare il testo delle telefonate in arrivo al proprio numero verde al fine di migliorare
DettagliAlberi di Decisione (2)
Alberi di Decisione (2) Corso di AA, anno 2017/18, Padova Fabio Aiolli 25 Ottobre 2017 Fabio Aiolli Alberi di Decisione (2) 25 Ottobre 2017 1 / 18 Apprendimento di alberi di decisione: Bias induttivo Come
DettagliSintesi di Reti Combinatorie Ottimizzazione di Reti Combinatorie a Due Livelli: Metodo di Quine. Metodo di Quine-McCluskey per più funzioni
Sintesi di Reti Combinatorie Ottimizzazione di Reti Combinatorie a Due Livelli: Metodo di Quine ne-mccluskey Metodo di Quine-McCluskey per più funzioni Nel caso di funzioni a più uscite una prima soluzione
DettagliIn molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.
Definizione Oggetto del calcolo combinatorio è quello di determinare il numero dei modi mediante i quali possono essere associati, secondo prefissate regole, gli elementi di uno stesso insieme o di più
DettagliSintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone
Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone Il problema dell assegnamento degli stati versione del 9/1/03 Sintesi: Assegnamento degli stati La riduzione del numero
DettagliMetodi di Join. Corso di Basi di Dati e Sistemi Informativi
Metodi di Join Corso di Basi di Dati e Sistemi Informativi 1 Preliminari L operazione di join si usa nel modello relazionale per combinare tuple di diverse tabelle sulla base di certe condizioni. In seguito,
DettagliIl modello Entità/Relazioni (ER)
Il modello Entità/Relazioni (ER) Basi di dati 1 Il modello Entità/Relazioni (ER) Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il modello Entità/Relazioni (ER) Basi di dati
DettagliSDE Marco Riani
SDE 2017 Marco Riani mriani@unipr.it http://www.riani.it LA CLASSIFICAZIONE Problema generale della scienza (Linneo, ) Analisi discriminante Cluster Analysis (analisi dei gruppi) ANALISI DISCRIMINANTE
DettagliStandard Template Library
Standard Template Library Standard Template Library Progettata per gestire insiemi di dati in modo comodo ed efficiente senza conoscere dettagli implementativi Fa parte dello standard C++ È basata a sulla
DettagliArgomenti della lezione. Introduzione agli Algoritmi e alle Strutture Dati. Lista Lineare. Lista Lineare come Tipo di Dato Astratto
Argomenti della lezione Introduzione agli Algoritmi e alle Strutture Dati Operazioni su Liste Dr. Emanuela Merelli Tipi di Dato Astratto Lista Lineare Pila Coda Concetto di Struttura dati dinamiche Lista
DettagliIngegneria della Conoscenza e Sistemi Esperti Lezione 5: Regole di Decisione
Ingegneria della Conoscenza e Sistemi Esperti Lezione 5: Regole di Decisione Dipartimento di Elettronica e Informazione Politecnico di Milano Perchè le Regole? Le regole (if-then) sono espressive e leggibili
DettagliBusiness Intelligence per i Big Data
Business Intelligence per i Big Data Esercitazione di laboratorio N. 6 (Prima parte) Dati strutturati Il dataset denominato UsersSmall (UsersSmall.xls) è disponibile sul sito del corso (http://dbdmg.polito.it/wordpress/teaching/business-intelligence/).
DettagliGrafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base
DettagliAlberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliEsercizi per il corso di Algoritmi, anno accademico 2011/12
Esercizi per il corso di Algoritmi, anno accademico 2011/12 Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, nè in C++, etc. ). Di tutti gli
DettagliIndici non tradizionali. Indici non tradizionali. Indici bitmap. Indici bitmap. Indici bitmap. Indici bitmap - esempio
Indici non tradizionali Indici non tradizionali Nel seguito introdurremo tre particolari tipi di indici: indici bitmap: permettono di valutare efficientemente condizioni multiple indici per dati multidimensionali
DettagliInformatica 3. Informatica 3. LEZIONE 17: Alberi generici. Lezione 17 - Modulo 1. Introduzione. ADT dell albero generico.
Informatica 3 Informatica 3 LEZIONE 17: lberi generici Lezione 17 - Modulo 1 Modulo 1: Definizione e DT Modulo 2: Implementazione Modulo 3: lberi e classi di equivalenza Definizione e DT Politecnico di
DettagliAlberi di Decisione (2)
Alberi di Decisione (2) Corso di AA, anno 2018/19, Padova Fabio Aiolli 05 Novembre 2018 Fabio Aiolli Alberi di Decisione (2) 05 Novembre 2018 1 / 19 Apprendimento di alberi di decisione: Bias induttivo
DettagliINTRODUZIONE INTRODUZIONE TABELLE HASH FUNZIONE HASH
INTRODUZIONE INTRODUZIONE Una tabella hash è una struttura dati che permette operazioni di ricerca e inserimento molto veloci: in pratica si ha un costo computazionale costante O(1). Si ricorda che la
DettagliSintesi di Reti Combinatorie
Sintesi di Reti Combinatorie Ottimizzazione di Reti Combinatorie a Due Livelli: Metodo di Quine-McCluskey per reti a più uscite Mariagiovanna Sami Corso di Reti Logiche B 08 Sintesi a due livelli Reti
DettagliModello di sistema di comunicazione
Corso di Laurea a Distanza in Ingegneria Elettrica Corso di Comunicazioni Elettriche Teoria dell informazione A.A. 2006-07 Alberto Perotti DELEN-DAUIN Modello di sistema di comunicazione Il modello di
DettagliTecniche Algoritmiche: tecnica greedy (o golosa)
Tecniche Algoritmiche: tecnica greedy (o golosa) Una breve (ma non troppo) presentazione F. Damiani - Alg. & Lab. 04/05 Problemi di ottimizzazione (1/2) La tecnica greedy è usata per risolvere problemi
DettagliAlgoritmi e strutture dati
Algoritmi e strutture dati Roberto Cordone A. A. 2015-16 Capitolo 3 Implementazioni dei dizionari ordinati Nota: queste dispense sono un rapido riassunto delle lezioni svolte nel dicembre 2015 e gennaio
DettagliMulti-way search trees
Multi-way search trees GT. 10.4 1 Argomenti Multi-way search trees Multi-way searching 9 (2,4) Trees 2 5 7 10 14 2 1 Alberi Binari di Ricerca Bilanciati n numero di chiavi (entry(key,elem)) AVL tree log(
DettagliRicerca di outlier. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna
Ricerca di outlier Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna Ricerca di Anomalie/Outlier Cosa sono gli outlier? L insieme di dati che sono considerevolmente differenti dalla
DettagliIntroduzione ai grafi. Introduzione ai grafi p. 1/2
Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G è costituito da una coppia di insiemi (V,A) dove V è detto insieme dei nodi e A è detto insieme di archi ed è un sottinsieme di tutte
DettagliEsercizi Union-Find e su Grafi. Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 0 07 Esercizi Union-Find e su Grafi. Ugo Vaccaro. Esercizio: Scrivere pseudocodice per Make-Set, Union, e Find-Set usando la rappresentazione attraverso liste
DettagliAlberi. Strutture dati: Alberi. Alberi: Alcuni concetti. Alberi: definizione ricorsiva. Alberi: Una prima realizzazione. Alberi: prima Realizzazione
Alberi Strutture dati: Alberi Strutture gerarchiche di dati Esempi Il file system di un sistema operativo L organigramma di un azienda Alberi generali, alberi n-ari, alberi binari, Ogni nodo ha un unico
DettagliMulti classificatori. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna
Multi classificatori Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna Combinazione di classificatori Idea: costruire più classificatori di base e predire la classe di appartenza di
DettagliIntelligenza Artificiale. Clustering. Francesco Uliana. 14 gennaio 2011
Intelligenza Artificiale Clustering Francesco Uliana 14 gennaio 2011 Definizione Il Clustering o analisi dei cluster (dal termine inglese cluster analysis) è un insieme di tecniche di analisi multivariata
DettagliSubsection 1. MapReduce
MapReduce Subsection 1 MapReduce MapReduce La programmazione distribuita è molto pesante Soluzione: MapReduce MapReduce viene incontro alle sfide della programmazione distribuita. Le 3 regole Archivia
DettagliInformatica 3. LEZIONE 26: Implementazioni avanzate per liste e array. Modulo 1: Skip list Modulo 2: Multiliste Modulo 3: Rappresentazioni di matrici
Informatica 3 LEZIONE 26: Implementazioni avanzate per liste e array Modulo 1: Skip list Modulo 2: Multiliste Modulo 3: Rappresentazioni di matrici Informatica 3 Lezione 26 - Modulo 1 Skip list Introduzione
Dettagli