Thủ tục tính tích luỹ độ hỗ trợ của các ứng cử là tập con của giao dịch t

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Một số phương pháp khai phá dữ liệu sinh luật kết hợp Luận văn ThS Công nghệ thông tin 1.01.10 (Trang 37 - 40)

Input: Giao dịch t, Nút hiện thời trên cây băm v, Chỉ mục i (giả sử i đánh số từ 0) hiện thời đang xét trong t và các mục trong t được sắp theo chiều tăng dần.

Output: Tích luỹ độ hỗ trợ cho các ứng cử X trên cây băm T.

Thực hiện: Accumulate(t, v, i)

(1) If (v is LeafNode) // Nếu v là nút lá.

(2) Foreach (X in Cv) // Duyệt mọi ứng cử lưu trong lá v. (3) If (Xt)

(4) Count(X)++;

(5) Else If (i<|t|) // Nếu v là nút trong và vẫn còn mục trong t. (6) For (j=i; j<|t|; j++)

(7) If (u is Child(v, h[t[j]])) // Nếu u là con của v theo cạnh có nhãn h[t[j]]. (8) Accumulate(t, u, j);

(9) Return;

Ví dụ: Xét t = {1,2,4,5}, sau thủ tục Accumulate(t, Root, 0) thì các ứng cử X sau lần lượt được tích luỹ biến đếm:

+ {1,2,4}, {1,2,5} qua các nút Root, C1, C12. + {1,4,5} qua các nút Root, C1, C11.

3.1.3.2. Rút gọn số giao dịch sau mỗi lần quét CSDL

Một giao dịch không chứa bất kỳ tập k-mục phổ biến nào thì cũng không thể chứa bất kỳ tập (k+1)-mục phổ biến. Do đó, ta có thể đánh dấu giao dịch này để loại bỏ không duyệt nó trong lần duyệt tiếp sau.

3.1.3.3. Phân hoạch (Partitioning)

Chúng ta biết rằng truy cập bộ nhớ ngoài tốc độ khá chậm, nên với kỹ thuật này chúng ta chỉ cần quét CSDL 2 lần trên bộ nhớ ngoài để khai phá các tập mục phổ biến.

Hình 3.3: Sơ đồ khai phá bằng phân hoạch dữ liệu.

Khai phá bằng phân hoạch dữ liệu gồm 2 giai đoạn:

+ Giai đoạn 1, thuật toán chia các giao dịch trong CSDL D thành n vùng. Nếu ngưỡng hỗ trợ cực tiểu của Dminsup thì ngưỡng hỗ trợ cực tiểu của vùng Di

minsup*(|Di|/|D|). Ta đi tìm các tập mục phổ biến cho các Di và gọi là tập các tập mục phổ biến địa phương (local frequent itemsets) trong đó Di được tải hoàn toàn vào bộ nhớ trong và xử lý trực tiếp trên bộ nhớ trong do đó để tìm các tập mục phổ biến địa phương thì ta chỉ cần duyệt CSDL D (bộ nhớ ngoài) duy nhất 1 lần. Các tập mục phổ biến địa phương có thể hoặc không là tập mục phổ biến của toàn bộ CSDL D nhưng bất kỳ tập mục nào là phổ biến tổng thể phải là phổ biến của ít nhất 1 vùng, do đó tập hợp các tập mục phổ biến địa phương từ tất cả các vùng sẽ được tập các tập mục ứng cử tổng thể.

+ Giai đoạn 2, duyệt CSDL D lần thứ 2 để tính độ hỗ trợ cho mỗi ứng cử nhằm xác định tập mục phổ biến tổng thể.

3.1.3.4. Lấy mẫu (Sampling)

