a) Tập thô
Lý thuyết tập thô cũng có thể sử dụng để phân lớp thông qua việc tìm kiếm và phát hiện các quan hệ trong một tập dữ liệu không đầy đủ hoặc lẫn nhiễu. Các đặc tính khai phá phải ở dạng các thuộc tính có giá trị rời rạc.
Lý thuyết tập thô dựa trên sự ảnh hưởng của các lớp trong tập dữ liệu huấn luyện, tất cả các mẫu dữ liệu định hình một lớp tương đương là không thấy rõ, vì vậy các mẫu sẽ được định danh một cách đặc biệt với các thuộc tính mô tả dữ liệu. Nếu cho một tập dữ liệu thực tế, thông thường có một số lớp rất khó để xác định rõ ràng trên tập các thuộc tính đã có, lý thuyết tập thô được sử dụng để xấp xỉ, hay 'làm thô' các định nghĩa của các lớp này.
Một tập thô định nghĩa một lớp C là một xâp xỉ bởi hai tập hợp. Tập cận dưới 'lower' của C bao gồm tất cả các mẫu dữ liệu, mà dựa vào tri thức của các mẫu dữ liệu này có thể quyết định một mẫu bất kỳ thuộc phân lớp C một cách rõ ràng. Tập cận trên 'upper' của C bao gồm tất cả các mẫu với
các giá trị của thuộc tính được mô tả không thể thuộc vào phân lớp C. Hình 2.6 mô tả lại tập cận trên và cận dưới của một phân lớp C. Các luật quyết đinh có thể được sinh ra cho mỗi lớp và thông thường một bảng quyết định dùng để mô tả các luật này.
Hình 2.6 Tập thô mô tả xấp xỉ các mẫu của lớp C
Tập thô cũng có thể được sử dụng trong việc giảm bớt, trích chọn các đặc tính, nếu các thuộc tính không liên quan đến việc phân lớp trong tập dữ liệu huấn luyện thì có thể được loại bỏ, cùng với việc phân tích theo yêu cầu của bài toán phân lớp cụ thể, nếu thuộc tính đó không xuất hiện trong cả tập cận trên và tập cận dưới của một lớp C. Vấn đề tìm kiếm một tập con mô tả tất cả các thuộc tính quan trọng của bài toán phân lớp là một vấn đề dạng NP-đầy đủ. Do đó các thuật toán được thiết kế theo hướng giảm bớt các phép tính toán và kiểm tra theo hướng heuristic được phát triển, một trong những hướng tiếp cận là sử dụng một ma trận lưu trữ tất cả sự khác nhau giữa các giá trị của các thuộc tính của từng cặp giá trị của tập dữ liệu mẫu. Thay cho việc tìm kiếm trên toàn bộ tập dữ liệu huấn luyện, ma trận sẽ được sử dụng để tìm các thuộc tính có thể loại bỏ được.
b) Tập mờ
Lý thuyết tập mờ đóng một vai trò rất quan trọng trong sự phân lớp các mẫu khi các đặc trưng của các đối tượng không có sự phân biệt rõ ràng,
thậm chí còn ‘chồng’ lên nhau. Việc áp dụng tập mờ có vai trò cơ bản sau:
thứ nhất, nó cho phép giao tiếp giữa các biến ngôn ngữ mà con người ưa thích và các đặc tính định lượng mà máy tính sử dụng; thứ hai, nó góp phần
làm nổi bật việc giải thích ý nghĩa sự phân lớp theo các khái niệm mờ mà lâu nay chúng ta chưa thể chứng minh tính hữu dụng của nó.
Bezdek đưa ra một phương pháp phân lớp rất mạnh thích hợp với dữ
liệu mờ có tên là fuzzy c-Means. Để xây dựng phương pháp mờ trong phân
lớp, chúng ta định nghĩa một họ các tập mờ {A~ i, i=1,2,..., c} là c vùng mờ trên không gian các điểm dữ liệu nền X. Vì các tập mờ tính đến các mức độ thuộc nên chúng ta có thể mở rộng ý tưởng phân lớp rõ cho sự phân lớp mờ. Sau đó chúng ta gán các độ thuộc cho các điểm dữ liệu khác nhau trong mỗi tập mờ (lớp mờ hoặc nhóm mờ). Do đó, một điểm đơn có độ thuộc riêng trong nhiều hơn một lớp.
c) Thuật giải di truyền
Các thuật toán di truyền là những thuật giải phỏng theo quá trình tiến hoá của tự nhiên. Nói chung, các thuật học di truyền đều có nội dung chính như sau:
- Khởi tạo ban đầu một quần thể với một tập luật sinh ngẫu nhiên. - Mỗi một luật sinh được mô tả bởi một chuỗi các bít. Để minh hoạ,
lấy ví dụ các mẫu trong một tập huấn luyện có thể được mô tả bằng hai thuộc tính có kiểu logic, A1 và A2, có hai lớp C1 và C2. Như vậy, luật 'IF A1 And not A2 Then C2 ' có thể được mã hoá bởi chuỗi bít '100' với hai bít đầu tiên mô tả thuộc tính A1 và A2,bít còn lại mô tả lớp. Tương tự, luật sinh 'IF not A1 and not A2 then C1' được mã hoá '001'….
- Nếu một thuộc tính có k giá trị (k > 2) thì k bít được sử dụng để mã hoá các giá trị của thuộc tính đó. Lớp cũng được mã hoá theo cách tương tự.
Các thế hệ sau được tạo ra bằng cách áp dụng các phép toán di truyền, như là lai tạo và đột biến. Quá trình sinh một quần thể mới dựa trên tập luật sinh của quần thể trước đó, quá trình sinh mới quần thể lặp lại khi
mà quần thể P 'tiến hoá' với mỗi luật trong P còn thoả mãn phù hợp với ngưỡng tiến hoá đã xác định trước đó.
Các thuật toán di truyền rất dễ dàng trong việc song song hoá và rất tiện dụng trong bài toán phân lớp cũng như các vấn đề tối ưu hoá khác. Trong KPDL, các thuật toán di truyền cũng dùng để đánh giá độ phù hợp của các thuật toán khác.
CHƯƠNG III: CÁC THUẬT TOÁN TÌM LUẬT KẾT HỢP 3.1 Luật kết hợp
Được đưa ra bởi Agrawal vào năm 1993.
Nó là một mô hình khai phá dữ liệu quan trọng được nghiên cứu một cách rộng rãi trên cơ sở dữ liệu.
Phân tích luật kết hợp là một trong những phương pháp của khai phá dữ liệu, nhiệm vụ của phương pháp này là phân tích dữ liệu trong cơ sở dữ liệu nhằm phát hiện và đưa ra những mối liên hệ giữa các giá trị dữ liệu, cụ thể là tìm tần số mẫu, mối kết hợp, sự tương quan hay các cấu trúc nhân quả giữa các tập đối tượng trong các cơ sở dữ liệu giao tác, cơ sở dữ liệu quan hệ và những kho thông tin khác, kết quả thu được đó chính là các tập luật kết hợp.
Tính hiểu được: dễ hiểu
Tính sử dụng đươc: cung cấp thông tin thiết thực
Tính hiệu quả: đã có những thuật toán khai thác hiệu quả
Phương pháp này được sử dụng đầu tiên cho phân tích giỏ hàng siêu thị để tìm những mặt hàng nào được mua cùng nhau bởi các khách hàng và mối liên hệ giữa chúng.
Một số hướng tiếp cận trong khai thác 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. Một số hướng chính rất được quan tâm như:
- 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 có hay không xuất hiện trong cơ sở dữ liệu giao dịch, chứ không quan tâm về mức độ hay tần suất xuất hiện. Thuật toán tiêu biểu nhất cho khai phá theo 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 & 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ố,… chứ không nhất quán ở một dạng nào cả. Vì vậy, để khai thác 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 hoá 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 rules 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 rules): cách tiếp cận luật kết hợp này sẽ tìm kiếm thêm những luật có dạng: mua máy tính
⇒ mua hệ điều hành Window & mua phần mềm diệt vi rút.
- Luật kết hợp mờ (fuzzy association rules): với những khó khăn gặp phải khi 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ờ 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ố (associaton rule 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” (những luật có độ hỗ trợ thấp nhưng mang nhiều ý nghĩa).
- Khai thác luật kết hợp song song (parallel mining of association rule): Nhu cầu song song hoá 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.
3.1.1 Một số khái niệm liên quan
Transaction (Giao dịch) t: t là tập hợp các items và t ⊆ I
Transaction Database (cơ sở dữ liệu giao dịch) T: tập hợp các giao dịch T = {t1, t2,…, tn}
Ví dụ: các giao dịch giỏ hàng siêu thị: t1: {bread, cheese, milk}
t2: {apple, eggs, salt, yogurt} …
tn: {biscuit, eggs, milk}
Định nghĩa 3.1: Một luật kết hợp là một quan hệ có dạng X ⇒ Y,
trong đó X, Y ⊆ I là các tập item gọi là itemsets và X ∩ Y = ∅. Ở đây X (vế trái luật) được gọi là tiền đề, Y (vế phải luật) là mệnh đề kết quả.
Hai thông số quan trọng của luật kết hợp là độ hỗ trợ (s) và độ tin cậy (c).
Định nghĩa 3.2: Độ hỗ trợ (support) của luật kết hợp X ⇒ Y là tỷ lệ % các giao dịch có chứa X, Y với tổng số giao dịch có trong cơ sở dữ liệu.
Độ hỗ trợ (tần số) thể hiện trong bao nhiêu phần trăm dữ liệu thì những điều ở vế trái và vế phải cùng xảy ra.
Độ hỗ trợ tối thiểu (minsup):
- Cao: ít tập phần tử (itemset) phổ biến
ít luật hợp lệ thường xuất hiện - Thấp: nhiều luật hợp lệ hiếm xuất hiện
Định nghĩa 3.3: Độ tin cậy (confidence) của luật X ⇒ Y là tỷ lệ %
của số giao dịch có chứa X, Y với số giao dịch có chứa X.
Độ tin cậy (độ mạnh) thể hiện nếu vế trái xảy ra thì có bao nhiêu khả năng vế phải xảy ra.
Độ tin cậy thối thiểu (mincof):
- Thấp: nhiều luật, phần lớn rất “không chắc chắn”.
Giá trị tiêu biểu: minsup = 2% – 10%, mincof = 70% – 90%
Việc tìm các luật 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.
một itemset là một tập hợp các item
Ví dụ: X = {milk, bread, cereal} là một itemset
Một k-itemset là tập có k items
Tập item phổ biến (hay tập item lớn) là tập hợp các item có độ hỗ trợ
lớn hơn hay bằng minsup.
Tập item dự kiến (hay tập ứng cử viên) là tập hợp các item cần được
xem xét có phải là tập item phổ biến không.
Ví dụ: Phân tích giỏ hàng
Giỏ hàng này có 5 giao dịch (cột TID), mỗi giao dịch có các mặt hàng (cột Items). Giả sử ta có luật sau:
{Milk, Diaper} ⇒ {Beer}
TID Items
1 Bread, Milk
2 Bread, Diaper, Beer, Eggs 3 Milk, Diaper, Beer, Coke 4 Bread, Milk, Diaper, Beer 5 Bread, Milk, Diaper, Coke
Bảng 3.1: Nội dung giỏ hàng
Trong đó {Milk, Diaper} là vế trái của luật còn được gọi là tiền đề (antecedent), {Beer} là vế phải của luật còn được gọi là kết luận (consequent).
Gọi độ hỗ trợ của luật là s, độ tin cậy của luật là c; ta có: (Milk,Diaper,Beer) 2 s = = = 0.4 | T | 5 ∂ ( ) ( ) Milk,Diaper,Beer 2 c = = = 0.67 3 Milk,Diaper ∂ ∂ với: |T|: tổng số giao dịch
∂(Milk Diaper Beer, , ): số giao dịch có chứa cả tiền đề và kết luận, tức có chứa đồng thời (Milk, Diaper, Beer)
∂(Milk Diaper, ) : số giao dịch có chứa phần tiền đề (Milk, Diaper)
3.1.2 Ứng dụng của luật kết hợp
Luật kết hợp là một dạng luật khá đơn giản nhưng mang lại rất nhiều ý nghĩa, tri thức đem lại bởi luật kết hợp có một sự khác biệt cơ bản so với thông tin thu được từ các câu lệnh truy vấn thông thường. Đó thường là những tri thức, những mối liên hệ chưa được 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 chỉ là kết quả của các phép nhóm, tính tổng hay sắp xếp mà là kết quả của một quá trình tính toán phức tạp và tốn nhiều thời gian.
Thông tin mà luật kết hợp đem lại là rất đáng kể và hỗ trợ không nhỏ trong quá trình ra quyết định. Tìm kiếm được những luật kết hợp “quý hiếm” và mang nhiều thông tin từ CSDL tác nghiệp là một trong những hướng tiếp cận chính của lĩnh vực khai phá dữ liệu.
Luật kết hợp được ứng dụng trong nhiều lĩnh vực: Phân tích bán hàng trong siêu thị, cross-marketing, thiết kế catalog, loss-leader analysis, gom cụm, phân lớp,…
3.2 Thuật toán chung cho luật kết hợp
Trong lần duyệt đầu tiên, độ hỗ trợ của mỗi tập riêng biệt được tính
toán và mỗi tập phổ biến được xác định.
Trong mỗi lần duyệt sau đó, các tập item phổ biến được xác định
trong lần duyệt trước được sử dụng để tạo ra các tập mới được gọi là các tập ứng cử viên.
Độ hỗ trợ của mỗi tập ứng cử viên được tính toán và các tập phổ biến
được xác định
Tiến trình này cứ tiếp tục cho đến khi không có tập phổ biến mới nào
được tìm thấy.
3.3 Một số thuật toán tìm luật kết hợp
3.3.1 Thuật toán AIS
Các tập ứng cử viên được tạo ra và được tính toán nhanh khi cơ sở dữ liệu được duyệt qua.
Với mỗi giao dịch, nó được xác định khi các tập item phổ biến của
lần duyệt trước được kết hợp trong giao dịch này
Các tập ứng cử viên mới được tạo ra qua mở rộng những tập phổ
biến này với các item khác trong giao dịch này.
Hạn chế: Tạo ra các tập ứng cử viên nhưng không tỉa, vì vậy nó kiểm tra rất nhiều các ứng cử viên.
Hình 3.1 Ví dụ về thuật toán AIS
Giả mã:
1) L1 = {large 1-itemsets};
2) for (k = 2; Lk-1 ≠ ∅; k++) do begin
3) Ck = ∅;
4) forall transactions t ∈D do begin
5) Lt = subset (Lk−1,t) ; // large itemsets contained in t
6) forall large itemsets lt ∈Lt do begin
7) Ct= 1-extensions of lt contained in t; // candidates in t
8) forall candidates c∈Ct do
9) if (c∈Ck) then
add 1 to the count of c in the corresponding entry in Ck
else
add c to Ck with a count of 1
10) end
11) Lk = {c∈Ck|c.count ≥ minsup}; 12) end
13) Answer = kLk ;
3.3.2 Thuật toán SETM
Kiểu SQL, các tập ứng cử viên được tạo ra sử dụng các phép kết hợp và cũng có chứa các TID. Thuật toán này được đề cập qua việc mong muốn sử dụng SQL để tính toán các tập item lớn. Giống như AIS, thuật toán SETM cũng tạo ra các ứng cử viên dựa trên các giao dịch đọc từ CSDL. Theo đó, nó tạo ra và tính toán mọi tập ứng cử viên mà thuật toán AIS tạo ra. Tuy nhiên, để sử dụng phép toán kết hợp chuẩn SQL cho việc tạo ứng cử viên, SETM tách riêng việc tạo ứng cử viên từ việc tính toán. Nó ghi một bản copy của tập ứng cử viên cùng với TID của các giao dịch tạo ra trong một cấu trúc tuần tự. Kết thúc của lần duyệt, tính toán độ hỗ trợ của tập ứng cử viên được xác định qua việc sắp xếp và kết hợp những cấu trúc tuần tự này.
SETM nhớ cácTID của các giao dịch cùng với tập ứng cử viên. Để