Qua môn học phương pháp toán trong tin học, người viết đã được tìm hiểu về lýthuyết tập thô, trong đó có thế ứng dụng vào các bài toán với dữ liệu lớn giúp làm giảm đimức độ đồ sộ của hệ
Trang 1I H C QU C GIA THÀNH PH H CHÍ MINH ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH ỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH ỐC GIA THÀNH PHỐ HỒ CHÍ MINH ỐC GIA THÀNH PHỐ HỒ CHÍ MINH Ồ CHÍ MINH
TR ƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN NG ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH I H C CÔNG NGH THÔNG TIN ỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH Ệ THÔNG TIN
BÀI TI U LU N MÔN: PH ỂU LUẬN MÔN: PHƯƠNG PHÁP TOÁN TRONG TIN HỌC ẬN MÔN: PHƯƠNG PHÁP TOÁN TRONG TIN HỌC ƯƠNG PHÁP TOÁN TRONG TIN HỌC NG PHÁP TOÁN TRONG TIN H C ỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
LÝ THUY T T P THÔ VÀ KHAI PHÁ LU T K T ẾT TẬP THÔ VÀ KHAI PHÁ LUẬT KẾT ẬN MÔN: PHƯƠNG PHÁP TOÁN TRONG TIN HỌC ẬN MÔN: PHƯƠNG PHÁP TOÁN TRONG TIN HỌC ẾT TẬP THÔ VÀ KHAI PHÁ LUẬT KẾT
Trang 2Tp.HCM, Tháng 11/2014
LỜI NÓI ĐẦU
Ngày nay, phát hiện tri thức (Knowledge Discover) và khai phá dữ liệu (Datamining) là ngành khoa học đang ngày được quan tâm nghiên cứu và phát triển do nhữngứng dụng thiết thực mà nó mang lại Tuy nhiên, thông thường dữ liệu lớn yêu cầu cần phảikhai thác một cách có hệ thống, phân loại dữ liệu sẽ quyết định đến hiệu quả Đó cũng làmột trong những mục đích của lý thuyết tập thô
Lý thuyết tập thô được nhà logic học BaLan Zdzislak Pawlak giới thiệu vào đầunhững năm 80, bài toán kinh điển của ông là Rough Sets xuất bản năm 1982, được xem làmột cách tiếp cận mới để phát hiện tri thức Nó cung cấp một công cụ để phân tích, tríchchọn dữ liệu từ các dữ liệu không chính xác để phát hiện ra mối quan hệ giữa các đốitượng và những tiềm ẩn trong dữ liệu
Qua môn học phương pháp toán trong tin học, người viết đã được tìm hiểu về lýthuyết tập thô, trong đó có thế ứng dụng vào các bài toán với dữ liệu lớn giúp làm giảm đimức độ đồ sộ của hệ thống dữ liệu Vì thế, người viết chọn đề tài lý thuyết tập thô và ứngdụng vào data mining để trình bày một số hiểu biết của mình
Nhân đây, xin gửi lời cảm ơn chân thành đến TS Dương Tôn Đảm trường Đại học
Công Nghệ Thông Tin đã tận tình giảng dạy, hướng dẫn để người viết hiểu thêm và hoànthành tiểu luận này
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN
Trang 4
MỤC LỤC
LỜI NÓI ĐẦU 1
NHẬN XÉT CỦA GIẢNG VIÊN 2
MỤC LỤC 3
Phần 1 CƠ SỞ LÝ THUYẾT 5
1.1 Hệ thống thông tin và tập thô 5
1.1.1 Hệ thống thông tin 5
1.1.2 Quan hệ không phân biệt được 5
1.1.3 Tập thô 8
1.1.4 Các tính chất của xấp xỉ 9
Định lý 1.1 9
1.1.5 Độ chính xác của xấp xỉ 10
1.1.6 Bảng quyết định 10
1.1.7 Rút gọn và nhân 12
1.1.8 Ma trận phân biệt được và hàm phân biệt được 12
1.2 Thuật toán tìm tập rút gọn 14
1.2.1 Thuật toán sử dụng các phép toán đại số 14
1.2.1.1 Định nghĩa 14
1.2.1.2 Thuật toán tìm nhân 15
1.2.1.3 Thuật toán tìm tập rút gọn theo xấp xỉ ngoài 16
1.2.2 Thuật toán dựa vào số cặp phân biệt được 17
1.2.2.1 Một số ký hiệu 17
1.2.2.2 Cơ sở toán học 19
1.2.2.3 Thuật toán 20
Phần 2 LUẬT KẾT HỢP VÀ THUẬT TOÁN APRIORI 23
2.1 Khái niệm về luật và luật kết hợp 23
2.1.1 Hệ luật dẫn 23
2.1.2 Định nghĩa luật kết hợp 23
2.2 Một số tính chất của tập mục phổ biến và luật kết hợp 25
Trang 52.2.1 Một số tính chất với tập mục phổ biến 25
2.2.2 Một số tính chất với luật kết hợp 26
2.3 Thuật toán Apriori 27
2.3.1 Giới thiệu 27
2.3.2 Nguyên tắc 27
2.3.3 Mô tả thuật toán 28
2.3.4 Mã giả 28
2.3.5 Ví dụ minh họa 29
2.3.5.1 Ví dụ 1 29
2.3.5.2 Ví dụ 2 31
Phần 3 CHƯƠNG TRÌNH DEMO APRIORI 33
3.1 Giao diện chương trình 33
3.2 Sử dụng chương trình 33
3.3 Xây dựng lớp Apriori 33
3.4 Xây dựng LargeItemSet 34
KẾT LUẬN 35
TÀI LIỆU THAM KHẢO 36
Trang 6tượng, bảng này gọi là bảng hệ thống thông tin Hệ thống thông tin là một cặp S = (U, A),
U là một tập hữu hạn khác rỗng các đối tượng gọi là tập vũ trụ hay là tập phổ dụng , A là
một tập hữu hạn khác rỗng các thuộc tính Với mỗi u є U và a є A, ta ký hiệu u(a) là giá trị của đối tượng u tại thuộc tính a Nếu gọi I a là tập tất cả giá trị của thuộc tính a, thì u(a) є Ia
với mọi u є U Bây giờ, nếu B = {b1, b2, ,bk} ⊆ A, ta ký hiệu bộ các giá trị u(bi ) bởi u(B).
Như vậy, nếu u và v là hai đối tượng thì ta sẽ viết u(B)=v(B) nếu u(b i ) = v(b i ), với mọi i =1,
2, , k
1.1.2 Quan hệ không phân biệt được
Xét hệ thống thông tin S = (U, A), với mỗi tập thuộc tính B ⊆ A tạo ra một quan hệ hai ngôi trên U, ký hiệu IND(B).
IND(B) = {(u, v) є U x U | u(a) = v(a), a є B}
IND(B) được gọi là quan hệ B_không phân biệt được Dễ kiểm chứng đây là một quan hệ tương đương trên U Với mọi đối tượng u є U, lớp tương đương của u trong quan hệ IND(B) được kí hiệu bởi [u]B Tập thương xác định bởi quan hệ IND(B) được ký hiệu
Ví dụ 1.1: Xét hệ thống thông tin cho ở bảng 1.1
Trang 7x 2 Có Không Cao Có
Bảng 1.1 Bảng dữ liệu bệnh cúm
Trong đó:
Tập đối tượng U = {x1, x2, x3, x4, x5, x6}
Tập thuộc tính A = {Đau đầu, Đau cơ, Sốt, Cúm}.
Trong bảng, các bệnh nhân x 2 , x 3 và x 5 không phân biệt được đối với thuộc tính Đau đầu,
bệnh nhân x 3 và x 6 không phân biệt được đối với thuộc tính Đau cơ, Sốt và Cúm, và bệnh
nhân x 2 , x 5 không phân biệt được đối với thuộc tính Đau đầu, Đau cơ và Sốt
Tương tự cho các cặp thuộc tính khác
Ví dụ 1.2: Xét tập 10 đồ chơi với các thuộc tính: Màu sắc, kích thước, hình dáng được cho
trong bảng sau:
Trang 8Tập thuộc tính A = {Màu sắc, kích thước, Hình dáng}.
Trong bảng trên các đồ chơi u 1 , u 2 , u 10 không phân biệt được về màu sắc và hình dáng,
nhưng phân biệt được về kích thước Tương tự các đồ chơi u 3 , u 4 không phân biệt đượcKích thước và hình dáng nhưng phân biệt được về màu sắc
Do đó:
U/{Màu sắc} = {{u 1 , u 2 , u 6 , u 10 },{u 3 , u 5 , u 9 },{u 4 , u 7 , u 8}};
U/{kích thước} = {{u 1 , u 5 , u 8 , u 9 },{u 2 , u 6 , u 7 },{u 3 , u 4 , u 10}};
U/{Hình dáng} = {{u 1 , u 2 , u 6 , u 10 },{u 3 , u 4 , u 9 },{u 5 , u 7 , u 8}}
Trang 9(X) = {u є U | {[u]B X≠ ∅}
R(X) và (X) lần lượt gọi là R-xấp xỉ dưới và R-xấp xỉ trên của tập X.
Tập R(X) bao gồm các phần tử của U chắc chắn thuộc vào X.
Tập (X) bao gồm các phần tử của U có khả năng được phân loại vào những phần tử thuộc X ứng với quan hệ R.
Từ hai tập xấp xỉ người ta định nghĩa các tập:
Ký hiệu tập thương của IND(B) trên U là U/B, các xấp xỉ trên, xấp xỉ dưới của X có thể
viết lại:
R(X) = {W є U/B | W ⊆ X}
(X) = {W є U/B | X≠ ∅}
Trong trường hợp BNB(X) ≠ ∅, X được gọi là tập thô, ngược lại X được gọi là tập rõ.
Hình 1.1 Minh họa tập thô
Đối với một hệ thống thông tin S = (U, A), B, D ⊆ A, ký hiệu R = IND(B), người ta gọi miền khẳng định dương của D là tập được xác định như sau:
Trang 10B-Rõ ràng POS B (D) là tập tất cả các đối tượng u sao cho với mọi v є U mà u(B)= v(B) ta đều
có u(D) = v(D) Nói cách khác, POS B (D) = { u є U | [u]B ⊆ [u]D }
Trang 11Trong đó card(X) = |X| là lực lượng (số phần tử) của tập X Rõ ràng
với R.
1.1.6 Bảng quyết định
Bảng quyết định là một hệ thống thông tin có dạng T = (U, A) , trong đó tập thuộc tính A được chia thành hai tập thuộc tính rời nhau C và D, C được gọi là tập thuộc tính điều kiện, còn D là tập thuộc tính quyết định Tức là T = (U, C D), với C D = ∅.
Ví dụ 1.3: Hệ thống thông tin S = (U, A) biểu diễn tri thức về bệnh cúm được thể hiện
trong bảng 1.1 là một bảng quyết định T = (U, C D)
Trong đó :
U = {x 1 , x 2 , x 3 , x 4 , x 5 , x 6} ;
A = {Đau đầu, đau cơ, sốt, cúm} ;
Tập thuộc tính điều kiện C = {Đau đầu, đau cơ, sốt} ;
Tập thuộc tính quyết định D = {Cúm}.
Trang 12x 1 Không Có Cao Có
Bảng 1.3 Bảng quyết định
Cho một bảng quyết định T = (U, C D), giả sử U/C = {X 1 , X 2 , …X m } và U/D = {Y 1 , Y 2 ,
…Y m } Một lớp X i є U/C được gọi là nhất quán nếu u(d) = v(d), u,v є X i , d є D, lúc này cũng có thể viết u(D) = v(D) = Xi(D); một lớp Y j є U/Dđược gọi là nhất quán ngược nếu
Một bảng quyết định T = (U, C D), là nhất quán nếu mọi lớp X i є U/C là nhất quán,
ngược lại T được gọi là không nhất quán Vì vậy, ta có nếu thì T = (U, C D)
là nhất quán Ngược lại thì T nhất quán ngược
Có thể thấy bảng quyết định là nhất quán khi và chỉ khi POSC(D) = U.
Trong trường hợp bảng không nhất quán thì POSC(D) chính là tập con cực đại của U sao cho phụ thuộc hàm C D đúng.
1.1.7 Rút gọn và nhân
Xét một bảng quyết định T = (U, C D).
Tập thuộc tính R ⊆ C được gọi là rút gọn của C nếu POSR(D) = POSC(D).
Nhân của tập thuộc tính điều kiện C ký hiệu CORE (C) được định nghĩa :
CORE(C) = RED(C) RED(C) là tập hợp tất cả rút gọn của C.
Ngoài ra, người ta cũng định nghĩa rút gọn C – miền khẳng định dương của D:
Nếu B ⊆ C thỏa
B được gọi là rút gọn C – miền khẳng định dương của D.
Trang 131.1.8 Ma trận phân biệt được và hàm phân biệt được
Xét bảng quyết định T = (U, C D), với U = {u1, u2, …,un} Ma trận phân biệt được của T
ký hiệu D Dis = (mij)nxm là một ma trận đối xứng, trong đó mỗi phần tử của nó là một tậpthuộc tính được xác định như sau:
Hàm phân biệt được ƒT là một hàm boole, được xác định từ ma trận phân biệt M(T) nhưsau :
Trong đó, mỗi thuộc tính được đặt tương ứng một biến logic cùng tên và
Như vậy, m ij là tập hợp gồm tất cả các thuộc tính điều kiện có thể xếp các đối tượng u i và
u j vào các lớp tương đương khác nhau theo phân hoạch trên U đối với thuộc tính đó Nếu
nhưng khác nhau trên D) Giá trị λ hàm ý rằng cặp đối tượng u i và u j không phân biệt trêntập thuộc tính quyết định
Nếu R là một rút gọn thì với mỗi a, b є R ta có Dis({a}≠Dis({b})).
Ví dụ 1.4: Xét bảng quyết định trong bảng 1.1, ma trận phân biệt được trong bảng 1.4,
trong đó các ký hiệu Đ, C, N tượng trưng cho các thuộc tính “Đau đầu”, “Đau cơ”, “Sốt”
Trang 14Bảng 1.4 Ma trận phân biệt được xây dựng từ bảng 1.1
Từ ma trận phân biệt được trong bảng 1.4, ta có thể kết luận bảng quyết định cho bảng 1.1
là không nhất quán, vì m25=∅.
Ví dụ 1.5: Xét m t b ng quy t đ nh khác trong b ng 1.5ột bảng quyết định khác trong bảng 1.5 ảm ết định khác trong bảng 1.5 ịnh khác trong bảng 1.5 ảm
U Bằng cấp Kinh nghiệm Tiếng Anh Lời giới thiệu Tuyển dụng
Bảng 1.5 Ví dụ về bảng quyết định
Các ký hiệu b, k, t, l tương ứng với các thuộc tính “Bằng cấp”, “Kinh nghiệm”, “TiếngAnh”, “Lời giới thiệu”, dựa vào ma trận phân biệt được (bảng 1.6) ta có thể kết luận bảngquyết định trong bảng 1.5 là nhất quán
Trang 151.2 Thuật toán tìm tập rút gọn
1.2.1 Thuật toán sử dụng các phép toán đại số
1.2.1.1 Định nghĩa
Cho T = (C, D) là một bảng quyết định nhất quán Thuộc tính c j є C được gọi là thuộc tính
lõi (hay không cần thiết) nếu
1.2.1.2 Thuật toán tìm nhân
Độ phức tạp của thuật toán là O(kn log n), với k = Card(C) và n = Card(U)
Ví dụ 1.6: Xét bảng quyết định được cho trong bảng 1.7 sau, lưu thông tin về 8 chiếc xe
Bảng 1.7 Bảng thông tin về các xe hơi
Từ bảng trên ta có :
Trang 16Nên ta có một nhân là c 1 = Weight.
1.2.1.3 Thuật toán tìm tập rút gọn theo xấp xỉ ngoài
Input : T = (C, D).
Output : Tập rút gọn R
Method :
1 Tìm core theo thuật toán trên ;
2 Sắp xếp tập C \ Core theo thứ tự ưu tiên tăng dần ;
Như vậy, xuất phát từ R = C, thuật toán thực hiện tối đa k vòng lặp để thực hiện loại bỏ R :
= R \ {c j} Trong mỗi vòng lặp này, chúng ta phải kiểm tra điều kiện IF ở trên Điều đó đòi
hỏi sắp xếp lại đối tượng trong U theo thứ tự tăng/ giảm giá trị của các thuộc tính trong R \ {c j } và D Từ đó, độ phức tạp của thuật toán này là O(kn log n).
Ví dụ 1.7: Xét bảng quyết định được cho trong bảng 1.7 ở trên, giả sử các thuộc tính được
sắp xếp theo thứ tự chỉ số thuộc tính tương ứng ta có:
Core = {c j}
Trang 17Khi B = ∅, hai đại lượng trên được viết một cách đơn giản là:
Còn khi V = U, ta lại viết:
Trang 18Còn nếu V = U và B = ∅ ta chỉ ký hiệu đơn giản:
Tóm lại:
Ví dụ 1.8: Xét tập 10 đồ chơi với tập thuộc tính điều kiện C = {Màu sắc, kích thước, hình
dáng} và thuộc tính quyết định D = {Phù hợp lứa tuổi} được cho trong bảng 1.7.
Cho B = {Màu sắc, hình dáng} ; c= “Kích thước” và V = {u 1 , u 2 , u 3 , u 8 , u 9 , u 10} Khi đó:
U Màu sắc Kích thước Hình dáng Phù hợp lừa tuổi
Trang 20Ví dụ 1.10: Xét bảng quyết định chọn giáo viên gồm 9 đối tượng với tập thuộc tính điều
kiện C = {c 1 , c 2 , c 3 , c 4} tương ứng là “Trình độ chuyên môn”, “Yêu nghề”, “Khả năng sư
phạm”, “Kinh nghiệm giảng dạy” (tính bằng năm) và thuộc tính quyết định d có hai giá
trị : 1 (“Chấp nhận”); 0 (“từ chối”), được cho trong bảng 1.9:
Trang 21Bảng 1.8 Bảng chọn lựa giáo viên
Thực hiện thuật toán trên, ta nhận được kết quả từng bước như sau :
Trang 22Vì α1 = α2 = 0 nên ta chọn r = 1 hoặc r = 2 Thuật toán dừng.
Ta được tập rút gọn là R 1 = {c 1 , c 4 } và R 2 = {c 2 , c 4 }, tập lõi là Core = {c 4}
Trang 23Phần 2 LUẬT KẾT HỢP VÀ THUẬT TOÁN APRIORI
2.1.1 Hệ luật dẫn
Trong modul chương trình xử lý các thông tin của vấn đề đang nằm trong bộ nhớtạm thời thông qua một CSDL chứa các luật dẫn và bộ phận suy diễn để suy ra thông tinmới
Mô hình hệ luật dẫn bao gồm 3 bộ phận chính:
Cơ sở tri thức : tập các luật dẫn, mô hình bộ nhớ lâu bền của con người.
Bộ nhớ tạm thời (bộ nhớ hoạt động): chứa đựng các sự kiện khởi đầu của vấn đề và các sựkiện có từ suy diễn, mô hình bộ nhớ tạm thời của con người
Động cơ suy diễn: mô hình hoá lập luận của con người bằng cách kết hợp các sự kiện của
vấn đề với các luật trong CSTT để suy diễn ra thông tin mới
Trong CSTT với các trạng thái chính là các sự kiện trong bộ nhớ hoạt động và bộ phận lậpluận chính là động cơ suy diễn Khi các luật được phát tác thì các kết luận được đưa vào bộnhớ hoạt động thành các sự kiện mới và quá trình lặp lại liên tục đến khi lặp điều kiệndừng của hệ thống ( không có luật nào thoả mãn điều kiện đang có, hay không phát sinhthêm được tập mục phổ biến, thông tin mới…)
Mô tả một hệ luật dẫn: Các luật dẫn hoặc gọi là luật IF THEN là những mệnh đề có dạng
LHS=>RHS trong đó LHS xác định các điều kiện hoặc hoàn cảnh phải được thoả mãn choluật được áp dụng, RHS là những tác động phải xảy ra khi luật được áp dụng
2.1.2 Định nghĩa luật kết hợp
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 gọi là itemsets, và X Y Ở đây, X được gọi là tiền đề, Y là mệnh đề kết quả
Trang 24Hai 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
Y
X 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 %
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.
Ví dụ : Khi phân tích giỏ hàng của người mua hàng trong một siêu thị ta có được luật kiểu
như : 80% khách hàng mua sữa thì cũng mua bánh mì 30 % thì mua cả hai thứ Trong đó
“mua sữa ” là tiền đề còn “mua bánh mì ” là kết luận của luật Con số 30% là độ hỗ trợ
của luật còn 80% là độ tin cậy của luật
Chúng ta nhận thấy rằng tri thức đem lại bởi luật kết hợp dạng trên có sự khác biệt rấtnhiều so với thông tin thu được từ các câu lệnh truy vấn dữ liệu thông thường như SQL
Đó là những tri thức, những mối liên hệ chưa biết trước và mang tính dự báo đang tiềm ẩntrong dữ liệu Những tri thức này không đơn giản là kết quả của phép nhóm , tính tổng haysắp xếp mà là của một quá trình tính toán khá phức tạp
Định nghĩa 4: Nếu tập X có support(X )> minsup thì X gọi là tập phổ biến ( Frequent
itemset ) Kí hiệu các tập này là FI
Định nghĩa 5: Một tập mục X được gọi là đóng (closed) nếu không có một tập cha nào
của X có cùng độ hỗ trợ với nó, tức là không tồn tại một tập mục X’ nào mà X’ X vàt(X) = t(X’) (với t(X), t(X’) tương ứng là tập các giao tác chứa tập mục X và X’) Ký hiệutập phổ biến đóng là FCI
Định nghĩa 6 : Nếu X là phổ biến và không tập cha nào của X là phổ biến, ta nói rằng X
là một tập phổ biến lớn nhất (maximally frequent itemset) Ký hiệu tập tất cả các tập phổ
biến lớn nhất là MFI Dễ thấy MFI FCI FI
Quá trình tìm các luật kết hợp thường gồm 2 pha:
Pha 1: Tìm tất cả các tập phổ biến (tìm FI) trong cơ sở dữ liệu T
Pha 2: Sử dụng tập FI tìm được ở pha 1 để sinh ra các luật tin cậy (interesting rules)