Parallel Frequent Set Counting

Documenti analoghi
Parallel Frequent Set Counting

Lecture 14. Association Rules

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

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

Verifica 3 aprile Soluzioni

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

Regole associative. Regole associative. Regole associative. Regole associative

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

Università di Pisa A.A

Esercizi vari. Alberto Montresor. 19 Agosto, 2014

Esercizi sull Association Analysis

Informatica 3. Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Lezione 21 - Modulo 1. Introduzione (1) Introduzione (2) Ricerca:

Memorizzazione di una relazione

Association mining Salvatore Orlando

FILE E INDICI Architettura DBMS

Regole di Associazione

Architetture Evolute nei Sistemi Informativi. architetture evolute 1

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Regole di Associazione: algoritmi

Scoperta di sequenze di comportamento

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Algoritmi

Algoritmi di rimpiazzamento. Algoritmo con rimpiazzamento casuale

come segue: data una collezione C di elementi e una un elemento che verifica la proprietà P

Basi di Dati Parallele

Algoritmi e Strutture Dati Geometria Computazionale. Daniele Loiacono

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

Elezione di un leader in una rete ad anello

BASI DI DATI DISTRIBUITE

Silvia Rossi. Algoritmi di Ordinamento. Informatica. Lezione n. Parole chiave: Bubble Sort Selection Sort. Corso di Laurea:

Problemi algoritmici e Complessità degli algoritmi

Introduzione agli algoritmi e le stru1ure da2

GARA5 SECONDARIA DI SECONDO GRADO INDIVIDUALE

Organizzazione Fisica dei Dati (Parte II)

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

n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort

Architettura degli Elaboratori

Compito di Informatica Grafica 2 appello 02/02/2009. Nome e Cognome Numero di Matricola

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Studio degli algoritmi

I S T I T U T O T E C N I C O I N D U S T R I A L E S T A T A L E

Efficienza: esempi. Nella lezione precedente. Fondamenti di Informatica. Ferdinando Cicalese. ! Qualche problema computazionale

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Dati e Algoritmi I (Pietracaprina) Esercizi sul Text Processing

Databases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees

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

Regole Associative. Sistemi informativi per le Decisioni. Slide a cura di Prof. Claudio Sartori

INTRODUZIONE INTRODUZIONE TABELLE HASH FUNZIONE HASH

COMPLESSITÀ COMPUTAZIONALE. Fondamenti di Informatica A - Massimo Bertozzi

Mandelbrot. Mandelbrot set. Progetto del corso di Calcolo Parallelo AA Salvatore Orlando. L insieme di Mandelbrot è un frattale

Ordinamento di una lista: bubble-sort

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Towards Robust Indexing for Ranked Queries

Apprendimento Automatico

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

Problemi, istanze, soluzioni

3.4 Metodo di Branch and Bound

Mining Positive and Negative Association Rules:

Complessità computazionale

Architetture data-flow

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet francesc

Matroidi, algoritmi greedy e teorema di Rado

Geometria analitica di base. Equazioni di primo grado nel piano cartesiano Funzioni quadratiche Funzioni a tratti Funzioni di proporzionalità inversa

Sistemi a Regole. Fabio Sartori 3 dicembre L algoritmo RETE Forward e Backward Chaining

PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica

2.2 Alberi di supporto di costo ottimo

Secondo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Statistica per l Impresa

Corso di Matematica per la Chimica

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Complementi ed Esercizi di Informatica Teorica II

Progetto Matematica in Rete - Insiemi - Insiemi

Tecniche di riconoscimento statistico

Algoritmi e Strutture Dati. Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal

Progetto e analisi di algoritmi

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

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Prof. Venturino Taggi

Classificazione Mario Guarracino Data Mining a.a. 2010/2011

Insiemi Specifiche, rappresentazione e confronto tra realizzazioni alternative.

Modello Booleano e Liste Inverse. M. Diligenti Sistemi Gestione Documentale 1

Argomenti della lezione. Introduzione agli Algoritmi e alle Strutture Dati. Lista Lineare. Lista Lineare come Tipo di Dato Astratto

