Ký hiệu :
o D : là cơ sở dữ liệu có các trƣờng <TID,item>, với TID là chỉ danh của giao tác
o Size : là số lƣợng các item trong một tập itemset.
o c[1],c[2],…,c[k] thể hiện một tậm k-item c có k-itemset c có k item bao gồm c[1],c[2],…,c[k], với c[1]>c[2]>…>c[k].
o Nếu c=X.Y và Y là m-itemset, thì ta cũng gọi Y là m-extension của X.
o Mỗi itemset có trƣờng count để lƣu số support cho itemset đó.Trƣờng count đƣợc khởi tạo giá trị zero khi item đƣợc tạo lần đầu.
Thuật toán Apriori :
Đầu tiên đếm số items và xác định L1 Bƣớc tiếp theo gồm 2 phần chính :
* Ck tạo đƣợc bằng cc kết Lk-1 với chính nĩ.
* Những tập kích thƣớc (k-1) khơng phổ biến khơng thể l tập con của tập phổ biến kích thƣớc k.
1) L1 = {large 1-itemsets};
2) for ( k = 2; Lk-1≠ ; k++ ) do begin
3) Ck = apriori-gen(Lk-1); // Ứng viên mới 4) forall transactions t D do begin
5) Ct = subset(Ck , t); // Ứng viên chứa trong t 6) forall candidates c Ctdo 7) c.count++; 8) end 9) Lk = {c Ck | c.count≥ minsup} 10) end 11) Answer = Uk Lk;
Tạo Apriori Candidate :
Hàm apriori-gen nhận đối số L k-1 là tất cả các tập (k-1)_itemset. Hàm này trả về xác tập k _itemset.
apriori-gen(L k-1)
o Đầu tiên ở bƣớc kết ta kết L k-1 với L k-1 :
insert into C k
select p.item1 , p.item2 , ..., p.item k-1 , q.item k-1
from L k-1 p, L k-1 q
where p.item 1 = q.item 1 , . . ., p.item k-2 = q.item k-2, p.item k-1 < q.item
k-1 ; (Điều kiện p.item k-1 < q.item k-1 để đảm bảo sẽ không có bộ trùng đƣợc phát sinh).
o Kế tiếp bƣớc xén bớt, chúng tôi xóa tất cả itemsets cC k . Sao cho tập con của c không ở trong L k-1.
forall itemsets c C k do
forall (k-1)-subsets s of c do
if (s L k-1 ) then
delete c from C k ;
Ví dụ : Tập L 3={{1, 2, 3},{1, 2, 4}, {1, 3, 4}, {1,3, 5}, {2, 3, 4}}. Sau khi kết ta có , C 4 sẽ là {1, 2, 3,4}, {1, 3, 4, 5}. Bƣớc xén bớt sẽ xóa itemset {1, 3, 4, 5} bởi vì itemset {1, 4, 5} L3. Do đó C 4 chỉ chứa{1, 2, 3, 4}.
CHƢƠNG 3. PHƢƠNG PHÁP TÌM LUẬT KẾT HỢP MỜ VÀ MINH HỌA BẰNG ỨNG DỤNG THỰC TẾ