1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

Đ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

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 1,35 MB

Nội dung

Khá nhiều định nghĩa về DataMining và sẽ được đề cập ở phần sau, tuy nhiên có thể tạm hiểu rằng DataMining 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 kh

Trang 1

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

Trang 3

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ôngtin 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ệctin học hoá một cách ồ ạt và nhanh chóng các hoạt động sản xuất, kinh doanhcũ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ệulưu trữ khổng lồ Hàng triệu cơ sở dữ liệu đã được sử dụng trong các hoạt độngsả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 ravớ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ầută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áchhì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ưởngchừ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 trithứ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ề DataMining và sẽ được đề cập ở phần sau, tuy nhiên có thể tạm hiểu rằng DataMining 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 đó

Trang 4

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

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ậphợ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 trongtậ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

Trang 5

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ữngmẫ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 đầutiê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ới80% trong số họ sẽ mua thêm thịt bò khô” Luật kết hợp được ứng dụngnhiều trong lĩnh vực kính doanh, y học, tin-sinh, tài chính & thị trườngchứ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

Trang 6

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ậnnày được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứngkhoá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 thedata

- 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 thevalues 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

Trang 7

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ựctiễ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

- Máy tìm kiếm (web)

- Tài chính và thị trường chứng khoán (finance & stock market)

Trang 8

- 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ủaQuâ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ầnmề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

Trang 9

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ấpphươ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 đượclư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

Trang 10

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ánhọ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ó đượctrang 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)

Trang 11

1.6.4 DB2 Intelligent Miner

DB2 Intelligent Miner được giới thiệu trong các ngành công nghiệp kinhdoanh thông minh bởi IBM Nó có thể được sử dụng trong các lĩnh vực kinhdoanh khác nhau để tìm những cái nhìn mới và thú vị trong số các dữ liệu giaodịch có giá trị để đưa ra các quyết định kinh doanh lớn Nó có thể được sử dụngtrong xác định các hành vi gian lận, phân khúc khách hàng hoặc để thực hiệnphân tích thị trường, có lợi trong việc giảm tỉ lệ hao mòn và thúc đẩy doanh sốbán hàng bằng cách bán hàng chéo hoặc tiếp thị hướng mục tiêu Khả năng khaithá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

Trang 13

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à tập các giao dịch t1, t2, …, tn

T = {t1, t2, …, tn}

T gọi là cơ sở dữ liệu giao dịch (Transaction Database)

Mỗi giao dịch ti bao gồm tập các đối tượng I (gọi là itemset)

I = {i1, i2, …, im}

Một itemset gồm k items gọi là k-itemset

Mục đích của luật kết hợp là tìm ra sự kết hợp (association) hay tương quan (correlation) giữa các items Những luật kết hợp này có dạng X =>Y

Trong Basket Analysis, luật kết hợp X =>Y có thể hiểu rằng những người

mua các mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y (X và

Y gọi là itemset).

Ví dụ, nếu X = {Apple, Banana} và Y = {Cherry, Durian} và ta có luật kết hợp X =>Y thì chúng ta có thể nói rằng những người mua Apple và Banana

thì cũng thường mua Cherry và Durian

Theo quan điểm thống kê, X được xem là biến độc

lập (Independent variable) còn Y được xem là biến phụ thuộc (Dependent

variable).

Độ hỗ trợ (Support) và độ tin cây (Confidence) là 2 tham số dùng để đo

lường luật kết hợp.

Trang 14

Độ hỗ trợ (Support) của luật kết hợp X =>Y là tần suất của giao dịch chứa

tất cả các items trong cả hai tập X và Y Ví dụ, support của luật X =>Y là 5% cónghĩa là 5% các giao dịch X và Y được mua cùng nhau

Công thức để tính support của luật X =>Y như sau:

Trong đó: N là tổng số giao dịch

Độ tin cậy (Confidence) của luật kết hợp X =>Y là xác suất xảy ra Y khi

đã biết X Ví dụ độ tin cậy của luật kết hợp {Apple} =>Banana} là 80% có nghĩa

là 80% khách hàng mua Apple cũng mua Banana

Công thức để tính độ tin cậy của luật kết hợp X => Y là xác suất có điềukiệ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 confidence gọi là các giá trị ngưỡng(threshold) và phải xác định trước khi sinh các luật kết hợp

Một itemsets mà tần suất xuất hiện của nó >= min_sup goi là frequentitemsets

Một số loại luật kết hợp

- Binary association rules (luật kết hợp nhị phân): Apple => Banana

Trang 15

- Quantitative association rules (luật kết hợp định lượng):

2.2 Thuật toán Apriori

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

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ácbước sau :

Đầu tiên, ở bước join chúng ta join Lk-1 với Lk-1