Assegnazione di una variabile

METODI DELLA RICERCA OPERATIVA

Esercizi di Programmazione Lineare

Definizioni. Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente: soluzione ottima in un dominio contiguo. Il paradigma greedy

Introduzione al Column Generation Caso di Studio: il Bin Packing Problem

Algoritmi di Ordinamento

Secondo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Regole associative. Mining di regole associative

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

Laboratorio di Sistemi Operativi Simulatori

Esercitazione su Instruction Level Parallelism Salvatore Orlando

Esercizi Capitolo 7 - Hash

Array ( vettore/matrice Un dato strutturato. indice Accesso diretto

Transcript:

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 contenete un sottoinsieme di item Vogliamo trovare regole/associazioni del tipo: if I1 then I2 (sup, conf) dove: I1, I2 sono insieme di item (itemset) I1, I2 hanno un sufficiente supporto: P(I1+I2) = sup La regola associativa ha sufficiente confidenza: P(I2 I1) = conf 2

Association mining L utente specifica l interesse delle regole: Minimum support (minsup) Minimum confidence (minconf) 1. Frequent Set Countint (FSC): Trova tutti gli itemset frequenti (> minsup) Spazio di ricerca esponenziale Molto costoso sia per quanto riguarda Computazione e I/O 2. Genera regole Solo regole associative forti (> minconf) Passo poco costoso 3 Esempio TID Items 1 Pane, Latte 2 Birra, Pane, Pannolini, Uova 3 Birra, Coca, Pannolini, Latte 4 Birra, Pane, Pannolini, Latte 5 Coca, Pane, Pannolini, Latte Association rule: X s,c y Support: s =σ(x y) / T 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 Il supporto è la probabilità che un certo itemset appaia nelle transazioni del dataset. s=p({pannolini,latte, Birra}) Confidence: c = σ(x y) / σ(x) La confidenza è una probabilità condizionata c=p({pannolini,latte, Birra} {Pannolini,Latte}) 4

Complessità computazionale esponenziale Dati n transazioni e m differenti item: numero di pattern potenzialmente frequenti: O(2 m ) complessità computazionale: O(n2 m ) Apriori: ricerca di tutti i pattern frequenti, basato su vincoli di supporto minimo [Agarwal & Srikant]: 6HLOSDWWHUQ^$%`KDXQVXSSRUWRGLDOPHQR.DOORUDVLD$HB hanno XQVXSSRUWRGLDOPHQR. 6H$RSSXUH%KDQQRXQVXSSRUWRPLQRUHGL.DOORUD^$%`KDQQRun VXSSRUWRPLQRUHGL. - usa i pattern frequenti di k-1 item per ridurre lo spazio di ricerca dei pattern lunghi k - itera il procedimento 5 Apriori (Frequent Set Counting) Colleziona i conteggi degli item singoli seleziona solo gli item più frequenti Individua le coppie candidate ed effettua i conteggi seleziona solo le coppie più frequenti Individua le triple candidate ed effettua i conteggi seleziona solo le triple più frequenti E così via Principio guida: tutti i sottoinsiemi di un itemset frequente sono anch essi frequenti Questo principio è usato da Apriori per effettuare il pruning dei candidati 6

Illustriamo il principio di Apriori m Senza pruning C i = i C 1 = 6 C 2 = 15 C 1 = 20 Con pruning: 6+6+2=14 7 Contare gli itemset frequenti Gli itemset frequenti sono individuati contando quanti candidati appaiono in ciascuna delle transazioni del database Per velocizzare il conteggio, bisogna velocizzare la ricerca dei vari candidati all interno di ciascuna transazione Esistono vari metodi, che fanno affidamento dell ordinamento degli item all interno delle transazioni e degli itemset Item rappresentati tramite identificatori numerici 8

Prima iterazione di Apriori m: gli identificatori numerici associati agli item vanno da 1 a m D: file delle transazioni t: generica transazione F 1 : set dei set frequenti di lunghezza 1 9 Loop principale C k : itemset candidati di lunghezza k L algoritmo Apriori termina all iterazione k se non si individuano itemset frequenti, oppure se non si trovano candidati 10

Generazione dei candidati con pruning Gli itemset in F k e C k sono ordinati c C k se e solo se tutti i k-1-itemset c c appartengono a F k-1 Condizione necessaria affinché un k-itemset c possa appartenere a C k se esiste una coppia di itemset di F k-1 che con c condividano un identico prefisso di k-2 elementi La condizione diventa sufficiente se tutti i sottoinsiemi di k-1 elementi di c appartengono a F k-1 11 Ordinamento Item come numeri Transazioni a formato variabile ciascuna transazione è una lista di interi ordinati in maniera crescente Itemset (itemset sia candidati e sia frequenti) ordinati F k e C k come vettori di itemset Vettori ordinati lessicograficamente Ordinamento di F k-1 utile per rendere più efficiente la costruzione di C k Più semplice individuare prefissi Ordinamento di C k utile per rendere più efficiente la ricerca dei candidati, e quindi la fase di conteggio 12

Ordinamento e conteggio L ordinamento degli item può essere sfruttata per determinare i candidati contenuti in una certa transazione Vengono usate strutture dati complesse per memorizzare i candidati e velocizzare la ricerca Hash-tree o Prefix-tree Vogliamo qui suggerire un metodo più semplice da implementare Sia data una transazione ordinata t={t 0, t 1, t 2,.,t z-1 }, z = t i 2-prefix dei possibili k-itemset ordinati presenti in t coppie ordinate (I 0,I 1 ), dove I 0 t e I 1 t se I 1 = t j allora in t esistono al massimo z-j-1 item che possono essere usati per costruire un k-itemset contenuto in t quindi, se z-j-1 < k-2, allora (I 0,I 1 ) non può essere un 2-prefix ammissibile 13 Ordinamento e conteggio: subset_and_count(c k, t) Tail di t t={t 0, t 1, t 2, t 3,.,t z-1 } C k Counts I 0 I 1 Per ogni (I 0, I 1 ) Effettua una ricerca binaria su C k per individuare l inizio del segmento composto da candidati (k-itemset) con prefisso: (I 0, I 1 ) Scorri sequenzialmente il segmento per controllare se ciascun candidato è un sottoinsieme di Tail di t, e aggiorna eventualmente i contatori associati Segmento di C k con uno stesso 2-prefix (I 0, I 1 ) 14

Tecniche di parallelizzazione Consideriamo che Il Dataset può essere grande (elaborazione su disco) Per valori piccoli di minsup si ottengono molti candidati Data parallelism Partiziona il Database di Transazioni Partiziona i Candidati 15 Count Distribution (CD) Partiziona il Database di Transazioni Replica i candidati e conta in maniera distribuita Approccio noto come Count Distribution (CD) Ogni processore ha il completo insieme di candidati C k Ogni processore aggiorna i suoi contatori locali Riduzione globale per determinare il valore dei contatori NOTA: Se C k è troppo grande rispetto alla memoria, possono essere necessari scan multipli del database 16

Count Distribution (esempio iterazione 2) 17 Data Distribution (DD) Partiziona non solo il Database, ma anche i Candidati Ogni partizione dei candidati deve essere confrontata con l intero Dataset Partizioni dei dati comunicati fra tutti i processori Comunicazione finale per conoscere l F k globale, necessario per costruire C k+1 Alto costo di comunicazione Approccio utile quando i candidati diventano troppi e non possono essere mantenuti in memoria Anello per comunicare le partizioni tra i processori Shift sull anello e ed conteggio rispetto alla partizione remota ricevuta Tanti shift quanti sono i processori Possibile overlapping tra calcolo e comunicazione 18

Data Distribution (DD) 19 Data Distribution (DD) 20

Cluster di WS Architettura adatta per questo tipo di problema, in quanto le comunicazioni introdotte da questo algoritmo sono limitate Dischi multipli, utili per contenere i dati in ingresso / uscita dell algoritmo di FSC Di sotto, abbiamo illustrato due modi di configurare il cluster Shared Nothing Shared Disk Considerare anche il load balancing Architetture eterogenee, o multiprogrammate 21