Tổng quan khai phá dữ liệu và bài toán luật kết hợp
Khái niệm
Khái niệm khai phá dữ liệu được đưa ra vào những năm cuối của thập kỉ 80 của thế kỉ trước Khái niệm này bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có giá trị tiềm ẩn trong các tập dữ liệu lớn (các kho dữ liệu) Về bản chất, khai phá dữ liệu liên quan đến việc phân tích các dữ liệu và sử dụng các kỹ thuật để tìm ra các mẫu hình có tính chính quy trong tập dữ liệu
Vào năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã đưa khái niệm Phát hiện tri thức trong cơ sở dữ liệu để chỉ toàn bộ quá trình phát hiện các tri thức có ích từ các tập dữ liệu lớn; trong đó khai phá dữ liệu là một bước đặc biệt trong toàn bộ quá trình, sử dụng các giải thuật đặc biệt để chiết xuất ra các mẫu hay các mô hình từ dữ liệu Ở một mức độ trừu tượng nhất định có thể định nghĩa về khai phá dữ liệu: Khai phá dữ liệu(data mining) là một quá trình tìm kiếm, phát hiện các tri thức mới, tiềm ẩn, hữu dụng trong CSDL lớn
Khám phá tri thức (KDD) là mục tiêu chính của khai phá dữ liệu, do vậy hai khái niệm đó được xem như hai lĩnh vực tương đương nhau Nhưng, nếu phân chia một cách tách bạch thì khai phá dữ liệu là một bước chính trong quá trình KDD.
Quá trình phát hiện tri thức trong cơ sở dữ liệu
Khám phá tri thức trong CSDL (KDD) là lĩnh vực liên quan đến các ngành như: thống kê, học máy, CSDL, thuật toán, trực quan hoá dữ liệu, tính toán song song và hiệu năng cao,…
Mục đích của quá trình phát hiện tri thức là rút ra tri thức từ dữ liệu trong CSDL lớn Quá trình KDD là quá trình gồm nhiều giai đoạn và lặp lại, mà trong đó sự lặp lại có thể xuất hiện ở bất cứ bước nào
Quá trình đó có thể được mô tả theo hình sau:
Bước thứ nhất: Hình thành, xác định và định nghĩa bài toán Là tìm hiểu lĩnh vực ứng dụng từ đó hình thành bài toán, xác định các nhiệm vụ cần phải hoàn thành
Bước này sẽ quyết định cho việc rút ra được các tri thức hữu ích và cho phép chọn các phương pháp khai phá dữ liệu thích hợp với mục đích ứng dụng và bản chất của dữ liệu
Bước thứ hai: Thu thập và tiền xử lý dữ liệu Là thu thập và xử lý thô, còn được gọi là tiền xử lý dữ liệu nhằm loại bỏ nhiễu (làm sạch dữ liệu), xử lý việc thiếu dữ liệu (làm giàu dữ liệu), biến đổi dữ liệu và rút gọn dữ liệu nếu cần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn bộ qui trình phát hiện tri thức Do dữ liệu được lấy từ nhiều nguồn khác nhau, không đồng nhất, … có thể gây ra các nhầm lẫn Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn và rời rạc hoá
Bước thứ ba: Khai phá dữ liệu, rút ra các tri thức Là khai phá dữ liệu, hay nói cách khác là trích ra các mẫu hoặc/và các mô hình ẩn dưới các dữ liệu Giai đoạn này rất quan trọng, bao gồm các công đoạn như: chức năng, nhiệm vụ và mục đích của khai phá dữ liệu, dùng phương pháp khai phá nào? Thông thường, các bài toán khai phá dữ liệu bao gồm: các bài toán mang tính mô tả - đưa ra tính chất chung nhất của dữ liệu, các bài toán dự báo - bao gồm cả việc phát hiện các suy diễn dựa trên dữ liệu hiện có Tùy theo bài toán xác định được mà ta lựa chọn các phương pháp khai phá dữ liệu cho phù hợp
Bước thứ tư: Sử dụng các tri thức phát hiện được Là hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ các mô tả và dự đoán Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện Các
Hình 1 Các bước trong quá trình khai phá tri thức kết quả của quá trình phát hiện tri thức có thể được đưa và ứng dụng trong các lĩnh vực khác nhau Do các kết quả có thể là các dự đoán hoặc các mô tả nên chúng có thể được đưa vào các hệ thống hỗ trợ ra quyết định nhằm tự động hoá quá trình này Tóm lại: KDD là một quá trình kết xuất ra tri thức từ kho dữ liệu mà trong đó khai phá dữ liệu là công đoạn quan trọng nhất.
Các kĩ thuật khai phá dữ liệu
1.3.1 Các kĩ thuật tiếp cận trong khai phá dữ liệu
Căn cứ vào lớp các bài toán cần giải quyết, khai phá dữ liệu có các kỹ thuật áp dụng sau:
Phân lớp và dự đoán: xếp một đối tượng vào một trong những lớp đã biết trước Ví dụ: phân lớp các bệnh nhân dữ liệu trong hồ sơ bệnh án Hướng tiếp cận này thường sử dụng một số kỹ thuật của học máy như cây quyết định, mạng nơ ron nhân tạo
Luật kết hợp: Phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành phần dữ liệu trong CSDL Mẫu đầu ra của giải thuật khai phá dữ liệu là tập luật kết hợp tìm được Có thể lấy một ví dụ đơn giản về luật kết hợp như sau: phân tích CSDL bán hàng nhận được thông tin về những khách hàng mua máy tính cũng có khuynh hướng mua phần mềm quản lý tài chính trong cùng lần mua được miêu tả trong luật kết hợp sau:
“Mua máy tính Mua phần mềm quản lý tài chính”
[Độ hỗ trợ: 4%, độ tin cậy: 70%] Độ hỗ trợ và độ tin cậy là hai độ đo của sự đáng quan tâm của luật Chúng tương ứng phản ánh sự hữu ích và sự chắc chắn của luật đã khám phá Độ hỗ trợ 4% có nghĩa là: 4% của tất cả các tác vụ đã phân tích chỉ ra rằng máy tính và phần mềm quản lý tài chính là đã được mua cùng nhau Còn độ tin cậy 70% có nghĩa là 70% các khách hàng mua máy tính cũng mua phân mềm quản lý tài chính
Phân tích chuỗi theo thời gian: Tượng tự như khai phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cao
Phân cụm: xếp các đối tượng theo từng cụm dữ liệu tự nhiên
Mô tả khái niệm: thiên về mô tả, tổng hợp và tóm tắt khái niệm Ví dụ: tóm tắt văn bản.
1.3.2 Dạng dữ liệu có thể khai phá
Do khai phá dữ liệu được ứng dụng rộng rãi nên nó có thể làm việc với rất nhiều kiểu dữ liệu khác nhau Sau đây là một số dạng dữ liệu điển hình: CSDL quan hệ, CSDL đa chiều (multidimentional structures, data warehouses), CSDL dạng giao dịch, CSDL quan hệ-hướng đối tượng, dữ liệu không gian và thời gian, Dữ liệu chuỗi thời gian, CSDL đa phương tiện, dữ liệu Text và Web
1.3.3 Ứng dụng của khai phá dữ liệu
Khai phá dữ liệu là một lĩnh vực được quan tâm và ứng dụng rộng rãi Một số ứng dụng điển hình trong khai phá dữ liệu có thể liệt kê:
Phân tích dữ liệu và hỗ trợ ra quyết định;
Tài chính và thị trường chứng khoán;
Bài toán khai phá luật kết hợp và ứng dụng
1.4.1 Luật kết hợp trong cơ sở dữ liệu Gọi I = I 1 , I 2, , I m là tập m thuộc tính riêng biệt, mỗi thuộc tính gọi là một mục
Gọi D là một cơ sở dữ liệu, trong đó mỗi bản ghi T là một giao dịch và chứa các tập mục, T I Định nghĩa 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 mục(itemsets), và X Y Ở đây, X được gọi là tiền đề, Y 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 2: Độ hỗ trợ (support) của luật kết hợp X Y là tỷ lệ phần trăm các bản ghi X Y với tổng số các giao dịch có trong cơ sở dữ liệu Định nghĩa 3: Đối với một số giao dịch được đưa ra, độ tin cậy (confidence) là tỷ lệ của số giao dịch có chứa X Y với số giao dịch có chứa X Đơn vị tính %
Lựa chọn luật Ứng dụng
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 Tập mục X Y được gọi là tập mục lớn nếu X Y có độ hỗ trợ lớn hơn minsup Một tính chất rất quan trọng đối với khai phá luật kết hợp là ” Tập mục con bất kỳ của một tập mục lớn cũng là tập mục lớn” Về mặt cơ bản các thuật toán trích xuất luật kết hợp (Apriori ) đều dựa trên ý tưởng : xuất phát từ các tập mục đơn ban đầu, kiểm tra xem mục nào không là tập mục lớn thì loại bỏ, còn lại chập vào nhau và lại tiếp tục kiểm tra cho đến tập mục lớn nhất có thể.
1.4.2 Luật kết hợp mờ Với luật kết hợp mờ, như đã nói trong phần mở đầu, với mỗi mục có thể chia ra các miền mờ (như "trẻ", "trung niên" ), thực chất là ta chia một mục ban đầu thành các mục con và giá trị của mỗi hàng tại mục đó sẽ nằm trong [0,1] chứ không chỉ là 0 hoặc 1 Khi đó, độ hỗ trợ của một miền mờ si thuộc mục xi được định nghĩa là:
FS (1) còn độ hỗ trợ của các miền mờ s 1 , s2, , sk của các mục x1, x2, , xk tương ứng sẽ là
FS (2) ở đó xi là mục thứ i, si là miền mờ thuộc mục thứ i, n là số hàng trong CSDL, s x i i )
( d x j i là độ thuộc của giá trị tại cột thứ i, hàng j vào tập mờ si.
1.4.3 Tính ứng dụng Luật kết hợp có ứng dụng trong nhiều lĩnh vực khác nhau của đời sống như: khoa học, hoạt động kinh doanh, tiếp thị, thương mại, phân tích thị trường chứng khoán, tài chính và đầu tư, Ứng dụng luật kết hợp phải chỉ rõ các đặc điểm về: nguồn gốc, điều kiện áp dụng, phạm vi ứng dụng, mục đích ứng dụng Những đặc điểm này được thể hiện bằng mô hình sau:
Hình 2 Mô hình ứng dụng luật
Yêu cầu sử dụng là phạm vi tính ứng dụng của tập luật ví dụ như về khoa học, kinh doanh, tiếp thị, thương mại, phân tích thi trường chứng khoán, v.v
Tham chiếu đến tập luật R, ở giai đoạn này các tập luật được tham chiếu tại đây là các tập luật được sinh ra từ cơ sở dữ liệu chứa tác nhân yêu cầu sử dụng
Lựa chọn luật, ở bước này chúng ta tiến hành lọc các luật hữu ích nhất phục vụ cho phạm vi sử dụng
Ứng dụng, đây là kết quả mong đợi nhất từ khi bắt đầu khai thác cho đến khi thi hành luật
Mô hình ứng dụng luật đã làm sáng tỏ tính ứng dụng của việc khai thác luật kết hợp trong cơ sở dữ liệu
Thực tế, ứng dụng của khai thác luật kết hợp trong cơ sở dữ liệu giao dịch là một phạm trù của khai phá dữ liệu, nên ứng dụng của nó rất rộng lớn, nhất là trong sự phát triển của xã hội hiện nay
Tóm lại, tính ứng dụng của khai thác luật kết hợp trong cơ sở dữ liệu giao dịch là việc ứng dụng các tập luật tìm thấy trong đó nhằm vào những mục đích cụ thể và đạt được kết quả tốt.
Một số thuật toán khai phá luật kết hợp
Thuật toán Apriori
Apriori là một thuật giải được do Rakesh Agrawal, Tomasz Imielinski, Arun Swami đề xuất lần đầu vào năm 1993 Thuật toán tìm giao dịch t có độ hỗ trợ và độ tin cậy thoả mãn lớn hơn một giá trị ngưỡng nào đó
Thuật toán Apriori tính tất cả các tập ứng cử của tập k trong một lần duyệt CSDL
Apriori dựa vào cấu trúc cây băm Tìm kiếm đi xuống trên cấu trúc cây mỗi khi ta chạm lá, ta tìm được một tập ứng cử viên có tiền tố chung được bao gồm trong giao dịch Sau đó các tập ứng cử này được tìm trong giao dịch đã được ánh xạ trước đó
Trong trường hợp tìm thấy biến đếm được tăng lên 1
Ký hiệu: Giả sử các mục trong mỗi giao dịch được lưu giữ theo trật tự từ điển Gọi số các mục trong một tập mục là kích thước của nó và gọi tập mục có kích thước k là tập k-mục (tập k mục) Các mục trong mỗi tập mục cũng được giữ ở trật tự từ điển Ta sử dụng các ký hiệu sau:
Lk: Tập các tập k-mục phổ biến (với độ hỗ trợ cực tiểu minsup nào đó)
Ck : Tập các tập k-mục ứng cử (các tập mục phổ biến tiềm năng)
Output: Tập các tập mục phổ biến
4 { C k = apriori_gen(L k-1 , minsup);// các ứng cử mới theo chương trình con ở dưới đây
6 { C t =Subset (C k ,t);// ứng cử viên được chứa trong t
14 Return L= k L k' ; // sinh ứng cử viên mới (**)
5 if( has_inrequent_subset(c, L k-1 )) delete c;
Boolean has_infrequent_subset(c,L k-1 ) 1.{ for ( (k-1)-subset s c)
2.1.3 Sinh luật kết hợp từ các tập mục phổ biến
Sau khi các tập mục phổ biến từ các tác vụ trong CSDL đã được tìm thấy, nó có thể sinh ra các luật kết hợp mạnh, ở đó luật kết hợp mạnh (strong association rule) là luật thoả mãn cả hai độ hỗ trợ cực tiểu và độ tin cậy cực tiểu Điều đó có thể thực hiện bằng việc sử dụng tính độ tin cậy của luật, ta nhắc lại: độ tin cậy của luật X
Y là: conf (X Y) = P(Y/X) = sup(XY)/sup(X) ở đó sup(XY) là độ hỗ trợ của XY và sup(X) là độ hỗ trợ của X
Có thể coi tỷ số trên là tỷ số giữa: số các tác vụ chứa XY và số các tác vụ chứa
X Dựa trên biểu thức tính toán đó, các luật kết hợp có thể được sinh như sau:
Với mỗi tập mục phổ biến l, sinh ra tất cả các tập con không rỗng của l
Với mỗi tập con không rỗng a của l, ta có luật a (l-a) nếu
) sup( a l minconf ở đó minconf là ngưỡng độ tin cậy cực tiểu
Vì các luật được sinh ra từ các tập mục phổ biến nên độ hỗ trợ của luật đã được thoả mãn, tức là độ hỗ trợ của luật chính là sup(l)
Chúng ta cải tiến thủ tục xử lý bằng cách sinh ra các tập con của mục lớn theo kiểu đệ qui ưu tiên độ sâu Ví dụ: với tập mục ABCD, đầu tiên chúng ta xét tập con ABC, sau đó đến AB,
Tiếp đến, nếu tập con a của tập mục lớn l không sinh ra được luật thì không cần xét đến các tập con của nó nữa Chẳng hạn: nếu luật ABC D không đủ độ tin cậy thì ta không cần xét đến luật AB CD Điều này có thể chứng minh đơn giản như sau:
Nếu luật a (l-a) không thoả mãn độ tin cậy, tức là: conf(al-a)) nhỏ hơn minconf, thế thì với bất kỳ tập con b nào của a ta có:
Vì b a nên supp(b)supp(a), do vậy:
Tức là độ tin cậy của luật b(l-b) cũng nhỏ hơn minconf Thuật toán đơn giản này có thể mô tả như sau:
For all large itemsets l k , k2 do call genrules(l k ,l k )
Ggenrules(l k :large k-itemsets, a m : large m-itemsets){
A={(m-1)-itemsets a m-1 |a m-1 a m }; for (a m-1 A){ conf=support(l k )/support(a m-1 );
} if (conf minconf) { output the rule a m-1 (l k -a m-1 ), with confidence=conf and support=support(l k ) if (m-l > l) then call genrules(l k ,a m-1 );
//để sinh ra các luật với tập con của a m-1 là phần tiền đề }
Ứng dụng logic mờ trong thuật toán khai luật kết hợp Apriori
2.2.1 Ứng dụng logic mờ trong thuật toán khai phá luật kết hợp Apriori
Thuật toán Apriori ở trên đã mở ra phương pháp tiếp cận cơ bản để giải quyết bài toán khai phá luật kết hợp trong siêu thị Tuy nhiên vấn đề đặt ra mới chỉ giới hạn ở việc sử dụng dữ liệu dạng nhị phân, ví dụ tập mục I được xét với các mặt hàng trong cơ sở dữ liệu chỉ là có hoặc không {0,1}, với cách tiếp cận này bài toán đã giải quyết tốt vấn đề khai phá tập dữ liệu lớn Đứng trên góc nhìn về việc áp dụng phương pháp này cho bài toán sẽ nhận ra vấn đề của việc sử dụng dữ liệu dạng nhị phân nói trên, thực tế cơ sở dữ liệu trong thế giới thực luôn bao gồm những thuộc tính phạm trù, số học mang giá trị cả về số lượng, ví dụ trong dữ liệu về thu nhập cá nhân thường có các thuộc tính như là thu nhập, tuổi,… những thuộc tính dạng này nếu chỉ áp dụng cách giải quyết của thuật toán Apriori nói trên sẽ không giải quyết được
Nhận thấy được những hạn chế mà phương pháp của Aragwa đưa ra, các nghiên cứu về sau đã trình bày nhiều cách khắc phục nhược điểm nói trên, tuy nhiên về mặt cơ bản các phương pháp này đều dựa trên ý tưởng chính thuật toán Apriori đó là:” Tập mục lớn khi các tập mục con của nó cũng là tập mục lớn”
Hướng tiếp cận thứ nhất đó là đưa các dữ liệu chưa có dạng nhị phân về dạng nhị phân, ví dụ quy định một ngưỡng t để xét các dữ liệu nhận giá trị {0,1} Ví dụ, cho dữ liệu:
Bảng 1 Ví dụ dữ liệu mẫu case age income risk credit result
Theo như phương pháp nói trên, thì với mỗi thuộc tính sẽ được đặt một ngưỡng α để chuyển đổi dữ liệu về dạng nhị phân theo hàm:
1 𝑛ế𝑢 𝐴 𝑖𝑗 ≥ 𝛼 𝑖 ,trong đó, 1 ≤ i ≤ n, 1 ≤ j ≤ m Giả sử cho 𝛼 1 = 30, 𝛼 2 = 35000, 𝛼 3 = 0, khi đó dữ liệu tương ứng được chuyển về thành dạng:
Bảng 2 Dữ liệu được chuyển về dạng nhị phân case age income risk credit result
Sau đó sẽ ứng dụng mô hình thuật toán Apriori để giải quyết bài toán Tuy hướng tiếp cận này khá đơn giản, nhưng việc chọn các ngưỡng thường phụ thuộc vào người xây dựng bài toán, độ chính xác của tập luật phụ thuộc rất nhiều vào ngưỡng này Thêm vào đó như việc áp dụng cho dữ liệu ví dụ ở trên là không phù hợp, vì khi chuyển các dữ liệu thành dạng {0,1} đã làm mất các giá trị cơ bản của dữ liệu
Cách tiếp cận thứ hai đó là ứng dụng các lý thuyết về logic mờ để giải quyết bài toán Một số lý thuyết được phát triển để phục vụ cho những yêu cầu kiểu này ví dụ như: Lý thuyết tập mờ, lý thuyết thống kê, lý thuyết tập thô, và lý thuyết tập cặp
Trong đó lý thuyết tập mờ được sử dụng nhiều nhất do tính đơn giản cũng như có sự tương đồng với tính lô gic của con người Lý thuyết tập mờ lần đầu tiên được trình bày bởi Zadeh từ năm 1965, về cơ bản lý thuyết này tập trung vào tính lượng hóa và lập luận sử dụng ngôn ngữ tự nhiên với một số từ có tính mờ Theo đó, luật kết hợp mờ được diễn đạt bởi các thuật ngữ giúp tăng tính linh động để hỗ trọ người sử dụng đưa ra quyết định Lý thuyết tập mờ đang được sử dụng ngày càng thường xuyên trong các hệ thống thông minh Một tập mờ A trong tập vũ trụ U được định nghĩa như sau:
Trong đú: à A (x) là hàm thuộc xỏc định độ thuộc của x trong A, cú nghĩa là x cú giỏ trị càng lớn thì x càng thuộc A nhiều hơn Tập mờ cũng có thể được mở rộng thành tập cứng với các phần tử chỉ có thể thuộc hoặc không thuộc tập
Các hướng tiếp cận dựa trên logic mờ hiện nay đang được quan tâm nhiều trong lĩnh vực khai phá luật kết hợp, do logic mờ khá gần với lập luận tự nhiên của con người, và các phương pháp dựa trên logic mờ đưa ra đạt được những kết quả khả quan về mặt tính toán cũng như độ chính xác của tập luật.
Thuật toán khai phá luật kết hợp dựa trên logic mờ được trình bày sau đây Ngưỡng hỗ trợ và ngưỡng tin cậy được cho trước
Các ký hiệu dùng trong thuật toán: n: Tổng số giao giao dịch trong cơ sở dư liệu m: Tổng số các thuộc tính
R jk : miền mờ thứ k của A j , 1 ≤ k ≤ |A j | w jk : Trong số của Rjk, 0 ≤ w jk ≤ 1 D(i) dữ liệu giao dịch thứ i, 1 ≤ i ≤ n v j (i): Giá trị phàm trù hoặc định lượng của Aj trong D(i); f jk (i) giá trị hàm thuộc của v j (i) trong R jk , 1 ≤ f jk (i) ≤ m;
Sup(R jk ): Độ hỗ trợ của R jk
Sup: giá trị hỗ trợ của mỗi tập mục lớn;
Conf: độ tin cậy của mỗi tập mục lớn Minsup: Giá trị hỗ trợ tối thiểu cho trước Minconf: giá trị tin cậy cho trước
C r : tập các tập mục thỏa mãn với r thuộc tính (tập mục), 1 ≤ r ≤ m;
L r : tập các tập mục lớn thỏa mãn với r thuộc tính (tập mục) 1 ≤ r ≤ m;
Thuật toán khai phá dữ liệu mờ có trọng số cho các giá trị định lượng được thực hiện theo các bước sau:
Input: n,m, w jk , hàm thuộc của các tập mục, minsup và minconf Output: luật kết hợp mờ
Bước 1: Chuyển các giá trị định lượng và phàm trù v j (i) của mỗi giao dịch D(i), i từ
1 tới n, với mỗi thuộc tính Aj, j từ 1 tới m, về giá trị mờ fjk(i)(1 ≤ k ≤ |A|) bằng hàm thuộc Rjk
Bước 2 : Tính giá trị hỗ trợ
𝑛 , 1 ≤ 𝑗 ≤ 𝑛, 1 ≤ 𝑘 ≤ 𝐴 𝑗 giá trị hỗ trợ của miền mờ Rjk, để chuyển C1 thành tập tham chiếu 1- itemsets
Bước 3 : Nếu Sup(Rjk) ≥ minsup thì đưa Rjk vào L1(L1 là tập mục lớn mức 1)
Bước 4 : Nếu L1 không rỗng, tiếp tục bước sau, nếu rỗng thoát chương trình
Bước 5 : Thuật toán xây dựng tập mục lớn mức r từ các tập mục lớn mức r-1 bằng cách chọn 2 tập mục lớn mức r-1 chỉ khác nhau duy nhất một mục, hợp 2 tập mục này ta được tập mục ứng viên Cr, nếu tập mục này xuất hiện trong cơ sở dữ liệu và có giá trị hỗ trợ và tin cậy thỏa mãn thì nó được đưa vào danh sách các tập mục lớn mức r
Bước 6: Thực hiện theo các bước con sau đây lặp lại cho các tập mục lớn mức lớn hơn được sinh ra tiếp theo dạng (r+1) tập mục lớn S với mục (s1,s2, …, st, …,sr+1) trong Cr+1, 1≤ t ≤ r+1
Tính các giá trị mờ của mỗi giao dịch D(t) của S như 𝑓𝑠(𝑡) 𝑟+1 𝑡=1 𝑤𝑠𝑡𝑓𝑠𝑡(𝑖) trong đó fst(i) là giá trị hàm thuộc của D(t) trong miền mờ st, wst là trong số của st Nếu sử dụng toán tử cực tiểu là phép giao thì fs(t) = min wstfst(i)
Tính giá trị hỗ trợ sup(S) của S trong giao dịch
If Sup(S) ≥ minsup, thì đưa S vào Lr+1 𝑛
Bước 7 : Nếu Lr+1 là rỗng, thì thực hiện bước tiếp theo, ngược lại, đặt r=r+1, thực hiện lại bước 5 và 6
Bước 8 : Thu thập các tập mục lớn Bước 9 : Đưa ra các luật kết hợp từ các tập mục lớn vừa thu thập theo cách sau:
Với mỗi luật kết hợp khả thi sau đây: s 1 ∩…∩s x ∩s y ∩…∩s q → sk (k=1 tới q, x=k-1, y= k+1)
Tính độ tin cậy của luật
Conf(s1∩…∩sx∩sy∩…∩sq → sk) = 𝑛 𝑖=1 𝑚𝑖𝑛 𝑘=1 𝑞 𝑓 𝑠𝑡 (𝑖) min (𝑚𝑖𝑛 𝑘=1 𝑥 𝑊𝑠𝑘 )
2.2.3 Nhận xét về thuật toán Apriori mờ
Việc ứng dụng lý thuyết logic mờ vào thuật toán đã giúp việc gán nhãn cho các trường dữ liệu mang tính chất định lượng(quantitative value) để từ đó có thể khai phá luật kết hợp từ các dữ liệu dạng này Tuy nhiên, việc xây dựng hàm mờ để gán nhãn đôi khi lại rất phức tạp và phụ thuộc vào từng bài toán cụ thể do đó sẽ làm giảm phạm vi ứng dụng của các khai phá luật kết hợp mờ.
Thuật toán khai phá luật kết hợp dựa trên lý thuyết đại số gia tử
Giới thiệu về lý thuyết đại số gia tử
Ý tưởng sử dụng ĐSGT trong khai phá dữ liệu xuất phát từ cấu trúc khá tốt của các giá trị của một biến ngôn ngữ (như các biến "tuổi", "trình độ chuyên môn" ) Trong ĐSGT (tuyến tính), các giá trị của biến ngôn ngữ được sắp xếp theo thứ tự (như các giá trị của biến ngôn ngữ "tuổi" là "rất trẻ" < "khá trẻ" < " trẻ" < c + (hay h c < c ) và là âm nếu có điều ngược lại Tập các gia tử dương ký hiệu là H + còn tập các gia tử âm ký hiệu là H - H=H + H -
2.Gia tử h được gọi là dương (âm) đối với gia tử k khi và chỉ khi xDom(X) sao cho nếu xkx thì kx>hkx (kx