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. Si chiamino standard le regole estratte secondo il framework tradizionale. Una regola standard r : X Y è detta anche essenziale se X = 1 oppure per ogni X X, con X, confidenza(x Y (X X ) < confidenza(r). (a) Si consideri un dataset T con le seguenti 5 transazioni: (ABCD), (ABCE), (ABC), (ABE), (BCD). Usando minsup=0.5 e minconf=0.5, trovare una regola standard X Y con X > 1 che non sia essenziale. (b) Di quali regole standard non essenziali una regola essenziale può essere considerata rappresentante? (c) Per un generico dataset T, si consideri una regola standard r : X Y con confidenza c minconf. Si supponga che per un certo item a X valga che supporto(x) = supporto({a}). (i) Dimostrare che per un qualsiasi itemset X X, con a X, si ha che confidenza(x Y (X X )) = c. (ii) In base al risultato del punto (i), dimostrare che se X = m, esistono in T Ω (2 m ) regole standard non essenziali. (a) L itemset ABC ha supporto 3/5 > 0.5. Le regole A BC e AB C hanno entrambe confidenza 3/4 > 0.5, quindi la seconda di esse è standard ma non essenziale. (b) Una regola essenziale r : X Y con confidenza c può essere considerata rappresentante di tutte le regole r : X Y (X X ), con X X che hanno confidenza(r ) = confidenza(r). Infatti, relativamente a queste regole X è l itemset minimale la cui presenza in una transazione implica la presenza di X Y con confidenza c. (c) (i) Sia X X, con a X. Dalla antimonotonicità del supporto si ha che supporto({a}) supporto(x ) supporto(x). Ma poiché per ipotesi supporto(x) = supporto({a}), allora deve valere che supporto(x ) = supporto(x), e quindi confidenza(x (X Y ) X ) = supporto(x Y ) supporto(x ) = supporto(x Y ) supporto(x) = c.
Data Mining: Esercizi sull Association Analysis 2 (ii) Dal punto precedente si deduce che tutte le 2 m 1 regole del tipo X Y (X X ), con a X X, sono standard con lo stesso supporto e la stessa confidenza c di r, ma l unica essenziale è quella con X = {a}. 2. Sia T un dataset di transazioni sull insieme di item I. Per ogni i I sia s i il supporto dell itemset {i}. Per ogni itemset X I sia max(x) = max{s i : i X}. Si definisca la misura µ(x) = Supporto(X). max(x) (Si noti che µ coincide con l h-confidence definita a lezione.) (a) Si dimostri che µ( ) è una misura antimonotona. (b) Data una regola associativa r : X Y, provare che Confidenza(r) µ(x Y ). (c) Data una soglia minmu (0, 1), sia F k l insieme di itemset X di lunghezza k tali che µ(x) minmu, per ogni k 1. Fissato k > 1, e definito C k = {X {i} : (X F k 1 ) (i I X) (s i max(x))}, dimostrare che F k C k. (a) Si considerino due itemset X, Y I con X Y. Per l antimonotonicità del supporto si ha che Supporto(X) Supporto(Y ), ed è facile vedere che max(y ) max(x). Quindi µ(x) = Supporto(X) max(x) Supporto(Y ) max(x) Supporto(Y ) max(y ) = µ(y ) (b) È facile vedere che Supporto(X) max(x) max(x Y ). Di consegeunza Confindenza(r) = Supporto(X Y ) Supporto(X) Supporto(X Y ) max(x Y ) = µ(x Y ) (c) Sia X = {i 1, i 2,..., i k } un itemset di lunghezza k con µ(x) minmu, e sia s ik = max(x). Per l antimonotonicità di µ( ) provata precedentemente, si ha che X = {i 1, i 2,..., i k 1 } X è tale per cui µ(x ) µ(x) minmu, e quindi X F k 1. Inoltre vale che s ik max(x ). Quindi l itmeset X = X {i k } fa parte di C k.
Data Mining: Esercizi sull Association Analysis 3 3. Si consideri un dataset T di transazioni sull insieme di item I. Per un itemset X si definisca T X come l insieme di transazioni che contengono X, e si definisca Chiusura(X) = t T X t. Dimostrare le seguenti proprietà: (a) Supporto(Chiusura(X)) = Supporto(X); (b) Chiusura(X) è un itemset chiuso; (c) Se X è chiuso, allora X = Chiusura(X). Per comodità di notazione, definiamo Y = Chiusura(X). (a) È facile vedere che X Y e quindi, per l antimonotonicità del supporto, si ha che Supporto(X) Supporto(Y ). Inoltre, dato che Y è contenuto per definizione in tutte le transazioni di T X, si ha che Supporto(Y ) T X / T = Supporto(X). Ne consegue che Supporto(Y ) = Supporto(X). (b) Per assurdo, supponiamo che Y non sia un itemset chiuso e, quindi, che esista un item a Y tale che Y {a} abbia lo stesso supporto di Y. Allora, sfruttando quanto provato nel punto precedente, possiamo affermare che X Y Y {a}, e che Supporto(X) = Supporto(Y ) = Supporto(Y {a}). Ne consegue che T X = T Y = T Y {a}. Ciò implica che l item a è presente in tutte le transazioni che contengono X, ovvero nella loro intersezione, e quindi, per definizione di chiusura, si ha che a Y, contraddicendo la scelta di a. (c) Supponiamo che X sia chiuso. Sappiamo già che X Y e che X e Y hanno lo stesso supporto. Se X fosse diverso da Y esisterebbe un sovrainsieme proprio di X che ha lo stesso suo supporto, e quindi X non sarebbe chiuso. 4. Si consideri un dataset T di transazioni sull insieme di item I. Per un itemset X si definisca T X come l insieme di transazioni che contengono X, e si ricordi che se X è chiuso allora vale che X = Chiusura(X) = t T X t. (a) Siano X, Y I due itemset chiusi e sia Z = X Y. Trovare una relazione che lega T Z a T X e T Y (motivando la risposta) e dimostrare che Z è chiuso. (b) Per un itemset X si definisca la seguente misura: µ(x) = max{confidenza(w X) : W I, W X = }. Dimostrare che µ( ) è antimonotona.
Data Mining: Esercizi sull Association Analysis 4 (a) Poichè Z è contenuto in una qualsiasi transazione di T X e in una qualsiasi transazione di T Y, si ha che T X T Y T Z. Se Z non fosse chiuso esisterebbe un item a Z tale che l itemset V = Z {a} avrebbe lo stesso supporto di Z e quindi sarebbe contenuto in tutte le transazioni che contengono Z. Quindi a sarebbe contenuto in tutte le transazioni di T X e in tutte le transazioni di T Y, e quindi poiché X = t T X t e Y = t T Y t, si avrebbe che a X e a Y e quindi a X Y = Z che contraddice la scelta di a. (b) Siano X, X due itemset con X X, e supponiamo che µ(x ) = max{confidenza(w X ) : W I, W X = } = Confidenza( W X ), per un qualche itemset W disgiunto da X. Chiaramente si ha che W è anche disgiunto da X e che µ(x) Confidenza( W X) = Supporto( W X) Supporto( W ) Quindi la misura è antimonotona. Supporto( W X ) Supporto( W ) = µ(x ). 5. Siano I 1 = {a 1, a 2,..., a n } e I 2 = {b 1, b 2,..., b m } due insiemi distinti di item, con n pari ed m log 2 n. Si consideri un dataset T = {t 1, t 2,..., t n } di n transazioni su I 1 I 2, dove I 1 t i I 1 I 2 per ogni 1 i n/2 t i I 2 per ogni n/2 < i n (a) Fare un esempio di un tale dataset T con n = 8 e m = 3, in cui non ci siano due transazioni uguali. (N.B. Per i punti successivi non usare questo particolare dataset ma uno arbitrario che soddisfi le ipotesi date.) (b) Dimostrare che rispetto a T esistono almeno 2 n 1 itemset non vuoti di supporto 1/2. (c) Sia X un itemset chiuso rispetto a T. Dimostrare che se X contiene almeno un item di I 1 allora deve contenere per forza tutto I 1. (d) Usare il punto precedente per dare un limite superiore al numero di itemset chiusi rispetto a T. (a) Esercizio. (b) Un qualsiasi X I 1 ha supporto 1/2. Esistono 2 n 1 sottoinsiemi non vuoti di I 1.
Data Mining: Esercizi sull Association Analysis 5 (c) Sia X chiuso tale che X I 1 e sia T X l insieme delle transazioni che contengono X. Chiarmente T X {t 1, t 2,..., t n/2 }, e quindi ogni transazione che contiene X contiene anche tutto I 1. Ne consegue che Supporto(X) = Supporto(X I 1 ), e se X non contenesse tutto I 1 si avrebbe un superset di X, X I 1, con lo stesso supporto di X, contraddicendo l ipotesi di chiusura di X. (d) Partizioniamo l insieme di itemset chiusi in due gruppi: il gruppo A degli itemset chiusi che contengono item di I 1 ; e il gruppo B degli itemset chiusi che non contengono item di I 1. Dal punto precedente sappiamo che ciascun itemset in A deve contenere tutto I 1. Quindi gli itemset in A possono distinguersi solo in base agli item di I 2. Allora, due itemset nel gruppo A non possono contenere lo stesso sottoinsieme di item di I 2, e quindi ci possono essere al più 2 m itemset in A. Analogamente, due itemset nel gruppo B non possono contenere lo stesso sottoinsieme di item di I 2, e quindi ci possono essere al più 2 m 1 itemset in B (escludendo l itemset vuoto). Quindi gli itemset chiusi sono meno di 2 2 m = 2 m+1. 6. Sia dato un insieme I = {a 1, a 2,..., a n } {b 1, b 2,..., b n } di 2n item, e un dataset T = {t 1, t 2,..., t n } di n transazioni su I, dove t i = {a 1, a 2,... a n, b i } per 1 i n. Per minsup = 1/n, determinare il numero di itemset chiusi frequenti e il numero di itemset massimali. Sia A = {a 1, a 2,..., a n } e B = {b 1, b 2,..., b n }. Ogni sottoinsieme di A ha supporto 1, mentre ogni itemset formato da un sottoinsieme di A e un item di B ha supporto 1/n. Tutti gli altri itemset hanno supporto 0. In questo caso gli itemset chiusi frequenti sono n + 1, ovvero, l itemset A e tutti gli itemset del tipo A {b i }, per 1 i n. Tutti questi itemset, tranne A sono anche massimali, quindi il numero di itemset massimali è n. 7. Si consideri l algoritmo apriori per la determinazione degli itemset frequenti in un dataset D di transazioni su un insieme ordinato di item I. Per ogni k 1, sia F k, l insieme degli itemset frequenti di lunghezza k. Per ogni X F k, siano X[1], X[2],..., X[k] i suoi item in ordine crescente. Per k > 1, nell algoritmo si usa il metodo apriori-gen(f k 1 ) per generare itemset di lunghezza k candidati a essere frequenti. Si supponga di implementare apriori-gen(f k 1 ) come segue:
Data Mining: Esercizi sull Association Analysis 6 C k ; for each X F k 1 do for each (i F 1 ) do if (i > X[k 1]) then aggiungi X {i} a C k rimuovi da C k ogni candidato che contiene itemset di taglia k 1 non in F k 1 return C k Dimostrare che l insieme C k restituito coincide con quello restituito nella implementazione standard di apriori-gen. Sia C k l insieme di candidati restituiti dall implementazione standard di apriori-gen. Per dimostrare che C k = C k, dimostriamo le seguenti due relazioni: (1) C k C k ; e (2) C k C k. Dimostriamo C k C k. Sia Z C k, e quindi Z = X {i} per un qualche X F k 1 e i F 1, con i > X[k 1]. Definito Y = X[1 k 2] {i}, si vede che sia X che Y fanno parte di F k 1 e condividono un prefisso di lunghezza k 2. Quindi Z = X Y sarà inserito in C k nella fase di candidate generation dell implementazione standard e non potrà essere tolto nella successiva fase di candidate pruning dato che sopravvive alla identica fase di pruning dell implementazione data nell esercizio. Dimostriamo ora che C k C k. Sia Z C k. Allora deve essere che Z = X Y, dove X, Y F k 1, X Y, e X[1... k 2] = Y [1... k 2]. Senza perdita di generalità, assumiamo che X[k] < Y [k]. Allora, Z = X {Y [k]}. Dato che X F k 1 e, per l antimonotonicità del supporto, Y [k] F 1, si ha che Z viene aggiunto a C k nei due cicli for innestati dell implementazione data nell esercizio. Dato che Z C k significa che sopravvive alla fase di pruning dell implementazione standard, e quindi deve sopravvivere alla fase di pruning dell implementazione data nell esercizio. Ne consegue che Z C k. 8. Si consideri una sequenza S[0, n 1] di simboli sull alfabeto Σ. Un motivo per S è una sequenza X[0, k 1] su Σ, con k < n, e il suo supporto (assoluto) è Supporto(X) = {i : 0 i < n and S[i, i + k 1] = X}. Ad esempio, aab è un motivo per bcaabdeaabaab con supporto 3. (a) Dimostrare che per il supporto dei motivi vale una proprietà di antimonotonia. (b) Data una soglia minsup [1, n], e dato k 1, sia F k l insieme di motivi di lunghezza k frequenti (cioè con supporto almeno minsup). Dati X, Y F k tali che X[1, k 1] = Y [0, k 2] si definisca fusione(x, Y ) il motivo X[0]Y (ad es., abcd = fusione(abc,bcd)). Sia C k+1 = {fusione(x, Y ) : X, Y F k and X[1, k 1] = Y [0, k 2]}. Dimostrare che F k+1 C k+1.
Data Mining: Esercizi sull Association Analysis 7 (a) Sia X[0, k 1] una sequenza su Σ e X = X[l, r] una sua sottosequenza, con 0 l r < k. Si ha che per ogni indice i tale che S[i, i + k 1] = X allora S[i + l, i + r] = X. E quindi, Supporto(X ) Supporto(X). (b) Si consideri una sequenza Z[0, k] F k+1 arbitraria, e si definisca X = Z[0, k 1] e Y = Z[1, k]. Per l antimonotonicità del supporto illustrata nel punto precedente, si deve avere che X, Y F k. Poiché Z = fusione(x, Y ), allora Z C k+1.