Khai phá luật kết hợp đa mức với minsup giảm dần kết hợp lọc k-mục

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 26 - 32)

So sánh các phương pháp trên ta thấy:

+ Với cách tiếp cận các mức cùng độ hỗ trợ cực tiểu: nếu để minsup thấp sẽ phải xét một số lớn các tập mục không cần thiết và có nhiều luật được tìm ra không đáng quan tâm hoặc ngược lại nếu để minsup có thể gây mất các luật quan trọng.

+ Với cách đi qua các mức có lọc: cho phép hệ thống chỉ khai phá các tập con của tập k-mục phổ biến, giảm đáng kể không gian tìm kiếm.

Rõ ràng với hướng tiếp cận sử dụng khái niệm phân cấp cho phép khám phá tri thức ở các mức trừu tượng khác nhau, như các luật kết hợp đa mức. Vì vậy, phương pháp này tỏ ra rất hữu ích trong khai phá. Tuy nhiên, khi các luật kết hợp đa mức được tìm thấy thì một số luật cần được rút gọn. Ví dụ xét:

(R1): Máy tính để bàn => máy in đen trắng [minsup = 8%, conf = 70%] (R2): Máy tính để bàn IBM => máy in đen trắng [minsup = 2%, conf = 72%]

Nếu cả hai luật được tìm thấy thì luật (R2) sẽ ít có ý nghĩa, bởi luật (R2) có tính trừu tượng thấp, nhưng lại không đưa ra được thông tin mới. Do đó nó dễ bị loại. Luật (R1) có thể thu được từ luật (R2) nếu thế “Máy tính để bàn” cho “Máy tính để bàn IBM” trong khái niệm phân cấp.

Máy tính và Máy in sup = 20% Máy để bàn và Máy in đen trắng sup = 6% Mức 2 minsup = 20% Mức 3 minsup = 5% Máy để bàn và Máy in đen màu sup = 6% Máy xách tay và Máy in đen trắng sup = 5% Máy xách tay và Máy in màu sup = 3%

2.2.6. Luật kết hợp với thuộc tính có trọng số

// Association rule with weight items.

Trong thực tế, các thuộc tính của CSDL không phải luôn có vai trò ngang bằng nhau. Có một số thuộc tính được chú trọng và lúc đó ta nói những thuộc tính đó có mức độ quan trọng hơn các thuộc tính khác. Ví dụ khi khảo sát về khả năng lây nhiễm của bệnh SARS thì thông tin về “thân nhiệt”, “đường hô hấp” rõ ràng là quan trọng hơn thông tin về

“tuổi”. Trong quá trình tìm kiếm luật, chúng ta sẽ gán cho các thuộc tính “thân nhiệt”,

“đường hô hấp” trọng số cao hơn thuộc tính “tuổi”. Với luật kết hợp có thuộc tính được đánh trọng số, chúng ta sẽ khai phá được những luật mang nhiều ý nghĩa hơn.

2.2.7. Luật kết hợp mờ

// Fuzzy association rule.

Với những hạn chế gặp phải trong quá trình rời rạc hoá các thuộc tính số, các nhà nghiên cứu đã đề xuất luật kết hợp mờ nhằm khắc phục những hạn chế trên và chuyển luật kết hợp về một dạng tự nhiên hơn, gần gũi hơn với người sử dụng [104]. Hay nói cách khác vấn đề khai phá luật kết hợp nhị phân có một số hạn chế khi ta không chỉ cần quan tâm đến sự có mặt hoặc không có mặt của một thuộc tính nào đó. Đối với các thuộc tính định lượng (quantitative) chúng ta cần phải làm trơn các điểm biên gãy và phương pháp khai phá luật kết hợp mờ đã đem lại hiệu quả đáng kể.

Khai phá luật kết hợp mờ là phát hiện các luật kết hợp sử dụng khái niệm tập mờ đối với các thuộc tính định lượng. Khi khai phá chúng ta cần phải định nghĩa và làm rõ những khái niệm như: tập mờ, tập mức, số mờ, các phép toán mờ, độ ủng hộ, độ hỗ trợ, độ quan trọng và độ chắc chắn, trước khi áp dụng các giải thuật cụ thể để khai phá dữ liệu. Trong phạm vi khuôn khổ của luận văn, tôi không trình bày sâu tiếp về luật kết hợp mờ mà dành nó cho phần phát triển tiếp theo.