Ý tưởng cơ bản của cách tiếp cận lấy mẫu này là dựa trên xác suất thống kê, lấy ngẫu nhiên S trên trên CSDL đã cho D và sau đó tìm các tập mục phổ biến trong S thay cho D. Kích thước của mẫu S phải đảm bảo đủ nhỏ để khai phá trực tiếp trong bộ nhớ trong nhờ đó tốc độ được cải thiện đáng kể nhưng điều quan trọng nhất là độ lớn của không gian hay độ phức tạp được cải thiện rất nhiều. Tuy nhiên, do S chỉ là bộ phận của D nên rất có thể một số tập mục phổ biến sẽ bị mất khi khai phá. Do đó cách lấy mẫu phải đảm bảo tính ngẫu nhiên và S cũng phải đủ lớn hơn một ngưỡng tối thiểu nào đó. Đồng thời chúng ta hạ thấp ngưỡng độ hỗ trợ cực tiểu minsup để tìm được nhiều hơn các tập mục phổ biến địa

Các giao dịch trong D Chia D thành n vùng Tìm các tập mục phổ biến địa phương cho mỗi vùng. Quét D lần 1 Tổ hợp các tập mục phổ biến địa phương để được tập mục ứng cử Tìm các tập mục phổ biến đích trong số các ứng cử. Quét D lần 2 Các tập mục phổ biến trong D

phương trong S (ký hiệu LS), tránh việc mất mát các tập mục phổ biến tổng thể. Lúc này ta chỉ cần duyệt toàn bộ D duy nhất 1 lần để tìm các tập mục phổ biến tổng thể. Cách tiếp cận lấy mẫu này rất hiệu quả khi D là cực lớn và phân bố tương đối ngẫu nhiên.

3.1.4. Sinh luật kết hợp từ tập mục phổ biến

Sau khi các tập mục phổ biến từ các giao dịch trong CSDL được tìm thấy, chúng ta đi tìm các luật kết hợp mạnh (Strong association rule) – là luật thoả mãn cả độ hỗ trợ cực tiểu và độ tin cậy cực tiểu: sup(X=>Y) minsupconf(X=>Y) minconf.

Trong đó: sup(X=>Y) = sup(XY)conf(X=>Y) = P(Y|X) = sup(XY) / sup(X). Các luật kết hợp có thể sinh ra như sau:

+ Với mỗi tập mục phổ biến l (sup(l) minsup), thực hiện sinh ra tất cả tập con a khác rỗng và khác l của l.

+ Với mỗi tập con a này, ta có luật a=>(l\a) nếu sup(l)/sup(a) minconf.

Xét CSDL D trong Bảng 3.2 và độ hỗ trợ được tính trong Hình 3.1, giả sử dữ liệu chứa tập mục phổ biến l={1,2,5}. Khi đó ta có các tập con khác rỗng của l (theo lực lượng giảm dần) là: {1,2}, {1,5}, {2,5}, {1}, {2}, {5} với độ tin cậy lần lượt là:

(r1) 1^2 => 5, conf = 2/4 = 50%. (r2) 1^5 => 2, conf = 2/2 = 100%. (r3) 2^5 => 1, conf = 2/2 = 100%. (r4) 1 => 2^5, conf = 2/6 = 33%. (r5) 2 => 1^5, conf = 2/7 = 29%. (r6) 5 => 1^2, conf = 2/2 = 100%.

Nếu ngưỡng độ tin cậy cực tiểu minconf=50% thì các luật r1, r2, r3, r6 là các luật kết hợp mạnh cần tìm.

3.1.4.1. Thuật toán đơn giản sinh luật kết hợp từ tập mục phổ biến

Chúng ta cải tiến thủ tục xử lý bằng cách sinh ra các tập con của tập mục lớn theo kiểu đệ quy ưu tiên độ sâu và theo lực lượng của tập con nhỏ dần. Ví dụ: với tập mục ABCD, đầu tiên ta xét ABC, sau đó mới là AB, .... Ưu điểm ở đây là nếu tập con a của tập mục lớn l không sinh ra được luật thì ta không cần xét đến các tập con của nó nữa. Chẳng hạn, nếu luật ABC=>D không đủ độ tin cậy thì ta không cần xét đến luật AB=>CD nữa.

Điều này có thể chứng minh như sau: Nếu luật a=>(l\a) không thoả mãn độ tin cậy:

conf(a=>(l\a)) < minconf, thì ba ta đều có sup(b)sup(a) và do vậy:

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Một số phương pháp khai phá dữ liệu sinh luật kết hợp Luận văn ThS Công nghệ thông tin 1.01.10 (Trang 37 - 40)