MỤC LỤC MỤC LỤC 1 BẢNG CÁC KÝ HIỆU 3 LỜI NÓI ĐẦU 4 Chương 1: TỔNG QUAN 6 1.1 Khai phá dữ liệu 6 1.2 Luật kết hợp 10 1.2.1 Một số khái niệm liên quan. 10 1.2.2 Giải thuật Apriori khai phá tập hạng mục phổ biến 12 a. Bản chất 13 b. Ví dụ: 13 c. Giả mã 14 d. Nhận xét thuật toán Apriori: 15 1.2.3 Thuật toán sinh luật kết hợp 23 a. Thuật toán sinh luật đơn giản 23 b. Thuật toán sinh luật nhanh 24 1.2.4 Ứng dụng của luật kết hợp 25 Chương 2: LUẬT KẾT HỢP CÓ TRỌNG SỐ 27 2.1 Yêu cầu phải xem xét trọng số 27 2.2 Luật kết hợp có trọng số trong CSDL nhị phân 28 2.2.1 Khái niệm 28 2.2.2 Giải thuật khai phá luật kết hợp có trọng số 31 2.2.3 Luật kết hợp có trọng số được chuẩn hoá 39 2.2.4 So sánh sự thực thi của 2 giải thuật 42 2.3 WAR (Weighted association rule) _ Luật kết hợp với trọng số thể hiện tần xuất hạng mục trong giao dịch. 43 2.3.1 Các khái niệm 44 2.3.2 Phương pháp tổng quát 46 2.3.3 Phân chia không gian 48 2.3.4 Tạo ra các luật kết hợp có trọng số 52 2.3.5 Cấu trúc dữ liệu và giải thuật 57 2.3.6 Phân tích độ phức tạp 58 2.4 Utility _ Mức đo lợi ích của hạng mục và giải thuật khai phá tập utility phổ biến. 59 2.4.1 Các khái niệm 60 2.4.2 Giải thuật 2 pha (2PUF: 2 phases algorithm for utility frequent mining) khai phá tập hạng mục utility phổ biến. 64 2.4.3 Giải thuật FUFM khai phá tập hạng mục uti phổ biến 66 2.4.4 So sánh 2 giải thuật 2PUF và FUFM 67 2.5 Một số ứng dụng luật kết hợp có trọng số 68 Chương 3: CHƯƠNG TRÌNH MINH HOẠ 71 3.1 Cài đặt thuật toán 71 3.2 Thiết kế, xây dựng chương trình 77 KẾT LUẬN 83 1. Kết quả đã đạt được 83 2. Hướng phát triển 83 TÀI LIỆU THAM KHẢO 84 BẢNG CÁC KÝ HIỆU STT Ký hiệu Diễn giải 1 CSDL Cơ sở dữ liệu 2 WAR Weighted association rule (Luật kết hợp có trọng số) 3 FUFM Fast utility frequent mining (khai phá tập utility phổ biến nhanh) 4 KDD Knowledge Discovery in Databases (khám phá tri thức) 5 2PUF Two phases algorithm for utility frequent mining (giải thuật 2 pha để khai phá tập utility phổ biến) 6 uti utility 7 sup support (độ hỗ trợ) 8 conf confidence (độ tin cậy) LỜI NÓI ĐẦU Trong thời đại bùng nổ thông tin, đỏi hỏi phải có những phương pháp nhanh, phù hợp, tự động, chính xác và có hiệu quả để lấy được thông tin có giá trị. Khai phá dữ liệu là một kỹ thuật được áp dụng rất hiệu quả phục vụ cho mục đích này; là một khâu trong quá trình khám phá tri thức, khai phá dữ liệu làm nhiệm vụ trích xuất các thông tin có giá trị tiềm ẩn, có nhiều ý nghĩa trong những kho dữ liệu. Hiện nay, kỹ thuật này đang được áp dụng một cách rộng rãi trong rất nhiều lĩnh vực kinh doanh và đời sống khác nhau như: y tế, marketing, ngân hàng, viễn thông,… Khai phá luật kết hợp là một phương thức đặc trưng đối với khai phá dữ liệu. Ra đời từ năm 1993, rất nhiều giải thuật khai phá luật kết hợp đã được đưa ra để giải quyết hiệu quả bài toán, nhiều chương trình ứng dụng thực tế đã được áp dụng thành công. Tuy nhiên hầu hết các nghiên cứu tập trung vào khai phá luật kết hợp nhị phân, nó chỉ quan tâm đến sự có mặt hay không của các hạng mục, các thuộc tính mà không quan tâm tới các nhân tố ảnh hưởng khác có thể làm mất mát thông tin hay thông tin đưa ra chưa phục vụ tốt nhất cho mục đích kinh doanh của mình Nhận thấy tầm quan trọng của vấn đề này, trong đồ án tốt nghiệp của mình, tôi đã chọn nghiên cứu đề tài về khai phá dữ liệu, cụ thể là khai phá luật kết hợp mà tập trung đi sâu vào khai phá luật kết hợp có trọng số và ứng dụng luật có trọng số vào phân tích dữ liệu giỏ hàng nhằm tìm ra các mối quan hệ, các mặt hàng thường đi cùng nhau, có xét đến lợi nhuận cũng như tần xuất xuất hiện của chúng trong các giao dịch nhằm tạo cơ sở chính xác, khoa học cho các quyết định trong chiến lược kinh doanh.
MỤC LỤC a. Thuật toán sinh luật đơn giản 22 b. Thuật toán sinh luật nhanh 23 1 BẢNG CÁC KÝ HIỆU STT Ký hiệu Diễn giải 1 CSDL Cơ sở dữ liệu 2 WAR Weighted association rule (Luật kết hợp có trọng số) 3 FUFM Fast utility - frequent mining (khai phá tập utility phổ biến nhanh) 4 KDD Knowledge Discovery in Databases (khám phá tri thức) 5 2P-UF Two phases algorithm for utility- frequent mining (giải thuật 2 pha để khai phá tập utility phổ biến) 6 uti utility 7 sup support (độ hỗ trợ) 8 conf confidence (độ tin cậy) 2 LỜI NÓI ĐẦU Trong thời đại bùng nổ thông tin, đỏi hỏi phải có những phương pháp nhanh, phù hợp, tự động, chính xác và có hiệu quả để lấy được thông tin có giá trị. Khai phá dữ liệu là một kỹ thuật được áp dụng rất hiệu quả phục vụ cho mục đích này; là một khâu trong quá trình khám phá tri thức, khai phá dữ liệu làm nhiệm vụ trích xuất các thông tin có giá trị tiềm ẩn, có nhiều ý nghĩa trong những kho dữ liệu. Hiện nay, kỹ thuật này đang được áp dụng một cách rộng rãi trong rất nhiều lĩnh vực kinh doanh và đời sống khác nhau như: y tế, marketing, ngân hàng, viễn thông,… Khai phá luật kết hợp là một phương thức đặc trưng đối với khai phá dữ liệu. Ra đời từ năm 1993, rất nhiều giải thuật khai phá luật kết hợp đã được đưa ra để giải quyết hiệu quả bài toán, nhiều chương trình ứng dụng thực tế đã được áp dụng thành công. Tuy nhiên hầu hết các nghiên cứu tập trung vào khai phá luật kết hợp nhị phân, nó chỉ quan tâm đến sự có mặt hay không của các hạng mục, các thuộc tính mà không quan tâm tới các nhân tố ảnh hưởng khác có thể làm mất mát thông tin hay thông tin đưa ra chưa phục vụ tốt nhất cho mục đích kinh doanh của mình Nhận thấy tầm quan trọng của vấn đề này, trong đồ án tốt nghiệp của mình, tôi đã chọn nghiên cứu đề tài về khai phá dữ liệu, cụ thể là khai phá luật kết hợp mà tập trung đi sâu vào khai phá luật kết hợp có trọng số và ứng dụng luật có trọng số vào phân tích dữ liệu giỏ hàng nhằm tìm ra các mối quan hệ, các mặt hàng thường đi cùng nhau, có xét đến lợi nhuận cũng như tần xuất xuất hiện của chúng trong các giao dịch nhằm tạo cơ sở chính xác, khoa học cho các quyết định trong chiến lược kinh doanh. 3 Mục tiêu của đồ án là nghiên cứu các kiểu trọng số, các giải thuật khai phá luật kết hợp có trọng số và cài đặt ứng dụng. Bố cục của đồ án gồm: Chương 1: Tổng quan Giới thiệu tổng quan về khai phá dữ liệu và bài toán khai phá luật kết hợp thông thường. Chương 2: Luật kết hợp có trọng số Phân tích ý nghĩa của từng dạng trọng số của các mục dữ liệu. Nghiên cứu thuật toán phát hiện luật kết hợp có trọng số cho mỗi dạng trọng số tương ứng. Chương 3: Chương trình minh hoạ Cài đặt minh họa 03 thuật toán tìm luật kết hợp có trọng số tương ứng với 03 dạng trọng số đã được trình bày ở chương 2. Em xin cảm ơn thầy Nguyễn Mạnh Hùng đã tận tình hướng dẫn, chỉ bảo và giúp đỡ em trong quá trình thực hiện đề tài này. 4 Chương 1: TỔNG QUAN 1.1 Khai phá dữ liệu Khai phá dữ liệu là một khái niệm bao hàm nhiều 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 kho dữ liệu. Khai phá dữ liệu được coi là một bước trong quá trình khám phá tri thức (Knowledge Discovery in Databases – KDD) và là giai đoạn quan trọng nhất trong tiến trình khám phá tri thức từ cơ sở dữ liệu, các tri thức này có rất nhiều ý nghĩa, là cơ sở hỗ trợ trong việc ra quyết định trong khoa học và kinh doanh. Các bước trong quá trình khám phá tri thức: - Làm sạch dữ liệu (Data cleaning): loại bỏ dữ liệu nhiễu hoặc dữ liệu không thích hợp. - Tích hợp dữ liệu (Data Intergration): Tích hợp dữ liệu từ các nguồn khác nhau như cơ sở dữ liệu (CSDL), kho dữ liệu, file text, - Trích chọn dữ liệu (data selection): trích chọn những tập dữ liệu cần được khai phá từ các tập dữ liệu lớn ban đầu (database, data warehouses,…) theo một số tiêu chí nhất định. - Biến đổi dữ liệu (data transformation): chuẩn hoá và làm mịn dữ liệu, đưa dữ liệu về dạng thuận lợi nhất, phù hợp cho việc khai phá bằng cách thực hiện các thao tác nhóm hoặc tập hợp. - Khai phá dữ liệu (data mining): là giai đoạn thiết yếu, đây là bước quan trọng và tốn nhiều thời gian nhất của toàn bộ quá trình khám phá tri thức, 5 là bước áp dụng những kỹ thuật khai phá để khai thác, trích xuất thông tin có ích, những mẫu điển hình, những mối liên hệ đặc biệt có nhiều giá trị, mang nhiều ý nghĩa từ dữ liệu. - Đánh giá mẫu (Pattern Evaluation): đánh giá sự hữu ích của các mẫu biểu diễn tri thức dựa vào một số phép đo. - Trình diễn dữ liệu (knowledge presentation): sử dụng các kỹ thuật trình diễn và trực quan hoá dữ liệu để biểu diễn tri thức khai phá được cho người sử dụng. Hình 1.1: Các bước trong quá trình khám phá trí thức Các kỹ thuật khai phá dữ liệu được chia làm 2 nhóm : - Kỹ thuật khai phá dữ liệu mô tả: mô tả về các tính chất hoặc các đặc tính chung của dữ liệu trong CSDL, các kỹ thuật này gồm có: phân cụm (clustering), tóm tắt (sumerization), trực quan hoá (visualization), phân tích sự 6 phát triển và độ lệch (Evolution and deviation analyst), phân tích luật kết hợp (association rules)… - Kỹ thuật khai phá dữ liệu dự đoán: đưa ra các dự đoán dựa vào các suy diễn trên dữ liệu hiện thời, các kỹ thuật này gồm có: phân lớp (classification), hồi quy (regression),… Các bài toán chính trong khai phá dữ liệu: 3 bài toán thông dụng và phổ biến nhất là: - Bài toán phân lớp dữ liệu và hồi quy: Mục tiêu của phương pháp phân lớp dữ liệu là dự đoán nhãn lớp cho các mẫu dữ liệu. Quá trình phân lớp dữ liệu thường gồm 2 bước: xây dựng mô hình và sử dụng mô hình để phân lớp. - Bài toán phân cụm (clustering): Mục tiêu chính của phương pháp phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một lớp là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng. Phân cụm dữ liệu được sử dụng nhiều trong các ứng dụng về phân đoạn thị trường, phân đoạn khách hàng, phân loại trang Web,…Ngoài ra, phân cụm dữ liệu còn có thể được sử dụng như một bước tiền xử lý cho các thuật toán khai phá dữ liệu khác. - Bài toán luật kết hợp: là dạng biểu diễn tri thức ở dạng khá đơn giản, mục tiêu của phương pháp này là phát hiện và đưa ra các mối liên hệ giữa các giá trị dữ liệu trong CSDL. Ngoài ra còn một số bài toán khác như: - Bài toán khai phá chuỗi theo thời gian (sequential/temporal patterns) - Bài toán mô tả khái niệm (concept description & summarization): Những công cụ khai phá dữ liệu có thể dự đoán những xu hướng trong tương lai và do đó 7 cho phép doanh nghiệp ra những quyết định kịp thời được định hướng bởi tri thức mà khai phá dữ liệu mang lại. Những ứng dụng điển hình của khai phá dữ liệu: Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis and decision support) Text mining & Webmining: phân lớp văn bản và các trang Web, tóm tắt văn bản, tìm kiếm thông tin,… Tin - sinh: tìm kiếm, đối sánh các quan hệ gen và thông tin di truyền, mối liên hệ giữa một số hệ gen và một số bệnh di truyền,… Điều trị y học (medical treatment): mối liên hệ giữa triệu chứng, chẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc men,…). Tài chính và thị trường chứng khoán (finance & stock market): phân tích tình hình tài chính và dự báo giá của các loại cổ phiếu trong thị trường chứng khoán,… Những ứng dụng thực tế: + Ngành bảo hiểm y tế Australia đã dựa vào việc chẩn đoán bệnh trong y tế dựa trên kết quả xét nghiệm và đã phát hiện ra nhiều trường hợp xét nghiệm không hợp lý, tiết kiệm được 1 triệu USD/năm. + Trang Web mua bán qua mạng Amazon.com cũng tăng doanh thu nhờ áp dụng khái phá dữ liệu trong việc phân tích sở thích mua bán của khách hàng. + Bitish Telecom đã phát hiện ra những nhóm người thường xuyên gọi cho nhau bằng mobile và thu lợi hàng triệu USD. 8 1.2 Luật kết hợp Được Agrawal đưa ra vào năm 1993, khai phá dữ liệu bằng phương pháp phát hiện các luật kết hợp là một trong các phương pháp khai thác đặc trưng đối với khai phá dữ liệu với nhiệm vụ phân tích dữ liệu trong CSDL 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 CSDL giao dịch, CSDL 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. 1.2.1 Một số khái niệm liên quan. Hạng mục (Item) : mặt hàng trong giỏ (CSDL giỏ hàng) hay một thuộc tính. Gọi I= {i 1 , i 2 ,…,i m } là tập hợp các hạng mục. Transaction (Giao dịch) T: T là tập các hạng mục và T ⊆ I Transaction Database (cơ sở dữ liệu giao dịch) D: tập hợp các giao dịch D = {T 1 , T 2 ,…, T n }. Ví dụ: các giao dịch giỏ hàng siêu thị: T 1 : {bread, cheese, milk} T 2 : {apple, eggs, salt, yogurt} … T n : {biscuit, eggs, milk} 9 Một giao dịch T gọi là hỗ trợ tập X nếu nó chứa tất cả các hạng mục trong X, nghĩa là X ⊆ T. Ký hiệu support(X) là tỷ lệ phần trăm của các giao dịch hỗ trợ X trên tổng số các giao dịch trong D, nghĩa là: Support(X)= { } D TXDT ⊆∈ | Hỗ trợ tối thiểu (minsup: minimum support) là một giá trị cho trước bởi người sử dụng. Nếu tập hạng mục X có support(X) ≥ minsup thì ta nói X là một tập các khoản mục thường xuyên. 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 hạng mục (itemset) 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ả (hệ 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). Độ hỗ trợ (support) của luật kết hợp X ⇒ Y là tỷ lệ % số giao dịch có chứa cả X, Y so với tổng số giao dịch có trong cơ sở dữ liệu. Độ hỗ trợ còn được coi là độ phổ biến. Sup(X⇒Y)= support(X ∪ Y) Độ hỗ trợ tối thiểu (minsup): - Cao: ít tập phần tử 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 Độ tin cậy (confidence) của luật X ⇒ Y là tỷ lệ % của số giao dịch có chứa Y trong số giao dịch có chứa X (khả năng giao dịch T hỗ trợ X thì cũng hỗ trợ Y). 10 [...]... là số lượng hạng mục trong giao dịch Cả 2 dạng trọng số trên (thường được coi là utility của hạng mục) 2.2 Luật kết hợp có trọng số trong CSDL nhị phân 2.2.1 Khái niệm Xét một CSDL giao dịch D, 1 tập các Item I Mỗi giao dịch là một tập con của I và được gán một định danh (TID) 27 ĐN1: Một luật kết hợp có dạng X Y với X ⊂ I, Y ⊂ I và X ∩ Y= ∅ Supp và. .. một luật kết hợp X Y là xác suất mà X và Y tồn tại trong 1 giao dịch trong D ĐN3: Độ tin cậy: Pr(Y \ X ) = Pr( X ∪ Y ) Pr( X ) (1) Cho một tập Item I={i1, i2,…, in} chúng ta gán trọng số wj cho mỗi item ij với 0 ≤ wj ≤ 1 với j={1,2,…,n} để biểu thị tầm quan trọng của item Theo định nghĩa 2 ta có thể định nghĩa độ hỗ trợ có trọng số của luật kết hợp có trọng. .. chứa {2, 4 } nào cũng phải có supp_count ≥ 2 2.2.2 Giải thuật khai phá luật kết hợp có trọng số Input: CSDL D với tập giao dịch T, ngưỡng wminsup(độ hỗ trợ) và minconf(độ tin cậy), trọng số của các item w i, tổng các giao dịch và tổng số các Items Output: danh sách các luật đáng quan tâm Các ký hiệu: D Cơ sở dữ liệu w Tập các trọng số của hạng mục Lk Tập... trọng số cho mỗi hạng mục Về ngữ nghĩa, trọng số là một tiêu chuẩn đo tầm quan trọng của một hạng mục Chúng ta sẽ cân bằng 2 độ đo: trọng số và độ hỗ trợ Nếu một tập là rất quan trọng, ví dụ nó thu lại lợi nhuận cao thì ngay cả khi không có nhiều khách hàng mua, nó vẫn là tập đáng quan tâm Mặt khác, nếu một tập không được coi là rất quan trọng. .. kết hợp có trọng số như sau: ĐN4: Độ hỗ trợ của 1 luật X Y là ∑ w j ( Support ( X ∪ Y ) ) i ∈( X ∪Y ) j (2) Ngưỡng độ hỗ trợ và độ tin cậy sẽ được chỉ định để đo sức mạnh của luật kết hợp ĐN5: Một tập k-item X được gọi là một tập item nhỏ nếu độ hỗ trợ có trọng số của tập item đó nhỏ hơn ngưỡng độ hỗ trợ trọng số tối thiểu (wminsup)... 25 Chương 2: LUẬT KẾT HỢP CÓ TRỌNG SỐ 2.1 Yêu cầu phải xem xét trọng số Chúng ta xem xét việc bán hàng ở một siêu thị Khối lượng thông tin bán hàng khổng lồ được lưu trữ trong máy tính đặt ra yêu cầu cần một phương pháp tìm kiếm thông tin đáng quan tâm một cách hiệu quả Một hướng tiếp cận đầy triển vọng đó là khai phá các luật kết hợp (đã được... coi là rất quan trọng về mặt trọng số, nhưng nó phổ biến đến nỗi nhiều giao dịch chứa nó, nó cũng là một tập đáng quan tâm 26 Ba dạng trọng số của hạng mục: Trọng số phản ánh tầm quan trọng của hạng mục, do người sử dụng xác định, độc lập với giao dịch Ví dụ: lợi nhuận của một đơn vị hạng mục (profit) Trọng số xác định bởi tần xuất xuất... một tập hạng mục lớn 28 ĐN6: Một luật kết hợp X Y được gọi là luật đáng quan tâm nếu X ∪ Y là tập item lớn và độ tin cậy của luật (theo ĐN3) lớn hơn hoặc bằng ngưỡng độ tin cậy tối thiểu Giải thuật Apriori dựa trên thuộc tính: tập con của tập hạng mục lớn phải là lớn Tuy nhiên với khái niệm độ hỗ trợ có trọng số, tính chất trên 4 7 không còn... tập trung vào việc khai phá các luật kết hợp nhị phân Nghĩa là chỉ xét đến sự có mặt của hạng mục trong giao dịch mà không quan tâm tới tầm quan trọng hay tần xuất xuất hiện của chúng trong giao dịch Một khách hàng có thể mua những hàng hoá rất có giá trị, mang lại lợi nhuận cao mà thường vắng mặt trong những hoá đơn khác Tập hạng mục đó có thể... k hạng mục lớn X là số giao dịch chứa X, và nó phải thoả mãn: SC ( X ) ≥ w min sup× T ∑ wj (4) i , j∈X Cho I là tập tất cả các hạng mục Giả sử rằng Y là tập q hạng mục, với q < k Trong tập hạng mục còn lại (I – Y), lấy (k-q) item có trọng số lớn nhất i r1, ir2, …, irk-q Chúng ta có thể nói trọng số lớn nhất có thể cho bất kỳ tập k hạng mục chứa Y . dữ liệu, cụ thể là khai phá luật kết hợp mà tập trung đi sâu vào khai phá luật kết hợp có trọng số và ứng dụng luật có trọng số vào phân tích dữ liệu giỏ hàng. doanh. 3 Mục tiêu của đồ án là nghiên cứu các kiểu trọng số, các giải thuật khai phá luật kết hợp có trọng số và cài đặt ứng dụng. Bố cục của đồ án gồm: Chương 1: Tổng. Giới thiệu tổng quan về khai phá dữ liệu và bài toán khai phá luật kết hợp thông thường. Chương 2: Luật kết hợp có trọng số Phân tích ý nghĩa của từng dạng trọng số