2.2.8. Luật kết hợp đóng

// Closed association rule.

Trong thực tế, khi khai phá dữ liệu trên một CSDL lớn thường đòi hỏi một lượng tính toán khổng lồ, không những vậy số lượng luật sinh ra cũng cực lớn thậm chí vượt ra khỏi sự kiểm soát và trong đó tồn tại một lượng rất lớn những luật không cần thiết.

Có nhiều công trình nghiên cứu đã chứng minh được chỉ cần tìm những tập mục phổ biến cực đại (maximal frequent intemsets) là đủ đại diện cho các tập mục phổ biến, hoặc tốt hơn là chỉ cần tìm tập các tập mục đóng phổ biến (closed frequent intemsets) và thực hiện sinh luật trên những tập mục này là đủ. Những thuật toán tương ứng với cách tiếp cận

này như Charm, Closet cải thiện đáng kể về mặt tốc độ so với thuật toán kinh điển trước đó như Apriori hay FP-Growth. Chi tiết về luật kết hợp đóng và các giải thuật tương ứng sẽ được trình bày cụ thể trong Chương 3.

3. Chương 3: Một số phương pháp KPDL sinh luật kết hợp

3.1. Thuật toán Apriori

3.1.1. Giới thiệu

Các thuật toán khai phá luật kết hợp được đưa ra đều thực hiện hai pha:

+ Pha 1: tìm tất cả các tập mục phổ biến (độ hỗ trợ lớn hơn minsup), đây là pha tốn khá nhiều thời gian

+ Pha 2: tìm các luật kết hợp từ các tập mục phổ biến (độ tin cậy lớn hơn minconf), pha này đơn giản và tốn ít thời gian hơn nhiều so với Pha 1.

Các thuật toán khai phá luật kết hợp được đưa ra chủ yếu quan tâm đến Pha 1. Từ khi vấn đề khai phá tập mục phổ biến được đề cập, một số lượng lớn các thuật toán được đề xuất. Các thuật toán khai phá tập mục phổ biến đi theo hai hướng tiếp cận chính sau [105]: + Các thuật toán dựa trên hướng tiếp cận sinh ứng cử và kiểm tra (Generate candidate – and – test), điển hình là thuật toán Apriori.

+ Các thuật toán dựa trên hướng tiếp cận không sinh ứng cử, điển hình là thuật toán FP – Growth.

Thuật toán Apriori được Rakesh Agrawal, Tomaz Imielinski, Arun Swanmi đề xuất năm 1993, cho đến nay thuật toán này đã được nhiều nhà nghiên cứu phát triển để làm tăng tính hiệu quả của nó. Tên thuật toán APRIORI được bắt nguồn từ “Algorithm PRIOR knowledgement of frequent Itemset properties” [109]. Thuật toán sử dụng chiến lược đi từ dưới lên (bottom-up) và tìm kiếm theo chiều rộng (breath-first search).

Trong thuật toán này chúng ta sẽ duyệt nhiều lần CSDL. Trong lần duyệt thứ nhất, chúng ta tính độ hỗ trợ của các mục riêng biệt và xác định các mục phổ biến trong chúng (độ hỗ trợ lớn hơn minsup) – ký hiệu L1. Trong các lần duyệt thứ k, chúng ta thực hiện như sau:

(1) Bắt đầu với tập hạt giống (ký hiệu Lk-1) là tập các tập mục phổ biến đã tìm thấy trong lần duyệt trước (thứ k-1) để sinh ra (generate) các tập mục phổ biến tiềm năng hay các tập mục ứng cử (ký hiệu Ck).

(2) Duyệt CSDL để xác định độ hỗ trợ cho từng tập mục ứng cử. Lọc ra các tập mục có độ hỗ trợ lớn hơn minsup ta thu được Lk để làm tập hạt giống cho lần duyệt tiếp theo.

(3) Giải thuật dừng khi không có tập mục phổ biến nào tìm thấy (Lk = ).

