PHÂN TÍCH VÀ MÔ PHỎNG BÀI TOÁN TÌM LUẬT KẾT HỢP THEO THUẬT TOÁN APRIORI

24 1.3K 1
PHÂN TÍCH VÀ MÔ PHỎNG BÀI TOÁN TÌM LUẬT KẾT HỢP THEO THUẬT TOÁN APRIORI

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TIỂU LUẬN MÔN KHAI PHÁ DỮ LIỆU PHÂN TÍCH VÀ MÔ PHỎNG BÀI TOÁN TÌM LUẬT KẾT HỢP THEO THUẬT TOÁN APRIORI Giảng viên hướng dẫn : PGS.TS. Đỗ Phúc Sinh viên thực hiện : Nguyễn Thị Thu Trang CH1101147 Lớp : CNTTQM K6 Khóa : 2012 - 2014 TP Hồ Chí Minh, tháng 11 năm 2012 1 MỤC LỤC 2 Nguyễn Thị Thu Trang CH1101147 I. Tổng quan về khai phá dữ liệu 1.1. Tại sao lại cần khai phá dữ liệu? (Data Mining) Trong những năm gần đây, sự phát triển mạnh mẽ của Công nghệ thông tin và ngành công nghiệp phần cứng đã làm cho khả năng thu thập và lưu trữ thông tin của các hệ thống thông tin tăng nhanh một cách chóng mặt. Bên cạnh đó việc tin học hoá một cách ồ ạt và nhanh chóng các hoạt động sản xuất, kinh doanh cũng như nhiều lĩnh vực hoạt động khác đã tạo ra cho chúng ta một lượng dữ liệu lưu trữ khổng lồ. Hàng triệu cơ sở dữ liệu đã được sử dụng trong các hoạt động sản xuất, kinh doanh, quản lí , trong đó có nhiều cơ sở dữ liệu cực lớn cỡ Gigabyte, thậm chí là Terabyte. Ngày nay lượng thông tin được lưu trữ trên các thiết bị điện tử (đĩa cứng, CD-ROM, băng từ, .v.v.) không ngừng tăng lên. Sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ. Người ta ước đoán rằng lượng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm và theo đó số lượng cũng như kích cỡcủa các cơ sở dữ liệu (cơ sở dữ liệu) cũng tăng lên một cách nhanh chóng. Nói một cách hình ảnh là chúng ta đang “ngập” trong dữ liệu nhưng lại “đói” tri thức. Câu hỏi đặt ra là liệu chúng ta có thể khai thác được gì từ những “núi” dữ liệu tưởng chừng như “bỏ đi” ấy không ? Sự bùng nổ này đã dẫn tới một yêu cầu cấp thiết là cần có những kĩ thuật và công cụ mới để tự động chuyển đổi lượng dữ liệu khổng lồ kia thành các tri thức có ích. Từ đó, các kĩ thuật Khai phá dữ liệu đã trở thành một lĩnh vực thời sự của nền Công nghệ thông tin thế giới hiện nay. “Necessity is the mother of invention” : Data Mining ra đời như một hướng giải quyết hữu hiệu cho câu hỏi vừa đặt ra ở trên . Khá nhiều định nghĩa về Data Mining và sẽ được đề cập ở phần sau, tuy nhiên có thể tạm hiểu rằng Data Mining như là một công nghệ tri thức giúp khai thác những thông tin hữu ích từ những kho dữ liệu được tích trữ trong suốt quá trình hoạt động của một công ty, tổ chức nào đó. [3] Nguyễn Thị Thu Trang CH1101147 1.2. Khai phá dữ liệu là gì? Khai phá dữ liệu (Data Mining) là quá trình trích xuất các thông tin, khám phá các tri thức mới và các tri thức có ích ở dạng có giá trị tiềm ẩn bên trong lượng lớn dữ liệu được lưu trữ trong các cơ sở dữ liệu, 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ư : khai phá tri thức từ cơ sở dữ liệu (Knowlegde Mining from Databases), trích lọc dữ liệu (Knowlegde Extraction), phân tích dữ liệu/mẫu (Data/Pattern Analysis), khảo cổ dữ liệu (Data Archaeology), nạo vét dữ liệu (Data Dredging). Nhiều người coi khai phá dữ liệu và một thuật ngữ thông dụng khác là khám phá tri thức trong cơ sở dữ liệu (Knowlegde Discovery in Databases – KDD) là như nhau. Một ví dụ hay được sử dụng là là việc khai thác vàng từ đá và cát, Data Mining được ví như công việc "Đãi cát tìm vàng" trong một tập hợp lớn các dữ liệu cho trước. Thuật ngữ Data Mining ám chỉ việc tìm kiếm một tập hợp nhỏ có giá trị từ một số lượng lớn các dữ liệu thô. Định nghĩa: Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng để tự động khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ liệu khổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập dữ liệu đó. Khai phá dữ liệu là một bước của quá trình khai thác tri thức (Knowledge Discovery Process)[1], bao gồm: - Làm sạch dữ liệu (data cleaning & preprocessing): Loại bỏ nhiễu và các dữ liệu không cần thiết. - Tích hợp dữ liệu: (data integration): quá trình hợp nhất dữ liệu thành những kho dữ liệu (data warehouses & data marts) sau khi đã làm sạch và tiền xử lý (data cleaning & preprocessing). - Trích chọn dữ liệu (data selection): trích chọn dữ liệu từ những kho dữ liệu và sau đó chuyển đổi về dạng thích hợp cho quá trình khai thác tri [4] Nguyễn Thị Thu Trang CH1101147 thức. Quá trình này bao gồm cả việc xử lý với dữ liệu nhiễu (noisy data), dữ liệu không đầy đủ (incomplete data), .v.v. - Chuyển đổi dữ liệu: Các dữ liệu được chuyển đổi sang các dạng phù hợp cho quá trình xử lý - Khai phá dữ liệu(data mining): Là một trong các bước quan trọng nhất, trong đó sử dụng những phương pháp thông minh để chắt lọc ra những mẫu dữ liệu. - Ước lượng mẫu (knowledge evaluation): Quá trình đánh giá các kết quả tìm được thông qua các độ đo nào đó. - Biểu diễn tri thức (knowledge presentation): Quá trình này sử dụng các kỹ thuật để biểu diễn và thể hiện trực quan cho người dùng. Quá trình khai thác tri thức không chỉ là một quá trình tuần tự từ bước đầu tiên đến bước cuối cùng mà là một quá trình lặp và có quay trở lại các bước đã qua. 1.3. Các chức năng chính của khai phá dữ liệu Data Mining được chia nhỏ thành một số hướng chính như sau: - Mô tả khái niệm (concept description): thiên về mô tả, tổng hợp và tóm tắt khái niệm. Ví dụ: tóm tắt văn bản. - Luật kết hợp (association rules): là dạng luật biểu diễn tri thứ ở dạng khá đơn giản. Ví dụ: “60 % nam giới vào siêu thị nếu mua bia thì có tới 80% trong số họ sẽ mua thêm thịt bò khô”. Luật kết hợp được ứng dụng nhiều trong lĩnh vực kính doanh, y học, tin-sinh, tài chính & thị trường chứng khoán, .v.v. - Phân lớp và dự đoán (classification & prediction): xếp một đối tượng vào một trong những lớp đã biết trước. Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết. Hướng tiếp cận này thường sử dụng một số kỹ thuật của machine learning như cây quyết định (decision tree), mạng nơ ron [5] Nguyễn Thị Thu Trang CH1101147 nhân tạo (neural network), .v.v. Người ta còn gọi phân lớp là học có giám sát (học có thầy). - Phân cụm (clustering): xếp các đối tượng theo từng cụm (số lượng cũng như tên của cụm chưa được biết trước. Người ta còn gọi phân cụm là học không giám sát (học không thầy). - Khai phá chuỗi (sequential/temporal patterns): tương tự như khai phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian. Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cao 1.4. Các phương pháp khai thác dữ liệu - Phân loại (Classification): Discovery of a predictive learning function that classifies a data item into one of several predefined classes. - Hồi qui (Regression): Discovery of a prediction learning function, which maps a data item to a real-value prediction variable. - Phân nhóm (Clustering): A common descriptive task in which one seeks to identify a finite set of categories or clusters to describe the data. - Tổng hợp (Summarization): An additional descriptive task that involves methods for finding a compact description for a set (or subset) of data. - Mô hình ràng buộc (Dependency modeling): Finding a local model that describes significant dependencies between variables or between the values of a feature in a data set or in a part of a data set. - Dò tìm biến đổi và độ lệch (Change and Deviation Dectection): Discovering the most significant changes in the data set. [6] Nguyễn Thị Thu Trang CH1101147 1.5. Ứng dụng của khai phá dữ liệu Data Mining tuy là một hướng tiếp cận mới nhưng thu hút được rất nhiều sự quan tâm của các nhà nghiên cứu và phát triển nhờ vào những ứng dụng thực tiễn của nó. Chúng ta có thể liệt kê ra đây một số ứng dụng điển hình: - Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision support) - Điều trị y học (medical treatment) - Text mining & Web mining - Thiên văn học - Tin sinh học - Bào chế thuốc - Thương mại điện tử - Phát hiện lừa đảo - Quảng cáo - Marketing - Quản lý quan hệ khách hàng (CMR - Customer Relationship Management) - Chăm sóc sức khỏe - Viễn thông - Thể thao, giải trí - Đầu tư - Máy tìm kiếm (web) - Tài chính và thị trường chứng khoán (finance & stock market) [7] Nguyễn Thị Thu Trang CH1101147 - Bảo hiểm (insurance) - Nhận dạng (pattern recognition) - .v.v. 1.6. Những ứng dụng đáng chú ý của khai thác dữ liệu Khai thác dữ liệu được xem là phương pháp mà đơn vị Able Danger của Quân đội Mỹ đã dùng để xác định kẻ đứng đầu cuộc tấn công ngày 9/11, Mohamed Atta, và ba kẻ tấn công ngày 9/11 khác là các thành viên bị nghi ngờ thuộc lực lượng al Qaeda hoạt động ở Mỹ hơn một năm trước cuộc tấn công. 1.6.1. RapidMiner Trước đây được biết đến với tên gọi YALE, RapidMiner là một bộ phần mềm khai thác dữ liệu thích hợp cho nhiều kỹ thuật. Nó xây dựng trên công cụ khai thác dữ liệu Weka và cho thêm một số phương pháp trực quan đẹp và hữu ích (http://rapid-i.com/content/blogcategory/10/69/lang,en/) [8] Nguyễn Thị Thu Trang CH1101147 1.6.2. Oracle Data Mining (ODM) ODM là một công cụ mạnh mẽ đi kèm với RDBMS Oracle. Nó cung cấp phương pháp nhanh chóng và dễ dàng để phát triển các ứng dụng BI dựa trên các dữ liệu được lưu trữ trong các RDBMS Oracle. ODM SQL và Java API có thể được sử dụng để phát triển và triển khai các ứng dụng. Nó cho phép dữ liệu được lưu trữ trong các RDBMS Oracle tự động được khai thác. Kết quả thời gian thực có thể được tạo ra như các dữ liệu, mô hình và tất cả kết quả lưu trữ trong cơ sở dữ liệu và bắt buộc không có dữ liệu bổ sung. [9] Nguyễn Thị Thu Trang CH1101147 1.6.3. MATLAB MATLAB hay Matrix Laboratory là một ngôn ngữ lập trình tuyệt vời được sử dụng rộng rãi trong một loạt các lĩnh vực như xử lý ảnh, xử lý tín hiệu, toán học và phân tích thống kê, … . MATLAB được sử dụng rộng rãi để khai thác dữ liệu bởi vì khả năng xử lý các giai đoạn khác nhau của khai thác dữ liệu. Nó được trang bị với một số hộp công cụ mạnh mẽ như: - MathWorks Neural Network Toolbox - Fuzzy Clustering và Data Analysis Toolbox - Association Rule Miner và Deduction Analysis Tool - Cây quyết định (Decision Tree) [10] [...]... liệu, những kiến thức cơ bản nhất về các phương pháp phân cụm dữ liệu, phân lớp dữ liệu và khai phá luật kết hợp Bên cạnh đó đi sâu vào bài toán tìm luật kết hợp (Association Rule) dựa trên thuật toán Apriori và Apriori- Gen Dựa trên những kiến thức tìm hiểu và thu thập được, xây dựng chương trình demo, mô phỏng lại các bước thực hiện của thuật toán Apriori 20 [23] Nguyễn Thị Thu Trang CH1101147 V Tài... association rules (Luật kết hợp mờ): weight in HEAVY => height in TALL Thuật toán phổ biến nhất tìm các luật kết hợp là Apriori sử dụng Binary association rules 2.2 Thuật toán Apriori 2.2.1 Thuật giải tạo ứng viên Apriori (Apriori Candidate Generation) Thuật giải Apriori- Gen cần một tham số L k-1 , tập hợp gồm (k-1) items Nó trả về một tập hợp cha của tập hợp gồm k items Thuật giải thực hiện theo các bước sau... thuật toán Apriori là : Tìm tất cả frequent itemsets kitemset (itemsets gồm k items) được dùng để tìm (k+1)- itemset Đầu tiên tìm 1-itemset (ký hiệu L 1) L1 được dùng để tìm L2 (2-itemsets) L2 được dùng để tìm L3 (3-itemset) và tiếp tục cho đến khi không có k-itemset được tìm thấy Từ frequent itemsets sinh ra các luật kết hợp mạnh (các luật kết hợp thỏa mãn 2 tham số min_sup và min_conf) Thuật toánApriori... k-itemset Mục đích của luật kết hợp là tìm ra sự kết hợp (association) hay tương quan (correlation) giữa các items Những luật kết hợp này có dạng X =>Y Trong Basket Analysis, luật kết hợp X =>Y có thể hiểu rằng những người mua các mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y (X và Y gọi là itemset) Ví dụ, nếu X = {Apple, Banana} và Y = {Cherry, Durian} và ta có luật kết hợp X =>Y thì chúng... B, C, E } Với min_conf = 80% ta có 2 luật kết hợp là : - { B, C } => {E} - { C, E } => {B} [18] Nguyễn Thị Thu Trang CH1101147 Thuật toán Apriori được dùng để phát hiện các luật kết hợp dạng khẳng định (Positive Rule X=>Y) nhị phân (Binary Association Rules) chứ không thể phát hiện các luật kết hợp ở dạng phủ định (Negative Association Rule) chẳn hạn như các kết hợp dạng “Khách hàng mua mặt hàng A thường... (threshold) và phải xác định trước khi sinh các luật kết hợp Một itemsets mà tần suất xuất hiện của nó >= min_sup goi là frequent itemsets Một số loại luật kết hợp - Binary association rules (luật kết hợp nhị phân) : Apple => Banana [14] Nguyễn Thị Thu Trang CH1101147 - Quantitative association rules (luật kết hợp định lượng): weight in [70kg – 90kg] => height in [170cm – 190cm] - Fuzzy association rules (Luật. .. B” Khai phá các luật kết hợp dạng phủ định (Mining Negative Association Rules) có phạm vi ứng dụng rất rộng và thú vị nhất là trong Marketing, Health Care và Social Network Analysis [19] Nguyễn Thị Thu Trang CH1101147 III Chương trình tìm Association Rule theo thuật toán Apriori 3 4 5 Programming language : Microsoft Visual C# 2008 6 Vùng chứa database đầu vào - Sử dụng button (+) và (-) để thêm hoặc... của luật kết hợp X => Y là xác suất có điều kiện Y khi đã biết X như sau : Trong đó: n(X) là số giao dịch chứa X Để thu được các luật kết hợp, ta thường áp dụng 2 tiêu chí : Minimum Support (min_sup) và Minimum Confidence (min_conf) Các luật thỏa mãn có support và confidence thỏa mãn (lớn hơn hoặc bằng) cả Minimum support và Minimum confidence gọi là các luật mạnh (Strong Rule) Minimum support và Minimum... hướng mục tiêu Khả năng khai thác cơ sở dữ liệu cho phép nó để có thể để tích hợp với những hệ thống hiện có một cách dễ dàng [11] Nguyễn Thị Thu Trang CH1101147 [12] Nguyễn Thị Thu Trang CH1101147 II Luật kết hợp (Association Rule) 2.1 Luật kết hợp trong khai phá dữ liệu (Association Rule in Data Mining) Nội dung cơ bản của luật kết hợp được tóm tắt như dưới đây Cho cơ sở dữ liệu gồm các giao dịch T là... phương pháp và thuật toán mới liên tục được công bố Điều này chứng tỏ những ưu thế, lợi ích và khả năng ứng dụng thực tế to lớn của khai phá dữ liệu 18 Rất nhiều doanh nghiệp và tổ chức trên thế giới đã ứng dụng kĩ thuật khai phá dữ liệu vào hoạt động sản xuất kinh doanh của mình và đã thu được những lợi ích to lớn Chính vì vậy việc nghiên cứu và áp dụng kĩ thuật khai phá dữ liệu khá là cần thiết và hữu . CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TIỂU LUẬN MÔN KHAI PHÁ DỮ LIỆU PHÂN TÍCH VÀ MÔ PHỎNG BÀI TOÁN TÌM LUẬT KẾT HỢP THEO THUẬT TOÁN APRIORI Giảng viên hướng dẫn : PGS.TS. Đỗ Phúc Sinh. rules (Luật kết hợp mờ): weight in HEAVY => height in TALL Thuật toán phổ biến nhất tìm các luật kết hợp là Apriori sử dụng Binary association rules. 2.2. Thuật toán Apriori 2.2.1. Thuật giải. k-itemset Mục đích của luật kết hợp là tìm ra sự kết hợp (association) hay tương quan (correlation) giữa các items. Những luật kết hợp này có dạng X =>Y Trong Basket Analysis, luật kết hợp X =>Y

Ngày đăng: 10/04/2015, 00:15

Từ khóa liên quan

Mục lục

  • I. Tổng quan về khai phá dữ liệu

    • 1.1. Tại sao lại cần khai phá dữ liệu? (Data Mining)

    • 1.2. Khai phá dữ liệu là gì?

    • 1.3. Các chức năng chính của khai phá dữ liệu

    • 1.4. Các phương pháp khai thác dữ liệu

    • 1.5. Ứng dụng của khai phá dữ liệu

    • 1.6. Những ứng dụng đáng chú ý của khai thác dữ liệu

      • 1.6.1. RapidMiner

      • 1.6.2. Oracle Data Mining (ODM)

      • 1.6.3. MATLAB

      • 1.6.4. DB2 Intelligent Miner

      • II. Luật kết hợp (Association Rule)

        • 2.1. Luật kết hợp trong khai phá dữ liệu (Association Rule in Data Mining)

        • 2.2. Thuật toán Apriori

          • 2.2.1. Thuật giải tạo ứng viên Apriori (Apriori Candidate Generation)

          • 2.2.2. Thuật toán sinh các luật kết hợp Apriori (by Agrawal and Srikant 1994)

          • III. Chương trình tìm Association Rule theo thuật toán Apriori

          • IV. Kết luận

          • V. Tài liệu tham khảo

Tài liệu cùng người dùng

Tài liệu liên quan