Người ta ước đoán rằng lượng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm và theo đó số lượng cũng như kích cỡ của các cơ sở dữ liệu CSDL cũng tăng lên một cách nhanh chóng..
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 2CHƯƠNG 1 : TỔNG QUAN KHAI PHÁ DỮ LIỆU 4
1.1 Giới thiệu 4
1.2 Khá phá dữ liệu là gì? 4
1.3 Quá trình khai phá dữ liệu: 6
1.4 Nhiệm vụ của khai phá dữ liệu: 7
1.5 Các ứng dụng tiềm năng 9
CHƯƠNG 2 : TẬP PHỔ BIẾN VÀ LUẬT KẾT HỢP 10
2.1 Giới thiệu: 10
2.2 Các khái niệm cơ bản: 10
2.2.1 Độ hỗ trợ 10
2.2.2 Độ tin cậy 10
2.2.3 Tập phổ biến 11
2.2.4 Tập phổ biến tối đại 11
2.3 Khai phá luật kết hợp: 11
2.4 Phân loại luật kết hợp: 13
2.5 Thuật toán Apriori - ứng dụng theo phương pháp luật kết hợp: 14
2.5.1 Ý tưởng chính của thuật toán Apriori: 14
2.5.2 Thuật toán Apriori Algorithm: 15
2.5.3 Mã giả: 21
2.5.4 Cải tiến thuật toán Apriori 23
CHƯƠNG 3 CÀI ĐẶT THỬ NGHIỆM APRIORI 26
3.1 Giao diện chương trình: 26
3.2 Hướng dẫn sử dụng chương trình 27
CHƯƠNG 4 NHẬN XÁT – ĐÁNH GIÁ 30
Trang 3LỜI MỞ ĐẦU
Ngày nay, chúng ta đang sống trong thế kỷ bùng nổ về khoa học công nghệ
mà đặc biệt là sự phát triển vượt bậc về công nghệ tông tin Công nghệ thông tin
và việc ứng dụng công nghệ thông tin trong nhiều lĩnh vực của đời sống, kinh tế
xã hội trong nhiều năm qua cũng đồng nghĩa với lượng dữ liệu đã được các cơ quan thu thập và lưu trữ ngày một tích lũy nhiều lên Bên cạnh đó, các thiết bị thu thập dữ liệu tự động tương đối phát triển đã tạo ra những kho dữ liệu khổng lồ, như các dữ liệu ngân hàng, hàng không, giáo dục.… Cùng với sự phát triển mạnh mẽ của công nghệ, các thiết bị lưu trữ và các thiết bị thu thập thông tin tự động đã cho phép xây dựng được những hệ thống thông tin có khả năng tự động hoá ngày càng cao Vấn đề đặt ra là làm thế nào để xử lý khối lượng thông tin cực lớn như vậy để phát hiện ra các tri thức tiềm ẩn trong núi dữ liệu khổng lồ này Những tri thức thu được như vậy chúng được chuyên môn hoá, phân chia theo các lĩnh vực ứng dụng như sản xuất, kinh doanh, tài chính, nghiên cứu… Các cơ sở
dữ liệu cần phải đem lại tri thức hơn là chính dữ liệu đó
Để hiểu hơn về vấn đề này em xin trình bày báo cáo khóa luận môn học với
đề tài “ Khai phá dữ liệu bằng luật kết hợp và ứng dụng”
Em xin chân thành cảm ơn PGS.TS Đỗ Phúc – Giảng viên môn học “Khai phá dữ liệu” đã truyền đạt những kiến thức vô cùng quý báu, xin chân thành cám
ơn ban cố vấn học tập và ban quản trị chương trình đào tạo thạc sĩ Công nghệ thông tin qua mạng của Đại Học Quốc Gia TPHCM đã tạo điều kiện về tài liệu
tham khảo để em có thể hoàn thành môn học này
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 5
CHƯƠNG 1 : TỔNG QUAN KHAI PHÁ DỮ LIỆU
1.1 Giới thiệu
Khoảng hơn một thập kỷ trở lại đây, lượng thông tin được lưu trữ trên các thiết bị điện tử (đĩa cứng, CD-ROM, băng từ, v.v.) không ngừng tăng lên Sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ Người ta ước đoán rằng lượng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm và theo đó số lượng cũng như kích cỡ của các cơ sở dữ liệu (CSDL) cũng tăng lên một cách nhanh chóng Nói một cách hình ảnh là chúng ta đang “ngập” trong dữ liệu nhưng lại “đói” tri thức Câu hỏi đặt ra là liệu chúng ta có thể khai thác được gì từ những “núi” dữ liệu tưởng chừng như “bỏ đi” ấy không ?
Data Mining ra đời như một hướng giải quyết hữu hiệu cho câu hỏi vừa đặt
ra ở trên Khá nhiều định nghĩa về Data Mining và sẽ được đề cập ở phần sau, tuy nhiên có thể tạm hiểu rằng Data Mining như là một công nghệ tri thức giúp khai thác những thông tin hữu ích từ những kho dữ liệu được tích trữ trong suốt quá trình hoạt động của một công ty, tổ chức nào đó
1.2 Khá phá dữ liệu là gì?
Khai phá dữ liệu (Data mining) là một khái niệm ra đời vào những năm cuối của thập kỷ 80 Nó 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 (regularities) trong tập dữ liệu
Khái niệm về khai phá dữ liệu (Data Mining) hay phát hiện tri thức (Knowledge Discovery) có rất nhiều cách diễn đạt khác nhau nhưng về bản chất
đó là quá trình tự động trích xuất thông tin có giá trị (thông tin dự đoán – Predictive Information) ẩn chứa trong khối lượng dữ liệu khổng lồ trong thực tế
Trang 6Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm Phát
hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery in Database – KDD) để
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 từ dữ liệu
Quá trình xử lý khai phá dữ liệu bắt đầu bằng cách xác định chính xác vấn
đề cần giải quyết Sau đó sẽ xác định các dữ liệu liên quan dùng để xây dựng
giải pháp Bước tiếp theo là thu thập các dữ liệu có liên quan và xử lý chúng
thành dạng sao cho giải thuật khai phá dữ liệu có thể hiểu được Về lý thuyết thì
có vẻ rất đơn giản nhưng khi thực hiện thì đây thực sự là một quá trình rất khó khăn, gặp phải nhiều vướng mắc như: các dữ liệu phải được sao ra nhiều bản (nếu được chiết xuất vào các tệp), quản lý các tệp dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệu thay đổi),…
Bước tiếp theo là chọn thuật toán khai phá dữ liệu thích hợp và thực hiện
việc khai phá dữ liệu để tìm được các mẫu (pattern) có ý nghĩa dưới dạng biểu diễn tương ứng với các ý nghĩa đó (thường thì được biểu diễn dưới dạng các luật xếp loại, cây quyết định, phát sinh luật, biểu thức hồi quy,…)
Định nghĩa: Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng để
tự động khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ liệu khổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập dữ liệu đó
Data mining nhấn mạnh 2 khía cạnh chính đó là khả năng trích xuất thông
tin có ích Tự động (Automated) và thông tin mang tính dự đoán (Predictive)
Data Mining liên quan chặt chẽ đến các lĩnh vực sau:
- Statistics (Thống kê): Kiểm định model và đánh giá tri thức phát hiện được
Trang 7- Machine Learning (Máy học): Nghiên cứu xây dựng các giải thuật trên nền tảng của trí tuệ nhân tạo giúp cho máy tính có thể suy luận (dự đoán) kết quả tương lai thông qua quá trình huấn luyện (học) từ dữ liệu lịch sử
- Databases (Cơ sở dữ liệu): Công nghệ quản trị dữ liệu nhất là kho dữ liệu
1.3 Quá trình khai phá dữ liệu:
Từ dữ liệu ban đầu, qua quá trình khai phá và xử lý dữ liệu, con người đã chọn lọc ra những tri thức và đưa đến quyết định đúng đắn
Khai phá dữ liệu là một bước trong bảy bước của quá trình KDD (Knowleadge Discovery in Database) và KDD được xem như 7 quá trình khác nhau theo thứ tự sau:
1 Làm sạch dữ liệu (data cleaning & preprocessing)s: Loại bỏ nhiễu và các dữ liệu không cần thiết
2 Tích hợp dữ liệu: (data integration): quá trình hợp nhất dữ liệu thành những kho dữ liệu (data warehouses & data marts) sau khi đã làm sạch và tiền xử lý (data cleaning & preprocessing)
3 Trích chọn dữ liệu (data selection): trích chọn dữ liệu từ những kho dữ liệu và sau đó chuyển đổi về dạng thích hợp cho quá trình khai thác tri thức Quá trình này bao gồm cả việc xử lý với dữ liệu nhiễu (noisy data), dữ liệu không đầy đủ (incomplete data), v.v
Trang 84 Chuyển đổi dữ liệu: Các dữ liệu được chuyển đổi sang các dạng phù hợp cho quá trình xử lý
5 Khai phá dữ liệu(data mining): Là một trong các bước quan trọng nhất, trong
đó sử dụng những phương pháp thông minh để chắt lọc ra những mẫu dữ liệu
6 Ước lượng mẫu (knowledge evaluation): Quá trình đánh giá các kết quả tìm được thông qua các độ đo nào đó
7 Biểu diễn tri thức (knowledge presentation): Quá trình này sử dụng các kỹ thuật để biểu diễn và thể hiện trực quan cho người dùng
1.4 Nhiệm vụ của khai phá dữ liệu:
Khai phá dữ liệu có thể chia thành một số hướng chính như sau:
Mô tả khái niệm (concept description): 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
Luật kết hợp (association rules): là dạng luật biểu diễn tri thứ ở dạng khá đơn giản
Trang 9Ví dụ: “60 % nam giới vào siêu thị nếu mua bia thì có tới 80% trong số họ
sẽ mua thêm thịt bò khô”
Luật kết hợp được ứng dụng nhiều trong lĩnh vực kính doanh, y học, sinh, tài chính & thị trường chứng khoán, v.v
tin-Phân lớp và dự toán (classification & prediction): 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 vùng địa lý theo dữ liệu thời tiết Hướng tiếp cận này thường sử dụng một số kỹ thuật của machine learning như cây quyết định (decision tree), mạng nơ ron nhân tạo (neural network), v.v
Phân cụm (clustering): xếp các đối tượng theo từng cụm (số lượng cũng như tên của cụm chưa được biết trước
Khai phá chuỗi (seuqential/temporal patterns): 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
Dưới đây là một số thuật toán phổ biến được dùng trong Khai phá dữ liệu:
1 Decision tree: Cây quyết định (Classification Task)
2 Nearest Neighbor: Láng giềng gần nhất (Classification Task)
3 Neural Network: Mạng Neural (Classification and Clustering Task)
4 Rule Induction: Luật qui nạp (Classification Task)
5 K-Means: Thuật toán K-Means ( Clustering Task)
Trang 101.5 Các ứng dụng tiềm năng
• Phân t ch dữ lệu, hỗ trợ ra quyết định (data analysis & de ision support)
– Phân tích và quản lý thị trường – Quản lý và phân tích rủi ro – Quản lý và phân tích các sai hỏng
• Điều trị y học (medic l treatment)
• Text mining & Web mining
Trang 11CHƯƠNG 2 : TẬP PHỔ BIẾN VÀ LUẬT KẾT HỢP
2.1 Giới thiệu:
Hiện nay các công ty, doanh nghiệp đang lưu trữ một lượng thông tin lớn
về bán hàng Một bản ghi trong cơ sở dữ liệu này chứa các thông tin về ngày mua bán,số lư ợ ng hà ng bá n, Từ cơ sở dữ liệ u bá n hà ng, c húng ta c ó thể tìm ra các mốiquan hệ giữa các cặp thuộc tính- giá trị thuộc tính
Đó là luật kết hợp tiêu biểu: Vídụ có 80% khách hàng mua sách ngoại ngữ thì
sẽ mua đĩa CD hoặc VCD
2.2 Các khái niệm cơ bản:
2.2.1 Độ hỗ trợ
Độ hỗ trợ của một tập mục X trong cơ sở dữ liệu D là tỉ số giữa các giao
tác T ⊂ D có chứa tập X là tổng số giao tác trong D (hay là phần trăm của các giao tác trong D có chứa tập mục X), kí hiệu là Supp (X)
Ta có 0 < supp(X) với mọi tập X
Hay có thể n ói support chỉ mức độ “thường xuyên xảy ra” của mẫu
Độ hỗ trợ của luật X -> Y là tỉ số giao tác có chứa X U Y và số giao tác trong cơ sở dữ liệu D, kí hiệu là Supp(X -> Y)
Như vậy độ hỗ trợ của một luật bằng 50% nghĩa là có 50% giao tác có chứa tập mục X U Y Độ hỗ trợ có ý nghĩa thống kê của luật kết hợp
2.2.2 Độ tin cậy
Độ tin cậy của một luật r = X -> Y là tỉ số (phần trăm) của số giao tác trong D chứa X U Y với số giao tác trong D có chứa tập mục X Kí hiệu độ tin cậy của một luật là Conf(r) Ta có 0 ≤ conf ≤ 1
Độ hỗ trợ và độ tin cậy được biểu diễn bởi công thức sau:
Trang 12Nếu ta nói độ tin cậy là 80% thì có nghĩa là 80% các giao tác có chứa X thì cũng chứa Y Độ tin cậy của một luật là thể hiện mức độ trường quan trong dữ liệu giữa hai tập X và Y Độ tin cậy là độ đo mức độ tin cậy của một luật
2.2.3 Tập phổ biến
Cho cơ sở dữ liệu giao dịch (O,I,R) và minsup € (0,1] là ngưỡng phổ biến tối thiểu Cho S I, độ phổ biến của S ký hiệu là sp(S) là tỉ số giữa số các giao tác có chứa S và
số lượng giao tác trong O Nói cách khác SP(S)=|p(S)| / |O|
Cho S I, S là một tập các mặt hàng phổ biến theo ngưỡng minsupp nếu và chỉ nếu SP(S) ≥ minsupp Trong các phần sau tập mặt hàng phổ biến sẽ được gọi tắt là tập phổ biến Ký hiệu FS(O,I,R, minsupp) = {S € P(I) | SP(S) ≥ minsup}
2.2.4 Tập phổ biến tối đại
M là tập phổ biến tối đại nếu M là tập phổ biến và không tồn tại tập phổ biến S khác
M mà M S
2.3 Khai phá luật kết hợp:
Trong lĩnh vực Data Mining, mục đích của luật kết hợp (Association Rule - AR) là tìm ra các mối quan hệ giữa các đối tượng trong khối lượng lớn dữ liệu Nội dung cơ bản của luật kết hợp được tóm tắt như dưới đây
Cho cơ sở dữ liệu gồm các giao dịch T là tập các giao dịch t1, t2, …, tn
T = {t1, t2, …, tn} T gọi là cơ sở dữ liệu giao dịch (Transaction Database)
Mỗi giao dịch ti bao gồm tập các đối tượng I (gọi là itemset)
I = {i1, i2, …, im} Một itemset gồm k items gọi là k-itemset
Mục đích của luật kết hợp là tìm ra sự kết hợp (association) hay tương quan (correlation) giữa các items Những luật kết hợp này có dạng X =>Y
Trong Basket Analysis, luật kết hợp X =>Y có thể hiểu rằng những người mua các mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y (X và
Y gọi là itemset)
Ví dụ, nếu X = {Apple, Banana} và Y = {Cherry, Durian} và ta có luật kết hợp X =>Y thì chúng ta có thể nói rằng những người mua Apple và Banana thì cũng thường mua Cherry và Durian
Trang 13Theo quan điểm thống kê, X được xem là biến độc lập (Independent variable) còn Y được xem là biến phụ thuộc (Dependent variable)
Độ hỗ trợ (Support) và độ tin cây (Confidence) là 2 tham số dùng để đo lường luật kết hợp
Độ hỗ trợ (Support) của luật kết hợp X =>Y là tần suất của giao dịch chứa tất cả các items trong cả hai tập X và Y Ví dụ, support của luật X =>Y là 5% có nghĩa là 5% các giao dịch X và Y được mua cùng nhau
Công thức để tính support của luật X =>Y như sau:
Trong đó: N là tổng số giao dịch
Độ tin cậy (Confidence) của luật kết hợp X =>Y là xác suất xảy ra Y khi đã biết X Ví dụ độ tin cậy của luật kết hợp {Apple} =>Banana} là 80% có nghĩa
là 80% khách hàng mua Apple cũng mua Banana
Công thức để tính độ tin cậy của luật kết hợp X =>là xác suất có điều kiện Y khi
đã biết X như sau :
Trong đó: n(X) là số giao dịch chứa X
Để thu được các luật kết hợp, ta thường áp dụng 2 tiêu chí: minimum support (min_sup) và minimum confidence (min_conf)
Các luật thỏa mãn có support và confidence thỏa mãn (lớn hơn hoặc bằng)
cả Minimum support và Minimum confidence gọi là các luật mạnh (Strong Rle) Minimum support và Minimum confidence gọi là các giá trị ngưỡng (threshold)
và phải xác định trước khi sinh các luật kết hợp
Một itemsets mà tần suất xuất hiện của nó >= min_sup gọi là frequent itemsets
Một số loại luật kết hợp
- Binary association rules (luật kết hợp nhị phân): Apple => Banana
Trang 14- Quantitative association rules (luật kết hợp định lượng):
2.4 Phân loại luật kết hợp:
- Boolean association rule (luậtkếthợpluận Boolean association rule (luật kết hợp luận lý)/quantitative association rule (luật kết hợp lượng số)
- Single-dimensional association rule (luậtkếthợp Single-dimensional association rule (luật kết hợp đơn chiều)/ multidimensional association rule (luật đơn chiều)/ multidimensional association rule (luật kết hợp đa chiều)
- Single-level association rule (luậtkếthợp đơn mức)/multilevel association rule (luậtkếthợp đa mức)
- Association rule (luậtkếthợp)/correlation rule (luật tương quan thống kê)
- Boolean association rule (luật kết hợpluận lý)/quantitative association rule (luật kết hợp lượng số): Boolean association rule luật mô tả sự kết hợp giữa sự hiện diện/vắng mặt của các phần tử; Quantitative association rule luật mô tả sự kết hợp giữa các phần tử/thuộc tính định lượng
- Single-dimensional association rule (luật kết hợp đơn chiều)/multidimensional association rule (luật kết hợp đa chiều): Single-dimensional association rule luật chỉ liên quan đến các phần tử/thuộc tính của một chiều dữ liệu; Multidimensional association rule luật liên quan đến các phần tử/thuộc tính của nhiều hơn một chiều
- Single-level association rule (luật kết hợp đơn mức) /multilevel association rule (luật kết hợp đa mức): Single-level association rule luậtchỉ liên quan đến các phần tử/thuộc tính ở một mức trừu tượng; Multilevel association rule luật liên quan đến các phần tử/thuộc tính ở các mức trừu tượng khác nhau
- Association rule (luật kết hợp)/correlation rule (luật tương quan thống kê):
Trang 15minimum support threshold và minimum confidence threshold); Correlation rule strong association rules A -> B đáp ứng yêu cầu về sự tương quan thống kê giữa A và B
2.5 Thuật toán Apriori - ứng dụng theo phương pháp luật kết hợp:
2.5.1 Ý tưởng chính của thuật toán Apriori:
- Tìm tất cả frequent itemsets:
k-itemset (itemsets gồm k items) được dùng để tìm (k+1)- itemset
Đầu tiên tìm 1-itemset (ký hiệu L1) L1 được dùng để tìm L2 (2-itemsets) L2 được dùng để tìm L3 (3-itemset) và tiếp tục cho đến khi không có k-itemset được tìm thấy
- Từ frequent itemsets sinh ra các luật kết hợp mạnh (các luật kết hợp thỏa mãn 2 tham số min_sup và min_conf)
Các bước cụ thể được mô tả như hình dưới đây:
Trang 16Bước 1: duyệt toàn bộ transaction database để có được support S của itemset, so sánh S với minsup, để có được 1-itemset (F1)
1-Bước 2: sử dụng Fk-1 nối (join) Fk-1 để sinh ra các itemset Loại bỏ các itemset không có đủ tập con
Bước 3: duyệt cơ sở dữ liệu giao dịch để có được support của mỗi itemset, so sánh S với minsup để thu được frequent k-itemset(Fk)
k-Bước 4: nếu còn tìm thấy frequent itemsets thì quay lại bước 2, nếu không tìm thấy frequent itemsets thì sang bước 5
Bước 5: với mỗi frequent itemset I có số lượng item k >= 2, sinh tất cả các tập con s không rỗng của I
Bước 6: với mỗi tập con s không rỗng của I, sinh ra các luật s -> (I-s) nếu
độ tin cậy (confidence) của nó >= minconf
2.5.2 Thuật toán Apriori Algorithm:
1 Duyệt (Scan) toàn bộ transaction database để có được support S của itemset, so sánh S với min_sup, để có được 1-itemset (L1)
1-2 Sử dụng Lk-1 nối (join) Lk-1 để sinh ra candidate k-itemset Loại bỏ các itemsets không phải là frequent itemsets thu được k-itemset
3 Scan transaction database để có được support của mỗi candidate itemset, so sánh S với min_sup để thu được frequent k –itemset (Lk)
k-4 Lặp lại từ bước 2 cho đến khi Candidate set (C) trống (không tìm thấy