Park Chen Yu
Traduzione e Integrazione
delle Lezioni a cura di Sandro Gallo
Home Miglioramenti Apriori Estensioni Iceberg
L'algoritmo DHP di Park-Chen-Yu usa le tabelle hash per
determinare al primo passo, mentre L1 è stato determinato,
tutte quelle coppie che non possono essere frequenti.
Sfrutta il fatto che la memoria principale è molto
più grande del numero di insiemi. E assume che i dati sono
memorizzati in un flat file, con i record composti da un ID e da
una lista di articoli.
L'algoritmo DHP (direct hashing and pruning) per il
calcolo di insiemi frequenti di due elementi è composto da
due passi:
- Passo 1:
- Conta tutte le occorrenze di articoli.
- Per ogni bucket composto dagli articoli {i1, i2, ..., ik},
calcola la funzione hash di tutte le coppie e incrementa il
contatore di ogni bucket nella tabella.
- Alla fine del passo, determina L1, gli articoli che occorrono
almeno s volte.
- Alla fine del passo determina anche quei bucket con contatore
>= s. Il punto chiave è che la coppia (i,j) non
può essere frequente a meno che il suo bucket non sia
frequente, e queste comporranno C2. Sostituisci la hash table con
una bitmap, mettendo 1 se la coppia corrisponde a un bucket
frequente, zero altrimenti.
- La memoria principale contiene quindi tutti gli articoli
frequenti, cioè L1.
- Contiene anche una bitmap che riassume i risultati del passo
1.
- Infine, la memoria principale contiene uan tabella con tutte
le coppie di candidati e i loro contatori. Una coppia (i,j)
può essere una candidata cioè stare in C2 se le
seguenti tre condizioni sono soddisfatte:
- (i) i sta in L1,
- (ii) j sta in L1,
- (iii) hash(i,j) è un bucket frequente.
- Durante il passo 2 consideriamo ogni basket e ogni coppia dei
suoi articoli, facendo il test sopra. Se una coppia soddisfa le
tre condizioni, allora incrementa il suo contatore in memoria, o
se non esiste un bucket per questa coppia creane uno nuovo.
DHP funziona meglio di Apriori quando le coppie di articoli da
L1 sono troppe per fare entrare in memoria una tabella di coppie
di candidati insieme ai relativi contatori. Ancora, il numero di
bucket frequenti in DHP è sufficientemente piccolo che la
dimensione di C2 è inferiore a quella della memoria.
Quando molti bucket non sono frequenti in PCY? Quando ci sono
poche coppie frequenti, ma molte coppie sono così
infrequenti che la somma dei loro contatori non supera la
soglia.
Home Miglioramenti Apriori Estensioni Iceberg