Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Kiến trúc - Xây dựng UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN ---- ----- KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: KHAI PHÁ DỮ LIỆU VỚI LUẬT KẾT HỢP VÀ ỨNG DỤNG TRONG TRỢ GIÚP RA QUYẾT ĐỊNH Sinh viên thực hiện ANOULAK SIDARALAK MSSV: 2113011029 CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN KHÓA: 2013 – 2017 Cán bộ hướng dẫn ThS. LÊ THỊ NGUYÊN AN MSCB:…. Quảng Nam, tháng 5 năm 2017 LỜI CẢM ƠN Trước hết, em xin bày tỏ lòng biết ơn tới các thầy cô giáo trường Đại học Quảng Nam đã tận tâm giảng dạy, cung cấp cho em nhiều kiến thức, phương pháp nghiên cứu trong khóa học vừa qua. Đặc biệt em xin được bày tỏ sự biết ơn sâu sắc đến giáo viên hướng dẫn ThS. Lê Thị Nguyên An, người đã tận tình hướng dẫn, giúp đỡ và động viên để em thực hiện khóa luận tốt nghiệp này. Xin cảm ơn Ban giám hiệu trường Đai học Quảng Nam, gia đình và các bạn cùng lớp đã tạo điều kiện giúp đỡ em trong thời gian vừa qua. MỤC LỤC Trang PHẦN 1: MỞ ĐẦU ............................................................................................... 1 1. Lý do chọn đề tài ............................................................................................... 1 2. Mục tiêu của đề tài. ........................................................................................... 2 3. Đối tượng nghiên cưú và phạm vi nghiên cứu .................................................. 2 4. Phương pháp nghiên cứu. .................................................................................. 2 5. Lịch sử nghiên cứu. ........................................................................................... 2 6. Đóng góp của đề tài........................................................................................... 2 7. Cấu trúc của đề tài. ............................................................................................ 2 PHẦN 2: NỘI DUNG ........................................................................................... 3 CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU ..................................... 3 1.1. Khái niệm ....................................................................................................... 3 1.2. Khai phá dữ liệu và phát hiện tri thức ............................................................ 4 1.3. Quá trình khám phá tri thức trong CSDL ...................................................... 4 1.4. Các phương pháp khai phá dữ liệu................................................................. 6 1.4.1. Các thành phần của giải thuật khai phá dữ liệu .......................................... 6 1.4.2. Phương pháp suy diễn quy nạp ................................................................. 7 1.4.3. Phương pháp K-láng giềng gần ................................................................... 8 1.4.4. Phương pháp sử dụng cây quyết định và luật ............................................. 9 1.4.5. Phương pháp phát hiện luật kết hợp............................................................ 9 1.5. Nhiệm vụ chính trong khai thác dữ liệu ....................................................... 10 1.5.1. Phân lớp (phân loại - classification).......................................................... 10 1.5.2. Hồi qui (regression)................................................................................... 10 1.5.3. Phân nhóm (clustering) ............................................................................. 10 1.5.4. Tổng hợp (summarization) ........................................................................ 11 1.5.5. Mô hình hoá sự phụ thuộc (dependency modeling).................................. 11 1.5.6. Phát hiện sự biến đổi và độ lệch (change and deviation dectection) ........ 11 1.6. Các kỹ thuật khai phá dữ liệu ....................................................................... 12 1.6.1. Các kỹ thuật tiếp cận trong Data mining................................................... 12 1.6.2. Dạng dữ liệu có thể khai phá..................................................................... 13 1.6.3. Các ứng dụng của khai phá dữ liệu ........................................................... 13 1.6.4. Khai phá luật kết hợp và ứng dụng ........................................................... 13 1.6.5. Phân loại các hệ thống khai phá dữ liệu.................................................... 14 1.6.6. Xu hướng trong khai phá dữ liệu .............................................................. 14 CHƯƠNG 2: LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU ...................... 17 2.1. Khai phá luật kết hợp ................................................................................... 17 2.2. Lý thuyết về luật kết hợp............................................................................. 18 2.2.1. Định nghĩa luật kết hợp ............................................................................. 18 2.2.2. Khái niệm .................................................................................................. 18 2.2.3. Một số tính chất liên quan đến các hạng mục phổ biến ............................ 21 2.2.3.1. Tập mục phổ biến ................................................................................... 21 2.2.3.2. Luật kết hợp............................................................................................ 21 2.2.4. Một số hướng tiếp cận trong khai phá luật kết hợp .................................. 22 2.2.5. Phát biểu bài toán phát hiện luật kết hợp .................................................. 24 2.3. Một số thuật toán phát hiện luật kết hợp ...................................................... 25 2.3.1. Thuật toán Apriori ..................................................................................... 26 2.3.1.1. Ý tưởng thuật toán Apriori ..................................................................... 26 2.3.1.2. Thuật toán Apriori .................................................................................. 27 2.3.1.3. Sinh các luật kết hợp từ tập mục phổ biến ............................................. 32 2.3.2 Thuật toán FP-growth ................................................................................ 33 2.3.2.1. Ý tưởng thuật toán .................................................................................. 33 2.3.2.2. Thuật toán FP-growth. ........................................................................... 34 2.3.2.3. Đánh giá thuật toán FP-growth. ............................................................. 37 CHƯƠNG 3: THỬ NGHIỆM KHAI PHÁ LUẬT KẾT HỢP ........................... 38 3.1. Phát biểu bài toán ......................................................................................... 38 3.2. Phân tích chương trình ................................................................................. 40 3.3. Sử dụng phần mềm weka để hỗ trợ ra luật kết hợp...................................... 41 PHẦN 3: KẾT LUẬN ......................................................................................... 50 PHẦN 4: TÀI LIỆU THAM KHẢO ................................................................... 51 DANH MỤC CÁC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT Ký hiệu, chữ viết tắt Ý nghĩa Candidate itemset Một itemset trong tập Ck được sử dụng để sinh ra các large itemset Ck Tập các ứng viên là tập mục có k mục dữ liệu (candidate k-itemset) Lk Tập các mục thương xuyên có k mục dữ liệu (Large itemset) Sup Độ hỗ trợ (Support) Support Độ hỗ trợ của luật kết hợp Confidence Độ tin cậy của luật kết hợp CSDL Cơ sở dữ liệu Minsup Độ hỗ trợ tối thiểu Minconf Độ tin cậy tối thiểu DM Data mining – Khai phá dữ liệu KPDL Khai phá dữ liệu CSDL Cơ sở dữ liệu DL Dữ liệu Supp(X) Độ hỗ trợ tập mục X Supp(X→Y) Độ hỗ trợ luật X kéo theo Y Conf(X→Y) Độ tin cậy luật X kéo theo Y Frequentlarge itemset Một itemset có độ hỗ trợ (support) >= ngưỡng độ hỗ trợ tối thiểu - tập mục phổ biến KDD (KDD-Knowledge Discovery and Data Mining) Khám phá tri thức ID Identifier Item Một phần tử của itemset Itemset Tập của các item k - itemset Một itemset có độ dài k → k -tập mục TID Transaction Identifier I Tập mục dữ liệu T Giao tác (Transaction) Transaction Giao dịch Classification Phân loại Candidate Dự tuyển FP - growth Frequent Pattern - Growth FP - tree Frequent Pattern tree DANH MỤC CÁC HÌNH STT Ý nghĩa Hình 1.1 Quá trình khám phá tri thức Hình 2.1 Ví dụ thuật toán Apriori Hình 3.1 Quá trình thực hiện ứng dụng khai phá luật kết hợp Hình 3.2 Giao diện phần mềm Weka Hình 3.3 Bảng dữ liệu các giao dịch hàng hóa Hình 3.4 Nạp dữ liệu (nạp file Supermarket.csv) Hình 3.5 Tab Associate và chọn thuật toán Apriori Hình 3.6 Thiết lập các tham số (numRules,Support, Confidence,...) Hình 3.7 Kết quả các luật kết hợp được sinh ra tương ứng Hình 3.8 Thiết lập các tham số (numRules, Support, Confidence,...) Hình 3.9 Kết quả các luật kết hợp được sinh ra tương ứng Hình 3.10 Thiết lập các tham số (numRules, Support, Confidence,...) Hình 3.11 Kết quả các luật kết hợp được sinh ra tương ứng 1 PHẦN 1: MỞ ĐẦU 1. Lý do chọn đề tài Trong những năm gần đây, việc nắm bắt được thông tin được coi là cơ sở của mọi hoạt động sản xuất, kinh doanh. Cá nhân hoặc tổ chức nào thu thập và hiểu được thông tin và hành động dựa trên các thông tin được kết xuất từ các thông tin đã có sẽ đạt được thành công trong mọi hoạt động. Chính vì lý do đó, việc tạo ra thông tin, tổ chức lưu trữ và khai thác ngày càng trở nên quan trọng và gia tăng không ngừng. Sự tăng trưởng vượt bậc của các cơ sở dữ liệu (CSDL) trong cuộc sống như: thương mại, quản lý và khoa học đã làm nảy sinh và thúc đẩy sự phát triển của kỹ thuật thu thập, lưu trữ, phân tích và khai phá dữ liệu… không chỉ bằng các phép toán đơn giản thông thường như: phép đếm, thống kê… mà đòi hỏi cách xử lý thông minh hơn, hiệu quả hơn. Từ đó các nhà quản lý có được thông tin có ích để tác động lại quá trình sản xuất, kinh doanh của mình… đó là tri thức. Các kỹ thuật cho phép ta khai thác được tri thức hữu dụng từ CSDL (lớn) được gọi là các kỹ thuật khai phá dữ liệu (DM - Data Mining). Khai phá luật kết hợp là một nội dung quan trọng trong khai phá dữ liệu. Kỹ thuật khám phá tri thức và khai phá dữ liệu đã và đang được nghiên cứu, ứng dụng trong nhiều lĩnh vực khác nhau ở các nước trên thế giới, tại Việt Nam kỹ thuật này tương đối còn mới mẻ tuy nhiên cũng đang được nghiên cứu và dần đưa vào ứng dụng. Khai phá dữ liệu được coi là quá trình trích xuất các thông tin có giá trị tiềm ẩn bên trong lượng lớn dữ liệu được lưu trữ trong các CSDL, kho dữ liệu… Hiện nay, ngoài thuật ngữ khai phá dữ liệu, người ta còn dùng một số thuật ngữ khác có ý nghĩa tương tự như: Khám phá tri thức từ cơ sở dữ liệu (Knowledge Discovery in Database-KDD), trích lọc dữ liệu (knowlegde extraction), phân tích dữ liệumẫu (datapattern analysis), khảo cổ dữ liệu (data archaeology), nạo vét dữ liệu (data dredging). Khóa luậ tốt nghiệp trình bày một số vấn đề về khám phá tri thức, khai phá dữ liệu, và trình bày rõ vấn đề khai phá luật kết hợp và ứng dụng một số thuật toán khai phá luật kết hợp trong CSDL. Chương 1: Tổng quan về khai phá dữ liệu. Chương 2: Luật kết hợp trong khai phá dữ liệu. Chương 3: Thử nghiệm khai phá luật kết hợp. 2 2. Mục tiêu của đề tài - Hiểu rõ đươc những khái niệm cơ bản của luật kết hợp. - Nắm vững một số thuật toán phát hiện luật kết hợp. - Xây dựng ứng dụng thuật toán Apriori và FP-growth để trợ giúp ra quyết địn trong thực tế. 3. Đối tượng nghiên cưú và phạm vi nghiên cứu - Lý thuyết về khai phá dữ liệu. - Một số thuật toán phát hiện luật kết hợp. - Nghiêm cứu thuật toán Apriori, FP-growth và xây dựng ứng dụng thực tế. 4. Phương pháp nghiên cứu - Tìm hiểu thu thập tài liệu liên quan đến luật kết hợp và một số thuật toán Apriori, FP-growth. - Lập kế hoạch, lên qui trình, tiến độ thực hiện. - Tham khảo nhiều tài liệu có liên quan, tham khảo ý kiến các chuyên gia trong lĩnh vực nghiên cứu. 5. Lịch sử nghiên cứu - Nội dung đã được dạy và học ở học phần Khai phá dữ liệu. - Có nhiều cá nhân cũng như nhóm nghiên cứu đã chọn kiến thức này làm nội dung cho đề tài nghiên cứu họ. 6. Đóng góp của đề tài - Cung cấp kiến thức đầy đủ hơn, chi tiết hơn về luật kết hợp. 7. Cấu trúc của đề tài - MỞ ĐẦU - NỘI DUNG Chương 1: Tổng quan về khai phá dữ liệu Chương 2: Luật kết hợp trong khai phá dữ liệu Chương 3: Thử nghiệm khai phá luật kết hợp 3 PHẦN 2: NỘI DUNG CHƯƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 1.1. Khái niệm Khai phá dữ liệu là một khái niệm ra đời vào những năm cuối ở thập kỷ 80 của thế kỷ XX. 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 trong tập dữ liệu. Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm khám phá tri thức trong cơ sở dữ liệu, để 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 hay các mô hình từ dữ liệu. Ở một mức độ trừu tượng nhất định có thể định nghĩa về khai phá dữ liệu: Data Mining là một quá trình tìm kiếm, phát hiện các tri thức mới, tiềm ẩn, hữu dụng trong CSDL lớn. Khám phá tri thức (KDD) là mục tiêu chính của khai phá dữ liệu, do vậy hai khái niệm đó được xem như hai lĩnh vực tương đương nhau. Nhưng, nếu phân chia một cách tách bạch thì khai phá dữ liệu là một bước chính trong quá trình KDD. Khai phá dữ liệu được dùng để mô tả quá trình phát hiện ra tri thức trong 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”. 4 Định nghĩa của Fayyad: “Khai phá tri thức là một quá trình không tầm thường nhận ra những mẫu dữ liệu có giá trị, mới, hữu ích, tiềm năng và có thể hiểu được”. 1.2. Khai phá dữ liệu và phát hiện tri thức Yếu tố thành công trong mọi hoạt động kinh doanh ngày nay là việc biết sử dụng thông tin có hiệu quả. Điều đó có nghĩa là từ các dữ liệu có sẵn phải tìm ra những thông tin tiềm ẩn mà trước đó chưa được phát hiện, tìm ra những xu hướng phát triển và những yếu tố tác động lên chúng. Thực hiện công việc đó chính là quá trình phát hiện tri thức trong cơ sở dữ liệu mà trong đó kỹ thuật cho phép ta lấy được các tri thức chính ra từ kỹ thuật khai phá dữ liệu. Nếu quan niệm tri thức là một quan hệ của các mẫu giữa các phần tử dữ liệu thì quá trình phát hiện tri thức chỉ toàn bộ quá trình trích xuất tri thức từ cơ sở dữ liệu, trong đó trải qua nhiều giai đoạn khác nhau như: Tìm hiểu và phát hiện vấn đề thu thập và tiền xử lý dữ liệu, phát hiện tri thức, minh họa và đánh giá tri thức đã phát hiện và đưa kết quả vào thực tế. Khai phá dữ liệu có những điểm khác nhau về mặt ngữ nghĩa so với phát hiện tri thức từ cơ sở dữ liệu nhưng thực tế ta thấy khai phá dữ liệu là chỉ một giai đoạn phát hiện tri thức trong một chuỗi các giai đoạn quá trình phát hiện tri thức trong cơ sở dữ liệu. Tuy nhiên đây là giai đoạn đóng vai trò chủ chốt và là giai đoạn chính tạo nên tính đa ngành của phát hiện tri thức trong cơ sở dữ liệu. 1.3. Quá trình khám phá tri thức trong CSDL Khám phá tri thức trong CSDL (KDD) là lĩnh vực liên quan đến các ngành như: thống kê, học máy, CSDL, thuật toán, trực quan hoá dữ liệu, tính toán song song và hiệu năng cao,… Mục đích của quá trình khám phá tri thức là rút ra tri thức từ dữ liệu trong CSDL lớn. Quá trình khai phá dữ liệu là quá trình gồm nhiều giai đoạn và lặp lại, mà trong đó sự lặp lại có thể xuất hiện ở bất cứ bước nào. Quá trình đó có thể được mô tả theo hình sau: 5 Hình 1.1: Quá trình khám phá tri thức. Bước thứ nhất: Hình thành, xác định và định nghĩa bài toán. Là tìm hiểu lĩnh vực ứng dụng từ đó hình thành bài toán, xác định các nhiệm vụ cần phải hoàn thành. Bước này sẽ quyết định cho việc rút ra được các tri thức hữu ích và cho phép chọn các phương pháp khai phá dữ liệu thích hợp với mục đích ứng dụng và bản chất của dữ liệu. Bước thứ hai: Thu thập và tiền xử lý dữ liệu. Là thu thập và xử lý thô, còn được gọi là tiền xử lý dữ liệu nhằm loại bỏ nhiễu (làm sạch dữ liệu), xử lý việc thiếu dữ liệu (làm giàu dữ liệu), biến đổi dữ liệu và rút gọn dữ liệu nếu cần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn bộ qui trình phát hiện tri thức. Do dữ liệu được lấy từ nhiều nguồn khác nhau, không đồng nhất, … có thể gây ra các nhầm lẫn. Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn và rời rạc hoá. Bước thứ ba: Khai phá dữ liệu, rút ra các tri thức. Là khai phá dữ liệu, hay nói cách khác là trích ra các mẫu hoặcvà các mô hình ẩn dưới các dữ liệu. Giai đoạn này rất quan trọng, bao gồm các công đoạn như: chức năng, nhiệm vụ và mục đích của khai phá dữ liệu, dùng phương pháp khai phá nào? Thông thường, các bài toán khai phá dữ liệu bao gồm: các bài toán mang tính mô tả - đưa ra tính chất chung nhất của dữ liệu, các bài toán dự báo - bao gồm cả việc phát hiện các suy diễn dựa trên dữ liệu hiện có. Tùy theo bài toán xác định được mà ta lựa chọn các phương pháp khai phá dữ liệu cho phù hợp. Bước thứ tư: Là hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ các mô tả và dự đoán. Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện. 6 Bước thứ năm: Sử dụng các tri thức phát hiện được. Là hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ các mô tả và dự đoán. Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện. Các kết quả của quá trình khám phá tri thức có thể được đưa và ứng dụng trong các lĩnh vực khác nhau. Do các kết quả có thể là các dự đoán hoặc các mô tả nên chúng có thể được đưa vào các hệ thống hỗ trợ ra quyết định nhằm tự động hoá quá trình này. Tóm lại: KDD là một quá trình kết xuất ra tri thức từ kho dữ liệu mà trong đó khai phá dữ liệu là công đoạn quan trọng nhất. 1.4. Các phương pháp khai phá dữ liệu Khai phá dữ liệu là lĩnh vực mà con người luôn tìm cách đạt được mục đích sử dụng thông tin của mình. 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 kiế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 để 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ô. 1.4.1. Các thành phần của giải thuật khai phá dữ liệu Giải thuật khai phá dữ liệu bao gồm 3 thành phần chính như sau: biểu diễn mô hình, kiểm định mô hình và phương pháp tìm kiếm. - Biểu diễn mô hình: Mô hình được biểu diễn theo một ngôn ngữ L nào đó để miêu tả các mẫu có thể khai thác được. Mô tả mô hình rõ ràng thì học máy sẽ tạo ra mẫu có mô hình chính xác cho dữ liệu. Tuy nhiên, nếu mô hình quá lớn thì khả năng dự đoán của học máy sẽ bị hạn chế. Như thế sẽ làm cho việc tìm kiếm phức tạp hơn cũng như hiểu được mô hình là không đơn giản hoặc sẽ không thể có các mẫu tạo ra được một mô hình chính xác cho dữ liệu. Vì vậy, việc quan trọng là người phân tích dữ liệu là cần phải hiểu đầy đủ các giả thiết miêu tả. Một điều cũng khá quan trọng là người thiết kế giải thuật cũng phải diễn tả được các giả thiết mô tả nào được tạo ra bởi giải thuật nào. Khả năng miêu tả mô hình càng lớn thì càng làm tăng mức độ nguy hiểm do bị học quá và làm giảm đi khả năng dự đoán các dữ liệu chưa biết. Hơn nữa, việc tìm kiếm sẽ càng trở lên phức tạp hơn và việc giải thích mô hình cũng khó khăn hơn. 7 Mô hình ban đầu được xác định bằng cách kết hợp biến đầu ra (phụ thuộc) với các biến độc lập mà biến đầu ra phụ thuộc vào. Sau đó phải tìm những tham số mà bài toán cần tập trung giải quyết. Việc tìm kiếm mô hình sẽ đưa ra được một mô hình phù hợp với tham số được xác định dựa trên dữ liệu (trong một số trường hợp khác thì mô hình và các tham số lại thay đổi để phù hợp với dữ liệu). Trong một số trường hợp, tập các dữ liệu được chia thành tập dữ liệu học và tập dữ liệu thử. Tập dữ liệu học được dùng để làm cho tham số của mô hình phù hợp với dữ liệu. Mô hình sau đó sẽ được đánh giá bằng cách đưa các dữ liệu thử vào mô hình và thay đổi các tham số cho phù hợp nếu cần. Mô hình lựa chọn có thể là phương pháp thống kê như SASS, … một số giải thuật học máy, mạng neuron, suy diễn hướng tình huống, các kỹ thuật phân lớp. - Kiểm định mô hình (model evaluation): Là việc đánh giá, ước lượng các mô hình chi tiết, chuẩn trong quá trình xử lý và phát hiện tri thức với sự ước lượng có dự báo chính xác hay không và có thoả mãn cơ sở logic hay không? Ước lượng phải được đánh giá chéo (cross validation) với việc mô tả đặc điểm bao gồm dự báo chính xác, tính mới lạ, tính hữu ích, tính hiểu được phù hợp với các mô hình. Hai phương pháp logic và thống kê có thể sử dụng trong mô hình kiểm định. - Phương pháp tìm kiếm: Phương pháp này bao gồm hai thành phần: Tìm kiếm tham số và tìm kiếm mô hình. Trong tìm kiếm tham số, giải thuật cần tìm kiếm các tham số để tối ưu hóa các tiêu chuẩn đánh giá mô hình với các dữ liệu quan sát được và với một mô tả mô hình đã định. Việc tìm kiếm không cần thiết đối với một số bài toán khá đơn giản: Các đánh giá tham số tối ưu có thể đạt được bằng các cách đơn giản hơn. Đối với các mô hình chung thì không có các cách này, khi đó giải thuật “tham lam” thường được sử dụng lặp đi lặp lại. Tìm kiếm mô hình xảy ra giống như một vòng lặp qua phương pháp tìm kiếm tham số: Mô tả mô hình bị thay đổi tạo nên một họ các mô hình. Với mỗi một mô tả mô hình, phương pháp tìm kiếm tham số được áp dụng để đánh giá chất lượng mô hình. Các phương pháp tìm kiếm mô hình thường sử dụng các kỹ thuật tìm kiếm heuristic vì kích thước của không gian các mô hình có thể thường ngăn cản các tìm kiếm tổng thể, hơn nữa các giải pháp đơn giản theo mẫu đóng (closed form) không dễ đạt được. 1.4.2. Phương pháp suy diễn quy nạp Một CSDL là một kho thông tin nhưng các thông tin quan trọng hơn cũng có thể được suy diễn từ kho thông tin đó. Có hai kỹ thuật chính để thực hiện việc này là suy diễn và quy nạp. 8 - Phương pháp suy diễn: Nhằm rút ra thông tin là kết quả logic của các thông tin trong CSDL. Ví dụ như toán tử liên kết áp dụng cho bảng quan hệ, bảng đầu chứa thông tin về các nhân viên và phòng ban, bảng thứ hai chứa các thông tin về các phòng ban và các trưởng phòng. Như vậy sẽ suy ra được mối quan hệ giữa các nhân viên và các trưởng phòng. Phương pháp suy diễn dựa trên các sự kiện chính xác để suy ra các tri thức mới từ các thông tin cũ. Mẫu chiết xuất được bằng cách sử dụng phương pháp này thường là các luật suy diễn. - Phương pháp quy nạp: Phương pháp quy nạp suy ra các thông tin được sinh ra từ CSDL. Có nghĩa là nó tự tìm kiếm, tạo mẫu và sinh ra tri thức chứ không phải bắt đầu với các tri thức đã biết trước. Các thông tin mà phương pháp này đem lại là các thông tin hay các tri thức cấp cao diễn tả về các đối tượng trong CSDL. Phương pháp này liên quan đến việc tìm kiếm các mẫu trong CSDL. Trong khai phá dữ liệu, quy nạp được sử dụng trong cây quyết định và tạo luật. 1.4.3. Phương pháp K-láng giềng gần Sự miêu tả các bản ghi trong tập dữ liệu khi trỏ vào không gian nhiều chiều là rất có ích đối với việc phân tích dữ liệu. Việc dùng các miêu tả này, nội dung của vùng lân cận được xác định, trong đó các bản ghi gần nhau trong không gian được xem xét thuộc về lân cận (hàng xóm – láng giềng) của nhau. Khái niệm này được dùng trong khoa học kỹ thuật với tên gọi K-láng giềng gần, trong đó K là số láng giềng được sử dụng. Phương pháp này rất hiệu quả nhưng lại đơn giản. Ví dụ: Để dự đoán hoạt động của cá thể xác định, K-láng giềng tốt nhất của cá thể được xem xét, và trung bình các hoạt động của các láng giềng gần đưa ra được dự đoán về hoạt động của cá thể đó. Kỹ thuật K-láng giềng gần là một phương pháp tìm kiếm đơn giản. Tuy nhiên, nó có một số mặt hạn chế giới là hạn phạm vi ứng dụng của nó. Đó là thuật toán này có độ phức tạp tính toán là luỹ thừa bậc 2 theo số bản ghi của tập dữ liệu. Vấn đề chính liên quan đến thuộc tính của bản ghi. Một bản ghi gồm nhiều thuộc tính độc lập, nó bằng một điểm trong không gian tìm kiếm có số chiều lớn. Trong các không gian có số chiều lớn, giữa hai điểm bất kỳ hầu như có cùng khoảng cách. Vì thế mà kỹ thuật K-láng giềng không cho ta thêm một thông tin có ích nào, khi hầu hết các cặp điểm đều là các láng giềng. Cuối cùng, phương pháp K-láng giềng không đưa ra lý thuyết để hiểu cấu trúc dữ liệu. Hạn chế đó có thể được khắc phục bằng kỹ thuật cây quyết định. 9 1.4.4. Phương pháp sử dụng cây quyết định và luật Với kỹ thuật phân lớp dựa trên cây quyết định, kết quả của quá trình xây dựng mô hình sẽ cho ra một cây quyết định. Cây này được sử dụng trong quá trình phân lớp các đối tượng dữ liệu chưa biết hoặc đánh giá độ chính xác của mô hình. Tương ứng với hai giai đoạn trong quá trình phân lớp là quá trình xây dựng và sử dụng cây quyết định. Quá trình xây dựng cây quyết định bắt đầu từ một nút đơn biểu diễn tất cả các mẫu dữ liệu. Sau đó, các mẫu sẽ được phân chia một cách đệ quy dựa vào việc lựa chọn các thuộc tính. Nếu các mẫu có cùng một lớp thì nút sẽ trở thành lá, ngược lại ta sử dụng một độ đo thuộc tính để chọn ra thuộc tính tiếp theo làm cơ sở để phân chia các mẫu ra các lớp. Theo từng giá trị của thuộc tính vừa chọn, ta tạo ra các nhánh tương ứng và phân chia các mẫu vào các nhánh đã tạo. Lặp lại quá trình trên cho tới khi tạo ra được cây quyết định, tất cả các nút triển khai thành lá và được gán nhãn. Quá trình đệ quy sẽ dừng lại khi một trong các điều kiện sau được thỏa mãn: - Tất cả các mẫu thuộc cùng một nút. - Không còn một thuộc tính nào để lựa chọn. - Nhánh không chứa mẫu nào. Phần lớn các giải thuật sinh cây quyết định đều có hạn chế chung là sử dụng nhiều bộ nhớ. Lượng bộ nhớ sử dụng tỷ lệ thuận với kích thước của mẫu dữ liệu huấn luyện. Một chương trình sinh cây quyết định có hỗ trợ sử dụng bộ nhớ ngoài song lại có nhược điểm về tốc độ thực thi. Do vậy, vấn đề tỉa bớt cây quyết định trở nên quan trọng. Các nút lá không ổn định trong cây quyết định sẽ được tỉa bớt. Kỹ thuật tỉa trước là việc dừng sinh cây quyết định khi chia dữ liệu không có ý nghĩa. 1.4.5. Phương pháp phát hiện luật kết hợp Phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành phần dữ liệu trong CSDL. Mẫu đầu ra của giải thuật khai phá dữ liệu là tập luật kết hợp tìm được. Ta có thể lấy một ví dụ đơn giản về luật kết hợp như sau: sự kết hợp giữa hai thành phần A và B có nghĩa là sự xuất hiện của A trong bản ghi kéo theo sự xuất hiện của B trong cùng bản ghi đó: A => B. Các luật kết hợp có thể là một cách hình thức hóa đơn giản. Chúng rất thích hợp cho việc tạo ra các kết quả có dữ liệu dạng nhị phân. Giải thuật tìm kiếm các luật kết hợp tạo ra số luật ít nhất phải bằng với số các tập phổ biến và 10 nếu như một tập phổ biến có kích thước K thì phải có ít nhất là 2 k tập phổ biến. Thông tin về các tập phổ biến được sử dụng để ước lượng độ tin cậy của các tập luật kết hợp. 1.5. Nhiệm vụ chính trong khai thác dữ liệu Quá trình khai phá dữ liệu là quá trình phát hiện ra mẫu thông tin. Trong đó, giải thuật khai phá tìm kiếm các mẫu đáng quan tâm theo dạng xác định như các luật, phân lớp, hồi quy, cây quyết định, ... 1.5.1. Phân lớp (phân loại - classification) Là việc xác định một hàm ánh xạ từ một mẫu dữ liệu vào một trong số các lớp đã được biết trước đó. Mục tiêu của thuật toán phân lớp là tìm ra mối quan hệ nào đó giữa thuộc tính dự báo và thuộc tính phân lớp. Như thế quá trình phân lớp có thể sử dụng mối quan hệ này để dự báo cho các mục mới. Các kiến thức được phát hiện biểu diễn dưới dạng các luật theo cách sau: “Nếu các thuộc tính dự báo của một mục thoả mãn điều kiện của các tiền đề thì mục nằm trong lớp chỉ ra trong kết luận”. Ví dụ: Một mục biểu diễn thông tin về nhân viên có các thuộc tính dự báo là: họ tên, tuổi, giới tính, trình độ học vấn, …và thuộc tính phân loại là trình độ lãnh đạo của nhân viên. 1.5.2. Hồi qui (regression) Là việc học một hàm ánh xạ từ một mẫu dữ liệu thành một biến dự đoán có giá trị thực. Nhiệm vụ của hồi quy tương tự như phân lớp, điểm khác nhau chính là ở chỗ thuộc tính để dự báo là liên tục chứ không phải rời rạc. Việc dự báo các giá trị số thường được làm bởi các phương pháp thống kê cổ điển, chẳng hạn như hồi quy tuyến tính. Tuy nhiên, phương pháp mô hình hoá cũng được sử dụng, ví dụ: cây quyết định. Ứng dụng của hồi quy là rất nhiều, ví dụ: dự đoán số lượng sinh vật phát quang hiện thời trong khu rừng bằng cách dò tìm vi sóng bằng các thiết bị cảm biến từ xa; ước lượng xác suất người bệnh có thể chết bằng cách kiểm tra các triệu chứng; dự báo nhu cầu của người dùng đối với một sản phẩm, … 1.5.3. Phân nhóm (clustering) Là việc mô tả chung để tìm ra các tập hay các nhóm, loại mô tả dữ liệu. Các nhóm có thể tách nhau hoặc phân cấp hay gối lên nhau. Có nghĩa là dữ liệu có thể vừa thuộc nhóm này lại vừa thuộc nhóm khác. Các ứng dụng khai phá dữ liệu có nhiệm vụ phân nhóm như phát hiện tập các khách hàng có phản ứng giống nhau trong CSDL tiếp thị; xác định các quang phổ từ các phương pháp đo 11 tia hồng ngoại, … Liên quan chặt chẽ đến việc phân nhóm là nhiệm vụ đánh giá dữ liệu, hàm mật độ xác suất đa biến các trường trong CSDL. 1.5.4. Tổng hợp (summarization) Là công việc liên quan đến các phương pháp tìm kiếm một mô tả tập con dữ liệu. Kỹ thuật tổng hợp thường áp dụng trong việc phân tích dữ liệu có tính thăm dò và khóa luận tự động. Nhiệm vụ chính là sản sinh ra các mô tả đặc trưng cho một lớp. Mô tả loại này là một kiểu tổng hợp, tóm tắt các đặc tính chung của tất cả hay hầu hết các mục của một lớp. Các mô tả đặc trưng thể hiện theo luật có dạng sau: “Nếu một mục thuộc về lớp đã chỉ trong tiền đề thì mục đó có tất cả các thuộc tính đã nêu trong kết luận”. Lưu ý rằng luật dạng này có các khác biệt so với luật phân lớp. Luật phát hiện đặc trưng cho lớp chỉ sản sinh khi các mục đã thuộc về lớp đó. 1.5.5. Mô hình hoá sự phụ thuộc (dependency modeling) Là việc tìm kiếm một mô hình mô tả sự phụ thuộc giữa các biến, thuộc tính theo hai mức: Mức cấu trúc của mô hình mô tả (thường dưới dạng đồ thị). Trong đó, các biến phụ thuộc bộ phận vào các biến khác. Mức định lượng mô hình mô tả mức độ phụ thuộc. Những phụ thuộc này thường được biểu thị dưới dạng theo luật “nếu - thì” (nếu tiền đề là đúng thì kết luận đúng). Về nguyên tắc, cả tiền đề và kết luận đều có thể là sự kết hợp logic của các giá trị thuộc tính. Trên thực tế, tiền đề thường là nhóm các giá trị thuộc tính và kết luận chỉ là một thuộc tính. Hơn nữa hệ thống có thể phát hiện các luật phân lớp trong đó tất cả các luật cần phải có cùng một thuộc tính do người dùng chỉ ra trong kết luận. Quan hệ phụ thuộc cũng có thể biểu diễn dưới dạng mạng tin cậy Bayes. Đó là đồ thị có hướng, không chu trình. Các nút biểu diễn thuộc tính và trọng số của liên kết phụ thuộc giữa các nút đó. 1.5.6. Phát hiện sự biến đổi và độ lệch (change and deviation dectection) Nhiệm vụ này tập trung vào khám phá hầu hết sự thay đổi có nghĩa dưới dạng độ đo đã biết trước hoặc giá trị chuẩn, phát hiện độ lệch đáng kể giữa nội dung của tập con dữ liệu thực và nội dung mong đợi. Hai mô hình độ lệch hay dùng là lệch theo thời gian hay lệch theo nhóm. Độ lệch theo thời gian là sự thay đổi có ý nghĩa của dữ liệu theo thời gian. Độ lệch theo nhóm là sự khác nhau của giữa dữ liệu trong hai tập con dữ liệu, ở đây tính cả trường hợp tập con dữ liệu này thuộc tập con kia, nghĩa xác định dữ liệu trong một nhóm con của đối tượng có khác đáng kể so với toàn bộ đối tượng không? Theo cách này, sai sót dữ liệu hay sai lệch so với giá trị thông thường được phát hiện. 12 Vì những nhiệm vụ này yêu cầu số lượng và các dạng thông tin rất khác nhau nên chúng thường ảnh hưởng đến việc thiết kế và chọn phương pháp khai phá dữ liệu khác nhau. Ví dụ như phương pháp cây quyết định tạo ra được một mô tả phân biệt được các mẫu giữa các lớp nhưng không có tính chất và đặc điểm của lớp. 1.6. Các kỹ thuật khai phá dữ liệu 1.6.1. Các kỹ thuật tiếp cận trong Data mining Căn cứ vào lớp các bài toán cần giải quyết, khai phá dữ liệu có các kỹ thuật áp dụng sau: a) Phân lớp và dự đoán: 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 các bệnh nhân dữ liệu trong hồ sơ bệnh án. Hướng tiếp cận này thường sử dụng một số kỹ thuật của học máy như cây quyết định, mạng nơ ron nhân tạo. b) Luật kết hợp: phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành phần dữ liệu trong CSDL. Mẫu đầu ra của giải thuật khai phá dữ liệu là tập luật kết hợp tìm được. Có thể lấy một ví dụ đơn giản về luật kết hợp như sau: phân tích CSDL bán hàng nhận được thông tin về những khách hàng mua máy tính cũng có khuynh hướng mua phần mềm quản lý tài chính trong cùng lần mua được miêu tả trong luật kết hợp sau: “Mua máy tính Mua phần mềm quản lý tài chính” Độ hỗ trợ: 4, độ tin cậy: 70. Độ hỗ trợ và độ tin cậy là hai độ đo của sự đáng quan tâm của luật. Chúng tương ứng phản ánh sự hữu ích và sự chắc chắn của luật đã khám phá. Độ hỗ trợ 4 có nghĩa là: 4 của tất cả các tác vụ đã phân tích chỉ ra rằng máy tính và phần mềm quản lý tài chính là đã được mua cùng nhau. Còn độ tin cậy 70 có nghĩa là 70 các khách hàng mua máy tính cũng mua phần mềm quản lý tài chính. c) Phân tích chuỗi theo thời gian: 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) Phân cụm: xếp các đối tượng theo từng cụm dữ liệu tự nhiên. e) Mô tả khái niệm: 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. 13 1.6.2. Dạng dữ liệu có thể khai phá Do khai phá dữ liệu được ứng dụng rộng rãi nên nó có thể làm việc với rất nhiều kiểu dữ liệu khác nhau. Sau đây là một số dạng dữ liệu điển hình: CSDL quan hệ, CSDL đa chiều, CSDL dạng giao dịch, CSDL quan hệ - hướng đối tượng, dữ liệu không gian và thời gian, Dữ liệu chuỗi thời gian, CSDL đa phương tiện, dữ liệu Text và Web... 1.6.3. Các ứng dụng của khai phá dữ liệu Phát hiện tri thức và khai phá dữ liệu liên quan đến nhiều ngà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 phát hiện tri thức và khai phá dữ liệu 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ư: 1) Thống kê, phân tích dữ liệu và hỗ trợ ra quyết định. 2) Điều trị y học và chăm sóc y tế: một số thông tin về chuẩn đoán bệnh lưu trong các hệ thống quản lý bệnh viện. Phân tích mối liên hệ giữa các triệu chứng bệnh, chuẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc, ...). 3) Lĩnh vực khoa học: 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ối liên hệ gene và một số bệnh di truyền, ... 4) Bảo hiểm, tài chính và thị 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, ... 5) Sản xuất và chế biến: Quy trình, phương pháp chế biến và xử lý sự cố. 6) 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ụ, … 7) 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. 1.6.4. Khai phá luật kết hợp và ứng dụng Luật kết hợp là một biểu thức có dạng: X Y, trong đó X và Y là tập các trường gọi là item. Ý nghĩa của các luật kết hợp khá dễ nhận thấy: Cho trước một cơ sở dữ liệu có D là tập các giao tác - trong đó mỗi giao tác T D là tập các item - khi đó X Y diễn đạt ý nghĩa rằng bất cứ khi nào giao tác T có chứa X thì chắc chắn T có chứa Y. Độ tin cậy của luật (rule confidence) có thể được hiểu như xác suất điều kiện p(Y T X T). Ý tưởng của việc khai thác các luật kết hợp có nguồn gốc từ việc phân tích dữ liệu mua hàng của khách và nhận 14 ra rằng “Một khách hàng mua mặt hàng X1 và X2 thì sẽ mua mặt hàng Y với xác suất là c”. Ứng dụng trực tiếp của các luật này trong các bài toán kinh doanh làm cho luật kết hợp trở thành một phương pháp khai thác phổ biến. Hơn nữa, luật kết hợp không chỉ bị giới hạn trong phân tích sự phụ thuộc lẫn nhau trong phạm vi các ứng dụng bán lẻ mà chúng còn được áp dụng thành công trong rất nhiều bài toán kinh doanh. Như vậy, khai phá luật kết hợp là một phương pháp xử lý thông tin quan trọng và phổ biến, nó nhằm khám phá mối liên hệ giữa các mẫu dữ liệu. Tiếp theo, khóa luận tốt nghiệp sẽ đề cập đến luật kết hợp. Đây là một hướng nghiên cứu quan trọng trong lĩnh vực khai phá dữ liệu và là nội dung tìm hiểu, nghiên cứu trọng tâm của khóa luận tốt nghiệp. 1.6.5. Phân loại các hệ thống khai phá dữ liệu KPDL là một công nghệ tri thức liên quan đến nhiều lĩnh vực nghiên cứu khác như CSDL, học máy, trí tuệ nhân tạo, trực quan hoá dữ liệu và tri thức, … Chúng ta có thể phân loại các hệ thống KPDL theo các tiêu chí khác nhau như sau: - Phân loại dựa trên loại dữ liệu được khai phá: Các hệ thống KPDL làm việc với CSDL quan hệ, kho dữ liệu , CSDL giao dịch, CSDL hướng đối tượng, CSDL không gian và thời gian, CSDL đa phương tiện, CSDL văn bản và web, … - Phân loại dựa trên loại tri thức khai phá được: Các hệ thống KPDL có thể phân loại dựa theo loại tri thức mà chúng khai phá được, nghĩa là dựa vào các chức năng khai phá như mô tả, tóm tắt, luật kết hợp, phân lớp, dự báo, phân cụm, … - Phân loại dựa trên loại kỹ thuật được sử dụng: Các công cụ KPDL như các hệ thống xử lý phân tích trực tuyến (OLAP), sử dụng kỹ thuật học máy (cây quyết định, mạng nơron nhân tạo, k- maen, máy hỗ trợ vector, tập thô, tập mờ, ...), trực quan hoá dữ liệu, … - Phân loại dựa trên các lĩnh vực hệ thống KPDL được ứng dụng: Các hệ thống KPDL được sử dụng trong các lĩnh vực khác nhau như: Thương mại (ngành công nghiệp bán lẻ), viễn thông, tin sinh học, điều trị y tế, tài chính và thị trường chứng khoán, bảo hiểm y tế, … 1.6.6. Xu hướng trong khai phá dữ liệu Sự đa dạng của dữ liệu, các nhiệm vụ KPDL, và các cách tiếp cận KPDL đặt ra nhiều thách thức trong vấn đề nghiên cứu KPDL. Sự phát triển của các hệ thống và phương pháp KPDL hiệu quả, việc xây dựng các môi trường KPDL 15 tương tác và tích hợp, việc thiết kế các ngôn ngữ KPDL, và việc ứng dụng các kỹ thuật KPDL để giải quyết các vấn đề ứng dụng lớn là nhiệm vụ quan trọng đối với các nhà nghiên cứu KPDL, hệ thống KPDL và các nhà phát triển ứng dụng. Phần này đề cập đến một số vấn đề đang thu hút sự chú ý của các nhà nghiên cứu KPDL. - Các hệ thống khai thác dữ liệu có thể khai phá các loại khác nhau của tri thức từ loại dữ liệu khác nhau. - Làm thế nào để tăng cường hiệu suất, độ chính xác, khả năng mở rộng, và tích hợp của các hệ thống khai thác dữ liệu? Làm thế nào để giảm độ phức tạp tính toán? Làm thế nào để cải thiện khả năng xử lý dữ liệu không đầy đủ, không phù hợp, và nhiễu? Ba câu hỏi trên vẫn còn cần được tập trung trong tương lai. - Tận dụng tri thức nền hoặc tri thức từ những người dùng (các chuyên gia hoặc chuyên viên) để nâng cấp hiệu suất của các hệ thống khai thác dữ liệu. - Khai thác dữ liệu song song và phân tán là một xu hướng nghiên cứu thú vị bởi vì nó sử dụng các hệ thống tính toán mạnh mẽ để giảm thời gian phản ứng. Đây là điều cần thiết bởi vì ngày càng cần nhiều các ứng dụng thời gian thực trong thế giới cạnh tranh ngày nay. - Ngôn ngữ truy vấn khai thác dữ liệu (DMQL): Các nhà nghiên cứu trong lĩnh vực này cố gắng thiết kế một ngôn ngữ truy vấn chuẩn cho khai thác dữ liệu. Ngôn ngữ này sẽ được sử dụng trong các hệ thống OLAM như SQL được sử dụng rộng rả...
NỘI DUNG
Khai phá dữ liệu là một khái niệm ra đời vào những năm cuối ở thập kỷ 80 của thế kỷ XX 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 trong tập dữ liệu
Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm khám phá tri thức trong cơ sở dữ liệu, để 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 hay các mô hình từ dữ liệu Ở một mức độ trừu tượng nhất định có thể định nghĩa về khai phá dữ liệu:
Data Mining là một quá trình tìm kiếm, phát hiện các tri thức mới, tiềm ẩn, hữu dụng trong CSDL lớn
Khám phá tri thức (KDD) là mục tiêu chính của khai phá dữ liệu, do vậy hai khái niệm đó được xem như hai lĩnh vực tương đương nhau Nhưng, nếu phân chia một cách tách bạch thì khai phá dữ liệu là một bước chính trong quá trình KDD
Khai phá dữ liệu được dùng để mô tả quá trình phát hiện ra tri thức trong 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”.
TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
Khái niệm
Khai phá dữ liệu là một khái niệm ra đời vào những năm cuối ở thập kỷ 80 của thế kỷ XX 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 trong tập dữ liệu
Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm khám phá tri thức trong cơ sở dữ liệu, để 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 hay các mô hình từ dữ liệu Ở một mức độ trừu tượng nhất định có thể định nghĩa về khai phá dữ liệu:
Data Mining là một quá trình tìm kiếm, phát hiện các tri thức mới, tiềm ẩn, hữu dụng trong CSDL lớn
Khám phá tri thức (KDD) là mục tiêu chính của khai phá dữ liệu, do vậy hai khái niệm đó được xem như hai lĩnh vực tương đương nhau Nhưng, nếu phân chia một cách tách bạch thì khai phá dữ liệu là một bước chính trong quá trình KDD
Khai phá dữ liệu được dùng để mô tả quá trình phát hiện ra tri thức trong 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”
4 Định nghĩa của Fayyad: “Khai phá tri thức là một quá trình không tầm thường nhận ra những mẫu dữ liệu có giá trị, mới, hữu ích, tiềm năng và có thể hiểu được”.
Khai phá dữ liệu và phát hiện tri thức
Yếu tố thành công trong mọi hoạt động kinh doanh ngày nay là việc biết sử dụng thông tin có hiệu quả Điều đó có nghĩa là từ các dữ liệu có sẵn phải tìm ra những thông tin tiềm ẩn mà trước đó chưa được phát hiện, tìm ra những xu hướng phát triển và những yếu tố tác động lên chúng Thực hiện công việc đó chính là quá trình phát hiện tri thức trong cơ sở dữ liệu mà trong đó kỹ thuật cho phép ta lấy được các tri thức chính ra từ kỹ thuật khai phá dữ liệu
Nếu quan niệm tri thức là một quan hệ của các mẫu giữa các phần tử dữ liệu thì quá trình phát hiện tri thức chỉ toàn bộ quá trình trích xuất tri thức từ cơ sở dữ liệu, trong đó trải qua nhiều giai đoạn khác nhau như: Tìm hiểu và phát hiện vấn đề thu thập và tiền xử lý dữ liệu, phát hiện tri thức, minh họa và đánh giá tri thức đã phát hiện và đưa kết quả vào thực tế
Khai phá dữ liệu có những điểm khác nhau về mặt ngữ nghĩa so với phát hiện tri thức từ cơ sở dữ liệu nhưng thực tế ta thấy khai phá dữ liệu là chỉ một giai đoạn phát hiện tri thức trong một chuỗi các giai đoạn quá trình phát hiện tri thức trong cơ sở dữ liệu Tuy nhiên đây là giai đoạn đóng vai trò chủ chốt và là giai đoạn chính tạo nên tính đa ngành của phát hiện tri thức trong cơ sở dữ liệu.
Quá trình khám phá tri thức trong CSDL
Khám phá tri thức trong CSDL (KDD) là lĩnh vực liên quan đến các ngành như: thống kê, học máy, CSDL, thuật toán, trực quan hoá dữ liệu, tính toán song song và hiệu năng cao,…
Mục đích của quá trình khám phá tri thức là rút ra tri thức từ dữ liệu trong CSDL lớn Quá trình khai phá dữ liệu là quá trình gồm nhiều giai đoạn và lặp lại, mà trong đó sự lặp lại có thể xuất hiện ở bất cứ bước nào
Quá trình đó có thể được mô tả theo hình sau:
Hình 1.1: Quá trình khám phá tri thức
B ướ c th ứ nh ấ t : Hình thành, xác định và định nghĩa bài toán Là tìm hiểu lĩnh vực ứng dụng từ đó hình thành bài toán, xác định các nhiệm vụ cần phải hoàn thành Bước này sẽ quyết định cho việc rút ra được các tri thức hữu ích và cho phép chọn các phương pháp khai phá dữ liệu thích hợp với mục đích ứng dụng và bản chất của dữ liệu
B ướ c th ứ hai : Thu thập và tiền xử lý dữ liệu Là thu thập và xử lý thô, còn được gọi là tiền xử lý dữ liệu nhằm loại bỏ nhiễu (làm sạch dữ liệu), xử lý việc thiếu dữ liệu (làm giàu dữ liệu), biến đổi dữ liệu và rút gọn dữ liệu nếu cần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn bộ qui trình phát hiện tri thức Do dữ liệu được lấy từ nhiều nguồn khác nhau, không đồng nhất, … có thể gây ra các nhầm lẫn Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn và rời rạc hoá
B ướ c th ứ ba : Khai phá dữ liệu, rút ra các tri thức Là khai phá dữ liệu, hay nói cách khác là trích ra các mẫu hoặc/và các mô hình ẩn dưới các dữ liệu Giai đoạn này rất quan trọng, bao gồm các công đoạn như: chức năng, nhiệm vụ và mục đích của khai phá dữ liệu, dùng phương pháp khai phá nào? Thông thường, các bài toán khai phá dữ liệu bao gồm: các bài toán mang tính mô tả - đưa ra tính chất chung nhất của dữ liệu, các bài toán dự báo - bao gồm cả việc phát hiện các suy diễn dựa trên dữ liệu hiện có Tùy theo bài toán xác định được mà ta lựa chọn các phương pháp khai phá dữ liệu cho phù hợp
B ướ c th ứ t ư : Là hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ các mô tả và dự đoán Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện
B ướ c th ứ n ă m : Sử dụng các tri thức phát hiện được Là hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ các mô tả và dự đoán Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện Các kết quả của quá trình khám phá tri thức có thể được đưa và ứng dụng trong các lĩnh vực khác nhau Do các kết quả có thể là các dự đoán hoặc các mô tả nên chúng có thể được đưa vào các hệ thống hỗ trợ ra quyết định nhằm tự động hoá quá trình này
Tóm lại: KDD là một quá trình kết xuất ra tri thức từ kho dữ liệu mà trong đó khai phá dữ liệu là công đoạn quan trọng nhất.
Các phương pháp khai phá dữ liệu
Khai phá dữ liệu là lĩnh vực mà con người luôn tìm cách đạt được mục đích sử dụng thông tin của mình 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 kiế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 để 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ô
1.4.1 Các thành phần của giải thuật khai phá dữ liệu
Giải thuật khai phá dữ liệu bao gồm 3 thành phần chính như sau: biểu diễn mô hình, kiểm định mô hình và phương pháp tìm kiếm
- Bi ể u di ễ n mô hình: Mô hình được biểu diễn theo một ngôn ngữ L nào đó để miêu tả các mẫu có thể khai thác được Mô tả mô hình rõ ràng thì học máy sẽ tạo ra mẫu có mô hình chính xác cho dữ liệu Tuy nhiên, nếu mô hình quá lớn thì khả năng dự đoán của học máy sẽ bị hạn chế Như thế sẽ làm cho việc tìm kiếm phức tạp hơn cũng như hiểu được mô hình là không đơn giản hoặc sẽ không thể có các mẫu tạo ra được một mô hình chính xác cho dữ liệu Vì vậy, việc quan trọng là người phân tích dữ liệu là cần phải hiểu đầy đủ các giả thiết miêu tả Một điều cũng khá quan trọng là người thiết kế giải thuật cũng phải diễn tả được các giả thiết mô tả nào được tạo ra bởi giải thuật nào Khả năng miêu tả mô hình càng lớn thì càng làm tăng mức độ nguy hiểm do bị học quá và làm giảm đi khả năng dự đoán các dữ liệu chưa biết Hơn nữa, việc tìm kiếm sẽ càng trở lên phức tạp hơn và việc giải thích mô hình cũng khó khăn hơn
Mô hình ban đầu được xác định bằng cách kết hợp biến đầu ra (phụ thuộc) với các biến độc lập mà biến đầu ra phụ thuộc vào Sau đó phải tìm những tham số mà bài toán cần tập trung giải quyết Việc tìm kiếm mô hình sẽ đưa ra được một mô hình phù hợp với tham số được xác định dựa trên dữ liệu (trong một số trường hợp khác thì mô hình và các tham số lại thay đổi để phù hợp với dữ liệu) Trong một số trường hợp, tập các dữ liệu được chia thành tập dữ liệu học và tập dữ liệu thử Tập dữ liệu học được dùng để làm cho tham số của mô hình phù hợp với dữ liệu Mô hình sau đó sẽ được đánh giá bằng cách đưa các dữ liệu thử vào mô hình và thay đổi các tham số cho phù hợp nếu cần Mô hình lựa chọn có thể là phương pháp thống kê như SASS, … một số giải thuật học máy, mạng neuron, suy diễn hướng tình huống, các kỹ thuật phân lớp
- Ki ể m đị nh mô hình (model evaluation): Là việc đánh giá, ước lượng các mô hình chi tiết, chuẩn trong quá trình xử lý và phát hiện tri thức với sự ước lượng có dự báo chính xác hay không và có thoả mãn cơ sở logic hay không? Ước lượng phải được đánh giá chéo (cross validation) với việc mô tả đặc điểm bao gồm dự báo chính xác, tính mới lạ, tính hữu ích, tính hiểu được phù hợp với các mô hình Hai phương pháp logic và thống kê có thể sử dụng trong mô hình kiểm định
- Ph ươ ng pháp tìm ki ế m: Phương pháp này bao gồm hai thành phần: Tìm kiếm tham số và tìm kiếm mô hình Trong tìm kiếm tham số, giải thuật cần tìm kiếm các tham số để tối ưu hóa các tiêu chuẩn đánh giá mô hình với các dữ liệu quan sát được và với một mô tả mô hình đã định Việc tìm kiếm không cần thiết đối với một số bài toán khá đơn giản: Các đánh giá tham số tối ưu có thể đạt được bằng các cách đơn giản hơn Đối với các mô hình chung thì không có các cách này, khi đó giải thuật “tham lam” thường được sử dụng lặp đi lặp lại Tìm kiếm mô hình xảy ra giống như một vòng lặp qua phương pháp tìm kiếm tham số: Mô tả mô hình bị thay đổi tạo nên một họ các mô hình Với mỗi một mô tả mô hình, phương pháp tìm kiếm tham số được áp dụng để đánh giá chất lượng mô hình Các phương pháp tìm kiếm mô hình thường sử dụng các kỹ thuật tìm kiếm heuristic vì kích thước của không gian các mô hình có thể thường ngăn cản các tìm kiếm tổng thể, hơn nữa các giải pháp đơn giản theo mẫu đóng (closed form) không dễ đạt được
1.4.2 Phương pháp suy diễn / quy nạp
Một CSDL là một kho thông tin nhưng các thông tin quan trọng hơn cũng có thể được suy diễn từ kho thông tin đó Có hai kỹ thuật chính để thực hiện việc này là suy diễn và quy nạp
- Phương pháp suy diễn: Nhằm rút ra thông tin là kết quả logic của các thông tin trong CSDL Ví dụ như toán tử liên kết áp dụng cho bảng quan hệ, bảng đầu chứa thông tin về các nhân viên và phòng ban, bảng thứ hai chứa các thông tin về các phòng ban và các trưởng phòng Như vậy sẽ suy ra được mối quan hệ giữa các nhân viên và các trưởng phòng Phương pháp suy diễn dựa trên các sự kiện chính xác để suy ra các tri thức mới từ các thông tin cũ Mẫu chiết xuất được bằng cách sử dụng phương pháp này thường là các luật suy diễn
- Phương pháp quy nạp: Phương pháp quy nạp suy ra các thông tin được sinh ra từ CSDL Có nghĩa là nó tự tìm kiếm, tạo mẫu và sinh ra tri thức chứ không phải bắt đầu với các tri thức đã biết trước Các thông tin mà phương pháp này đem lại là các thông tin hay các tri thức cấp cao diễn tả về các đối tượng trong CSDL Phương pháp này liên quan đến việc tìm kiếm các mẫu trong CSDL Trong khai phá dữ liệu, quy nạp được sử dụng trong cây quyết định và tạo luật
1.4.3 Phương pháp K-láng giềng gần
Sự miêu tả các bản ghi trong tập dữ liệu khi trỏ vào không gian nhiều chiều là rất có ích đối với việc phân tích dữ liệu Việc dùng các miêu tả này, nội dung của vùng lân cận được xác định, trong đó các bản ghi gần nhau trong không gian được xem xét thuộc về lân cận (hàng xóm – láng giềng) của nhau Khái niệm này được dùng trong khoa học kỹ thuật với tên gọi K-láng giềng gần, trong đó K là số láng giềng được sử dụng Phương pháp này rất hiệu quả nhưng lại đơn giản
Ví dụ: Để dự đoán hoạt động của cá thể xác định, K-láng giềng tốt nhất của cá thể được xem xét, và trung bình các hoạt động của các láng giềng gần đưa ra được dự đoán về hoạt động của cá thể đó
Kỹ thuật K-láng giềng gần là một phương pháp tìm kiếm đơn giản Tuy nhiên, nó có một số mặt hạn chế giới là hạn phạm vi ứng dụng của nó Đó là thuật toán này có độ phức tạp tính toán là luỹ thừa bậc 2 theo số bản ghi của tập dữ liệu
Vấn đề chính liên quan đến thuộc tính của bản ghi Một bản ghi gồm nhiều thuộc tính độc lập, nó bằng một điểm trong không gian tìm kiếm có số chiều lớn Trong các không gian có số chiều lớn, giữa hai điểm bất kỳ hầu như có cùng khoảng cách Vì thế mà kỹ thuật K-láng giềng không cho ta thêm một thông tin có ích nào, khi hầu hết các cặp điểm đều là các láng giềng Cuối cùng, phương pháp K-láng giềng không đưa ra lý thuyết để hiểu cấu trúc dữ liệu Hạn chế đó có thể được khắc phục bằng kỹ thuật cây quyết định
1.4.4 Phương pháp sử dụng cây quyết định và luật
Với kỹ thuật phân lớp dựa trên cây quyết định, kết quả của quá trình xây dựng mô hình sẽ cho ra một cây quyết định Cây này được sử dụng trong quá trình phân lớp các đối tượng dữ liệu chưa biết hoặc đánh giá độ chính xác của mô hình Tương ứng với hai giai đoạn trong quá trình phân lớp là quá trình xây dựng và sử dụng cây quyết định
Quá trình xây dựng cây quyết định bắt đầu từ một nút đơn biểu diễn tất cả các mẫu dữ liệu Sau đó, các mẫu sẽ được phân chia một cách đệ quy dựa vào việc lựa chọn các thuộc tính Nếu các mẫu có cùng một lớp thì nút sẽ trở thành lá, ngược lại ta sử dụng một độ đo thuộc tính để chọn ra thuộc tính tiếp theo làm cơ sở để phân chia các mẫu ra các lớp Theo từng giá trị của thuộc tính vừa chọn, ta tạo ra các nhánh tương ứng và phân chia các mẫu vào các nhánh đã tạo Lặp lại quá trình trên cho tới khi tạo ra được cây quyết định, tất cả các nút triển khai thành lá và được gán nhãn
Quá trình đệ quy sẽ dừng lại khi một trong các điều kiện sau được thỏa mãn:
- Tất cả các mẫu thuộc cùng một nút
- Không còn một thuộc tính nào để lựa chọn
- Nhánh không chứa mẫu nào
Phần lớn các giải thuật sinh cây quyết định đều có hạn chế chung là sử dụng nhiều bộ nhớ Lượng bộ nhớ sử dụng tỷ lệ thuận với kích thước của mẫu dữ liệu huấn luyện Một chương trình sinh cây quyết định có hỗ trợ sử dụng bộ nhớ ngoài song lại có nhược điểm về tốc độ thực thi Do vậy, vấn đề tỉa bớt cây quyết định trở nên quan trọng Các nút lá không ổn định trong cây quyết định sẽ được tỉa bớt Kỹ thuật tỉa trước là việc dừng sinh cây quyết định khi chia dữ liệu không có ý nghĩa
1.4.5 Phương pháp phát hiện luật kết hợp
Nhiệm vụ chính trong khai thác dữ liệu
Quá trình khai phá dữ liệu là quá trình phát hiện ra mẫu thông tin Trong đó, giải thuật khai phá tìm kiếm các mẫu đáng quan tâm theo dạng xác định như các luật, phân lớp, hồi quy, cây quyết định,
1.5.1 Phân lớp (phân loại - classification)
Là việc xác định một hàm ánh xạ từ một mẫu dữ liệu vào một trong số các lớp đã được biết trước đó Mục tiêu của thuật toán phân lớp là tìm ra mối quan hệ nào đó giữa thuộc tính dự báo và thuộc tính phân lớp Như thế quá trình phân lớp có thể sử dụng mối quan hệ này để dự báo cho các mục mới Các kiến thức được phát hiện biểu diễn dưới dạng các luật theo cách sau: “Nếu các thuộc tính dự báo của một mục thoả mãn điều kiện của các tiền đề thì mục nằm trong lớp chỉ ra trong kết luận”
Ví dụ: Một mục biểu diễn thông tin về nhân viên có các thuộc tính dự báo là: họ tên, tuổi, giới tính, trình độ học vấn, …và thuộc tính phân loại là trình độ lãnh đạo của nhân viên
Là việc học một hàm ánh xạ từ một mẫu dữ liệu thành một biến dự đoán có giá trị thực Nhiệm vụ của hồi quy tương tự như phân lớp, điểm khác nhau chính là ở chỗ thuộc tính để dự báo là liên tục chứ không phải rời rạc Việc dự báo các giá trị số thường được làm bởi các phương pháp thống kê cổ điển, chẳng hạn như hồi quy tuyến tính Tuy nhiên, phương pháp mô hình hoá cũng được sử dụng, ví dụ: cây quyết định Ứng dụng của hồi quy là rất nhiều, ví dụ: dự đoán số lượng sinh vật phát quang hiện thời trong khu rừng bằng cách dò tìm vi sóng bằng các thiết bị cảm biến từ xa; ước lượng xác suất người bệnh có thể chết bằng cách kiểm tra các triệu chứng; dự báo nhu cầu của người dùng đối với một sản phẩm, …
Là việc mô tả chung để tìm ra các tập hay các nhóm, loại mô tả dữ liệu Các nhóm có thể tách nhau hoặc phân cấp hay gối lên nhau Có nghĩa là dữ liệu có thể vừa thuộc nhóm này lại vừa thuộc nhóm khác Các ứng dụng khai phá dữ liệu có nhiệm vụ phân nhóm như phát hiện tập các khách hàng có phản ứng giống nhau trong CSDL tiếp thị; xác định các quang phổ từ các phương pháp đo
11 tia hồng ngoại, … Liên quan chặt chẽ đến việc phân nhóm là nhiệm vụ đánh giá dữ liệu, hàm mật độ xác suất đa biến/ các trường trong CSDL
Là công việc liên quan đến các phương pháp tìm kiếm một mô tả tập con dữ liệu Kỹ thuật tổng hợp thường áp dụng trong việc phân tích dữ liệu có tính thăm dò và khóa luận tự động Nhiệm vụ chính là sản sinh ra các mô tả đặc trưng cho một lớp Mô tả loại này là một kiểu tổng hợp, tóm tắt các đặc tính chung của tất cả hay hầu hết các mục của một lớp Các mô tả đặc trưng thể hiện theo luật có dạng sau: “Nếu một mục thuộc về lớp đã chỉ trong tiền đề thì mục đó có tất cả các thuộc tính đã nêu trong kết luận” Lưu ý rằng luật dạng này có các khác biệt so với luật phân lớp Luật phát hiện đặc trưng cho lớp chỉ sản sinh khi các mục đã thuộc về lớp đó
1.5.5 Mô hình hoá sự phụ thuộc (dependency modeling)
Là việc tìm kiếm một mô hình mô tả sự phụ thuộc giữa các biến, thuộc tính theo hai mức: Mức cấu trúc của mô hình mô tả (thường dưới dạng đồ thị) Trong đó, các biến phụ thuộc bộ phận vào các biến khác Mức định lượng mô hình mô tả mức độ phụ thuộc Những phụ thuộc này thường được biểu thị dưới dạng theo luật “nếu - thì” (nếu tiền đề là đúng thì kết luận đúng) Về nguyên tắc, cả tiền đề và kết luận đều có thể là sự kết hợp logic của các giá trị thuộc tính Trên thực tế, tiền đề thường là nhóm các giá trị thuộc tính và kết luận chỉ là một thuộc tính Hơn nữa hệ thống có thể phát hiện các luật phân lớp trong đó tất cả các luật cần phải có cùng một thuộc tính do người dùng chỉ ra trong kết luận
Quan hệ phụ thuộc cũng có thể biểu diễn dưới dạng mạng tin cậy Bayes Đó là đồ thị có hướng, không chu trình Các nút biểu diễn thuộc tính và trọng số của liên kết phụ thuộc giữa các nút đó
1.5.6 Phát hiện sự biến đổi và độ lệch (change and deviation dectection)
Nhiệm vụ này tập trung vào khám phá hầu hết sự thay đổi có nghĩa dưới dạng độ đo đã biết trước hoặc giá trị chuẩn, phát hiện độ lệch đáng kể giữa nội dung của tập con dữ liệu thực và nội dung mong đợi Hai mô hình độ lệch hay dùng là lệch theo thời gian hay lệch theo nhóm Độ lệch theo thời gian là sự thay đổi có ý nghĩa của dữ liệu theo thời gian Độ lệch theo nhóm là sự khác nhau của giữa dữ liệu trong hai tập con dữ liệu, ở đây tính cả trường hợp tập con dữ liệu này thuộc tập con kia, nghĩa xác định dữ liệu trong một nhóm con của đối tượng có khác đáng kể so với toàn bộ đối tượng không? Theo cách này, sai sót dữ liệu hay sai lệch so với giá trị thông thường được phát hiện
Vì những nhiệm vụ này yêu cầu số lượng và các dạng thông tin rất khác nhau nên chúng thường ảnh hưởng đến việc thiết kế và chọn phương pháp khai phá dữ liệu khác nhau Ví dụ như phương pháp cây quyết định tạo ra được một mô tả phân biệt được các mẫu giữa các lớp nhưng không có tính chất và đặc điểm của lớp.
Các kỹ thuật khai phá dữ liệu
1.6.1 Các kỹ thuật tiếp cận trong Data mining
Căn cứ vào lớp các bài toán cần giải quyết, khai phá dữ liệu có các kỹ thuật áp dụng sau: a) Phân lớp và dự đoán: 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 các bệnh nhân dữ liệu trong hồ sơ bệnh án Hướng tiếp cận này thường sử dụng một số kỹ thuật của học máy như cây quyết định, mạng nơ ron nhân tạo b) Luật kết hợp: phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành phần dữ liệu trong CSDL Mẫu đầu ra của giải thuật khai phá dữ liệu là tập luật kết hợp tìm được Có thể lấy một ví dụ đơn giản về luật kết hợp như sau: phân tích CSDL bán hàng nhận được thông tin về những khách hàng mua máy tính cũng có khuynh hướng mua phần mềm quản lý tài chính trong cùng lần mua được miêu tả trong luật kết hợp sau:
“Mua máy tính Mua phần mềm quản lý tài chính”
[Độ hỗ trợ: 4%, độ tin cậy: 70%] Độ hỗ trợ và độ tin cậy là hai độ đo của sự đáng quan tâm của luật Chúng tương ứng phản ánh sự hữu ích và sự chắc chắn của luật đã khám phá Độ hỗ trợ 4% có nghĩa là: 4% của tất cả các tác vụ đã phân tích chỉ ra rằng máy tính và phần mềm quản lý tài chính là đã được mua cùng nhau Còn độ tin cậy 70% có nghĩa là 70% các khách hàng mua máy tính cũng mua phần mềm quản lý tài chính c) Phân tích chuỗi theo thời gian: 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) Phân cụm: xếp các đối tượng theo từng cụm dữ liệu tự nhiên e) Mô tả khái niệm: 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
1.6.2 Dạng dữ liệu có thể khai phá
Do khai phá dữ liệu được ứng dụng rộng rãi nên nó có thể làm việc với rất nhiều kiểu dữ liệu khác nhau Sau đây là một số dạng dữ liệu điển hình: CSDL quan hệ, CSDL đa chiều, CSDL dạng giao dịch, CSDL quan hệ - hướng đối tượng, dữ liệu không gian và thời gian, Dữ liệu chuỗi thời gian, CSDL đa phương tiện, dữ liệu Text và Web
1.6.3 Các ứng dụng của khai phá dữ liệu
Phát hiện tri thức và khai phá dữ liệu liên quan đến nhiều ngà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 phát hiện tri thức và khai phá dữ liệu 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ư:
1) Thống kê, phân tích dữ liệu và hỗ trợ ra quyết định
2) Điều trị y học và chăm sóc y tế: một số thông tin về chuẩn đoán bệnh lưu trong các hệ thống quản lý bệnh viện Phân tích mối liên hệ giữa các triệu chứng bệnh, chuẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc, )
3) Lĩnh vực khoa học: 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ối liên hệ gene và một số bệnh di truyền,
4) Bảo hiểm, tài chính và thị 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, 5) Sản xuất và chế biến: Quy trình, phương pháp chế biến và xử lý sự cố 6) 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ụ, …
7) 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
1.6.4 Khai phá luật kết hợp và ứng dụng
Luật kết hợp là một biểu thức có dạng: X Y, trong đó X và Y là tập các trường gọi là item Ý nghĩa của các luật kết hợp khá dễ nhận thấy: Cho trước một cơ sở dữ liệu có D là tập các giao tác - trong đó mỗi giao tác TD là tập các item - khi đó X Y diễn đạt ý nghĩa rằng bất cứ khi nào giao tác T có chứa X thì chắc chắn T có chứa Y Độ tin cậy của luật (rule confidence) có thể được hiểu như xác suất điều kiện p(Y T X T) Ý tưởng của việc khai thác các luật kết hợp có nguồn gốc từ việc phân tích dữ liệu mua hàng của khách và nhận
14 ra rằng “Một khách hàng mua mặt hàng X1 và X2 thì sẽ mua mặt hàng Y với xác suất là c%” Ứng dụng trực tiếp của các luật này trong các bài toán kinh doanh làm cho luật kết hợp trở thành một phương pháp khai thác phổ biến Hơn nữa, luật kết hợp không chỉ bị giới hạn trong phân tích sự phụ thuộc lẫn nhau trong phạm vi các ứng dụng bán lẻ mà chúng còn được áp dụng thành công trong rất nhiều bài toán kinh doanh
Như vậy, khai phá luật kết hợp là một phương pháp xử lý thông tin quan trọng và phổ biến, nó nhằm khám phá mối liên hệ giữa các mẫu dữ liệu Tiếp theo, khóa luận tốt nghiệp sẽ đề cập đến luật kết hợp Đây là một hướng nghiên cứu quan trọng trong lĩnh vực khai phá dữ liệu và là nội dung tìm hiểu, nghiên cứu trọng tâm của khóa luận tốt nghiệp
1.6.5 Phân loại các hệ thống khai phá dữ liệu
KPDL là một công nghệ tri thức liên quan đến nhiều lĩnh vực nghiên cứu khác như CSDL, học máy, trí tuệ nhân tạo, trực quan hoá dữ liệu và tri thức, … Chúng ta có thể phân loại các hệ thống KPDL theo các tiêu chí khác nhau như sau:
- Phân loại dựa trên loại dữ liệu được khai phá: Các hệ thống KPDL làm việc với CSDL quan hệ, kho dữ liệu , CSDL giao dịch, CSDL hướng đối tượng, CSDL không gian và thời gian, CSDL đa phương tiện, CSDL văn bản và web,
- Phân loại dựa trên loại tri thức khai phá được: Các hệ thống KPDL có thể phân loại dựa theo loại tri thức mà chúng khai phá được, nghĩa là dựa vào các chức năng khai phá như mô tả, tóm tắt, luật kết hợp, phân lớp, dự báo, phân cụm, …
- Phân loại dựa trên loại kỹ thuật được sử dụng: Các công cụ KPDL như các hệ thống xử lý phân tích trực tuyến (OLAP), sử dụng kỹ thuật học máy (cây quyết định, mạng nơron nhân tạo, k- maen, máy hỗ trợ vector, tập thô, tập mờ, ), trực quan hoá dữ liệu, …
- Phân loại dựa trên các lĩnh vực hệ thống KPDL được ứng dụng: Các hệ thống KPDL được sử dụng trong các lĩnh vực khác nhau như: Thương mại (ngành công nghiệp bán lẻ), viễn thông, tin sinh học, điều trị y tế, tài chính và thị trường chứng khoán, bảo hiểm y tế, …
1.6.6 Xu hướng trong khai phá dữ liệu
LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU
Khai phá luật kết hợp
Khai phá luật kết hợp là một kỹ thuật quan trọng của khai phá dữ liệu Vấn đề được Rakesh Agrawal, Tomasz Imielinski, Arun Swami đề xuất lần đầu vào năm 1993 Sau đó năm 1996 được Rakesh Agrawal, Heikki Mannila, Ramakrishnan Srikant, Hannu Toivonen, A.Inkeri Verkamo tiếp tục cải tiến Ngày nay 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 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
Ví dụ: Cho D là CSDL giao dịch và với độ hỗ trợ = 40%, độ tin cậy 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%.
Lý thuyết về luật kết hợp
2.2.1 Định nghĩa luật kết hợp
Một luật kết hợp có dạng R: X => Y, trong đó, X, Y là các tập mục, X, Y
X được gọi là tiền đề
Y được gọi là hệ quả của luật
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 khoản 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 item của X Điều này nghĩa là X T, trong một số trường hợp người ta dùng ký hiệu T(X) để chỉ tập các giao dịch hỗ trợ cho 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à:
X T | ) sup( hay sup(X) = ố ượ ổ ố ị ỗ ợ Độ 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 tập phổ biến được sử dụng như một tập đáng quan tâm trong các thuật toán, ngược lại, những tập không phải tập phổ biến là những tập không đáng quan tâm Các phần sau sẽ sử dụng những cụm từ khác như “X có độ hỗ trợ tối
19 thiểu”, hay “X không có độ hỗ trợ tối thiểu” cũng để nói lên rằng X thỏa mãn hay không thỏa mãn support (X) minsup
Một khoản mục X được gọi là k-itemset nếu lực lượng của X bằng k, tức là |X| = k
Một luật kết hợp có dạng R: X => Y,trong đó, X, Y là các tập mục, X, Y
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 c (confidence-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: conf(X =>Y) = p(Y I | X I) =
Ví dụ: cho CSDL bán hàng
0 – không bán phẩm Khoản mục
Bánh mì Bơ Phomat Táo Nho
Ví dụ: X = {bánh mì, 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
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ể Thực vậy, cho một tập các giao dịch D, bài toán phát hiện luật kết hợp là sinh ra tất cả các luật kết hợp mà có độ tin cậy conf lớn hơn độ tin cậy tối thiểu mincon và độ hỗ trợ sup lớn hơn độ hỗtrợ tối thiểu minsup tương ứng do người dùng xác định
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ốt 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: conf =
Nếu conf ≥ mincon 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.3 Một số tính chất liên quan đến các hạng mục phổ biến
- 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
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ì support(B) support(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à support(B) minsup thì mọi tập con A của B là tập phổ biến trên D vì support(A) support(B) > minsup
- 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í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
- 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
22 conf(XY) = conf(YZ) = minconf thế thì: conf(XY) = minconf2 < minconf vì minconf < 1, do đó luật X Z không đủ độ tin cậy
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
Bởi vì D C nên (L - D) (L - C), do đó sup(L - D) sup (L - C)
2.2.4 Một số hướng tiếp cận trong khai phá luật kết hợp
Lĩnh vực khai thác luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng khác nhau Có những đề xuất nhằm cải tiến tốc độ thuật toán, có những đề xuất nhằm tìm kiếm luật có ý nghĩa hơn… và có một số hướng chính như sau:
- Luật kết hợp nhị phân (binary association rule hoặc boolean association rule): là hướng nghiên cứu đầu tiên của luật kết hợp Hầu hết các nghiên cứu ở thời kỳ đầu về luật kết hợp đều liên quan đến luật kết hợp nhị phân Trong dạng luật kết hợp này, các mục, thuộc tính, chỉ được quan tâm là có hay không xuất hiện trong giao tác của CSDL chứ không quan tâm về “mức độ” xuất hiện Ví dụ: Trong hệ thống tính cước điện thoại thì việc gọi 10 cuộc điện thoại và một cuộc được xem là giống nhau Thuật toán tiêu biểu nhất khai phá dạng luật này là thuật toán Apriori và các biến thể của nó Đây là dạng luật đơn giản và các luật khác cũng có thể chuyển về dạng luật này nhờ một số phương pháp như rời rạc hoá, mờ hoá, … Một ví dụ về dạng luật này: “gọi liên tỉnh ‘yes’ AND gọi di động = ‘yes’ => gọi quốc tế= ‘yes’ AND gọi dịch vụ 108 ‘yes’, với độ hỗ trợ 20% và độ tin cậy 80%”
- Luật kết hợp có thuộc tính số và thuộc tính hạng mục (quantitative and categorial association rule): Các thuộc tính của các CSDL thực tế có kiểu rất đa dạng, như số nhị phân, giá trị định tính, định lượng Để phát hiện luật kết hợp với các thuộc tính này, các nhà nghiên cứu đã đề xuất một số phương pháp rời rạc hoá nhằm chuyển dạng luật này về dạng nhị phân để có thể áp dụng các thuật toán đã có Một ví dụ về dạng luật này “phương thức gọi = ‘Tự động’ AND giờ gọi IN [‘23:00:39 23:00:59’] AND Thời gian đàm thoại IN [‘200 300’] => gọi liên tỉnh = ‘có’, với độ hỗ trợ là 23 53%, và độ tin cậy là 80%”
- Luật kết hợp tiếp cận theo hướng tập thô (mining association rules base on rough set): Tìm kiếm luật kết hợp dựa trên lý thuyết tập thô
- Luật kết hợp nhiều mức (multi-level association rule): Cách tiếp cận theo luật này sẽ tìm kiếm thêm những luật có dạng “mua máy tính PC => mua hệ điều hành AND mua phần mềm tiện ích văn phòng, …” thay vì chỉ những luật quá cụ thể như “mua máy tính IBM PC => mua hệ điều hành Microsoft Windows AND mua phần mềm tiện ích văn phòng Microsoft Office, …” Như vậy dạng luật đầu là dạng luật tổng quát hoá của dạng luật sau và tổng quát theo nhiều mức khác nhau
- Luật kết hợp mờ (fuzzy association rule): Với những hạn chế còn gặp phải trong quá trình rời rạc hoá các thuộc tính số (quantitave attributes), các nhà nghiên cứu đã đề xuất luật kết hợp mờ nhằm khắc phục các hạn chế trên và chuyển luật kết hợp về một dạng tự nhiên hơn, gần gũi hơn với người sử dụng một ví dụ của dạng này là: “thuê bao tư nhân = ‘yes’ AND thời gian đàm thoại lớn AND cước nội tỉnh = ‘yes’ => cước không hợp lệ = ‘yes’, với độ hỗ trợ 40% và độ tin cậy 85%” Trong luật trên, điều kiện thời gian đàm thoại lớn ở vế trái của luật là một thuộc tính đã được mờ hoá
- Luật kết hợp với thuộc tính được đánh trọng số (association rule with weighted items): Trong thực tế, các thuộc tính trong CSDL không phải lúc nào cũng có vai trò như nhau Có một số thuộc tính được chú trọng hơn và có mức độ quan trọng cao hơn các thuộc tính khác Ví dụ khi khảo sát về doanh thu hàng tháng, thông tin về thời gian đàm thoại, vùng cước là quan trọng hơn nhiều so với thông tin về phương thức gọi Trong quá trình tìm kiếm luật, chúng ta sẽ gán thời gian gọi, vùng cước các trọng số lớn hơn thuộc tính phương thức gọi Đây là hướng nghiên cứu rất thú vị và đã được một số nhà nghiên cứu đề xuất cách giải quyết bài toán này Với luật kết hợp có thuộc tính được đánh trọng số, chúng ta sẽ khai thác được những luật “hiếm” (tức là có độ hỗ trợ thấp, nhưng có ý nghĩa đặc biệt hoặc mang rất nhiều ý nghĩa)
- Luật kết hợp song song (parallel mining of association rules): Bên cạnh khai thác luật kết hợp tuần tự, các nhà làm tin học cũng tập trung vào nghiên cứu các thuật giải song song cho quá trình phát hiện luật kết hợp Nhu cầu song song hoá và xử lý phân tán là cần thiết bởi kích thước dữ liệu ngày càng lớn hơn nên đòi hỏi tốc độ xử lý cũng như dung lượng bộ nhớ của hệ thống phải được đảm bảo Có rất nhiều thuật toán song song khác nhau đã đề xuất để có thể không phụ thuộc vào phần cứng
Bên cạnh những nghiên cứu về các biến thể của luật kết hợp, các nhà nghiên cứu còn chú trọng đề xuất những thuật toán nhằm tăng tốc quá trình tìm kiếm tập phổ biến từ CSDL
Một số thuật toán phát hiện luật kết hợp
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
Bài toán được phát biểu: Tìm t có độ hỗ trợ s thỏa mãn s ≥ s0 và độ ttin cậy c ≥ c0 ( s 0 , c 0 là hai ngưỡng do người dùng xác định và s0 = minsupp, c0 minconf)
Lk: Tập các tập k-mục phổ biến (với độ hỗ trợ cực tiểu minsup nào đó)
Ck : Tập các tập k-mục ứng cử (các tập mục phổ biến tiềm năng)
Bài toán đặt ra là:
1) Tìm tất cả các tập mục phổ biến với minsup nào đó
2) Sử dụng các tập mục phổ biến để sinh ra các luật kết hợp với độ tin cậy minconf nào đó
Quá trình Thực hiện (duyệt):
1) Thực hiện nhiều lần duyệt lặp đi lặp lại, trong đó tập (k-1) – mục được sử dụng cho việc tìm tập k – mục Lần thứ nhất tìm tất cả các độ hỗ trợ của các mục, xác định mục phổ biến (mục thỏa mãn độ hỗ trợ cực tiểu- minsup) Giả sử tìm được L1 – mục phổ biến
2) Các lần duyệt còn lại: Bắt đầu kết quả được bước trước nó, sử dụng các tập mục mẫu (L1) sinh ra các tập mục phổ biến tiềm năng (ứng cử)(giả
27 sử L2), tìm độ hỗ trợ thực sự Mỗi lần duyệt ta phải xác định tập mục mẫu cho lần duyệt tiếp theo
3) Thực hiện lặp để tìm L3, , Lk cho đến khi không tìm thấy tập mục phổ biến nào nữa
Chú ý: Ứng dụng Lk-1 để tìm Lk bao gồm hai bước chính:
1) Bước kết nối: tìm Lk là tập k – mục tương ứng được sinh ra bởi việc kết nối Lk-1 với chính nó cho kết quả là Ck Giả sử L1, L2 thuộc Lk-1 Ký hiệu
Li j là mục thứ j trong Li Điều kiện là các tập mục hay các mục trong giao dịch có thứ tự
Bước kết nối như sau: Các thành phần Lk kết nối (nếu có chung k-2- mục đầu tiên) tức là: (L1 [1] = L2 [1]) (L1 [2] = L2 [2]) … (L1 [k- 2] = L2 [k-2]) (L1 [k-1] = L2 [k-1])
2) Bước tỉa: Ck là tập chứa Lk (có thể là tập phổ biến hoặc không) nhưng tất cả tập k-mục phổ biến được chứa trong Ck Bước này, duyệt lần hai CSDL để tìm độ hỗ trợ cho mỗi ứng cử trong Ck sẽ nhận được Lk
Ký hiệu: Giả sử các mục trong mỗi giao dịch được lưu giữ theo trật tự từ điển Gọi số các mục trong một tập mục là kích thước của nó và gọi tập mục có kích thước k là tập k-mục (tập k mục) Các mục trong mỗi tập mục cũng được giữ ở trật tự từ điển Ta sử dụng các ký hiệu sau:
Lk: Tập các tập k-mục phổ biến (Large k-itemset) (tức tập các itemset có sup tối thiểu và có lực lượng bằng k) Mỗi phần tử của tập này có 2 trường: itemset và support-count
Ck : Tập các candidate k-itemset (tập các tập k-mục ứng viên) Mỗi phần tử trong tập này cũng có 2 trường itemset và support-count
N ộ i dung thu ậ t toán Apriori đượ c trình bài nh ư sau:
Input: Tập các giao dịch D, ngưỡng support tối thiểu minsup
Output: L – tập mục phổ biến trong D
L1 = {large 1-itemset (tập 1- mục phổ biến)} //tìm tất cả các tập mục phổ biến nhận được L1 for (k=2; Lk-1 ≠ ; k ++)
Ck = apriori-gen(Lk-1); //sinh ra tập ứng cử viên Lk-1 for (mỗi một giao dịch T D)
CT = subset(Ck, T); //lấy tập con của T là ứng cử viên trong Ck for (mỗi một ứng cử viên c CT) c.count++; //tăng bộ đếm tần suất 1 đơn vị
+) Trong thuật toán này, giai đoạn đầu đơn giản chỉ là việc đếm support cho các mục (item) Để xác định tập 1-mục phổ biến (L1), người ta chỉ giữ lại các mục (item) mà sup của nó lớn hơn hoặc bằng minsup
+) Trong các giai đoạn thứ k sau đó (k>1), mỗi giai đoạn gồm có 2 pha Trước hết các large(k-1)-itemset (tập k -1- mục phổ biến ) trong tập Lk-1 được sử dụng để xác định các ứng viên trong Ck là có mặt trong một giao dịch T cho trước
+) Tiếp theo CSDL D sẽ được quét để tính support cho mỗi ứng viên trong Ck Để việc đếm được nhanh, cần phải có một giải pháp hiệu quả để xác định các ứng viên trong Ck là có mặt trong một giao dịch T cho trước
Vấn đề sinh tập candidate (tập ứng cử) của Apriori – Hàm Apriori_gen:
Hàm Apriori_gen với đối số là Lk-1 (tập các large (k-1)-itemset) sẽ cho lại kết quả là một superset, tập của tất cả các large k – itemset Sơ đồ sau là thuật toán cho hàm này
Input: tập mục phổ biến Lk-1 có kích thước k-1
Output: tập ứng cử viên Ck
Funtion apriori-gene(Lk-1: tập mục phổ biến có kích thước k-1)
(L1[k-1]=L2[k-1])) c = L1 L2; // kết nối L1 với L2 sinh ra ứng cử viên c
If has_infrequent _subset(c, Lk-1) //có tập con không phổ biến của c trong Lk-1
Remove (c) // bước tỉa (xóa ứng cử viên c) else Ck = Ck {c}; kết tập c vào Ck
Với nội dung trên, ta thấy hàm này có 2 bước:
- Bước cắt tỉa (prune step)
Hàm Subset (trong bước tỉa) Các tập ứng cử viên Ck được lưu trữ trong một cây băm
+) Nút là của cây băm chứa danh sách một tập mục và đếm
+) Các nút trong chứa ở trong bảng băm
Hàm subset: tìm tất cả các ứng cử viên được chứa trong giao tác
Ví dụ 1: Giả sử tập các mục I = {A, B, C, D, E,} và cơ sở dữ liệu giao dịch:
TID (giao dịch) Các khoản mục
(Tức tương đương 2 giao dịch) Khi thực hiện thuật toán Apriori trên ta có bảng
Các tập Ck và Lk sau khi thực hiện thuật toán Apriori trên tập D
Xóa bỏ mục có Support < minsup = 0,5
Hình 2.2: Ví dụ thuật toán Apriori
Ví dụ 2: Cho cơ sở dữ liệu như sau:
2.3.1.3 Sinh các luật kết hợp từ tập mục phổ biến
Cho d mục => tổng số của tập mục ứng cử là 2 d tổng số của luật kết hợp tối đa là:
Thuật toán mới xuất hiện gần đây có tên là FP-growth được giới thiệu bởi Jiawei Hai Jian Pei và Yiwen Yin năm 2000, sẽ khắc phục được các nhược điểm nêu trên Thuật toán tìm các tập phổ biến hiệu qủa hơn thuật toán Apriori bằng việc sử dụng một kỹ thuật khác không cần sinh các ứng cử Sự hiệu quả của khai phá nhận được với 3 kỹ thuật chính:
+ Thứ nhất nó mở rộng của cấu trúc cây prefix (prefix tree), được gọi là cây mẫu phổ biến (frequent pattern tree hoặc gọi tắt là FP- tree) dùng để nén dữ liệu thích hợp Chỉ có các mục độ dài l (l-item) ở 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 hơn có thể dễ dàng chia sẻ với các nút xuất hiện ít hơn CSDL lớn được nén chặt tới cấu trúc dữ liệu nhỏ hơn (FP-tree), tránh được chi phí lặp lại duyệt qua CSDL
+ Thứ hai, phương pháp khai phá phát triển (growth) 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 độ dài 1, FP-growth chỉ xem xét cơ sở mẫu phụ thuộc của nó (condition pattern base) như là CSDL con (sub-database) bao gồm tập các mục phổ biến cùng xuất hiện với mẫu hậu tố (suffix pattern), xây dựng condition FP-tree
THỬ NGHIỆM KHAI PHÁ LUẬT KẾT HỢP
Phát biểu bài toán
Siêu thị Metro trực thuộc Công ty TNHH Metro CASH-Metro Việt Nam Siêu thị kinh doanh tất cả các mặt hàng tiêu dùng, sản phẩm công nghiệp và cả các thiết bị công nghệ cao, … phục vụ nhu cầu đời sống hàng ngày và hoạt động sản xuất kinh doanh
Siêu thị có các bộ phận sau:
3 Bộ phận hướng dẫn viên
Người tiêu dùng muốn trở thành hội viên khách hàng trong Metro cần phải có giấy phép đăng ký kinh doanh bất cứ một lĩnh vực hay dịch vụ nào đó Khi mang giấy kinh doanh và chứng minh nhân dân đến, nhân viên trong siêu thị sẽ cấp cho khách hàng một tấm thẻ, trên đó lưu các thông tin: Số hiệu thẻ, tên hội viên, lĩnh vực kinh doanh và ảnh Các thông tin về khách hàng sẽ được lưu vào trong CSDL Hội viên (khách hàng)
Khi khách hàng muốn vào siêu thị mua hàng hoá hoặc tham quan, khách hàng phải xuất trình thẻ của mình cho kiểm soát viên Kiểm soát viên sẽ đưa thẻ vào máy đọc thẻ nhận dạng hội viên Do vậy hệ thống quản lý trong siêu thị hoàn toàn có thể kiểm soát lượng hội viên ra vào Trường hợp có người đi kèm thì khách hàng phải đảm bảo là đi cùng đoàn
Khách hàng có thể tự do lựa chọn mặt hàng cần mua theo tên hàng hoá, đơn giá đã có in sẵn trên các mặt hàng và đặt vào trong giỏ hàng (xe đẩy) Có thắc mắc gì có thể hỏi trực tiếp nhân viên quầy
Khi chọn xong hàng hoá, khách hàng đẩy xe đến bộ phận thu ngân Tại đây khách hàng xuất trình thẻ cho nhân viên thu ngân đưa vào máy đọc nhận dạng Các hàng hoá được cập nhật vào hệ thống tính toán thông qua máy đọc mã vạch Các tính toán tổng cộng trên hoá đơn được thực hiện tự động và được lưu vào trong CSDL
Với cách quản lý khách hàng như trên, siêu thị hoàn toàn có các tổng kết đánh giá về các thông tin như: sức mua của khách hàng (theo nghề nghiệp, theo địa bàn, theo thời gian, …) Từ đó có thể có các chiến lược kinh doanh cho phù hợp
Bài toán phát hiện luật kết hợp trong mua bán các mặt hàng tại siêu thị
Với số lượng khách hàng vào mua sắm rất lớn, bình quân 4.000 10.000 lượt/ ngày CSDL hoá đơn của Metro tăng lên rất nhanh Với số tiền thanh toán trên mỗi hoá đơn trung bình là 500.000 đ 3.000.000 đ
Trên hoá đơn có các thông tin sau: Số hoá đơn, mã số khách hàng, tên khách hàng, địa chỉ, người đại diện, ngày, giờ, mã số nhân viên thu ngân, quầy, số trang hoá đơn
Các thông tin tiếp theo của hoá đơn có liên quan đến hàng hoá như: mã hàng hoá, tên hàng hoá, số lượng đóng gói, đơn vị tính, số lượng, đơn giá, giá đóng gói, iá trước thuế VAT, % thuế VAT, tiền thuế VAT, thành tiền đã có thuế VAT
Cuối hoá đơn có các thông tin tổng hợp như: tổng tiền phải thanh toán có thuế VAT, tổng tiền thuế VAT, số tiền thanh toán, tiền trong phiếu quà tặng, tiền khách hàng trả, tiền trả lại khách
Từ các dữ liệu thu được, các nhà quản lý rất cần có các thông tin thống kê, dự đoán sau:
Sức mua sắm của khách hàng theo nghề nghiệp, ví dụ: công ty, cửa hàng, nhà máy xí nghiệp, …
Sức mua sắm của khách hàng theo khu vực dân cư, ví dụ: địa bàn thành phố, địa bàn nông thôn, khách hàng ngoại tỉnh, …
Chu kỳ mua sắm theo thời gian, ví dụ: vào các ngày nghỉ, ngày lễ sức mua tăng hơn các ngày khác
Sự kết hợp của các mặt hàng khác nhau trong cùng một lần mua hàng tại siêu thị v vv…
Trên cơ sở đó, các nhà quản lý siêu thị sẽ có kế phương án, kế hoạch như: Tuyển dụng, đào tạo nhân viên … để đáp ứng nhu cầu của khách hàng Phân công công việc hợp lý cho nhân viên
Lên kế hoạch liên kết hợp tác với các khách hàng (vì khách hàng của siêu thị cũng chính là nhà kinh doanh)
Có kế hoạch cung ứng các loại mặt hàng phù hợp với nhu cầu của khách hàng theo mức sống, địa bàn dân cư, theo chu kỳ thời gian ví dụ: vào dịp lễ tết, nhu cầu về thực phẩm, thời trang sẽ tăng v v…
Phân tích chương trình
Muốn có được các thông tin trên, nhưng do dung lượng quá lớn, nên dùng các phương pháp thống kê cổ điển thì sẽ không thể kết xuất ra được Do vậy cần dùng các kỹ thuật khai phá dữ liệu – sử dụng luật kết hợp
Trong chương trình, chúng tôi quan tâm đến các dữ liệu thuộc CSDL bán hàng trong siêu thị, đặc biệt là bảng LoaiHang Sử dụng thuật toán Apriori và Fp-growth tìm ra sự kết hợp giữa các mặt hàng khác nhau trong một giao dịch của khách hàng khi đến siêu thị
Các giai đoạn thực hiện của hệ thống ứng dụng luật kết hợp áp dụng giải quyết bài toán trên:
Hinh 3.1: Quá trình thực hiện ứng dụng khai phá luật kết hợp
Giai đoạn tiền xử lý: Giai đoạn này nhằm thiết lập các đối tượng dữ liệu từ dữ liệu trong CSDL khách hàng Dữ liệu được tiền xử lý đưa về dạng text, các thuộc tính (chính là các item) được ánh xạ bởi các số tự nhiên (tức là đánh số thứ tự các thuộc tính từ 1 đến hết) Mỗi dòng (bản ghi) được mô tả thành một dòng text như sau: liệt kê số thứ tự của các thuộc tính (item) cách nhau một dấu cách (không liệt kê các thuộc tính mà liệt kê số thứ tự của nó) Tìm tập mục phổ
Tiền xử lý dữ liệu
Thuật toán Apriori, Fp- growth
Các mẫu dữ liệu khai phá
Khai phá luật kết hợp
41 biến và luật kết hợp dựa trên các số thứ tự này, kết quả được ánh xạ ngược trở lại tên các mục
Giai đoạn khai phá: Đây là quá trình thực hiện các thuật toán (Apriori, Fp- growth) áp dụng đối với dữ liệu cung cấp sau giai đoạn tiền xử lý
Sử dụng phần mềm weka để hỗ trợ ra 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 kết hợp (Association) hay tương quan (Correlation) giữa các đối tượng trong khối lượng lớn dữ liệu Ứng dụng của luật kết hợp rất phổ biến trong nhiều lĩnh vực, nhất là trong kinh doanh như Market Basket Analysis (Cross selling, Product placement, Affinity promotion, Customer behavior Analysis)
Bài viết này minh họa việc sử dụng thuật toán Apriori để phát hiện các luật kết hợp trên phần mềm Weka
Dữ liệu được dùng trong ví dụ này là dữ liệu về bánh hàng trong siêu thị (supermarket.csv) gồm 10 đối tượng và 4 thuộc tính
Thực hiện thuật toán luật kết hợp
Phần này trình bày xây dựng mô hình luật kết hợp với phần mềm Weka, trên bộ dữ liệu hóa đã giới thiệu ở trên
Hình 3.2: Giao diện phần mềm Weka
Một ví dụ về Bảng dữ liệu các giao dịch hàng hóa:
Hình 3.3: Bảng dữ liệu các giao dịch hàng hóa
Nạp dữ liệu (nạp file Supermarket.csv)
Hình 3.4: Nạp dữ liệu(nạp file Supermarket.csv)
Chọn tab Association và chọn thuật toán Apriori
Hình 3.5: Tab Associate và chọn thuật toán Apriori
Thiết lập các tham số (numRules, Support, Confidence, )
Hình 3.6: Thiết lập các tham số (numRules, Support, Confidence, )
Giải thích một số tham số chính của thuật toán Apriori sinh luật kết hợp lowerBoundMinSupport: Cận dưới của minimum support metricType: Có
4 loại metricType là Confidence, Lift , Leverage và Conviction
- Minimum metric score: Chỉ quan quan đến các luật có metric score cao hơn giá trị này
- numRules: Số luật muốn tìm (các luật sẽ được sắp xếp theo thứ tự giảm dần của metric score
- significanceLevel: Mức ý nghĩa (chỉ dùng khi metricType là confidence)
- upperBoundMinSupport: Cận trên của minimum support (bắt đầu lặp lại việc giảm minimum support từ upperBoundMinSupport đến lower BoundMinSupport)
Kết quả các luật kết hợp được sinh ra tương ứng:
Hình 3.7: Kết quả các luật kết hợp được sinh ra tương ứng Ở đây chúng ta có:
Với minsup = 0.5 và minconf = 0.5 thì sinh ra 4 luật tốt nhất bởi thuật toán Apriori trên dữ liệu Supermarket như sau (sắp xếp giảm dần theo confidence):
- Luật 1: không mua Sữa thì chắc chắn sẽ mua Bơ
- Luật 2: Có mua Trứng thì sẽ mua Bơ
- Luật 3: Nếu có mua Bơ thì sẽ không mua Sữa
- Luật 4: Có mua Bơ thì sẽ mua Trứng
Thử thay đổi Minsup và Minconf chúng tôi thu được kết quả khác nhứ sau:Với minsup = 0.1 và minconf = 0.1 thì sinh ra 10 luật tốt nhất bởi thuật toán Apriori trên dữ liệu Supermarket như sau (sắp xếp giảm dần theo confidence):
Hình 3.8: Thiết lập các tham số (numRules, Support, Confidence, )
Kết quả các luật kết hợp được sinh ra tương ứng:
Hình 3.9: Kết quả các luật kết hợp được sinh ra tương ứng Ở đây chúng ta có:
Với minsup = 0.1 và minconf = 0.1 thì sinh ra 10 luật tốt nhất bởi thuật toán Apriori trên dữ liệu Supermarket như sau (sắp xếp giảm dần theo confidence):
- Luật 1: Không mua Sữa thì chắc chắn sẽ mua Bơ
- Luật 2: không mua Bánh Mì thì chắc chắn sẽ mua Bơ
- Luật 3: Có mua Trung thì sẽ mua Bơ
- Luật 4: Có mua Bánh Mì thì sẽ mua Bơ
- Luật 5: Có mua Trứng thì sẽ mua Bánh Mì
- Luật 6: Có mua Bánh Mì thì sẽ mua Trứng
- Luật 7: Có mua Bơ thì sẽ không mua Sữa
- Luật 8: Có mua Bơ thì sẽ mua Trứng
- Luật 9: Có mua Bơ thì sẽ mua Bánh Mì
- Luật 10: Có mua Bơ thì sẽ không mua Bánh mì
Thử thay đổi Minsup và Mincof chúng tôi thu được kết quả khác nhứ sau:Với minsup = 0.2 và minconf = 0.2 thì sinh ra 10 luật tốt nhất bởi thuật toán Apriori trên dữ liệu Supermarket như sau (sắp xếp giảm dần theo confidence):
Hình 3.10: Thiết lập các tham số (numRules, Support, Confidence, )
Kết quả các luật kết hợp được sinh ra tương ứng:
Hình 3.11: Kết quả các luật kết hợp được sinh ra tương ứng Ở đây chúng ta có:
Với minsup = 0.2 và minconf = 0.2 thì sinh ra 10 luật tốt nhất bởi thuật toán Apriori trên dữ liệu Supermarket như sau (sắp xếp giảm dần theo confidence):
- Luật 1: Không mua Sữa thì chắc chắn sẽ mua Bơ
- Luật 2: không mua Bánh Mì thì chắc chắn sẽ mua Bơ
- Luật 3: Có mua Trứng thì sẽ mua Bơ
- Luật 4: Có mua Bánh Mì thì sẽ mua Bơ
- Luật 5: Có mua Trứng thì sẽ mua Bánh Mì
- Luật 6: Có mua Bánh Mì thì sẽ mua Trứng
- Luật 7: Có mua Bơ thì sẽ không mua Sữa
- Luật 8: Có mua Bơ thì sẽ mua Trứng
- Luật 9: Có mua Bơ thì sẽ mua Bánh Mì
- Luật 10: Có mua Bơ thì sẽ không mua Bánh mì
Vậy khi minsup và minconf càng bé thì luật sinh ra càng nhiều và độ tin cậy của luật không cao