Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
537,71 KB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG ________________ BÀI THU HOẠCH MÔN HỌC CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG Đề tài: Tìm hiểu xây dựng chương trình minh họa cho bài toán tìm luật kết hợp GVHD: GS-TSKH. Hoàng Văn Kiếm Học viên thực hiện: Trịnh Thị Thanh Nhàn MSHV: CH1101113 TP. HCM, năm 2012 Công nghệ tri thức và ứng dụng MỤC LỤC GVHD: GS.TSKH Hoàng Kiếm Trang 2 Công nghệ tri thức và ứng dụng Mở đầu Trong những năm gần đây, với sự phát triển công nghệ thông tin chúng ta thấy một thực tế là con người có trong tay một lượng dữ liệu rất lớn nhưng với kỹ thuật khai thác cũ không còn phù hợp với nó nữa nhường chỗ cho những kỹ thuật mới hơn như là khai phá dữ liệu. Khai phá dữ liệu đã trở thành một lĩnh vực chính được các nhà khoa học quan tâm nghiên cứu bởi tính ứng dụng cao trong thực tiễn cuộc sống. Khai phá luật kêt hợp là một nội dung quan trọng trong khai phá dữ liệu. Để nghiên cứu sâu hơn về khai phá luật kết hợp nên tôi đã chọn đề tài “ Tìm hiểu, xây dựng chương trình minh họa cho bài toán tìm luật kết hợp” để làm bài thu hoạch kết thúc chuyên đề “Công nghệ tri thức và ứng dụng” do giảng viên GS.TSKH Hoàng Kiếm phụ trách giảng dạy. GVHD: GS.TSKH Hoàng Kiếm Trang 3 Công nghệ tri thức và ứng dụng Chương 1. Tổng quan về khai phá dữ liệu 1.1 Khái niệm: Khai phá dữ liệu được dùng để mô tả quá trình phát hiện ra tri thức trong cơ sở dữ liệu (CSDL). Quá trình này kết xuất ra các tri thức tiềm ẩn từ dữ liệu giúp cho việc dự báo trong kinh doanh, các hoạt động sản xuất…, khai phá dữ liệu làm giảm chi phí về thời gian so với phương pháp truyền thống trước kia (ví dụ như phương pháp thống kê). Sau đây là các định nghĩa mang tính mô tả của nhiều tác giả về Khai phá dữ liệu: Định nghĩa của Ferruzza: “Khai phá dữ liệu là tập hợp các phương pháp được dùng trong tiến trình khám phá tri thức để chỉ ra sự khác biệt các mối quan hệ và các mẫu chưa biết bên trong dữ liệu”. Định nghĩa của Parsaye: “Khai phá dữ liệu là quá trình trợ giúp quyết định, trong đó chúng ta tìm kiếm các mẫu thông tin chưa biết và bất ngờ trong CSDL lớn”. 1.2 Các ứng dụng của khai phá dữ liệu: Khai phá dữ liệu liên quan đến rất nhiều nghành, nhiều lĩnh vực: thống kê, trí tuệ nhân tạo, CSDL, thuật toán, tính toán song song…Đặc biệt khai phá tri thức rất gần gũi với lĩnh vực thống kê, sử dụng các phương pháp thống kê để mô hình hóa dữ liệu và phát hiện các mẫu. Khai phá dữ liệu có nhiều ứng dụng trong thực tế, ví dụ như: • Bảo hiểm, tài chính và thi trường chứng khoán: 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. Danh mục vốn và giá, lãi suất, dữ liệu thẻ tín dụng, phát hiện gian lận… • Thống kê, phân tích dữ liệu và hỗ trợ ra quyết định. • Điều trị y học và chăm sóc y tế: một số thông tin về chẩn đoán bệnh lưu trong hệ thống quản lý bệnh viện. Phân tích các mối liên hệ giữa các triệu chứng bệnh, chẩn đoán và phương pháp điều trị. • Sản xuất và chế biến: quy trình, phương pháp chế biến và xử lý sự cố. • Text mining và Web mining: phân lớp văn bản và các trang Web, tóm tắt văn bản. • Lĩnh vực khoa hoc: quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học, tìm kiếm, so sánh các hệ gene và thông tin di truyền. • Mạng viễn thông: phân tích các cuộc gọi điện thoại và hệ thống giám sát lỗi, sự cố, chất lượng dịch vụ… GVHD: GS.TSKH Hoàng Kiếm Trang 4 Công nghệ tri thức và ứng dụng 1.3 Các phương pháp khai phá dữ liêu: Quá trình khai phá dữ liệu là quá trình phát hiện mẫu, trong đó phương pháp khai phá dữ liệu để tìm các mẫu đáng quan tâm theo dạng xác định. Có thể kể ra đây một vài phương pháp như: sử dụng công cụ truy vấn, xây dựng cây quyết định, dựa theo khoảng cách (K-láng giềng gần), giá trị trung bình, phát hiện luật kết hợp…. Các phương pháp trên có thể được phỏng theo và được tích hợp vào các hệ thống lai để khai phá dữ liệu theo thống kê trong nhiều năm nghiên cứu. Tuy nhiên với dữ liệu rất lớn trong kho dữ liệu thì các phương pháp này cũng đối diện với thách thức về mặt hiệu quả và quy mô. Chương 2. Luật kết hợp trong khai phá dữ liệu 2.1 Khai phá luật kết hợp Được giới thiệu từ năm 1993, bài toán khai thác luật kết hợp nhận được rất nhiều sự quan tâm của nhiều nhà khoa học. Ngày nay việc khai thác các luật như thế vẫn là một trong những phương pháp khai thác mẫu phổ biến nhất trong việc khám phá tri thức và khai thác dữ liệu. Mục đích chính của khai phá dữ liệu là các tri thức được kết xuất ra sẽ được sử dụng trong dự báo thông tin trợ giúp trong sản xuất kinh doanh và nghiên cứu khoa học. Trong hoạt động sản xuất kinh doanh, ví dụ kinh doanh các mặt hàng tại siêu thị, các nhà quản lý rất thích có được các thông tin mang tính thống kê như: “90% phụ nữ có xe máy màu đỏ và đeo đồng hồ Thuỵ Sỹ thì dùng nước hoa hiệu Chanel” hoặc “70% khách hàng là công nhân khi mua TV thường mua loại TV 21 inches”. Những thông tin như vậy rất hữu ích trong việc định hướng kinh doanh. Vậy vấn đề đặt ra là liệu có tìm được các luật như vậy bằng các công cụ khai phá dữ liệu hay không? Câu trả lời là hoàn toàn có thể. Đó chính là nhiệm vụ khai phá luật kết hợp. Giả sử chúng ta có một CSDL D. Luật kết hợp cho biết phạm vi mà trong đó sự xuất hiện của tập các mục S nào đó trong các bản ghi của D sẽ kéo theo sự xuất hiện của một tập những mục U cũng trong những bản ghi đó. Mỗi luật kết hợp được đặc trưng bởi một cặp tỉ lệ. Mỗi tỉ lệ hỗ trợ được biểu diễn bằng tỉ lệ % những bản ghi trong D chứa cả S và U. Vấn đề khám phá luật kết hợp được phát biểu như sau: Cho trước tỉ lệ hỗ trợ θ và độ tin cậy β. Đánh số tất cả các luật trong D có các giá trị tỉ lệ hỗ trợ và tin cậy lớn hơn θ và β tương ứng. GVHD: GS.TSKH Hoàng Kiếm Trang 5 Công nghệ tri thức và ứng dụng Giả thiết D là CSDL giao dịch và với θ = 40%, β = 90%. Vấn đề phát hiện luật kết hợp được thực hiện như sau: Liệt kê, đếm tất cả những qui luật chỉ ra sự xuất hiện một số các mục sẽ kéo theo một số mục khác. Chỉ xét những qui luật mà tỉ lệ hỗ trợ lớn hơn 40% và độ tin cậy lớn hơn 90%. Hãy tưởng tượng, một công ty bán hàng qua mạng Internet. Các khách hàng được yêu cầu điền vào các mẫu bán hàng để công ty có được một CSDL về các yêu cầu của khách hàng. Giả sử công ty quan tâm đến mối quan hệ "tuổi, giới tính, nghề nghiệp và sản phẩm". Khi đó có thể có rất nhiều câu hỏi tương ứng với luật trên. Ví dụ trong lứa tuổi nào thì những khách hàng nữ là công nhân đặt mua mặt hàng gì đó, ví dụ áo dài chẳng hạn là nhiều nhất, thoả mãn một ngưỡng nào đó. 2.2 Lý thuyết về luật kết hợp: 2.2.1 Định nghĩa luật kết hợp: • Cho một tập I = {I1, I2, , Im} các tập m mục, một giao dịch T được định nghĩa như một tập con của các mục trong I (T⊆I). • Gọi D là CSDL của n giao dịch và mỗi giao dịch được đánh nhãn với một định danh duy nhất. Nói rằng, một giao dịch T ∈ D hỗ trợ một tập X ⊆ I nếu nó chứa tất cả các mục của X. • Kí hiệu support(X) (hoặc sup(X), s(X)) là tỷ lệ phần trăm của các giao dịch hỗ trợ X trên tổng các giao dịch trong D, nghĩa là: hay Độ hỗ trợ tối thiểu minsup là một giá trị cho trước bởi người sử dụng. • Nếu tập mục X có sup(X) ≥ minsup thì ta nói X là một tập các mục phổ biến. Một luật kết hợp có dạng R: X => Y, trong đó X, Y là tập các mục, X, Y ⊆ I và X ∩Y = ∅. GVHD: GS.TSKH Hoàng Kiếm Trang 6 Công nghệ tri thức và ứng dụng − X được gọi là tiên đề. − Y được gọi là hệ quả của luật. Luật X => Y tồn tại một độ tin cậy confidence (c/conf). Độ tin cậy c được định nghĩa là khả năng giao dịch T hỗ trợ X thì cũng hỗ trợ Y. Ta có công thức tính độ tin cậy c như sau: Ví dụ: cho CSDL bán hàng 1 – có bán sản phẩm 0 – không bán sản phẩm Khoản mục Giao dịch Bánh mì bơ phomat táo Nho T1 1 1 0 1 0 T2 1 0 1 1 0 T3 0 1 1 1 0 T4 1 0 1 1 1 • Ví dụ: X ={ bánh mi, phomat} +) Các giao dịch hỗ trợ cho X: T2, T4 +) Các giao dịch không hỗ trợ cho X: T1, T3. X Supp(X) Bánh mì, phomat 2/4 =1/2 Bánh mì, táo 3/4 Táo, nho 1/4 Táo 4/4 = 1 GVHD: GS.TSKH Hoàng Kiếm Trang 7 Công nghệ tri thức và ứng dụng Bơ 2/4 = 1/2 Phomat 3/4 Bo, phomat, bánh mì 0/4 = 0 Tuy nhiên, không phải bất cứ luật kết hợp nào có mặt trong tập các luật có thể được sinh ra cũng đều có ý nghĩa trên thực tế. Mà các luật đều phải thoả mãn một ngưỡng hỗ trợ và tin cậy cụ thể. Khai phá luật kết hợp được phân thành hai bài toán con: Bài toán 1: Tìm tất cả các tập mục mà có độ hỗ trợ lớn hơn độ hỗ trợ tối thiểu do người dùng xác định. Các tập mục thoả mãn độ hỗ trợ tối thiểu được gọi là các tập mục phổ biến. Bài toán 2: Dùng các tập mục phổ biến để sinh ra các luật mong muốn. Ý tưởng chung là nếu gọi ABCD và AB là các tập mục phổ biến, thì chúng ta có thể xác định luật nếu AB => CD giữ lại với tỷ lệ độ tin cậy: Nếu conf ≥ minconf thì luật được giữ lại (luật này sẽ thoả mãn độ hỗ trợ tối thiểu vì ABCD là phổ biến). 2.2.2 Một số tính chất liên quan: 2.2.2.1 Với tập mục phổ biến, có 3 tính chất sau: Tính chất 1: Độ hỗ trợ của tập con Với A và B là tập các mục, nếu A ⊆ B thì sup(A) ≥ sup(B) Điều này là rõ ràng vì tất cả các giao tác của D hỗ trợ B thì cũng hỗ trợ 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. GVHD: GS.TSKH Hoàng Kiếm Trang 8 Công nghệ tri thức và ứng dụng Nếu một mục trong B không có độ hỗ trợ tối thiểu trên D nghĩa là sup(B)< minsup thì một tập con A của B sẽ không phải là một tập phổ biến vì sup(B) ≤ sup(A) < minsup (theo 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 mục B là mục phổ biến trên D, nghĩa là sup(B) ≥ minsup thì mọi tập con A của B là tập phổ biến trên D vì sup(A) ≥ sup(B) > minsup. 2.2.2.2 Với luật kết hợp, có 4 tính chất sau: Tính chất 1: 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 ∩Z =∅ và các tác vụ trong D hỗ trợ Z nếu và chỉ nếu chúng hỗ trợ mỗi X hoặc Y, khi đó luật X∪Y→Z có độ hỗ trợ 0%. Tương tự : X→Y ∧ X→Z ⇒ X→Y∪Z Tính chất 2: Không tách luật Nếu X∪Y→Z thì X→Z và Y→Z chưa chắc xảy ra Ví dụ trường hợp Z có mặt trong một giao tác chỉ khi cả hai X và Y cũng có mặt, tức là sup(X∪Y)= sup(Z), nếu độ hỗ trợ của X và Y đủ lớn hơn sup(X∪Y), tức là sup(X) > sup(X∪Y) và sup(Y) > sup(X∪Y) thì hai luật riêng biệt sẽ không đủ độ tin cậy Tuy nhiên đảo lại: X→Y∪Z ⇒ X→Y ∧ X→Z Tính chất 3: Các luật kết hợp không có tính bắc cầu Nếu X→Y và Y→Z, chúng ta không thể suy ra X→Z. Ví dụ: giả sử T(X) ⊂ T(Y) ⊂ T(Z), ở đó T(X), T(Y), T(Z) tương ứng là các giao dịch chứa X,Y,Z, và độ tin cậy cực tiểu minconf GVHD: GS.TSKH Hoàng Kiếm Trang 9 Công nghệ tri thức và ứng dụng conf(X→Y) =conf(Y→Z)=minconf thế thì: conf(X→Y) =minconf2 < minconf vì minconf < 1, do đó luật X→Z không đủ độ tin cậy Tính chất 4: Nếu A→(L - A) không thoả mãn độ tin cậy cực tiểu thì luật B →(L -B) cũng không thoả mãn, với các tập mục L,A,B và B ⊆ A ⊂ L Vì supp(B) ≥ sup(A) (theo tính chất 1) và định nghĩa độ tin cậy, chúng ta nhận được: Cũng như vậy: Nếu có (L-C)→ C thì ta cũng có luật (L – D)→D, với D⊆C và D≠∅. Bởi vì D⊆C nên (L - D) ⊇ (L - C), do đó sup(L - D) ≤ sup(L-C) Chương 3. Thuật toán Apriori - thuật toán phát hiện luật kết hợp 3.1 Ý tưởng 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 được tỉa bớt những tập ứng cử viên có tập con không phổ biến trước khi tính độ hỗ trợ. 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. GVHD: GS.TSKH Hoàng Kiếm Trang 10 [...]... số loại luật kết hợp Binary association rules (luật kết hợp nhị phân): Apple => Banana Quantitative association rules (luật kết hợp định lượng): weight in [70kg – 90kg] => height in [170cm – 190cm] Fuzzy association rules (Luật kết hợp mờ): weight in HEAVY => height in TALL Thuật toán phổ biến nhất tìm các luật kết hợp là Apriori sử dụng Binary association rules Thuật toán sinh các luật kết hợp Apriori... Apriori Tư tưởng chính của thuật toán Apriori là: - 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... tri thức và ứng dụng Thuật toán Apriori khai phá luật kết hợp được mô tả qua các bước sau: Ta có frequent itemsets I ={B,C,E}, với min_conf =80% ta có 2 luật kết hợp là {B,C} => {E} và {C,E} => {B} GVHD: GS.TSKH Hoàng Kiếm Trang 15 Công nghệ tri thức và ứng dụng Ví dụ 2 : Giả sử có cơ sở dữ liệu giao dịch bán hàng gồm 5 giao dịch như sau: Thuật toán Apriori tìm các luật kết hợp trong giao dịch bán hàng... thức và ứng dụng Chương 4 Cài đặt ứng dụng tìm luật kết hợp 4.1 Môi trường cài đặt ứng dụng: • • Hệ điều hành: Window XP, Vista, Win 7 Ngôn ngữ lập trình: Microsoft Visual Studio 2010 4.2 Cài đặt thử nghiệm • Giao diện chương trình: GVHD: GS.TSKH Hoàng Kiếm Trang 19 Công nghệ tri thức và ứng dụng • Giao diện chương trình khi sửa Transaction (nhấn nút Edit Transaction) Chọn lại các item cho Transaction... luật kết hợp GVHD: GS.TSKH Hoàng Kiếm Trang 11 Công nghệ tri thức và ứng dụng Độ 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. .. 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... thuật toán Apriori: 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. .. bán hàng trên, ta thấy rằng có luật có thể tin được (hợp lý) như Baby Powder => Diaper, có luật cần phải phân tích thêm như Milk =>Beer và có luật có vẻ khó tin như Diaper =>Beer.Ví dụ này sinh ra các luật có thể không thực tế vì dữ liệu dùng để phân tích (transaction database) hay còn gọi là tranining data rất nhỏ Thuật toán Apriori được dùng để phát hiện các luật kết hợp dạng khẳng định (Positive... (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... định (Positive Rule X=>Y) nhị phân (Binary Association Rules) chứ không thể phát hiện các luật kết hợp ở dạng phủ định (Negative Association Rule) chẳn hạn như các kết hợp dạng “Khách hàng mua mặt hàng A thường KHÔNG mua mặt hàng B” hoặc “Nếu ủng hộ quan điểm A thường KHÔNG ủng hộ quan điểm B” Khai phá các luật kết hợp dạng phủ định (Mining Negative Association Rules) có phạm vi ứng dụng rất rộng và thú . CHÍ MINH CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG ________________ BÀI THU HOẠCH MÔN HỌC CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG Đề tài: Tìm hiểu xây dựng chương trình minh họa cho bài toán tìm luật. phá luật kêt hợp là một nội dung quan trọng trong khai phá dữ liệu. Để nghiên cứu sâu hơn về khai phá luật kết hợp nên tôi đã chọn đề tài “ Tìm hiểu, xây dựng chương trình minh họa cho bài toán. 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