Định nghĩa:
Cho I={I1, I2, .., Im} là tập hợp của m tính chất riêng biệt. Giả sử D là CSDL, với các bản ghi chứa một tập con T các tính chấ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 XY, trong đó X, Y I, thỏa mãn điều kiện XY=. Các tập hợp X và Y được gọi là các tập hợp tính chất (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ư phần dưới đây.
Định nghĩa: Độ hỗ trợ
Định nghĩa 2.1: Độ hỗ trợ của một tập hợp 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 toán)
Supp(X)= |{ T D: Y X}| |D|
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 kết hợp XY là tỷ lệ giữa số lượng các bản ghi chứa tập hợp XY, so với tổng số các bản ghi trong D - Ký hiệu supp(XY)
Supp(XY)= |{ T D: T X Y}| |D|
Khi chúng ta nói rằng độ hỗ trợ của một luật là 50%, có nghĩa là coc 50% tổng số bản ghi chứa XY. Như vậy, độ hỗ trợ mang ý nghĩa thống kê của luật.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 27 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ụ như 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 kết hợp XY là tỷ lệ giữa số lượng các bản ghi trong D chứa XY 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(r) 1
Nhận xét: Độ hỗ trợ và độ tin cậy có xác suất sau: Supp(XY)=P(XY)
Conf (XY) = P(Y/X)=supp(XY)/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 XY là tỷ lệ giữa số lượng các bản ghi của tập hợp chứa XY, 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à 90%, có nghĩa là có tới 90% số bản ghi chứa X chứa luôn cả Y. Hay nói theo ngôn ngữ xác suất là: “ Xác suất có điều kiện để sảy ra sự kiện Y đạt 85%”. Điều kiện ở đây chính là: “Xảy ra sự kiện X”.
Như vậy, độ tin cậy của luật thể hiện sự tương quan (correlation) gữa X và Y. Độ 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 cao. 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 mặt hàng chính mà độ tin cậy thấp sẽ không có ích cho công tác quản lý.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 28 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ác luật có độ 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 luật kiểu như: 85% 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 những 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ệu. 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 toán khá phức tạp.
Định nghĩa: Tập hợp
Định nghĩa 2.5: Tập hợp X được gọi là tập hợp thường xuyên (Frenquent 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ính chất 2.1: Giả sử A,B I là hai tập hợp với AB 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 A
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 hợp thường xuyên và AB thì A cũng là tập hợp thường xuyên.
Thật vậy, nếu B là tập hợp thường xuyên thì supp(B) minsup, mọi tập hợp A là con của tập hợp B đều là tập hợp thường xuyên trong cơ sở dữ liệu 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 hợp không thường xuyên thì B cũng là tập hợp không thường xuyên
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 29
Định nghĩa 2.6: Một tập mục X được gọi là đóng (closed) nếu không có 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) và t(X’) tương ứng là tập các giao chứa tập mục X và X’). Ký hiệu tập phổ biến đóng là FCI.
Định nghĩa 2.7: Nếu X là phổ biến và không tập cha nào của X là phổ biến, ta nói rằng X là một tập phổ biến lớn nhất (maximally frequent itemset). Ký hiệu tập tất cả các tập phổ biến lớm nhất là MFI. Dễ thấy MFI FCI FI.
Khai phá luật kết hợp là công việc phát hiện ra (tìm ra, khám phá, phát hiện) 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 trước. Bài toán khai phá luật kết hợp được chia thành hai bài toán nhỏ, hay như người ta thường nói, việc giải bài toán trải qua hai pha:
Pha 1: Tìm tất cả các tập phổ biến (tìm FI) trong CSDL 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 phổ biến, thì chúng ta có thể xác định luật AB CD với tỷ lệ độ tin cậy:
conf = sup p( ) sup p( )
ABCD AB
Nếu conf minconf thì luật được giữ lại (và thỏa mãn độ hỗ trợ tối thiểu vì ABCD là phổ biế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 toàn bộ các tập phổ biế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 phổ biế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 phổ biến và tập phổ biến lớn nhất một cách có hiệu quả. Khi các mẫu phổ biến
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 30 (frequent patterm) 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 toán dựa trên thuật toá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á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 toá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 hạn chế hiệu quả của lookaheads, vì các mẫu phổ biến dài hơn mà hữu ích vẫn chưa được tìm ra.
Thuật toán 1 – Thuật toán cơ bản:
Input: I, D, ,
Output: Các luật kết hợp thỏa mãn ngưỡng độ hỗ trợ , ngưỡng độ tin cậy .
Algorithm:
1) Tìm tất cả các tập hợp các tính chất có độ hỗ trợ không nhỏ hơn ngưỡng . 2) Từ các tập hợp mới tìm ra, tạo ra các luật kết hợp có độ tin cậy không nhỏ hơn .
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: Giao dịch Mua hàng gì? T1 Bánh mì, Bơ, Trứng T2 Bơ, Trứng, Sữa T3 Bơ T4 Bánh mì, Bơ Bảng 2.1. Giao dịch mua hàng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 31 Cho trước 2 ngưỡng = 40% và = 60%
Ta tính độ hỗ trợ của các tập hợp các tính chất. 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 Bánh mì, Trứng, Sữa {} 0/4 0% Sai
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.2. Tính độ hỗ trợ cho các tập hợp chứa các mặt hà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
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 32 Agrawal đã chỉ ra việc duyệt các tập hợ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 toá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 (gọi là các tập hợp xuất hiện thường xuyên) thì việc KPLKH đỡ tốn thời gian hơn. Agrawal đề nghị một thuật toán như sau.
Thuật toán 2- Tìm luật kết hợp khi đã biết các tập hợp thƣờng xuyên):
Input: I, D, , , S
Output: Các luật kết hợp thỏa mãn ngưỡng độ hỗ trợ , ngưỡng độ tin cậy .
Algorithm:
1) Lấy ra một tập xuất hiện –thường xuyên S S, và một tập con X S. 2) Xét luật kết hợp có dạng X (S X), đánh giá độ tin cậy của nó xem
có nhỏ hơn hay không.
Thực chất, tập hợp S mà ta xét đóng vai trò của tập hợp giao S = X Y, và do X (S – X) = , nên coi như Y= S – X.
Các thuật toá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 toán 1. Chương sau ta điểm qua một số thuật toán.
2.3. Một số hƣớng tiếp cận trong khai phá luật kết hợp
Lĩnh vực khai thác luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng khác nhau. Có những đề xuất nhằm cải tiến thuật toán, có đề xuất tìm kiếm những luật có ý nghĩa hơn v.v… và có một số hướng chính sau đây:
- Luật kết hợp nhị phân (Binary association rule): là hướng nghiên cứu đầu tiên của luật kết hợp. Theo dạng luật kết hợp này thì các items chỉ được quan tâm là có hay không xuất hiện trong cơ sở dữ liệu giao tác
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 33 (Transaction database) chứ không quan tâm về mức độ hay tần xuất xuất hiện. Thuật toán tiêu biểu nhất của khai phá dạng luật này là thuật toán Apriori.
- Luật kết hợp có thuộc tính số và thuộc tính hạng mục (Quantitative and categorial association rule): các cơ sở dữ liệu thực tế thường có các thuộc tính đa dạng (như nhị phân, số, mục (categorial)...) chứ không nhất quán ở một dạng nào cả. Vì vậy để khai phá luật kết hợp với các cơ sở dữ liệu này các nhà nghiên cứu đề xuất một số phương pháp rời rạc hóa nhằm chuyển dạng luật này về dạng nhị phân để có thể áp dụng các thuật toán đã có.
- Luật kết hợp tiếp cận theo hướng tập thô (mining association rule base on rough set): tìm kiếm luật kết hợp dựa trên lí thuyết tập thô.
- Luật kết hợp nhiều mức (multi-level association ruls): với cách tiếp cận luật kết hợp thế này sẽ tìm kiếm thêm những luật có dạng: mua máy tính PC mua hệ điều hành Window AND mua phần mềm văn phòng Microsoft Office,…
- Luật kết hợp mờ (fuzzy association rule): Với những khó khăn gặp phải khi rời rạc hóa các thuộc tính số, các nhà nghiên cứu đề xuất luật kết hợp mờ khắc phục hạn chế đó và chuyển luật kết hợp về một dạng gần gũi hơn.
- Luật kết hợp với thuộc tính được đánh trọng số (association rules with weighted items): Các thuộc tính trong cơ sở dữ liệu thường không có vai trò như nhau. Có một số thuộc tính quan trọng và được chú trọng hơn các thuộc tính khác. Vì vậy trong quá trình tìm kiếm luật các thuộc tính được đánh trọng số theo mức độ xác định nào đó. Nhờ vậy ta thu được những luật “hiếm” (tức là có độ hỗ trợ thấp nhưng mang nghiều ý nghĩa).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 34 - Khai thác luật kết hợp song song (parallel mining of association rule):
Nhu cầu song song hóa và xử lý phân tán là cần thiết vì kích thước dữ liệu ngày càng lớn nên đòi hỏi tốc độ xử lý phải được đảm bảo.
Trên đây là những biến thể của khai phá luật kết hợp cho phép ta tìm kiếm luật kết hợp một cách linh hoạt trong những cơ sở dữ liệu lớn. Bên cạnh đó các nhà nghiên cứu còn chú trọng đề xuất các thuật toán nhằm tăng tốc quá trình tìm kiếm luật kết hợp trong cơ sở dữ liệu.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 35
Chƣơng 3
MỘT SỐ THUẬT TOÁN PHÁT HIỆN LUẬT KẾT HỢP 3.1. Thuật toán AIS
Thuật toán do Agrwal đề nghị năm 1993. Thuật toán này chú trọng khai phá luật kết hợp có dạng X Y, với Y là tập hợp chỉ bao gồm 1 tính chất (tập hợp 1 phần tử). Thuật toán tìm cách xây dựng dần dần các tập ứng cử viên cho “chức vụ” tập hợp xuất hiện – thường xuyên. Với cách đánh số thứ tự từ điển cho từng tính chất, việc bổ sung phần tử cho tập ứng cử viên tránh được trùng lặp, do vậy tiết kiệm tối đa thời gian tính toán.
Số lượng các tập ứng cử viên quá nhiều có thể gây ra hiện tượng tràn bộ nhớ. Thuật toán đề nghị một phương án quản lý bộ nhớ hợp lý đề phòng trường hợp này: không cho phép các ứng cử viên chiếm bộ nhớ, mà ghi thẳng chúng vào đĩa ở chế đồ thường trực (disk-resident).
Dưới đây là nội dung chủ yếu của Thuật toán AIS:
Input: CSDL D, minsup
Output: các tập mục phổ biến
1. L1 = { các tập mục phổ biến};
2. for (k=2; Luật kết hợpk-1 ; k++ ) do begin 3. Ck = ;
4. forall các giao dịch t D do begin
5. Lt = Subset(Lk-1,t); // các tập mục phổ biến thuộc Lk-1 chứa trong giao dịch t
6. forall các tập mục phổ biến lt Lt B do begin