0
Tải bản đầy đủ (.docx) (44 trang)

Một số tính chất liên quan đến các tập mục phổ biến

Một phần của tài liệu HỖ TRỢ HỆ CHUYÊN GIA CHO KHAI PHÁ LUẬT KẾT HỢP (Trang 30 -30 )

Tính chất 1: Độ hỗ trợ (support) cho tất cả các tập con (subset): A, B là tập các mục, nếu A £ B thì sup(A) > sup(B) vì tất cả các giao dịch của D hỗ trợ B thì cũng hỗ trợ A.

Tính chất 2: Neu một mục trong B không có độ hỗ trợ tối thiểu trên D nghĩa là sup(B) < minsup thì một tập con A của B sẽ không phải là một tập phổ biến vì support(B) < support(A) < minsup.

Tính chất 3: Neu mục B là mục phổ biến trên D, nghĩa là support(B) > minsup thì mọi tập con A của B là tập phổ biến trên D vì support(A) > support(B) > minsup.

2.1.2.2 Một số hướng tiếp cận trong khai phá luật kết họp

Lĩnh vực khai phá 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; nhằm cải tiến tốc độ thuật toán, hoặc tìm kiếm luật có ỷ nghĩa hơn, ... Sau đây xin nêu một số hướng chính hiện nay: - Luật kết hợp nhị phân (binary association rule hoặc boolean association

rule).

- 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).

- Luật kết hợp tiêp cận theo hướng tập thô (mining association rules base on rough set).

- Luật kết hợp nhiều mức (multi-level association rule). - Luật kết hợp mờ (fuzzy association rule).

- Luật kết hợp với thuộc tính được đánh trọng so (association rule with weighted items).

- Khai thác luật kết hợp song song (parallel mining of association rules).

Ngoài ra, còn có một số hướng nghiên cứu khác về khai thác luật kết hợp như:

khai thác luật kết hợp trực tuyến, khai thác luật kết hợp được kết nối trực tuyến đến các kho dữ liệu đa chiều (Multidimensional data, data warehouse) thông qua công nghệ OLAP (Online Analysis Processing), MOLAP (multidimensional OLAP), ROLAP (Relational OLAP), ADO (Active X Data Object) for OLAP,...

2.1.3 Thuật toán Apriorid

2.1.3.1 Giới thiệu thuật toán

Thuật toán Apriori do R.Agrawal và R.Srikant đưa vào năm 1944, nó là nền tảng cho việc phát triên các thuật toán sau này.

Thuật toán Apriori sinh ra các tập mục ứng cử từ các tập mục phổ biến trước đó, nghĩa tìm ứng cử của k- tập mục phổ biến dựa vào (k-1)- tập mục, (k-2)- tập,...trước k trong khi duyệt cơ sở dữ liệu. Apriori dựa vào phương pháp tỉa để bỏ đi các tập mục X có sup(X) < minsup cho trước. Cơ sở của của kỹ thuật này là tính chất của các tập phổ biến: “Mọi tập con của tập phổ biến đều là tập phổ biến”. Vì vậy các các tập ứng cử (vào tập mục phổ biến) gồm k mục có thể được sinh ra bằng cách nối tất cả các tập mục đã được sinh ra trước đó và loại bỏ các tập ứng cử viên nếu nó có chứa tập con không phổ biến.

Giả sử các mục trong các giao dịch được lưu theo thứ tự từ điển. Ký hiệu

Lk là tập các tập phổ biến có k hạng mục (mỗi phần tử của nó đều hai đối tượng: là tập mục và độ hỗ trợ của tập mục đó.

Ck phần tử ứng cử viên hai đối tượng: là tập mục và độ hỗ trợ của tập

mục đó.

Quá trình khai phá gồm hai bước: kết nối và tỉa

Bước noi:

Đe tìm Lk là tập các tập ứng cử viên có k mục được sinh ra bởi việc nối Lk-1 với chính nó. 11 và 12 e Lk-1 được nối nếu:

11 [1] == 12[1] And 11[2]==12[2] And... And 11 [k-2] = 12[k-2] And 11 [k-1] < 12[k-1 ]

Dạng của tập mục nhận được bởi nối 11 và 12 là: 11[1] 11 [2] .... 11 [k-2] 11 [k-1] 12[k-l]

Giả sử Ck chứa Lk, tức là các thành phần của Ck có thể là phổ biến hoặc không, nhưng tất cả các tập phổ biến k mục đều thuộc Ck điều này làm cho

Card(Ck) sẽ rất lớn nên khối lượng tính toán sẽ lớn. Dựa vào tính chất “Mọi tập con của tập phố biến đều là tập phố biến” chúng ta có thể bỏ đi ứng cử viên trong Ck nếu nó có tập mục mà tập mục này không có mặt trong Lk-1. Việc duyệt các tập có k-1 mục sẽ rất nhanh bởi thuật toán luôn duy trì cây băm của tất cả các tập mục phổ biến đã tìm được.

2.1.3.2 Thuật toán Apriori

Thuật toán tìm các tập mục phố biến dựa trên cơ sở sinh ứng cử viên Input: CSDL D, độ hỗ trợ minsup.

Output: Tập các tập mục phổ biến L trong D. Method:

1. Tìm tập mục phổ biến 1 mục LI = {Các tập phổ biến 1 mục}; 2. For (k=2 ; Lk-1 != 0 ; k++)

3. Do Begin( 1) {Ck = apriori_gen(Lk-1, minsup); //Sinh các ứng cử mới Ck từ Lk-1

4. For (Each t In D) 5. Do Begin(2)

6. Ct= Subset (Ck, t); // ứng cử viên được chứa trong giao dịch t

7. For (Each c In Ct) c.count ++ ; // tăng 1 cho số đếm c 8. End (2);

9. Lk = {c in Ck I c.count >minsup); 10.End(l)

11. L = uk Lk

//______Sinh ứng cửviên mới hàmapriori_gen________

Input: Tập k-1 tập mục phổ biến Lk-1, minsup Output: Tập k các tập ứng cử viên

Ck Method:

Void apriori_gen(Lk-l, minsup) // Bước nối

1. For (Each (k-1) itemset 11 In Lk-1 Do 2. For (Each (k-1) itemset 12 In Lk-1 Do

3. If 11 [1] == 12[1] And 11[2]==12[2] And... And 11 [k-2] = 12[k-2] And ll[k-l] < 12[k-l] Then

4. Ck <— {11 [1], 11 [2], ,11 [k-2], 11 [k-1], 12[k-l] ; // Bước tỉa

5. For (Each c In Ck Do 6. For (Each subset s In c Do 7. if (s Notin Lk-1 Then 8. delete c From Ck; 9. Return Ck

2.1.3.3 Giải thích và ví dụ minh họa thuật toán Apriori

Một phần của tài liệu HỖ TRỢ HỆ CHUYÊN GIA CHO KHAI PHÁ LUẬT KẾT HỢP (Trang 30 -30 )

×