Ta thấy trong thuật toán Apriori, tập ứng cử Ck được sinh ra hoàn toàn dựa trên tập hạt giống Lk-1, chứ không phải dựa trên việc quét CSDL. Cơ sở của điều này là tính chất: bất kỳ tập con nào của tập mục phổ biến cũng phải là phổ biến. Vì vậy, tập các ứng cử Ck có thể được sinh ra bằng cách kết nối các thành viên của tập các mục phổ biến hạt giống Lk-1

chung dẫn đến một số nhỏ hơn nhiều các tập ứng cử viên thông qua chiến lược tỉa không gian tìm kiếm như trên.

Không mất tính tổng quát, chúng ta giả định các mục trong mỗi giao dịch được lưu giữ theo trật tự từ điển. Gọi số lượng các mục trong một tập mục là kích thước của tập mục, và gọi tập mục có kích thước k là tập k-mục. Các mục trong mỗi tập mục cũng được lưu giữ theo trật tự từ điển. Chúng ta có bảng ký hiệu sau:

Ký hiệu Ý nghĩa

k-itemset Tập mục có k mục hay tập k-mục.

Lk Tập các k-itemset phổ biến (vượt ngưỡng minsup nào đó). Mỗi phần tử của tập này có hai trường hợp:

- Tập mục

- Độ hỗ trợ tương ứng của nó

Ck Tập các k-itemset ứng cử (tập các tập phổ biến tiềm năng). Mỗi phần tử của tập này có hai trường:

- Tập mục

- Độ hỗ trợ tương ứng của nó

Bảng 3.1: Ký hiệu mô tả trong thuật toán Apriori.

Chúng ta nhắc lại tính chất quan trọng đã nêu ở trên (còn gọi là tính chất Apriori) được sử dụng để rút gọn không gian tìm kiếm: Tất cả các tập con khác rỗng của tập mục phổ biến phải là tập mục phổ biến hay nói ngược lại: Nếu một tập mục không là phổ biến thì mọi tập mục chứa nó cũng không phải là phổ biến. Cụ thể: cho các tập mục I, A trong đó

sup(I) < minsup thì sup(I A) < minsup.

Quay lại thuật toán Apriori, ta xem xét cụ thể bước kết nốibước tỉa tại bước k: + Bước kết nối:

Để tìm Ck ta kết nối Lk-1 với chính nó. Ký hiệu li [j] là mục thứ j trong tập mục li. Như trên chúng ta đã quy ước các mục trong mọi giao dịch và trong mọi tập mục có trật tự từ điển. Phép nối Lk-1 với chính Lk-1 được thực hiện như sau: cho l1 , l2  Lk-1, l1 và l2 được kết nối nếu (l1 [1]=l2 [1]) ^ (l1 [2]=l2 [2]) ^ ... ^ (l1 [k-2]=l2 [k-2]) ^ (l1 [k-1]<l2 [k-2]).

Điều kiện (l1 [k-1]<l2 [k-2]) để đảm bảo không sinh lặp ứng cử. Kết quả của kết nối trên là tập mục sau: l = l1 [1]l1 [2]...l1 [k-2]l1 [k-1]l2 [k-1].

+ Bước tỉa:

Ta cần tìm Lk là tập tất cả các tập k-mục phổ biến. Ta khẳng định LkCk và do vậy chỉ cần quét CSDL để xác định độ hỗ trợ cho các tập mục trong Ck và so sánh với minsup

nhận được Lk. Tuy nhiên, Ck có thể rất lớn, và do đó khối lượng tính rất lớn. Để rút gọn kích thước của Ck, tính chất Apriori được áp dụng như sau: Bất kỳ tập con (k-1)-mục nào của ứng cử k-mục mà không có mặt trong Lk-1 thì ứng cử đó không phổ biến và ta loại nó khỏi Ck. Việc kiểm tra tập con (k-1)-mục này có thể làm nhanh bằng cách duy trì một cây băm của tất cả các tập mục phổ biến đã tìm thấy.

TID Items T100 1, 2, 5 T200 2, 4 T300 2, 3 T400 1, 2, 4 T500 1, 3 T600 2, 3 T700 1, 3 T800 1, 2, 3, 5 T900 1, 2, 3

Bảng 3.2: Cơ sở dữ liệu minh hoạ thuật toán Apriori.

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 26 - 32)

Tải bản đầy đủ (PDF)

(83 trang)