8. CẤU TRÚC ĐỀ TÀỊ
2.2. Định nghĩa luật kết hợp
Định nghĩa:
Cho I = {I1, I2, … , Im} là tập các thuộc tính được gọi là các mục dữ liệụ Giả sử D là CSDL, với các bản ghi chứa một tập con T (cĩ thể coi như T ⊆ I), các bản ghi đều cĩ chỉ số riêng. Một luật kết hợp là một mệnh đề kéo theo cĩ dạng X => Y, trong đĩ X, Y ⊆ I, thỏa mãn điều kiện X∩Y = ∅. Các tập hợp X và Y được gọi là các tập mục (itemset). Tập X gọi là nguyên nhân, tập Y gọi là hệ quả.
Cĩ 2 độ đo quan trọng đối với luật kết hợp: độ hỗ trợ (support) và độ tin cậy (confidence), được định nghĩa như dưới đâỵ
Định nghĩa: Độ hỗ trợ
Định nghĩa 2.1: Độ hỗ trợ của một tập mục X trong cơ sở dữ liệu D là tỷ số giữa các bản ghi T ⊆ D cĩ chứa tập X và tổng số bản ghi trong D (hay là phần trăm của các bản ghi trong D cĩ chứa tập hợp X), kí hiệu là support(X) hay supp(X) (support sẽ tự sinh ra khi cài thuật tốn)
Supp (X) = { } D X T : D T⊂ ⊃
Ta cĩ: 0 ≤ supp(X) ≤ 1 với mọi tập hợp X.
Định nghĩa 2.2: Độ hỗ trợ của một luật X =>Y là tỷ lệ giữa số lượng các bản ghi chứa tập hợp X ∪ Y, so với tổng số các bản ghi trong D
Phát hiện tri thức trong tập dữ liệu lớn Supp (X→Y) = { } D Y X T : D T⊂ ⊇ ∪
Khi chúng ta nĩi rằng độ hỗ trợ của một luật là 50%, cĩ nghĩa là cĩ 50% tổng số bản ghi chứa X∪Ỵ Như vậy, độ hỗ trợ mang ý nghĩa thống kê của luật.
Trong một số trường hợp, chúng ta chỉ quan tâm đến những luật cĩ độ hỗ trợ cao (ví dụ luật kết hợp xét trong cửa hàng tạp phẩm). Nhưng cũng cĩ trường hợp, mặc dù độ hỗ trợ của luật thấp, ta vẫn cần quan tâm (ví dụ luật kết hợp liên quan đến nguyên nhân gây ra sự đứt liên lạc ở các tổng đài điện thoại).
Định nghĩa: Độ tin cậy
Định nghĩa 2.3: Độ tin cậy của một luật r = X → Y là tỷ số phần trăm của số các bản ghi trong D chứa X∪Y với số bản ghi trong D cĩ chứa tập hợp X. Kí hiệu độ tin cậy của một luật là conf(r). Ta cĩ 0 ≤ conf ≤ 1.
Nhận xét: độ hỗ trợ và độ tin cậy là xác suất sau: Supp(X→ Y) = P(X∪Y)
Conf(X→Y) = P(Y/X)=supp(X∪Y)/supp(X) Cĩ thể định nghĩa độ tin cậy như sau:
Định nghĩa 2.4: Độ tin cậy của một luật kết hợp X =>Y là tỷ lệ giữa số lượng các bản ghi chứa tập hợp X∪Y, so với tổng số các bản ghi chứa X.
Nĩi rằng độ tin cậy của một luật là 85%, cĩ nghĩa là cĩ tới 85% các giao tác cĩ chứa X thì chứa luơn cả Ỵ Hay nĩi theo ngơn ngữ xác suất thì là "xác suất cĩ điều kiện để xảy ra sự kiện Y đạt 85%". Điều kiện ở đây chính là "xảy
Phát hiện tri thức trong tập dữ liệu lớn
ra sự kiện X". Như vậy, độ tin cậy của luật thể hiện sự tương quan (correlation) giữa X và Ỵ Độ tin cậy đo sức nặng của luật, và người ta hầu như chỉ quan tâm đến những luật cĩ độ tin cậy caọ Một luật kết hợp đi tìm các nguyên nhân dẫn tới hỏng hĩc của hệ thống tổng đài, hay đề cập đến những mặt hàng thường hay được khách hàng mua kèm với bơ lạc, mà cĩ độ tin cậy thấp, sẽ khơng cĩ ích cho cơng tác quản lý.
Việc khai thác các luật kết hợp từ cơ sở dữ liệu chính là việc tìm tất cả các luật cĩ độ hỗ trợ và độ tin cậy lớn hơn ngưỡng của độ hỗ trợ và độ tin cậy do người sử dụng xác định trước. Các ngưỡng của độ hỗ trợ và độ tin cậy được ký hiệu là minsup và mincof.
Ví dụ: Khi phân tích giỏ hàng của người mua hàng trong một siêu thị ta cĩ được luật kiểu như: 80% khách hàng mua sữa thì cũng mua bánh mì 30% thì mua cả hai thứ .Trong đĩ “mua sữa ” là tiền đề cịn “mua bánh mì ” là kết luận của luật. Con số 30% là độ hỗ trợ của luật cịn 80% là độ tin cậy của luật.
Chúng ta nhận thấy rằng tri thức đem lại bởi luật kết hợp dạng trên cĩ sự khác biệt rất nhiều so với thơng tin thu được từ các câu lệnh truy vấn dữ liệu thơng thường như SQL. Đĩ là những tri thức, những mối liên hệ chưa biết trước và mang tính dự báo đang tiềm ẩn trong dữ liệụ Những tri thức này khơng đơn giản là kết quả của phép nhĩm, tính tổng hay sắp xếp mà là của một quá trình tính tốn khá phức tạp.
Phát hiện tri thức trong tập dữ liệu lớn
Định nghĩa: Tập thường xuyên
Định nghĩa 2.5 Tập hợp X được gọi là tập thường xuyên (Frequent itemset)
nếu cĩ supp(X) ≥ minsup, với minsup là ngưỡng độ hỗ trợ cho trước. Kí hiệu các tập này là FI (tập thường xuyên)
Tính chất 2.1. Giả sử A,B ⊆ I là hai tập hợp với A⊆ B thì supp(A)≥ supp(B).
Như vậy những bản ghi nào chứa tập hợp B thì cũng chứa tập hợp Ạ
Tính chất 2.2. Giả sử A,B là hai tập hợp, A,B ⊆ I, nếu B là tập thường xuyên và A⊆ B thì A cũng là tập thường xuyên.
Thật vậy, nếu B là tập thường xuyên thì supp(B) ≥ minsup, mọi tập A là tập con của tập B đều là tập thường xuyên trong CSDL D vì supp(A) supp(B) (tính chất 2.1).
Tính chất 2.3. Giả sử A,B là hai tập hợp, A⊆ B và A là tập khơng thường
xuyên thì B cũng là tập khơng thường xuyên.
Định nghĩa 2.6 Một tập mục X được gọi là tập đĩng (closed) nếu khơng cĩ một tập cha nào của X cĩ cùng độ hỗ trợ với nĩ, tức là khơng tồn tại một tập mục X’ nào mà X’⊃X và t(X) = t(X’) (với t(X), t(X’) tương ứng là tập các giao tác chứa tập mục X và X’). Ký hiệu tập thường xuyên đĩng là FCỊ
Định nghĩa 2.7 Nếu X là thường xuyên và khơng tập cha nào của X là thường xuyên, ta nĩi rằng X là một tập thường xuyên lớn nhất (maximally frequent itemset). Ký hiệu tập tất cả các tập thường xuyên lớn nhất là MFI . Dễ thấy MFI ⊆ FCI ⊆ FỊ
KPLKH là cơng việc phát hiện ra (tìm ra, khám phá, khai phá) các luật kết hợp thỏa mãn các ngưỡng độ hỗ trợ (σ) và ngưỡng độ tin cậy (α) cho
Phát hiện tri thức trong tập dữ liệu lớn
trước. Bài tốn KPLKH được chia thành 2 bài tốn nhỏ hơn, hay như người ta thường nĩi, việc giải bài tốn trải qua 2 phạ
Pha 1: Tìm tất cả các tập thường xuyên (tìm FI) trong cơ sở dữ liệu T. Pha 2: Sử dụng tập FI tìm được ở pha 1 để sinh ra các luật tin cậy
(interesting rules). Ý tưởng chung là nếu gọi ABCD và AB là các tập mục thường xuyên, thì chúng ta cĩ thể xác định luật AB => CD với tỷ lệ độ tin cậy:
supp(ABCD) con
f =
supp(AB)
Nếu conf ≥ minconf thì luật được giữ lại (và thoả mãn độ hỗ trợ tối thiểu vì ABCD là thường xuyên)
Trong thực tế, hầu hết thời gian của quá trình khai thác luật kết hợp là thực hiện ở pha 1. Nhưng khi cĩ những mẫu rất dài (mẫu chứa nhiều mục) xuất hiện trong dữ liệu, việc sinh ra tồn bộ các tập thường xuyên ( FI ) hay các tập đĩng (FCI ) là khơng thực tế. Hơn nữa, cĩ nhiều ứng dụng mà chỉ cần sinh tập thường xuyên lớn nhất (MFI) là đủ, như khám phá mẫu tổ hợp trong các ứng dụng sinh học.
Cĩ rất nhiều nghiên cứu về các phương pháp sinh tất cả các tập thường xuyên và tập thường xuyên lớn nhất một cách cĩ hiệu quả. Khi các mẫu thường xuyên (frequent pattern) dài (cĩ từ 15 đến 20 items) thì tập FI ,thậm chí cả tập FCI trở nên rất lớn và hầu hết các phương pháp truyền thống phải đếm quá nhiều tập mục mới cĩ thể thực hiện được. Các thuật tốn dựa trên thuật tốn Apriori - đếm tất cả 2k tập con của mỗi k- itemsets mà chúng quét qua, và do đĩ khơng thích hợp với các itemsets dài được. Các phương
Phát hiện tri thức trong tập dữ liệu lớn
pháp khác sử dụng “lookaheads” để giảm số lượng tập mục được đếm. Tuy nhiên, hầu hết các thuật tốn này đều sử dụng tìm kiếm theo chiều rộng, ví dụ: tìm tất cả các k – itemsets trước khi tính đến các (k+1) – itemsets . Cách làm này làm hạn chế hiệu quả của lookaheads, vì các mẫu thường xuyên dài hơn mà hữu ích vẫn chưa được tìm rạ
Thuật tốn 1. (Thuật tốn cơ bản):
Input:
Cho trước tập mục I, Cơ sở dữ liệu D, các ngưỡng minsup và minconf.
Output:
Các luật kết hợp thỏa mãn ngưỡng độ hỗ trợ σ và ngưỡng độ tin cậy α.
Algorithm:
1) Liệt kê các tập thường xuyên L: là các tập cĩ độ hỗ trợ ≥ σ cho trước. 2) ∀ X, Y ∈ L : X →α Y
Ví dụ minh họa: Xét 4 mặt hàng (tính chất) trong một cửa hàng thực
phẩm với CSDL các giao dịch thuộc loại nhỏ, chỉ cĩ 4 giao dịch (giỏ mua hàng), cho trong các bảng sau:
Bảng 2.1.
Giao dịch Mua hàng gì?
T1 Bánh mì, Bơ, Trứng T2 Bơ, Trứng, Sữa
Phát hiện tri thức trong tập dữ liệu lớn
T4 Bánh mì, Bơ
Bảng 2.1 - Giao dịch mua hàng
Cho trước 2 ngưỡng σ = 40% và α = 60%. Ta tính thử độ hỗ trợ của các tập hợp các tính chất.
Phát hiện tri thức trong tập dữ liệu lớn Bảng 2.2 - Tính độ hỗ trợ cho các tập chứa các mặt hàng Tập hợp Tập các bản ghi Tỷ lệ Độ hỗ trợ Vượt ngưỡng độ hỗ trợ 40%? Bánh mì {1,4} 2/4 50% Đúng Bơ {1,2,3,4 } 4/4 100% Đúng Trứng {1,2} 2/4 50% Đúng Sữa {2} 1/4 25% Sai Bánh mì, Bơ {1,4} 2/4 50% Đúng Bánh mì, Trứng {1} 1/4 25% Sai Bánh mì, Sữa {∅} 0/4 0% Sai Bơ, Trứng {1,2} 2/4 50% Đúng
Bơ, Sữa {2} 1/4 25% Sai
Trứng, Sữa {2} 1/4 25% Sai
Bánh mì, Bơ, Trứng {1} 1/4 25% Sai
Bánh mì, Bơ, Sữa {∅} 0/4 0% Sai
Phát hiện tri thức trong tập dữ liệu lớn
Bơ, Trứng, Sữa {2} 1/4 25% Sai
Bánh mì, Bơ, Trứng, Sữa {∅} 0/4 0% Sai
Bảng 2.3 - Các luật kết hợp và độ tin cậy của chúng
Luật kết hợp Tỷ lệ Độ tin cậy Vượt ngưỡng độ tin cậy 60%? Bánh mì => Bơ 2/4 50% Sai Bơ => Bánh mì 2/2 100% Đúng Bơ => Trứng 2/2 100% Đúng Trứng => Bơ 2/4 50% Sai
Phát hiện tri thức trong tập dữ liệu lớn
Agrawal đã chỉ ra việc duyệt các tập các tính chất để tính ra ngưỡng độ hỗ trợ của chúng và đánh giá cĩ vượt ngưỡng σ cho trước hay khơng, tốn rất nhiều thời gian tính tốn (độ phức tạp hàm mũ). Cịn một khi đã xác định xong các tập hợp thỏa mãn điều kiện trên thì việc KPLKH đỡ tốn thời gian hơn. Agrawal đề nghị một thuật tốn như saụ
Thuật tốn 2. (Phát hiện luật kết hợp khi đã biết các tập thường xuyên):
Input:
Cho trước tập mục I, Cơ sở dữ liệu D, các ngưỡng minsup và minconf.
L - tập các tập thường xuyên ≥ σ
Output:
Các luật kết hợp thỏa mãn ngưỡng σ và α.
Algorithm:
1) Tìm tất cả những mục con khơng rỗng X của tập mục thường xuyên I ∈ L.
2) Từ tập mục X ⊂ I tìm các luật cĩ dạng X → (I - X)cĩ độ hỗ trợ lớn hơn hoặc bằng minsup và độ tin cậy lớn hơn hoặc bằng minconf.
Các thuật tốn xoay quanh KPLKH chủ yếu nêu ra các giải pháp để đẩy nhanh việc thực hiện mục 1 của Thuật tốn 1. Phần sau ta điểm qua một số thuật tốn.