Một số tính chất của tập phổ biến và luật kết hợp Với tập phổ biến ta có 3 tính chất sau: Tính chất 1 độ hỗ trợ của tập con: Nếu A B với A, B là các tập thuộc tính thì supp A ≥ supp
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Thị Thanh Hải
VẤN ĐỀ VỀ LUẬT KẾT HỢP MỜ
VÀ CÁC TOÁN TỬ CÓ NGƯỠNG TRONG KHAI PHÁ DỮ LIỆU
Ngành: Công nghệ thông tin
Mã ngành: 1.01.10
TÓM TẮT LUẬN VĂN THẠC SỸ
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TSKH Bùi Công Cường
Trang 2MỤC LỤC
MỤC LỤC 2
DANH MỤC BẢNG BIỂU, HÌNH VẼ, CÔNG THỨC & KÍ HIỆU VIẾT TẮT 4
LỜI CẢM ƠN 6
MỞ ĐẦU 7
1 CHƯƠNG 1 - LUẬT KẾT HỢP 9
1.1 ÝNGHĨATHỰCTIỄNCỦALUẬTKẾTHỢP 9
1.2 MÔHÌNHHÌNHTHỨCCỦAVẤNĐỀPHÁTHIỆNLUẬT 9
1.2.1 Các định nghĩa 9
1.2.1.1 Thuộc tính và CSDL 9
1.2.1.2 Độ hỗ trợ của một tập thuộc tính 10
1.2.1.3 Tập phổ biến (Frequent Itemset): 10
1.2.1.4 Độ hỗ trợ của luật r = X Y 10
1.2.1.5 Độ tin cậy của luật: r = X Y 10
1.2.1.6 Luật kết hợp mạnh: 11
1.2.2 Bài toán luật kết hợp 11
1.2.3 Một số tính chất của tập phổ biến và luật kết hợp 13
1.3 THUẬTTOÁNTÌMLUẬTKẾTHỢP 14
1.3.1 Thuật toán Apriori nhị phân 14
1.3.1.1 Giới thiệu 14
1.3.1.2 Các bước thực hiện 15
1.3.1.3 Giải thích: 15
1.3.2 Thuật toán AprioriTid 17
1.3.2.1 Giới thiệu thuật toán 17
1.3.2.2 Các bước thực hiện 17
1.3.2.3 Giải thích 18
1.3.3 Sinh ra các luật kết hợp mạnh từ tập phổ biến 20
1.3.3.1 Thuật toán 20
1.3.3.2 Thuật toán nhanh hơn: 21
1.3.4 Thuật toán FP-Growth 22
1.3.4.1 Ví dụ 1.2: 23
1.3.4.2 Thuật toán: 26
2 CHƯƠNG 2 - LUẬT KẾT HỢP MỜ 29
2.1 ÝNGHĨAVỀLUẬTKẾTHỢPMỜ 29
2.2 TẬPMỜ(FUZZYSET)VÀMỘTSỐKHÁINIỆM[1] 30
2.2.1 Tập mờ: 30
2.2.1.1 Định nghĩa tập mờ: 31
Trang 32.2.1.2 Các phép toán trên tập mờ: 31
2.2.2 Số mờ và một số dạng phổ biến 32
2.2.2.1 Định nghĩa tập mức: 32
2.2.2.2 Định nghĩa số mờ: 32
2.2.2.3 Các dạng phổ biến của số mờ: 32
2.2.3 Các phép toán trong logic mờ (toán tử mờ) 33
2.2.3.1 Phép phủ định (negation) 33
2.2.3.2 Phép hội (conjunction): 33
2.2.3.3 Phép tuyển (disconjunction): 34
2.3 LUẬTKẾTHỢPMỜ 34
2.3.1 Cơ sở dữ liệu và thuộc tính: 34
2.3.2 Độ đo của luật 35
2.3.2.1 Độ ủng hộ của bản ghi cho mệnh đề 35
2.3.2.2 Độ hỗ trợ của mệnh đề 36
2.3.2.3 Tập phổ biến 36
2.3.2.4 Độ hỗ trợ của một luật mờ: 36
2.3.2.5 Độ tin cậy của một luật mờ 36
2.3.3 Bài toán 37
2.3.4 Ưu điểm của việc áp dụng tập mờ để rời rạc hoá dữ liệu 37
2.4 LUẬTKẾTHỢPMỜVỚICÁCTOÁNTỬCÓNGƯỠNG 38
2.4.1 Toán tử có ngưỡng 38
2.4.1.1 Định nghĩa: t-chuẩn có ngưỡng 38
2.4.1.2 Định nghĩa: t-đối chuẩn có ngưỡng 38
2.4.2 Bài toán 39
2.4.3 Thuật toán [9] 39
2.4.3.1 Các ký hiệu sử dụng trong thuật toán: 39
2.4.3.2 Thuật toán: 40
2.4.3.3 Các chương trình con sử dụng trong thuật toán: 40
2.4.3.4 Ví dụ minh họa thuật toán (Ví dụ 2.2) : 41
2.4.4 Chuyển luật kết hợp mờ về luật có thuộc tính số 45
2.4.5 Luật kết hợp mờ với thuộc tính được đánh trọng số 45
2.4.6 Luật thật sự có ích 46
2.4.6.1 Phương pháp loại bỏ luật thừa 46
2.4.6.2 Phương pháp tìm luật đơn giản 46
3 CHƯƠNG 3 - CÀI ĐẶT THỬ NGHIỆM 47
KẾT LUẬN 51
TÀI LIỆU THAM KHẢO 53
PHỤ LỤC 55
Trang 4DANH MỤC BẢNG BIỂU, HÌNH VẼ, CÔNG THỨC & KÍ HIỆU VIẾT TẮT DANH MỤC BẢNG BIỂU
Bảng 1.1 CSDL giao dịch (Ví dụ 1.1) 12
Bảng 1.2 Độ hỗ trợ của các thuộc tính (Ví dụ 1.1) 12
Bảng 1.3 Danh sách các tập mục phổ biến (Ví dụ 1.1) 12
Bảng 1.4 Độ tin cậy của các luật sinh từ tập phổ biến (Ví dụ 1.1) 12
Bảng 1.5 Thực hiện các bước thuật toán Apriori 19
Bảng 1.6 Cơ sở dữ liệu giao dịch (Ví dụ 1.2) 23
Bảng 1.7 Độ hỗ trợ của tất cả các thuộc tính (Ví dụ 1.2) 24
Bảng 1.8 Các tập phổ biến có 1 thuộc tính (Ví dụ 1.2) 24
Bảng 1.9 Cơ sở dữ liệu lần thứ 2 (Ví dụ 1.2) 25
Bảng 2.1 Cơ sở dữ liệu giao tác (Ví dụ 2.1) 29
Bảng 2.2 Cơ sở dữ liệu sau khi rời rạc hóa thuộc tính chỉ mục (Ví dụ 2.1) 30
Bảng 2.3 Cơ sở dữ liệu giao tác (Ví dụ 2.2) 41
Bảng 2.4 Cơ sở dữ liệu mờ (Ví dụ 2.2) 43
Bảng 2.5 Độ hỗ trợ của tập có 1 thuộc tính (Ví dụ 2.2) 44
Bảng 2.6 Độ hỗ trợ của tập có 2 thuộc tính (Ví dụ 2.2) 44
Bảng 2.7 Luật được sinh ra (Ví dụ 2.2) 45
DANH MỤC HÌNH VẼ Hình 1.1 Cây CSDL khi duyệt lại (Ví dụ 1.2) 25
Hình 1.2 Cây CSDL kết hợp với bảng thuộc tính (Ví dụ 1.2) 26
Hình 2.1 Tập mờ 31
Hình 2.2 Số mờ 32
Hình 2.3 Số mờ dạng tam giác 32
Hình 2.4 Số mờ dạng hình thang 32
Hình 2.5 Số mờ dạng úp chuông 32
Hình 2.6 Đồ thị hàm thuộc của các tập mờ của thuộc tính Tuổi 42
Hình 2.7 Đồ thị hàm thuộc của các tập mờ của thuộc tính TGDSD 42
Hình 2.8 Đồ thị hàm thuộc của các tập mờ của thuộc tính TGSDHN 42
Hình 3.2 Giao diện xây dựng các thuộc tính mờ từ thuộc tính gốc ban đầu 49
Trang 5Hình 3.3 Giao diện Cơ sở dữ liệu mờ 50
Hình 3.4 Giao diện kết quả sinh các luật tin cậy 50
DANH MỤC CÔNG THỨC <1.1> Độ hỗ trợ của tập thuộc tính 10
<1.2> Độ hỗ trợ của luật 10
<1.3> Độ tin cậy của luật 11
<2.1> Số mờ dạng tam giác M(a,b,c) 32
<2.2> Số mờ dạng hình thang M(a,b,c,d) 32
<2.3> Số mờ dạng úp chuông 32
<2.4> Độ ủng hộ của bản ghi cho mệnh đề 35
<2.5> Độ hỗ trợ của mệnh đề 36
<2.6> Độ hỗ trợ của luật mờ 36
<2.7> Độ tin cậy của luật mờ 36
<2.8> Toán tử t-chuẩn có ngưỡng 38
<2.9> Toán tử t-đối chuẩn có ngưỡng 38
KÝ HIỆU VIẾT TẮT
- CSDL - Database: cơ sở dữ liệu
- fminconf - fuzzy minimum confidence: độ tin cậy tối thiểu mờ
- fminsupp - fuzzy minimum support: độ hỗ trợ tối thiểu mờ
- minconf - minimum confidence: độ tin cậy tối thiểu
- minsupp - minimum support: độ hỗ trợ tối thiểu
- t-conorm: t-đối chuẩn
- TID - Transaction Identification : định danh thuộc tính
- t-norm: t-chuẩn
Trang 6MỞ ĐẦU
Ngày nay với sự bùng nổ của khoa học công nghệ, của kỹ thuật số đã cho phép
số hóa thông tin một cách dễ dàng Chính vì vậy, với lượng dữ liệu khổng lồ như công văn giấy tờ, chứng từ, tài liệu, thông tin khách hàng, số liệu kinh doanh,…việc đưa ra công cụ để phân tích và xử lý thông tin đã trở thành một vấn đề thiết yếu Ví dụ đối với ngành kinh doanh, các vấn đề về quảng cáo mặt hàng như thế nào? nên sắp đặt bố trí, nhập hàng ra sao? thường xuyên được đặt ra Và vì thế, khai phá dữ liệu đã trở thành một hướng nghiên cứu chính trong lĩnh vực khoa học máy tính và công nghệ tri thức để nhằm thực hiện các yêu cầu đó của xã hội
Để có thể chọn lọc được những thông tin có ý nghĩa, nhiều bài toán đã được đưa ra và một trong số đó là Khai phá luật kết hợp Khai phá luật kết hợp lần đầu tiên được đưa ra vào năm 1993 do Rakesh Agrawal, Tomasz Imielinsky và Arun Swami giới thiệu Sau đó, năm 1996 được Rakesh Agrawal, Heikki Mannila, Ramakrishnan Srikant, Hannu Toivonen và A Inkeri Verkamo tiếp tục phát triển Trong những năm gần đây, người ta tập trung vào cải tiến, phát triển thuật toán hiệu quả hơn từ các thuật toán đã có và xây dựng các thuật toán mới nhằm phát hiện các luật kết hợp có ý nghĩa
Các thông tin về dữ liệu trên thực tế không chỉ tồn tại ở dạng nhị phân (có hoặc không) mà còn định lượng Chính vì vậy, các khái niệm của tập mờ đã được kết hợp với khai phá luật kết hợp để trở thành một hướng nghiên cứu mới Việc kết hợp các tập
mờ thông qua các toán tử (t-chuẩn, t-đối chuẩn) với ngưỡng là sự mở rộng hơn để giải quyết bài toán khai phá luật kết hợp
Do đây là một lĩnh vực nghiên cứu đang được quan tâm và có nhiều triển vọng
nên tôi đã chọn “Vấn đề về luật kết hợp mờ và các toán tử có ngưỡng trong khai phá
dữ liệu” làm đề tài cho luận văn của mình Luận văn được xây dựng trên nền của một
số nghiên cứu về lĩnh vực này trong những năm gần đây
Luận văn được tổ chức thành 4 chương như sau:
Chương 1: Luật kết hợp Trong chương này tôi đã trình bày những nét khái quát nhất về khai phá dữ liệu bằng luật kết hợp thông qua việc đưa ra các khái niệm, định nghĩa và bài toán tìm luật kết hợp Những thuật toán điển hình của luật kết hợp như thuật toán Apriori và một vài thuật toán khác cũng được đề cập để giải quyết bài toán
Chương 2: Luật kết hợp mờ với toán tử có ngưỡng Ở phần đầu của chương tôi trình bày các khái niệm liên quan đến tập mờ để từ đó làm cơ sở đưa vào bài toán khai phá luật kết hợp Với các bài toán có thuộc tính số và hạng mục thì việc rời rạc hóa dữ
Trang 7liệu có thể xảy ra một vài nhược điểm như vấn đề “điểm biên gãy” Vì thế luật kết hợp
mờ là một giải pháp rất hiệu quả Phần cuối chương là các khái niệm về các toán tử có ngưỡng và đưa ra bài toán xây dựng luật kết hợp mờ với các toán tử có ngưỡng
Chương 3: Cài đặt thử nghiệm: Là phần cài đặt thử nghiệm chương trình dùng
dữ liệu về việc sử dụng internet
Kết luận: Phần này nêu lại những việc đã thực hiện và kết quả đạt được của luận văn, vấn đề còn chưa được giải quyết thấu đáo và một số hướng nghiên cứu trong tương lai
Trang 81 CHƯƠNG 1 - LUẬT KẾT HỢP
Luật kết hợp là một lĩnh vực quan trọng trong khai phá dữ liệu và vì thế kỹ thuật khai phá luật kết hợp ngày càng được quan tâm và phát triển mạnh trong những năm trở lại đây, trở thành một hướng nghiên cứu lớn
Trong chương này, chúng ta cùng tìm hiểu các khái niệm cơ sở và các thuật toán kinh điển của luật kết hợp
Luật kết hợp là những luật có dạng: X Y
Trong lĩnh vực bán hàng ta có thể có luật: “40% khách hàng mua cafe thì mua thêm bánh quy, 3% khách hàng mua cả cafe và bánh quy”
Ở ví dụ này diễn tả mối quan hệ giữa cafe và bánh quy hay ta có luật X Y tương
đương với cafe bánh quy Cafe là tiền đề của luật và bánh quy là kết quả của luật
Các hệ số 40% và 3% là các độ đo của luật
- 40% là độ tin cậy của luật: trong những khách hàng mua cafe có 40% mua thêm bánh quy
- 3% là độ hỗ trợ của luật: trong tất cả khách hàng mua ở cửa hàng có 3% mua cả
2 mặt hàng là cafe và bánh quy
Các số này ta sẽ định nghĩa cụ thể ở các phần dưới
1.2.1 Các định nghĩa
1.2.1.1 Thuộc tính và CSDL
- I = {I 1 , I 2 , …,I n } là tập tất cả các mục (Item)
hay được gọi là tập tất cả các thuộc tính (attributes)
mỗi một thuộc tính Ii với i = 1 ,n được gọi là 1 mục dữ liệu
- X = {I x 1 , I x 2,… ,I x p } I là 1 tập thuộc tính (Itemset)
- D = (T 1 , T 2 , …, T m ) là cơ sở dữ liệu trên I, là tập tất cả các tác vụ (transaction) hay
được gọi là tập các bản ghi Mỗi bản ghi Tk với k = 1 ,m đều có định danh (TID- Transaction Identification) và nó là một tập các thuộc tính Tk I với
k = 1 ,m Ta có Tk(Iv) xác định giá trị của thuộc tính Iv
Ví dụ: nếu xét thuộc tính phân, Tk(Iv) = 1 nghĩa là khách hàng Tk chọnmua mặt hàng
Trang 9Iv, Tk(Iv) = 0 nếu khách hàng Tk không chọn mua hàng Iv)
- Một luật kết hợp có dạng X Y
Trong đó:
+ X I là tiền đề của luật
+ Y I là hệ quả của luật,
Cho một tập thuộc tính X I, cơ sở dữ liệu D
Độ hỗ trợ (support) của tập thuộc tính X trong cơ sở dữ liệu D (Ký hiệu supp(X)) là tỷ
lệ % giữa số bản ghi trong cơ sở dữ liệu D chứa tập thuộc tính X với tổng số các bản ghi trong cơ sở dữ liệu D
| ) (
D
T X D T X
1.2.1.3 Tập phổ biến (Frequent Itemset):
Cho một tập thuộc tính X I trong cơ sở dữ liệu D và ngưỡng hỗ trợ tối thiểu minsupp (0,1] (minsupp - Minimum Support) được xác định bởi người sử dụng Một tập thuộc tính X được gọi là tập phổ biến theo ngưỡng minsupp khi và chỉ khi độ
hỗ trợ của nó lớn hơn hoặc bằng ngưỡng minsupp
X I là tập phổ biến supp(X) minsupp
Ký hiệu: FX(D, minsupp) là tập hợp các tập phổ biến theo ngưỡng minsupp
FX( D, minsupp) = {X I \supp(X) minsupp}
Trang 10
k k
k
T X D T
T Y T X D T
(
k k
T X D T
T Y X D T
T X D T
D D
T Y X D T
)(
r = X Y là luật kết hợp mạnh Supp (r) minsupp
Conf (r) minconf
1.2.2 Bài toán luật kết hợp
Người ta chỉ quan tâm đến luật kết hợp mạnh theo ngưỡng minsupp và minconf cho trước
Chính vì vậy bài toán khai phá luật kết hợp thường chia làm 2 pha:
1- Tìm tất cả các tập phổ biến (FX) trong cơ sở dữ liệu, nghĩa là tìm tất cả các tập thuộc tính X sao cho supp(X) minsupp
2- Sinh ra các luật kết hợp mạnh từ các tập phổ biến tìm thấy ở pha 1-
Ví dụ 1.1: Bài toán khai phá luật kết hợp
Thực hiện bài toán khai phá luật kết hợp ở trên đối với đầu vào:
Cho CSDL D = {T1, T2, T3, T4, T5, T6} trên I = {A, B, C, D, E, F}
Trang 11Từ danh sách tập phổ biến đó các luật kết hợp được đưa ra trong bảng sau:
Trang 12mạnh
1.2.3 Một số tính chất của tập phổ biến và luật kết hợp
Với tập phổ biến ta có 3 tính chất sau:
Tính chất 1 (độ hỗ trợ của tập con):
Nếu A B với A, B là các tập thuộc tính thì supp (A) ≥ supp (B)
Điều này là rõ ràng vì tất cả các bản ghi trong D chứa B thì cũng chứa A
Tính chất 2: Một tập chứa một tập không phổ biến thì cũng là tập không phổ biến
Nếu tập A không đủ độ hỗ trợ cực tiểu tức là supp(A) < minsupp thì tập B
A cũng không phổ biến vì supp (B) ≤ supp (A) < minsupp (áp dụng tính chất 1)
Tính chất 3: Các tập con của tập phổ biến cũng là tập phổ biến
Nếu tập B là tập phổ biến trong D, tức là supp (B) ≥ minsupp, mọi tập con A của B cũng là phổ biến trong D, bởi vì supp (A) ≥ supp(B) ≥ minsupp theo tính chất 1
Với luật kết hợp ta có 4 tính chất sau:
Tính chất 4 Không hợp các luật kết hợp
Nếu có X Z và Y Z trong D thì không nhất thiết X Y Z là đúng Xét trường hợp X Y = và các tác vụ trong D hỗ trợ Z nếu và chỉ nếu chúng hỗ trợ hoặc X hoặc Y, khi đó luật X Y Z có độ tin cậy 0%
Tương tự: X Y X Z thì không thể suy ra X Y Z
Tính chất 5: Không tách luật
Nếu X Y Z thì X Z và Y Z chưa chắc xảy ra
Tính chất 6: Các luật kết hợp không có tính bắc cầu
Nếu X Y và Y Z, không thể suy ra X Z
Tính chất 7:
Nếu luật A (L-A) không thỏa mãn độ tin cậy cực tiểu thì với các tập mục B
A L, luật B (L-B) cũng không thỏa mãn,
Vì supp(B) ≥ supp(A) (theo tính chất 1) và định nghĩa độ tin cậy, chúng ta nhận được
Trang 13supp(L)supp(B)
supp(L)B))
(L
Tương tự
Nếu có luật ((L-C) D) thì ta cũng có luật (L-D) D với D C và D
Phần này sẽ trình bày một số thuật toán kinh điển để tìm luật kết hợp như thuật toán Apriori [4] áp dụng đối với cơ sở dữ liệu nhị phân và một số thuật toán cải tiến của Apriori Các thuật toán này đều thực hiện 2 pha của bài toán luật kết hợp trình bày ở mục 1.2.2
1.3.1 Thuật toán Apriori nhị phân
1.3.1.1 Giới thiệu
Thuật toán Apriori là thuật toán nhằm phát hiện các tập phổ biến bằng nhiều lần duyệt
dữ liệu Trong lần duyệt đầu tiên chúng ta tính độ hỗ trợ của các tập thuộc tính riêng lẻ
và xác định nó có là tập phổ biến hay không bằng cách so sánh độ hỗ trợ của nó với độ
hỗ trợ cực tiểu (minsupp) Ở những lần duyệt sau, chúng ta bắt đầu từ 1 tập phổ biến hạt giống của các tập phổ biến đã tìm được ở lần duyệt trước Sử dụng tập phổ biến này để sinh ra các tập tiềm năng mới gọi là tập ứng cử và tính độ hỗ trợ của tập ứng cử
đó trong mỗi lần duyệt dữ liệu Cuối mỗi lần duyệt chúng ta xác định được tập nào là tập phổ biến để làm hạt giống cho lần duyệt tiếp theo Quá trình này được thực hiện cho đến khi không tìm thấy tập phổ biến nào mới trong các tập ứng cử
Thuật toán này sinh các tập ứng cử để tính trong mỗi lần duyệt bằng cách chỉ sử dụng
từ các tập phổ biến ở lần duyệt trước mà không quan tâm tới các bản ghi trong cơ sở
dữ liệu Cở sở của vấn đề này là áp dụng Tính chất 3 ở trên “Các tập con của tập phổ
biến cũng là tập phổ biến” Do đó, các tập ứng cử có k thuộc tính có thể được sinh ra
bằng cách kết hợp từ tập phổ biến có k-1 thuộc tính và xóa các tập ứng cử nếu nó có chứa bất kỳ một tập con nào không phải là tập phổ biến Cách này làm giảm đáng kể các tập ứng cử
Ký hiệu: Giả sử các thuộc tính trong mỗi bản ghi được lưu theo trật tự alphabet Gọi số
các thuộc tính trong một tập thuộc tính là kích thước của nó và tập có kích thước k là tập có k thuộc tính Các thuộc tính trong mỗi tập thuộc tính đó cũng được lưu theo trật
tự alphabet
Trang 14Ck: Tập các tập ứng cử có kích thước k Mỗi phần tử của tập này có 2 trường là thuộc tính và độ hỗ trợ
- Kết nối: Lk-1 với Lk-1 (Nếu 2 tập thuộc tính thứ i và n trong Lk-1 mà có k-2 thuộc tính đầu giống nhau thì kết nối 2 tập đó với nhau)
Giả sử: Lk-1 = { , , , 1 2 1}
2 1 2 2 2 1 1 1 1 2 1 1
p k p p k
k L L L L L L L
L
i j i n j i
j L L L
j i
j L
L với j1,k2 và n
k i
k L
k i k i i
L L L
Trang 15Vấn đề đặt ra ở đây là chúng ta phải chứng minh Ck Lk Rõ ràng mỗi tập con của một tập phổ biến phải cũng thoả mãn độ hỗ trợ tối thiểu Do đó, nếu chúng ta mở rộng mỗi tập thuộc tính trong Lk-1 với tất cả các thuộc tính có thể rồi sau đó xoá tất cả những tập thuộc tính là tập con của nó có cỡ k-1 mà lại không nằm trong Lk-1 chúng ta
sẽ được còn lại tập của các tập thuộc tính trong Lk
Bước kết hợp là để mở rộng Lk-1 với mọi thuộc tính trong cơ sở dữ liệu và sau
đó xoá các tập thuộc tính mà các tập thuộc tính kích thước k-1 này có được bằng cách xoá thuộc tính thứ k-1 là không nằm trong Lk-1 Điều kiện n
k i
k L
L 1 1 trong bước kết
hợp đơn giản để đảm bảo rằng không có 2 tập thuộc tính sinh trùng Do đó sau bước kết hợp thì Ck Lk Ở bước tỉa chúng ta xoá từ Ck tất cả các tập thuộc tính có k-1 thuộc tính mà không nằm trong Lk-1 các tập này cũng là các tập không nằm trong Lk
Tập các ứng cử Ck được lưu trong một cây băm Mỗi nút của cây băm hoặc chứa danh sách các tập thuộc tính (nút lá) hoặc 1 bảng băm (nút trong) Trong 1 nút trong mỗi bucket của bảng băm trỏ tới 1 nút khác Gốc của cây băm được xem là ở độ sâu 1 Một nút trong ở độ sâu d trỏ tới các nút có độ sâu d+1 Các tập thuộc tính được lưu trong các lá Khi chúng ta bổ sung thêm 1 tập thuộc tính c chúng ta bắt đầu từ gốc
và đi xuống cây cho đến khi chạm vào lá Ở một nút trong có độ sâu d, chúng ta quyết định đi theo nhánh nào dựa vào việc áp dụng hàm băm đối với thuộc tính thứ d của tập thuộc tính Tất cả các nút được khởi tạo ban đầu là các nút lá Khi số của các tập thuộc tính trong nút lá vượt quá 1 ngưỡng nào đó, nút lá được chuyển thành nút trong
Bắt đầu từ gốc Hàm Subset tìm tất cả các ứng cử chứa trong bản ghi t như sau:
- Nếu chúng ta ở lá, chúng ta tìm các tập thuộc tính mà lá được chứa trong bản ghi t và đưa các tham chiếu của nó vào tập kết quả
- Nếu chúng ta ở nút trong và đang nắm giữ nó bởi việc băm thuộc tính i, chúng
ta băm trên mỗi thuộc tính ở sau i trong bản ghi t và áp dụng đệ quy thủ tục này cho nút trong bucket tương ứng
- Đối với gốc chúng ta băm trên tất cả các thuộc tính trong t
Để xem tại sao hàm subset trả về tập mong muốn, chúng ta xem cái gì xảy ra ở
nút gốc Cho mỗi tập thuộc tính c chứa trong bản ghi t, chắc chắn thuộc tính đầu tiên của c cũng chứa trong bản ghi t Vì nút gốc được tạo bằng cách băm trên tất cả các thuộc tính chúng ta đã chắc chắn rằng chúng ta chỉ bỏ qua các tập thuộc tính mà bắt đầo với một thuộc tính không nằm trong t Tương tự chúng ta áp dụng cho các mức
Trang 16thuộc tính trong t xuất hiện sau i
1.3.2 Thuật toán AprioriTid
1.3.2.1 Giới thiệu thuật toán
Thuật toán AprioriTid [4] cũng sử dụng hàm apriori_gen để xác định các tập ứng cử khi bắt đầu duyệt Sự khác biệt thú vị của thuật toán này là cơ sở dữ liệu D không sử dụng cho việc tìm độ hỗ trợ ở lần duyệt đầu tiên Tập C kđược sử dụng cho mục đích này Mỗi thành viên của C kcó dạng <TID, {Xk}> ở đây mỗi Xk là tập phổ biến tiềm năng đưa vào bản ghi có định danh TID Với k=1, C1 tương đương với cơ sở
dữ liệu D Mặc dù về khái niệm mỗi thuộc tính i được thay bằng tập {i} Với k1
k
C được sinh bởi thuật toán (bước 10) Phần tử của C k ứng với bản ghi t là <t.TID, {c
Ck \ c chứa trong t}> Nếu 1 bản ghi không chứa bất kỳ một tập ứng cử có kích thước k nào thì C ksẽ không có 1 mục nhập nào cho bản ghi này Do đó thành viên của các mục vào trong C k có thể nhỏ hơn số bản ghi trong cơ sở dữ liệu, đặc biệt khi k lớn Thêm vào đó, với giá trị k lớn mỗi mục vào có thể nhỏ hơn bản ghi tương ứng bởi
vì rất ít ứng cử được chứa trong bản ghi Tuy nhiên, với k nhỏ mỗi mục vào có thể lớn hơn bản ghi tương ứng bởi vì 1 mục vào trong Ck bao gồm tất cả các tập ứng cử kích thước k chứa trong bản ghi
Cấu trúc dữ liệu cũng được cải tiến
B6: For tất cả các mục vào t C k 1 do begin
B7: // xác định các tập ứng cử trong Ck chứa trong bản ghi
// với định danh t.TID
Ct = { c Ck \ (c-c[k]) t.tập của các tập thuộc tính (c-c[k-1]) t.tập của các tập thuộc tính};
B8: For tất cả các ứng cử c Ct do
B10: nếu (Ct ) thì C k+= <t.TID, Ct>;
B11: end
Trang 17B12: Lk = {c Ck\ c.count minsupp}
B10: end
B11: Return L =
k k
Hàm apriori_gen sinh tập ứng cử kích thước k Ck bằng cách kết hợp 2 tập phổ
biến kích thước (k-1) Mỗi tập ứng cử của chúng, ta duy trì 2 trường mới là trường
sinh và trường mở rộng Trường sinh của một tập ứng cử Ck lưu định danh của 2 tập phổ biến kích thước (k-1) mà chúng kết hợp với nhau để sinh Ck Trường mở rộng của một tập Ck lưu định danh của tất cả (k+1) ứng cử mà là mở rộng của Ck
Ở bước 7, trường t.tập của tập thuộc tính của một mục vào t trong C k 1là định danh của tất cả (k-1) ứng cử trong bản ghi t Với mỗi ứng cử Ck-1, trường mở rộng của nó đưa ra Tk là tập của các định danh cho tất cả các ứng cử có kích thước k mà là mở rộng của Ck-1 Với mỗi ck trong Tk trường sinh đưa ra định danh của 2 tập thuộc tính mà sinh Ck Nếu các tập thuộc tính nào đó được có mặt trong mục vào của t.tập của các tập thuộc tính, chúng ta có thể kết luận rằng ck có mặt trong bản ghi t và thêm Ck vào
Ct
Ví dụ
Xét Cơ sở dữ liệu D với độ hỗ trợ cho trước minsupp = 0,4(2/5)
Trang 18Bảng 1.5 Thực hiện các bước thuật toán Apriori
Trong ví dụ trên, ở bước 4, C2 được tính bởi hàm apriori_gen với đối số là L1 Trong các bước từ 6 đến 10 chúng ta tính độ hỗ trợ cho các ứng cử trong C2 để tìm tập L2 bằng cách lặp lại các mục vào trong C1 và sinh tập C2 Mục vào đầu tiên trong C1 là tập {{A}, {C}, {D}} tương ứng với bản ghi thứ 1 Ct ở bước 7 tương ứng với mục vào t=1 này là tập {{A C}} bởi vì {A C} là thành viên của C2 và cả ({A C}-{A}) và ({A C} - {C}) là các thành viên của tập các tập thuộc tính của t=1
Tiếp theo ở lần duyệt với k=3, C3 được tính bởi hàm apriori_gen với đối số L2 Thực
L 1
Thuộc tính
TID
3/5 {B}
3/5 {E}
Độ hỗ trợ Tập thuộc
tính
2/5 {A C}
2/5 {B C}
Độ hỗ trợ Tập thuộc
tính
2/5 {C E}
L 3
Thuộc tính
TID
Độ hỗ trợ Tập thuộc
L 2
2/5 {B C}
2/5 {C E}
Độ hỗ trợ Tập thuộc tính
C 3
Thuộc tính
Trang 19hiện với C2 và C3 sinh tập C3 Lưu ý rằng không có mục vào nào trong C3 đối với bản ghi 1 và 4 do chúng không chứa bất kỳ mục dữ liệu nào trong C3 Tập ứng cử {B C E} trong C3 trở thành tập phổ biến và là thành viên duy nhất của L3 Khi chúng ta tìm C4
từ L3 kết quả là tập rỗng và vòng lặp kết thúc
1.3.3 Sinh ra các luật kết hợp mạnh từ tập phổ biến
Với mỗi tập phổ biến L sẽ sinh ra tất cả các luật có dạng a (L-a) Ở đây a là tập con
không rỗng của L sao cho
minconfsupp(a)
supp(L)
Hay ta có a (L-a) là luật kết hợp mạnh
Chúng ta cần xem xét tất cả các tập con của L để tìm ra đầy đủ luật
Với a* a áp dụng tính chất 7 ta có a* (L-a*) cũng là luật kết hợp mạnh
Vì vậy trước tiên ta bắt đầu từ các luật có a là tập có kích thước lớn hay tương ứng với
vế phải là tập có kích thước nhỏ nhất (kích thước 1) Từ tập này sử dụng hàm
apriori_gen để sinh ra tất cả các vế phải
Conf = supp(Lk)/supp(am-1);
If(conf minconf) then
Trang 201.3.3.2 Thuật toán nhanh hơn:
Ở trên, ta đã chỉ ra rằng nếu một luật không thoả mãn với tập cha a thì cũng không
thoả mãn với tập con của nó Ví dụ như trên đã xét: nếu luật ABC D có độ tin cậy nhỏ hơn độ tin cậy cực tiểu thì luật AB CD cũng không đủ độ tin cậy Điều đó có thể áp dụng theo hướng ngược lại như sau: nếu xảy ra luật với tập con thì cũng xảy ra luật với tập cha Ví dụ nếu luật AB CD có độ tin cậy lớn hơn hoặc bằng độ tin cậy cực tiểu thì luật ABC D cũng đủ độ tin cậy
Thuật toán 2:
For tất cả tập phổ biến Lk, k 2 do begin
H1 = {các phần kết luận là tập có kích thước 1 nhận được từ Lk}
Conf = supp(Lk)/supp(Lk-hm+1);
If(conf minconf) then
Thuật toán nhanh hơn này sử dụng thủ tục apriori_gen mô tả ở phần thuật toán apriori
Vấn đề ở đây là cần chứng minh tại sao nói thuật toán 2 này nhanh hơn thuật toán 1
Ví dụ ta xét tập thuộc tính ABCDE Giả sử rằng ACDE B và ABCE D là các luật
mà phần kết luận có kích thước cực tiểu (=1) và thỏa mãn độ tin cậy cực tiểu minconf Trong thuật toán 1 gọi đệ quy thủ tục genrules(ABCDE, ACDE) sẽ kiểm tra các luật có 2 thuộc tính ở phần kết luận là ACD BE, ADE BC, CDE AB và ACE BD
- Luật ACD BE không xảy ra vì
E BE ABCD E không thỏa mãn độ tin cậy tối thiểu
- Luật ADE BC, CDE AB cũng không thỏa mãn với lý do tương tự
Trang 21Gọi thủ tục genrules (ABCDE, ABCE) thì sẽ kiểm tra các luật ABC CE, ABE CD, BCE AD và ACE BD Ở đây ta cũng thấy 3 luật đầu là không thỏa mãn Chỉ có luật ACE BD
Khai phá tập mục phổ biến không sinh các ứng cử:
Thuật toán kinh điển apriori tìm tập phổ biến như đã trình bày ở trên thực hiện tốt bởi rút gọn kích thước các tập ứng cử nhờ kỹ thuật tỉa Tuy nhiên, trường hợp mẫu nhiều, mẫu dài hoặc độ hỗ trợ cực tiểu thấp, các thuật toán như Apriori gặp phải2 chi phí lớn:
- Chi phí cho số lượng khổng lồ các tập ứng cử Ví dụ nếu có 104
tập thuộc tính thì thuật toán Apriori sẽ cần sinh ra hơn 107
các tập ứng cử có 2 thuộc tính và thực hiện kiểm tra sự xuất hiện của chúng Hơn nữa, để khám phá được một
mẫu phổ biến có kích thước l thuật toán phải kiểm tra (2 l
– 2)các mẫu phổ
biến tiềm năng Ví dụ nếu kích thước l = 10 thì phải sinh 2100 1030 các ứng
cử (đây chính là số tập con của tập có 100 phần tử)
- Đòi hỏi lặp lại nhiều lần duyệt CSDL để kiểm tra tập rất lớn các ứng cử Số lần duyệt CSDL của thuật toán Apriori bằng độ dài của mẫu phổ biến dài nhất tìm được Trong trường hợp mẫu phổ biến dài và CSDL lớn, có nhiều bản ghi điều này là không thể thực hiện được Thuật toán Apriori chỉ thích hợp cho các CSDL thưa, với các CSDL dày thì thuật toán thực hiện kém hiệu quả hơn
1.3.4 Thuật toán FP-Growth
Phần này trình bày một thuật toán mới nói tìm các tập mục phổ biến rất hiệu quả, sử dụng một kỹ thuật khác và không cần sinh ra các ứng cử Thuật toán FP-Growth [5] được giới thiệu bởi Jiawei Han, Jian Pei và Yiwen Yin vào năm 2000 Thuật toán này thực hiện hiệu quả hơn thuật toán Apriori Sự hiệu quả được xem ở 3 kỹ thuật chính: i) Mở rộng cấu trúc của cây prefix, được gọi là cây mẫu phổ biến (Frequant
pattern tree hoặc gọi tắt là FP-tree) [6] dùng để nén dữ liệu thích hợp Chỉ có các mục có độ dài 1 (1 thuộc tính) ở trong cây và các nút của cây được sắp đặt để các nút xuất hiện thường xuyên có thể dễ dàng chia sẻ với các nút ít xuất hiện hơn CSDL lớn được nén chặt tới cấu trúc dữ liệu nhỏ hơn này tránh được chi phí lặp lại duyệt qua CSDL
ii) Phương pháp khai phá phát triển từng đoạn dựa trên FP-tree gọi là phương
pháp FP-growth đã được thực hiện Bắt đầu từ mẫu phổ biến có độ dài 1,
Trang 22của nó và thực hiện khai phá đệ quy trên cây này Mẫu phát triển nhận được qua việc nối mẫu hậu tố với một đoạn mới được sinh ra từ conditional FP-tree Khai phá dựa trên FP-tree thực hiện theo cách phát triển các đoạn mẫu
để tránh chi phí cho việc sinh ra số lớn các tập ứng cử
iii) Kỹ thuật tìm kiếm được dùng ở đây là dựa vào sự phân chia, chia và chế
ngự (divide - and - conquer method) để phân rã nhiệm vụ khai phá thành tập các nhiệm vụ nhỏ hơn với giới hạn các mẫu trong các CSDL nhằm thu gọn không gian tìm kiếm
Phương pháp FP-growth đã chứng tỏ được tính hiệu quả của nó và có thể thực hiện khai phá cho cả các mẫu ngắn và dài nhanh hơn thuật toán Apriori mà chỉ cần duyệt CSDL 2 lần
Thuật toán FP-growth thực hiện như sau:
- Duyệt CSDL lần thứ nhất để tính độ hỗ trợ của từng thuộc tính (đếm số lần xuất hiện của từng thuộc tính)
- Loại bỏ những thuộc tính không đáp ứng được độ hỗ trợ tối thiểu Các thuộc tính còn lại được sắp theo thứ tự giảm dần của độ hỗ trợ (cũng tức là sắp theo thứ tự giảm dần số lần xuất hiện trong CSDL) Ta nhận được danh sách L các thuộc tính đã được sắp
- Duyệt CSDL lần thứ hai, với mỗi bản ghi t, loại bỏ những thuộc tính không thỏa mãn độ hỗ trợ tối thiểu, các thuộc tính còn lại sắp theo thứ tự giảm dần của độ hỗ trợ Lưu các thuộc tính vào cây FP-tree
- Khai phá các mẫu phổ biến trên cây FP-tree đã xây dựng mà không cần duyệt lại CSDL nữa
Bảng 1.6 Cơ sở dữ liệu giao dịch (Ví dụ 1.2)
Trang 23Ta thực hiện theo các bước như trên:
Trang 24Hình 1.1 Cây CSDL khi duyệt lại (Ví dụ 1.2)
Để duyệt cây dễ dàng bảng item-header được xây dựng bằng việc liên kết nút link) nếu chúng có cùng tên thuộc tính
(node-Thuộc tính đầu của các
m:1
f:1
b:1 b:1
p:1
ROOT
c:4 f:3 a:3 m:2 p:2
b:1
f:1
b:1
b:1 p:1
m:1
Trang 25Hình 1.2 Cây CSDL kết hợp với bảng thuộc tính (Ví dụ 1.2)
Dựa vào ví dụ trên cây FP-tree được xác định như sau:
Định nghĩa Cây FP-tree (Frequent pattern tree)
Cây FP-tree là cây có cấu trúc:
- Gốc của cây có nhãn null, con của gốc là các đường đi trên cây có item-prefix
- Mỗi nút trên một đường đi item-prefix bao gồm:
o Tên thuộc tính (item-name):
o Số đếm (count): là số các bản ghi mà có đường trỏ tới nút
o Liên kết (Node-link): liên kết đến nút tiếp theo trong cây mà có cùng tên thuộc tính hoặc là null nếu có chỉ có 1 (không trỏ tới đâu)
- Mỗi mục vào trong bảng các đầu mục phổ biến (frequent-item-header table) bao gồm:
Input: CSDL các bản ghi D và ngưỡng độ hỗ trợ tối thiểu
Output: FP-tree của D
1 Duyệt CSDL Xây dựng F là tập của các thuộc tính phổ biến và tính độ hỗ trợ của mỗi thuộc tính phổ biến Sắp xếp F theo thứ tự giảm dần của độ hỗ trợ để được FList
2 Khởi tạo gốc của FP-tree là T và gán nhãn NULL Cho mỗi bản ghi t trong CSDL D
- Chọn các thuộc tính phổ biến, sắp xếp theo thứ tự của Flist Để thứ tự của các thuộc tính phổ biến được sắp trong t là [p | P] với p là thành phần đầu tiên và P là danh sách còn lại Gọi thủ tục Insert_tree([p | P],T)
- Hàm Insert_tree([p | P],T) được thực hiện như sau: Nếu T có 1 con là N mà N.item-name = p.item-name thì tăng số đếm của N lên 1 Nếu không khởi
Trang 26là không rỗng gọi đệ quy thủ tục insert_tree(P,N)
Sau khi xây dựng xong FP-tree cho CSDL, việc khai phá các mẫu phổ biến chỉ thực hiện trên FP-tree mà không cần duyệt CSDL nữa
Bắt đầu từ dưới lên của bảng header và cây Với mỗi thuộc tính A dùng nút liên kết duyệt qua tất cả cá nút trên cây mà xuất hiện A, với mỗi nút N mà N.item-name = A thì xác định các tập phổ biến có xuất hiện A
Thuật toán FP-growth như sau:
Procedure FP-growth (Tree,)
1 if Tree chứa 1 đường đơn thì {
2 Để P là phần đường đơn của cây Tree;
3 Để Q là phần nhiều đường với nút đỉnh của cành được thay bằng một gốc null;
4 For mỗi tổ hợp của các nút trong đường P
5 Sinh các mẫu với độ hỗ trợ bằng độ hỗ trợ nhỏ nhất của nút trong
6 Để tập freq_pattern_set(P) là tập các mẫu được sinh đó}
7 Ngược lại để Q là Tree
8 For mỗi thuộc tính ai trong Q {
9 Sinh mẫu = ai với độ hỗ trợ = độ hỗ trợ của ai
10 Xây dựng mẫu cơ sở phụ thuộc của và từ đó FP-tree phụ thuộc của là Free;
11 Nếu Tree 0
12 Thì gọi FP_growth(Tree, );
13 Để tập freq_pattern_set(Q) là tập các mẫu được sinh đó
14 Trả lại (freq_pattern_set(P) freq_pattern_set(Q) (freq_pattern_set(P)
(freq_pattern_set(Q)))
Đánh giá thuật toán FP-growth: Thuật toán này như đã phân tích ở trên, nó thực hiện
hiệu quả hơn thuật toán Apriori, thực hiện tốt cho mẫu phổ biến ngắn cũng như dài
Độ cao của cây được giới hạn bởi kích thước của bản ghi lớn nhất
- Thuật toán không bao giờ bị ngắt bởi một mẫu dài nào của mọi bản ghi
Trang 27Cây FP-tree duy trì đầy đủ thông tin cho khai phá các mẫu phổ biến Đồng thời thuật toán cũng rút gọn hợp lý các thông tin không cần thiết khi loại bỏ ngay tử đầu các thuộc tính không phổ biến
- Dùng kỹ thuật sắp theo thứ tự giảm dần của tần số xuất hiện làm cho các thuộc tính phổ biến hơn được chia sẻ nhiều hơn Cây FP-tree không bao giờ lớn hơn CSDL gốc
Trang 282 CHƯƠNG 2 - LUẬT KẾT HỢP MỜ
Trong chương 1 chúng ta đã tìm hiểu một vài thuật toán với mục đích tìm những luật kết hợp trong CSDL đối với các thuộc tính nhị phân Tuy nhiên 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 đó Trong thực tế các thông tin không rõ ràng, không đầy đủ, không chắc chắn và mang tính định lượng là phổ biến
Ví dụ 2.1
Ta có một cơ sở dữ liệu về sử dụng internet như sau:
tính
HĐH sử dụng
Thời gian
đã sử dụng (năm)
Thời gian
sử dụng hàng ngày (giờ/ngày)
Bảng 2.1 Cơ sở dữ liệu giao tác (Ví dụ 2.1)
Trong cơ sở dữ liệu trên ta thấy thuộc tính Giới tính là thuộc tính nhị phân; thuộc tính Tuổi, Thời gian đã sử dụng, Thời gian sử dụng hàng ngày là các thuộc tính số; thuộc tính HĐH sử dụng là thuộc tính hạng mục
Đối với những bài toán dạng này người ta sử dụng cách rời rạc hóa dữ liệu cho các thuộc tính để chuyển chúng về dạng nhị phân
Với thuộc tính hạng mục Ij (k - mục) ta sẽ biến đổi nó thành k thuộc tính nhị phân Ij/V1, Ij/V2….Ij/Vk
Giá trị của bản ghi tại thuộc tính Ij/Vp = True nếu giá trị của bản ghi đó tại thuộc tính Ij (gốc) là Vp; và ngược lại nhận giá trị False nếu ngược lại
Trang 29Với bài toán trên thì thuộc tính HĐH sử dụng có k = 2 và ta có thể biến đổi
CSDL thành
tính
HĐH sử dụng/
Windows
HĐH sử dụng/
Mac
Thời gian
đã sử dụng (năm)
Thời gian
sử dụng hàng ngày (giờ/ngày)
Bảng 2.2 Cơ sở dữ liệu sau khi rời rạc hóa thuộc tính chỉ mục (Ví dụ 2.1)
Đối với các thuộc tính số người ta có thể rời rạc hóa bằng cách chia khoảng giá trị rồi sau đó áp dụng như đối với thuộc tính hạng mục Tuy nhiên ta gặp phải vấn đề
“điểm biên gãy” (sharp boundary problem)
Ví dụ thuộc tính Tuổi ta chia làm các khoảng [0 6], [6 13], [14,17], [18 30],
[31 55], [56 100] Giả sử với độ trợ tối thiểu minssup khoảng [6 13] không thỏa mãn, khoảng [14 17] thỏa mãn Tuy nhiên nếu ta chia khoảng [10 14] thì lại thỏa mãn độ
hỗ trợ tối thiểu Như vậy phép phân khoảng có thể tạo ra điểm biên gãy giữa giá trị 13,14 Chính vì vậy giải pháp khai phá dữ liệu bằng luật kết hợp mờ đã đem lại hiệu quả đáng kể trong việc giải quyết vấn đề trên
Trước khi cùng tìm hiểu cách khai phá dữ liệu bằng luật kết hợp mờ chúng ta cùng tìm hiểu các khái niệm liên quan đến tập mờ
2.2.1 Tập mờ:
L.A Zaden đã sáng lập lý thuyết tập mờ (năm 1965), trong đó tập mờ được coi như là
sự mở rộng trực tiếp của tập hợp kinh điển
Trang 30 A (x 1 ) = 0.3
X
A(x2) = 1
x2
x1
2.2.1.1 Định nghĩa tập mờ:
Cho X - Không gian nền X (X )
A - tập mờ trên X, được xác định bởi hàm thuộc
A1 - tập học viên cao học của khóa K10
A2 - tập học viên cao học chăm chỉ
Trang 31c z b b c
z c
b z a a b
a z
a z
d z c c d
z d
c z b
b z a a b
a z
a z
z
M
0 1
0
) (
a z z
a z
2 ) (
2
0)(
1
ba
a
0
1
Trang 322.2.3 Các phép toán trong logic mờ (toán tử mờ)
Định nghĩa t-chuẩn (t-norm):
Hàm số T:[0,1] x [0,1] [0,1] gọi là t-chuẩn nếu thỏa mãn:
iii) x1 x2 , y1 y2 thì T(x1, y1) T(x2, y2) x,y[0,1] - đk đơn điệu
Một số loại t-chuẩn:
T1(x,y) = min (x,y)
T2 (x,y) =
xy y x
1
y x
y x if
if y
x
Trang 33Td (x,y) =
1),max(
1),max(
0
),min(
y x if
if y x
2.2.3.3 Phép tuyển (disconjunction):
Định nghĩa t-đối chuẩn (t-conorm, suy rộng phép OR):
t-đối chuẩn là hàm số S: [0,1] x [0,1] -> [0,1] thỏa mãn
iii) x1 x2 , y1 y2 thì S(x1, y1) S(x2, y2) với x1,y1,x2,y2[0,1] - đk đơn điệu
iv) S(x,S(y,z)) = S(S(x,y),z) với x,y,z[0,1] - đk kết hợp
Một số loại t-đối chuẩn
S1(x,y) = max (x,y)
0),min(
1
),max(
y x
y x if
if y
x
Khai phá luật kết hợp mờ [7] 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 Ở phần này chúng ta sẽ đưa ra khái niệm luật kết hợp mờ và một số nhận xét về tầm quan trọng của các tập thuộc tính và luật
2.3.1 Cơ sở dữ liệu và thuộc tính:
- I = {I1, I2,….,In} là tập tất cả các thuộc tính (n thuộc tính)
Iv là thuộc tính thứ v trong I có miền xác định là dom(Iv)
- D = (T1, T2, …, Tm) là cơ sở dữ liệu gồm m bản ghi
Tk(Iv) là giá trị của thuộc tính Iv tại bản ghi Tk Tk(Iv) dom(Iv)
Áp dụng phương pháp mờ hóa đối với các thuộc tính định lượng, chúng ta gắn thuộc tính Iv với một tập các tập mờ:
v v v
v f f f
F 1, 2,
Trang 34Ví dụ: Thuộc tính “Tuổi” của khách hàng có thể được mô tả bằng 3 tập mờ (p=3)
FTuổi = {trẻ, trung niên, cao tuổi}
Mỗi tập mờ f trên miền xác định dom(I v j v) được biểu diễn bằng hàm thuộc:
)(
j
v dom I
Với X, Y là các tập thuộc tính (X,Y I) Khi đó bài toán tìm luật kết hợp mờ trên
CSDL D là bài toán tìm cách rút ra các luật dạng Nếu X là A thì Y là B A và B là tập
các tập mờ tương ứng của các thuộc tính trong X và Y
p
X X
2 1
q
Y Y
2 1
p
A X A X A
X f f f
A , 2 , ,
2 1 1
q
B Y B Y B
Y f f f
B , 2, ,
2 1 1
với
1 1
cả sự ủng hộ là lớn hơn ngưỡng do người sử dụng đưa ra
Chúng ta chỉ quan tâm tới những luật có đủ độ quan trọng (significance) và độ chắc chắn (certainty) cao
2.3.2 Độ đo của luật
2.3.2.1 Độ ủng hộ của bản ghi cho mệnh đề
Cho cơ sở dữ liệu D trên tập tất cả các thuộc tính I, <X,A> là mệnh đề trên I Với d là một bản ghi trên CSDL D (d D), khi đó, độ ủng hộ của bản ghi d cho mệnh đề
<X,A> được tính bởi:
d I X d I X d I Xp
) , , (
2 2 2 1
1 1
p p
A X A
X A
X
A X d
vote <2.4>
Ở đây X I X I X I X p
2 1
p
A X A X A
X f f f
A , 2, ,
2 1 1
f và d I X i là giá trị của thuộc tính
i
X
I trên bản ghi d
: là toán tử