CHƯƠNG 1. TỔNG QUAN KHAI PHÁ DỮ LIỆU Trong khai phá dữ liệu, tìm hiểu luật kết hợp [1] là một phương pháp nghiên cứu rất hiệu quả và thường xuyên được sử dụng trong việc tìm ra những mối liên kết hữu ích giữa các biến số trong những CSDL lớn. Các luật liên kết chặt chẽ tìm được trong CSDL được ứng dụng trong rất nhiều lĩnh vực khác nhau. Ví dụ như: - Thu thập các loại mặt hàng mà người dùng thường mua cùng với nhau.
- Thu thập các trang web mà người dùng thường truy cập cùng nhau. - Thu thập thông tin mặt hàng sẽ được mua tiếp theo sau khi đã mua mặt hàng nào đó. Tập mục CSDL giao tác D gồm một tập các giao tác D = { t1, t2, … , tN }. Tập I = { i1, i2, … , iM } là tập tất cả các mục (item) xuất hiện trong D.
Mỗi tập con X của I được gọi là một tập mục (itemset). Một tập mục X chứa k mục riêng biệt được gọi là tập mục cỡ k hoặc k-tập mục (k-itemset). Định nghĩa luật kết hợp Tìm kiếm luật kết hợp là tìm ra sự kết hợp hay mối tương quan giữa các tập mục với nhau. Những luật kết hợp này có dạng X → Y với X, Y I và X ∩ Y = ∅.
Để minh họa cho khái niệm, chúng ta sẽ sử dụng một ví dụ nhỏ trong lĩnh vực mua hàng, tập tất cả các mục là I = { sữa, bánh mỳ, bơ, bia } và CSDL giao tác nhỏ chứa các mục (1 - thể hiện mục xuất hiện trong giao dịch và 0 - thể hiện sự vắng mặt trong giao dịch) được thể hiện trong bảng dưới đây: 6 luan an Bảng 1. Ví dụ về CSDL giao tác với 4 mục và 5 giao tác ID giao dịch Sữa Bánh mỳ Bơ Bia 1 1 1 0 0 2 0 0 1 0 3 0 0 0 1 4 1 1 1 0 5 0 1 0 0 Một ví dụ về luật kết hợp cho CSDL trên sẽ có dạng {bánh mỳ, bơ} →{sữa}, có nghĩa là nếu người dùng mua bánh mỳ và bơ thì họ cũng sẽ mua sữa. Tất nhiên, ví dụ trên là cực kỳ nhỏ. Trong ứng dụng thực tiễn, một luật kết hợp cần có sự nghiên cứu của hàng trăm giao dịch trước khi được coi là có ý nghĩa về mặt thống kê, và tập dữ liệu thường chứa tới hàng ngàn hoặc hàng triệu giao dịch.
Để có thể chọn ra được các luật kết hợp có ý nghĩa từ rất nhiều luật kết hợp có thể có với một CSDL giao tác, người ta thường sử dụng 2 ràng buộc rất phổ biến đó là độ hỗ trợ nhỏ nhất (minimum thresholds support - min_supp) và độ tin cậy nhỏ nhất (minimum thresholds confidence - min_conf). Độ hỗ trợ tập mục Tập mục X I, số các giao tác chứa tập mục X trong CSDL D gọi là số đếm hỗ trợ (support count - SC) của X, ký hiệu là SC (X). Độ hỗ trợ của một tập mục X - ký hiệu supp (X) – được định nghĩa là tỷ lệ giao dịch trong tập dữ liệu có chứa tập mục X. Công thức tính độ hỗ trợ : SC(X) Supp (X) = P (X) = (1.1) M Trong CSDL ví dụ ở Bảng 1.1, tập mục {sữa, bánh mỳ, bơ} có độ hỗ trợ 7 luan an là 1/5 = 0.2, nghĩa là tập mục X xuất hiện 20% trong toàn bộ tất cả các giao dịch.
Độ tin cậy của luật kết hợp Độ tin cậy của luật kết hợp X→Y - ký hiệu conf (X→Y) - được định nghĩa là xác suất tất cả các giao dịch chứa tập mục Y trong khi đã có tập mục X. Công thức tính độ tin cậy : SC(X∪Y) supp(X∪Y) Conf (X→Y) = P (Y|X) = = (1.2) SC(X) supp(X) Ở đây, supp (X ∪ Y) mang nghĩa độ hỗ trợ với giao dịch xuất hiện cả 2 tập mục X và Y chứ không phải độ hỗ trợ với giao dịch xuất hiện X hoặc Y. Trong CSDL ví dụ ở Bảng 1.1, luật kết hợp {sữa, bánh mỳ}→{bơ} có độ tin cậy là 1/2 = 0.5), có nghĩa là 50% số lần người dùng mua sữa và bánh mỳ, họ sẽ mua luôn cả bơ. Tập mục thường xuyên Các tập mục có độ hỗ trợ lớn hơn độ hỗ trợ tối thiểu gọi là tập mục thường xuyên (frequent itemset).
Tập các k-tập mục (k-itemset) là các tập mục thường xuyên ký hiệu là Lk. Trong CSDL ví dụ ở Bảng 1.1, nếu cho ngưỡng hộ trợ nhỏ nhất là 30%, khi đó tập mục {sữa, bánh mỳ, bơ} có độ hỗ trợ 20% < 30% sẽ không là 1 tập mục thường xuyên, nhưng với tập mục {sữa, bánh mỳ} có độ hỗ trợ là 2/5 = 40% > 30% là một tập mục thường xuyên trong CSDL đã cho. Quá trình tìm kiếm luật kết hợp Một luật kết hợp có ý nghĩa phải được thỏa mãn cả 2 ngưỡng hỗ trợ và tin cậy nhỏ nhất do người dùng đặt ra. Việc tìm kiếm luật kết hợp được chia ra làm 2 bước riêng rẽ: - Bước thứ nhất, ngưỡng độ hỗ trợ nhỏ nhất được sử dụng để tìm ra mọi tập mục thường xuyên có trong CSDL.
- Bước hai, tất cả các tập mục thường xuyên kết hợp với ngưỡng tin cậy nhỏ nhất để hình thành nên luật. 8 luan an Ta có thể thấy rằng bước 2 thực hiện khá đơn giản, và bước một cần chú ý nhiều hơn. Tìm kiếm tất cả các tập mục thường xuyên là rất khó khăn vì nó liên quan tới việc tìm kiếm tất cả các mục kết hợp. Đối với một CSDL giao tác có N mục thì có thể xuất hiện tới 2N-1 tập mục cần xét, trong một CSDL thực tế lại có thể có tới hàng trăm, hàng nghìn mục khác nhau.
Do đó, có thể coi bước tìm tất cả các tập mục thường xuyên là bước quan trọng nhất của bài toán tìm kiếm luật kết hợp. Số lượng tập mục phải xét với 5 mục ban đầu. KHAI PHÁ MẪU DÃY THƯỜNG XUYÊN VÀ MỘT SỐ MỞ RỘNG 1. Bài toán khai phá mẫu dãy thường xuyên và một số khái niệm cơ bản trong khai phá mẫu dãy thường xuyên 1.
Cơ sở dữ liệu dãy Cho I = {i1, i2, …, in} là tập hợp các mục dữ liệu. Một dãy Sm là một danh sách được sắp xếp theo thứ tự của các mục dữ liệu dạng {s1, s2, …, sm} với sj I là một tập mục được gọi là thành phần của dãy. Khi đó, S = {s1, s2, …, sm} và sj có dạng (i1i2… ik) và it là một mục dữ liệu. Một dãy S bị loại nếu chỉ có duy nhất một mục dữ liệu.
Một mục dữ liệu chỉ xuất hiện 1 lần trong 1 thành phần của một dãy sj, nhưng có thể xuất hiện nhiều lần trong các thành phần khác nhau của một dãy S. Kích thước |S| của một dãy là số lượng của các thành phần trong dãy S. Độ dài l(S) của dãy là tổng số mục dữ liệu trong dãy S. Một cơ sở dữ liệu dãy SDB={S1,S2,…,Sn} là một tập các bộ dữ liệu (sid,Sk) với sid là định danh của một dãy và Sk là một dãy dữ liệu.
Ví dụ về một cơ sở dữ liệu dãy: Bảng 1. Cơ sở dữ liệu dãy SDB SID Dãy dữ liệu 1 <a(abc)(ac)d(cf)> 2 <(ad)c(bc)(ae)> 3 <(ef)(ab)(df)cb> 4 <eg(af)cbc> 1. Dãy con Cho 2 dãy dữ liệu α=< a1 a2 … an > và β=< b1 b2 … bm >. α được gọi là Dãy con của β (α⊆ β), nếu tồn tại một dãy số nguyên 1≤ j1 < j2 <…< jn ≤m sao cho a1 ⊆ bj1, a2 ⊆ bj2,…, an ⊆ bjn 10 luan an β được gọi là Dãy chứa α Ví dụ.
Độ hỗ trợ của một dãy Cho một CSDL dãy SDB có M bản ghi. Số lượng các bản ghi trong SDB có chứa dãy Sa được gọi là số hỗ trợ (support count- SC) của dãy Sa. Ký hiệu là SC(Sa). Tỉ lệ các bản ghi trong SDB chứa Sa được gọi là độ hỗ trợ của Sa , ký hiệu là support (Sa) Ta có: SC(Sa ) support(Sa) = M 1.
Mẫu dãy thường xuyên Cho một CSDL dãy SDB có M bản ghi và một ngưỡng độ hỗ trợ tối thiểu minsup. Sa được gọi là mẫu dãy thường xuyên nếu : support(Sa) ≥ minsup 1. Luật dãy trong khai phá dữ liệu Trong khai phá dữ liệu, tìm hiểu luật dãy là một phương pháp nghiên cứu rất hiệu quả và thường xuyên được sử dụng trong việc tìm ra những mối liên kết thú vị giữa các biến số trong những CSDL lớn. Các luật liên kết chặt chẽ (strong rule) tìm được trong CSDL được ứng dụng trong rất nhiều lĩnh vực khác nhau.
Ví dụ như : - Thu thập các loại mặt hàng mà người dùng thường mua cùng với nhau. - Thu thập các trang web mà người dùng thường truy cập cùng nhau. - Thu thập thông tin mặt hàng sẽ được mua tiếp theo sau khi đã mua mặt hàng nào đó. Luật dãy X=>Y là một quan hệ giữa 2 tập mục X và Y với X,Y I sao cho X∩Y = Ø và X,Y ≠ Ø.
Ý nghĩa của luật X=>Y là nếu một tập mục X xuất hiện trong một dãy Sx nào đó thì các mục trong Y cũng xuất hiện sau đó trong dãy này (Sx). 11 luan an Quá trình khai phá luật dãy cũng được chia ra làm 2 bước: - Bước thứ nhất, tìm tất cả các mẫu dãy thường xuyên thỏa mãn ngưỡng hỗ trợ tối thiểu. - Bước hai, sinh luật dựa trên các mẫu dãy thường xuyên tìm được thỏa mãn ngưỡng tin cậy tối thiểu. Bài toán khai phá mẫu dãy thường xuyên Cho CSDL dãy SDB.
Cho trước một ngưỡng hỗ trợ tối thiểu minsup. Tìm tất cả các mẫu dãy thường xuyên trong SDB, tức là tìm tập L: 𝐿 = {𝑆𝑎 ⊆ 𝑆 |𝑠𝑢𝑝𝑝𝑜𝑟𝑡(𝑆𝑎 ) ≥ 𝑚𝑖𝑛𝑠𝑢𝑝} Với các khái niệm trên, bài toán khai phá mẫu dãy thường xuyên có thể chia thành 2 bài toán nhỏ: Tìm mẫu dãy ứng viên và tìm mẫy dãy thường xuyên. Mẫu dãy ứng viên được sinh ra trong quá trình duyệt cơ sở dữ liệu, mẫu dãy thường xuyên được tìm ra sau khi tính độ hỗ trợ của mẫu dãy ứng viên. Các mẫu dãy ứng viên có độ hỗ trợ lớn hơn ngưỡng hỗ trợ tối thiểu cho trước sẽ trở thành các mẫu dãy thường xuyên.
Mẫu dãy thường xuyên có trọng số Các thuật toán khai phá mẫu dãy thường xuyên không quan tâm tới mức độ quan trọng của từng mẫu (trọng số của mẫu). Tuy nhiên trên thực tế, mỗi mẫu dữ liệu đều có độ quan trọng khác nhau. Trọng tâm chính đối với khai phá mẫu dãy thường xuyên với trọng số là xây dựng giải thuật nhằm đảm bảo tính chất phản đơn điệu (downward closure property).