V. KHÁM PHÁ L UT
2. Th ut toán nhanh hn
Chúng ta th y r ng n u a⇒(l –a) không đúng, thì t t c các lu t a⇒(l - a) cho b t c a⊂ a c ng không đúng. Còn m t lu t (l – c)⇒c đúng, t t c nh ng lu t (l - _ c)⇒c_ ph i đúng, v i _ c thì là t p không r ng c a c. Ví d , n u lu t AB ⇒ CD đúng, thì lu t ABC⇒D và ABD⇒C c ng ph i đúng.
Xem xét thu c tính trên th y r ng cho m t t p thu c tính l n nào đó, n u m t lu t d n t i c đúng thì lu t đó s đúng d n t i t p con
_
cc a c
đúng. i u này gi ng nh n u m t t p thu c tính l n thì t t c các t p con c a nó là l n. B i v y t m t t p thu c tính l n l, đ u tiên chúng ta t o t t c các lu t v i m t thu c tính trong k t qu . Sau đó chúng ta dùng m nh
đ k t qu c a nh ng lu t này và dùng hàm apriori-gen đ t o t t c nh ng m nh đ k t qu có th có v i hai ph n t mà có th xu t hi n trong m t lu t t o t l,… Và đây là ý t ng c a m t thu t toán nhanh h n.
// Faster Algorithm
forall large-itemsets Lk , k>=2 do begin
H1={consequents of rules derived from Lk with one item in the consequent};
call ap-genrules(Lk, H1); end
Procedure ap-genrules(Lk : large k-itemset, Hm :set of m-item consequent)
1) if (k >m+1) then begin
2) Hm+1=apriori-gen(Hm);
3) forall hm+1∈ Hm+1dobegin
4) conf=support(Lk)/support(Lk - hm+1); 5) if (conf >= minconf) then
6) output the rule Lk - hm+1⇒ hm+1
with confidence=conf and support= support(Lk); 7) else
8) delete hm+1from Hm+1;
9) end
10) call ap-genrules(Lk, Hm+1);
11) End
- 42 -