Association mining Salvatore Orlando

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Association mining Salvatore Orlando"

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

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

Dettagli

Parallel Frequent Set Counting

Parallel 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

Dettagli

Lecture 14. Association Rules

Lecture 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

Dettagli

Association mining Salvatore Orlando

Association 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

Dettagli

Parallel Frequent Set Counting

Parallel 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

Dettagli

Regole associative. Il problema della scoperta di regole associative può essere espresso come segue Sia I = {i 1

Regole 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

Dettagli

Regole associative. Regole associative. Regole associative. Regole associative

Regole 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

Dettagli

Regole di associazione

Regole 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

Dettagli

Verifica 3 aprile Soluzioni

Verifica 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

Dettagli

Regole associative. Gianluca Amato

Regole 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

Dettagli

Regole associative Mario Guarracino Laboratorio di Sistemi Informativi Aziendali a.a. 2006/2007

Regole 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

Dettagli

Giuseppe Manco. Readings: Chapter 6, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman. Association rules mining

Giuseppe 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

Dettagli

Regole associative. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna

Regole 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

Dettagli

Pattern Sequenziali. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna

Pattern 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

Dettagli

5. La Market Basket Analysis

5. 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

Dettagli

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

Dettagli

Esercizi sull Association Analysis

Esercizi 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.

Dettagli

Regole associative. Mining di regole associative

Regole 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

Dettagli

Dizionari Liste invertite e Trie

Dizionari 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

Dettagli

Databases. 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 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

Dettagli

2 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 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

Dettagli

Ingegneria della Conoscenza e Sistemi Esperti Lezione 2: Apprendimento non supervisionato

Ingegneria 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

Dettagli

FILE E INDICI Architettura DBMS

FILE 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

Dettagli

Regole associative con Weka

Regole 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

Dettagli

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

Dettagli

Data Science e Tecnologie per le Basi di Dati

Data 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

Dettagli

Regole di Associazione

Regole 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

Dettagli

Tecniche di riconoscimento statistico

Tecniche 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

Dettagli

Ricerca Cieca. Spazio di Ricerca. ! albero di ricerca. Russell & Norvig: Introduzione al Problem Solving. Introduzione al Problem Solving

Ricerca 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

Dettagli

Informatica 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. 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

Dettagli

Parte III: Algoritmo di Branch-and-Bound

Parte 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)

Dettagli

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

Algoritmi 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

Dettagli

Organizzazione Fisica dei Dati (Parte II)

Organizzazione 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

Dettagli

Informatica 3. Informatica 3. LEZIONE 23: Indicizzazione. Lezione 23 - Modulo 1. Indicizzazione. Introduzione. Indicizzazione:

Informatica 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

Dettagli

Memorizzazione di una relazione

Memorizzazione 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

Dettagli

2 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 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

Dettagli

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari

Algoritmi 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.

Dettagli

La gestione delle interrogazioni

La 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

Dettagli

Algoritmi e Strutture Dati

Algoritmi 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]

Dettagli

Algoritmi e Strutture Dati

Algoritmi 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

Dettagli

Algoritmi e Strutture Dati

Algoritmi 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

Dettagli

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: 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

Dettagli

Informatica 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. 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

Dettagli

Intelligenza Artificiale. Risoluzione dei Problemi

Intelligenza 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

Dettagli

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari

Algoritmi 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.

Dettagli

Regole di Associazione: algoritmi

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

Dettagli

Pag Politecnico di Torino 1

Pag 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,

Dettagli

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica

D 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

Dettagli

Esempio: rappresentare gli insiemi

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

Dettagli

Implementazione di dizionari

Implementazione 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

Dettagli

Espressioni aritmetiche

Espressioni 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:

Dettagli

Implementazione della ricerca dell informazione in documenti non strutturati

Implementazione 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

Dettagli

I Componenti del processo decisionale 7

I 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

Dettagli

Informatica 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: Introduzione ai linguaggi funzionali Modulo 1: Introduzione ai linguaggi funzionali Modulo 2: LISP Informatica 3 Lezione 9 - Modulo 1 Introduzione ai linguaggi funzionali Linguaggi

Dettagli

Alberi binari e alberi binari di ricerca

Alberi 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

Dettagli

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

INDICI 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

Dettagli

Alberi di Regressione

Alberi 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

Dettagli

INTRODUZIONE AL LIVELLO FISICO: FILE, PAGINE, RECORD E INDICI

INTRODUZIONE 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

Dettagli

Problemi, istanze, soluzioni

Problemi, 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

Dettagli

Richiamo di Concetti di Apprendimento Automatico ed altre nozioni aggiuntive

Richiamo 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

Dettagli

Alberi binari e alberi binari di ricerca

Alberi 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

Dettagli

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: 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

Dettagli

Scuola superiore classi seconde e terze

Scuola 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

Dettagli

Espansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati.

Espansione: 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

Dettagli

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Introduzione 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

Dettagli

Esercitazione 4 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016

Esercitazione 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

Dettagli

Un applicazione di Text Mining

Un 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

Dettagli

Alberi di Decisione (2)

Alberi 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

Dettagli

Sintesi 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. 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

Dettagli

In molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.

In 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ù

Dettagli

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone

Sintesi 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

Dettagli

Metodi di Join. Corso di Basi di Dati e Sistemi Informativi

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

Dettagli

Il modello Entità/Relazioni (ER)

Il 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

Dettagli

SDE Marco Riani

SDE 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

Dettagli

Standard Template Library

Standard 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

Dettagli

Argomenti 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. 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

Dettagli

Ingegneria della Conoscenza e Sistemi Esperti Lezione 5: Regole di Decisione

Ingegneria 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

Dettagli

Business Intelligence per i Big Data

Business 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/).

Dettagli

Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)

Grafi: 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

Dettagli

Alberi binari e alberi binari di ricerca

Alberi 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

Dettagli

Esercizi per il corso di Algoritmi, anno accademico 2011/12

Esercizi 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

Dettagli

Indici non tradizionali. Indici non tradizionali. Indici bitmap. Indici bitmap. Indici bitmap. Indici bitmap - esempio

Indici 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

Dettagli

Informatica 3. Informatica 3. LEZIONE 17: Alberi generici. Lezione 17 - Modulo 1. Introduzione. ADT dell albero generico.

Informatica 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

Dettagli

Alberi di Decisione (2)

Alberi 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

Dettagli

INTRODUZIONE INTRODUZIONE TABELLE HASH FUNZIONE HASH

INTRODUZIONE 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

Dettagli

Sintesi di Reti Combinatorie

Sintesi 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

Dettagli

Modello di sistema di comunicazione

Modello 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

Dettagli

Tecniche Algoritmiche: tecnica greedy (o golosa)

Tecniche 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

Dettagli

Algoritmi e strutture dati

Algoritmi 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

Dettagli

Multi-way search trees

Multi-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(

Dettagli

Ricerca 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 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

Dettagli

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Introduzione 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

Dettagli

Esercizi Union-Find e su Grafi. Ugo Vaccaro

Esercizi 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

Dettagli

Alberi. Strutture dati: Alberi. Alberi: Alcuni concetti. Alberi: definizione ricorsiva. Alberi: Una prima realizzazione. Alberi: prima Realizzazione

Alberi. 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

Dettagli

Multi classificatori. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna

Multi 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

Dettagli

Intelligenza Artificiale. Clustering. Francesco Uliana. 14 gennaio 2011

Intelligenza 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

Dettagli

Subsection 1. MapReduce

Subsection 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

Dettagli

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: 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