Trang 16

Tìm tập ứng viên L4 theo các bước sau

1994)

Tư tưởng chính của thuật toán Apriori là : Tìm tất cả frequent itemsets

k-itemset (k-itemsets gồm k items) được dùng để tìm (k+1)- 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

- Bước 1: Duyệt (scan) toàn bộ Transaction Database để có được

support S của 1-itemset, so sánh S với min_sup, để có được 1-itemset(L1)

- Bước 2: Sử dụng Lk-1 nối (join) Lk-1 để sinh ra Candidate k-itemset Loại

bỏ các itemsets không phải là frequent itemsets thu được k-itemset

- Bước 3: Scan Transaction Database để có được support của mỗi

candidate k-itemset, so sánh S với min_sup để thu được frequent k –itemset (Lk)

Trang 17

- Bước 4: Lặp lại từ bước 2 cho đến khi Candidate set (C) trống (khôngtìm thấy frequent itemsets)

- Bước 5: Với mỗi frequent itemset I, sinh tất cả các tập con s không rỗngcủa I

- Bước 6: Với mỗi tập con s không rỗng của I, sinh ra các luật s => s) nếu độ tin cậy (Confidence) của nó > = min_conf

(I-Ví dụ : Ta có cơ sở dữ liệu giao dịch như sau

Trang 18

Thuật toán Apriori khai phá luật kết hợp được mô tả qua các bước sau :

Ta có frequent itemsets I ={ B, C, E }

Với min_conf = 80% ta có 2 luật kết hợp là :

- { B, C } => {E}

- { C, E } => {B}

Trang 19

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 KHÔNG mua mặthàng B” hoặc “Nếu ủng hộ quan điểm A thường KHÔNG ủng hộ quan điểm B”.Khai phá các luật kết hợp dạng phủ định (Mining Negative Association Rules) cóphạm vi ứng dụng rất rộng và thú vị nhất là trong Marketing, Health Care vàSocial Network Analysis

Trang 20

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

Apriori

3

4

- Sử dụng button (+) và (-) để thêm hoặc xóa một record trong database

Trang 21

đủ dữ liệu click button (Solve) để hiển thị lời giải

9

- Tập thuộc tính Items trong database

- Các tập ứng viên và độ support của nó

- Tập phổ biến theo bậc k

- Tập phổ biến tổng quát

- Tập phổ biến tối đại

- Các bước tìm luật kết hợp từ tập phổ biến tổng quát tìm được

11

Trang 22

click button (Open) để thể hiện ví dụ mẫu trên giao diện

14

Trang 23

IV Kết luận

Databases) đang là một xu hướng quan trọng của nền Công nghệ thông tin thếgiới Nó có khả năng ứng dụng vào rất nhiều lớp bài toán thực tế khác nhau.Bước quan trọng nhất của quá trình này là Khai phá dữ liệu (Data Mining) giúpngười sử dụng thu được những tri thức hữu ích từ những cơ sở dữ liệu hoặc cácnguồn dữ liệu khổng lồ khác

hướng nghiên cứu thu hút được sự quan tâm của nhiều chuyên gia về Công nghệthông tin trên thế giới Trong những năm gần đây, rất nhiều các 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

khai phá dữ liệu vào hoạt động sản xuất kinh doanh của mình và đã thu đượcnhữ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

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ữngkiế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ạicác bước thực hiện của thuật toán Apriori

20

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Slide “Khai phá dữ liệu” – PGS. TS. Đỗ Phúc, Trường Đại học Công nghệ Thông tin, ĐHQG.HCM, Năm 2007 Sách, tạp chí
Tiêu đề: Khai phá dữ liệu
[2]. Bài báo “Mining Scientific Data Sets using Graphs” – Michihiro Kuramochi, Mukund Deshpande, and George Karypis Department of Computer Science & Engineering, University of Minnesota, Minneapolis, MN 55455 Sách, tạp chí
Tiêu đề: Mining Scientific Data Sets using Graphs
[3]. Bài báo “Mining Association Rules between Sets of Items in Large Databases” – R.Agrawal, T.Imielinski & A. Swami, 1993 Sách, tạp chí
Tiêu đề: Mining Association Rules between Sets of Items in LargeDatabases
[4]. Slide “Data Mining Association Rules” – Jen-Ting Tony Hsiao &Alexandros Ntoulas, CS 240B, May 21, 2002 Sách, tạp chí
Tiêu đề: Data Mining Association Rules
[5]. Bài báo “Fast Algorithms for Mining Association Rules” – Rakesh Agrawal và Ramakrishnan Srikan, IBM Almaden Research Center, 650 Harry Road, San Jose, CA 95120 Sách, tạp chí
Tiêu đề: Fast Algorithms for Mining Association Rules

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w