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

Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu

57 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Tác giả Đặng Ngọc Vũ
Người hướng dẫn PGS. TS. Quản Thành Thơ
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Khoa học máy tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2017
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 57
Dung lượng 1,4 MB

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU (12)
    • 1.1. Lý do chọn đề tài (12)
    • 1.2. Mục tiêu và giới hạn của đề tài (13)
    • 1.3. Cấu trúc luận văn (13)
  • CHƯƠNG 2: KIẾN THỨC NỀN TẢNG (14)
    • 2.1. Một số khái niệm cơ bản (14)
      • 2.1.1. Phát hiện tri thức và khai phá dữ liệu (14)
      • 2.1.2. Các kỹ thuật và hướng tiếp cận chính trong khai phá dữ liệu (14)
      • 2.1.3. Phân loại các hệ thống khai phá dữ liệu (15)
    • 2.2. Khai phá luật kết hợp (16)
      • 2.2.1. Các tính chất của luật kết hợp (18)
      • 2.2.2. Một số hướng tiếp cận luật kết hợp (19)
    • 2.3. Lập trình song song trên hệ thống đa nhân (20)
      • 2.3.1. Xử lý song song (20)
      • 2.3.2. Parallel Extensions trong .Net Framework (21)
  • CHƯƠNG 3: TỔNG THUẬT CÁC CÔNG TRÌNH LIÊN QUAN (24)
    • 3.1. Phát hiện luật kết hợp sử dụng đơn ngưỡng hỗ trợ tối thiểu (24)
    • 3.2. Phát hiện luật kết hợp sử dụng đa ngưỡng hỗ trợ tối thiểu (29)
  • CHƯƠNG 4: PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ (31)
    • 4.1. Phương pháp tìm các tập phổ biến sử dụng đa ngưỡng hỗ trợ tối thiểu (31)
    • 4.2. Song song hóa trong giai đoạn tìm tập phổ biến (35)
    • 4.3. Giai đoạn sinh các luật kết hợp (36)
      • 4.3.1. Giải thuật sinh luật kết hợp (36)
      • 4.3.2. Tính toán độ tin cậy của luật khi sử dụng đa ngưỡng hỗ trợ tối thiểu (37)
  • CHƯƠNG 5: THỰC NGHIỆM (39)
    • 5.1. Thực nghiệm 1: Tìm các tập phổ biến (39)
      • 5.1.1. Tập dữ liệu MUSHROOMS 8124 giao dịch (39)
      • 5.1.2. Tập dữ liệu C20D10K 10000 giao dịch (42)
      • 5.1.3. Tập dữ liệu BMS-POS 515597 giao dịch (46)
    • 5.2. Thực nghiệm 2: Giai đoạn sinh các luật (49)
  • CHƯƠNG 6: KẾT LUẬN (53)
    • 6.1. Tổng kết (53)
    • 6.2. Hướng phát triển (53)
  • TÀI LIỆU THAM KHẢO (54)

Nội dung

Để vừa phát hiện các tập phổ biến cũng như các tập phần tử hiếm, giá trị ngưỡng hỗ trợ phải thiết lập rất thấp, khi đó gặp phải một vấn đề đó là khi đặt ngưỡng hỗ trợ tối thiểu thấp, lúc

GIỚI THIỆU

Lý do chọn đề tài

Hiện nay với sự phát triển như vũ bão của công nghệ thông tin và việc ứng dụng công nghệ thông tin trong nhiều lĩnh vực của đời sống, kinh tế xã hội, trong nhiều năm qua lượng thông tin của nhân loại được lưu trữ trong các hệ thống cơ sở dữ liệu ngày một tăng, sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ Lượng dữ liệu khổng lồ này thực sự là một nguồn “tài nguyên” rất giá trị bởi thông tin là yếu tố then chốt trong nhiều lĩnh vực Khai phá dữ liệu (data mining) đã giúp người sử dụng thu được những tri thức hữu ích từ những cơ sở dữ liệu và các kho dữ liệu khổng lồ

Hiện nay lĩnh vực khai phá dữ liệu đã và đang được ứng dụng rộng rãi trong rất nhiều lĩnh vực Trong lĩnh vực khai phá dữ liệu, luật kết hợp (association rule) được dùng để chỉ sự kết hợp hay tương quan giữa các phần tử dữ liệu "điều kiện → hệ quả" giữa các phần tử dữ liệu (chẳng hạn, sự xuất hiện của tập mặt hàng này "kéo theo" sự xuất hiện của tập mặt hàng khác) trong một tập bao gồm nhiều đối tượng dữ liệu (chẳng hạn, tập các giao dịch mua hàng) Phát hiện luật kết hợp là phát hiện các mối quan hệ đó trong phạm vi của một tập dữ liệu đã cho

Lý thuyết luật kết hợp được Rakesh Agrawal và cộng sự giới thiệu lần đầu tiên vào năm 1993 [1] và đã trở thành một trong những hướng nghiên cứu khai phá dữ liệu quan trọng, đặc biệt trong những năm gần đây Phát hiện luật kết hợp đã được ứng dụng thành công trong nhiều lĩnh vực kinh tế - xã hội khác nhau như thương mại, y tế, sinh học, tài chính-ngân hàng…

Trong các nghiên cứu liên quan đến phát hiện luật kết hợp trong [1, 2, 12, 16] các tác giả với hướng tiếp cận sử dụng một ngưỡng hỗ trợ trong việc phát hiện các luật kết hợp Tuy nhiên việc sử dụng một ngưỡng hỗ trợ dẫn đến vấn đề liên quan đến phần tử hiếm (Rare item problem) [10] Luật kết hợp liên quan đến phần tử hiếm mặc dù tần suất xảy ra thấp nhưng trong nhiều trường hợp chúng lại là các luật rất có giá trị, chẳng hạn như trong công trình nghiên cứu [17] đã chỉ ra luật kết hợp rất có ý nghĩa là luật kết hợp hiếm “ăn chay”→ “bệnh tim mạch” trong cơ sở dữ liệu điều trị bệnh nhân của một bệnh viện tại Pháp

Mục tiêu và giới hạn của đề tài

Trong phương pháp phát hiện luật kết hợp sử dụng một ngưỡng hỗ trợ sẽ gặp vấn đề đó là nếu đặt ngưỡng hỗ trợ tối thiểu nhỏ khi đó các tập phổ biến sẽ được sinh ra khá lớn điều này làm cho chi phí cho việc tìm kiếm sẽ tăng lên Tuy nhiên, nếu đặt ngưỡng hỗ trợ lớn khi đó có thể sẽ dẫn đến việc bỏ qua các tập phần tử hiếm Đề tài luận văn này tập trung nghiên cứu, xây dựng hệ thống và đánh giá phương pháp khai phá luật kết hợp sử dụng đa ngưỡng hỗ trợ tối thiểu nhằm tìm ra các luật kết hợp liên quan trên tập các tập dữ liệu kiểm nghiệm.

Cấu trúc luận văn

Chương 1, Giới thiệu: giới thiệu tổng quan về đề tài, mục tiêu nghiên cứu và giới hạn của đề tài

Chương 2, Kiến thức nền tảng: trình bày tổng quan các khái niệm cơ bản về khai phá luật kết hợp, lập trình song song, các công trình nghiên cứu liên quan trong vấn đề khai phá luật kết hợp

Chương 3, Tổng thuật các công trình liên quan: khảo sát các công trình nghiên cứu đã đăng tải liên quan

Chương 4, Phương pháp giải quyết vấn đề: trình bày phương pháp khai phá luật kết hợp sử dụng đa ngưỡng hỗ trợ tối thiểu, hướng tiếp cận song song trong giai đoạn tìm tập phổ biến

Chương 5, Thực nghiệm: chạy thực nghiệm, trình bày các kết quả thực nghiệm, so sánh và đánh giá hệ thống trên các tập dữ liệu khác nhau

Chương 6, Kết luận: đưa ra kết luận và hướng phát triển tiếp theo của đề tài trong tương lai

KIẾN THỨC NỀN TẢNG

Một số khái niệm cơ bản

2.1.1 Phát hiện tri thức và khai phá dữ liệu

Quá trình khai phá tri thức thường gồm có các bước chính sau:

 Trích chọn dữ liệu (data selection): là bước trích chọn những tập dữ liệu cần được khai phá từ các tập dữ liệu lớn (databases, data warehouses, data repositories) ban đầu theo một số tiêu chí nhất định

 Tiền xử lý dữ liệu (data preprocessing): là bước làm sạch dữ liệu (xử lý với dữ liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán, v.v.), rút gọn dữ liệu (sử dụng hàm nhóm và tính tổng, các phương pháp nén dữ liệu, sử dụng histograms, lấy mẫu, v.v.), rời rạc hóa dữ liệu (rời rạc hóa dựa vào histograms, dựa vào entropy, dựa vào phân khoảng, v.v.) Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn, và được rời rạc hóa

 Biến đổi dữ liệu (data transformation): đây là bước chuẩn hóa và làm mịn dữ liệu để đưa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các kỹ thuật khai phá ở bước sau

 Khai phá dữ liệu (data mining): đây là bước áp dụng những kỹ thuật khai phá (phần nhiều là các kỹ thuật của machine learning) để khai phá, trích chọn được những mẫu (patterns) thông tin, những mối liên hệ (relationships) đặc biệt trong dữ liệu Đây được xem là bước quan trọng và tốn nhiều thời gian nhất của toàn quá trình KDD

 Biểu diễn và đánh giá tri thức (knowledge representation and evaluation): những mẫu thông tin và mối liên hệ trong dữ liệu đã được khai phá ở bước trên được chuyển dạng và biểu diễn ở một dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu, luật, v.v Đồng thời bước này cũng đánh giá những tri thức khám phá được theo những tiêu chí nhất định

2.1.2 Các kỹ thuật và hướng tiếp cận chính trong khai phá dữ liệu

Các hướng tiếp cận của KPDL có thể được phân chia theo chức năng hay lớp các bài toán khác nhau Sau đây là một số hướng tiếp cận chính:

4 - 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 nhân tạo (neural network), v.v

Phân lớp còn được gọi là học có giám sát (supervised learning)

- Luật kết hợp (association rules): là dạng luật biểu diễn tri thức ở 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 kinh doanh, y học, tin-sinh, tài chính & thị trường chứng khoán, v.v

- Khai phá chuỗi theo thời gian (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

- Phân cụm (clustering/segmentation): 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 Phân cụm còn được gọi là học không giám sát (unsupervised learning)

2.1.3 Phân loại các hệ thống khai phá dữ liệu

Khai phá dữ liệu 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 nhau như cơ sở dữ liệu, máy học (machine learning), giải thuật, trực quan hóa (visualization), v.v Có thể phân loại các hệ thống khai phá dữ liệu dựa trên các tiêu chí khác nhau

- Phân loại dựa trên kiểu dữ liệu được khai phá: cơ sở dữ liệu (CSDL) giao dịch (transactional database), CSDL quan hệ (relational database), kho dữ liệu (data warehouse), CSDL hướng đối tượng, CSDL không gian (spatial database), CSDL đa phương tiện (multimedia database), CSDL Text và WWW, v.v

- Phân loại dựa trên dạng tri thức được khám phá: tóm tắt và mô, luật kết hợp, phân lớp (classification), phân cụm, khai phá chuỗi , v.v

- Phân loại dựa trên kỹ thuật được áp dụng: hướng CSDL (database oriented), phân tích trực tuyến (OnLine Analytical Processing – OLAP), machine learning (cây quyết định, mạng nơ ron nhân tạo, k-min, giải thuật di truyền, máy vectơ hỗ trợ - SVM, tập thô, tập mờ, v.v.), trực quan hóa visualization), .v.v

5 - Phân loại dựa trên lĩnh vực được áp dụng: kinh doanh bán lẻ, tài chính và thị trường chứng khoán, truyền thông, tin sinh học, y học, ,web mining, v.v.

Khai phá luật kết hợp

Tập phần tử (itemset): một tập hợp gồm một hoặc nhiều phần tử (item).Ví dụ tập phần tử: {Milk, Bread, Diaper}

Tập phần tử mức k (k-itemset): Một tập gồm có k phần tử

Cơ sở dữ liệu giao dịch: Cho I = {I 1 , I 2 , , I n } là một tập các phần tử Gọi D là một tập CSDL giao dịch (transaction database) xác định trên I Một giao dịch (transaction) T là một tập con của I, T I Mỗi giao dịch được gán một định danh TID Một tập phần tử con X  I, gồm k phần tử phân biệt được gọi là một k- tập phần tử Giao dịch T gọi là chứa tập phần tử X nếu và chỉ nếu X  T

TID (mã giao dịch) Itemset (tập các phần tử)

Bảng 2.1 Ví dụ cơ sở dữ liệu giao dịch Định nghĩa luật kết hợp: Cho tập phần tử I = {I 1 ,I 2 ,…, I n } Một luật kết hợp là một phép kéo theo, dạng AB, trong đó: AI, BI, và AB = Độ hỗ trợ:

Cho tập phần tử A, A I Độ hỗ trợ (support) của tập phần tử A trong CSDL giao dịch D, được ký hiệu là sup(A), là tỷ lệ phần trăm số giao dịch trong CSDL có chứa A trên tổng số các giao dịch trong D:

6 Ví dụ trong bảng CSDL sau:

 Số giao dịch chứa tập phần tử X = {A, B, C} là 1

 Số giao dịch trong CSDL là 4

4  Độ hỗ trợ (support) của luật kết hợp XY, ký hiệu là sup(XY), là độ hỗ trợ của tập phần tử XY: sup(XY) = sup(XY) Độ hỗ trợ của luật kết hợp XY chính là xác suất P(XY) của sự xuất hiện đồng thời X và Y trong một giao dịch Độ hỗ trợ (support) của luật XY khi đó được biểu diễn bằng: support(XY) = P(XY)

Luật XY có trong tập giao dịch D với độ hỗ trợ s (support) là tỷ lệ các giao dịch trong D mà có chứa cả X và Y, tức là phép hợp XY, so với tổng số giao dịch trong D Tỷ lệ này tương đương với xác suất P(XY) Chẳng hạn, độ hỗ trợ s = 1% nghĩa là có 1% số giao dịch trên tổng số giao dịch trong CSDL thể hiện X và Y cùng có mặt Độ tin cậy:

Luật kết hợp có dạng X  c Y , trong đó X, Y là các tập phần tử thỏa mãn điều kiện X Y =, X được gọi là tiền đề, Y được gọi là kết quả của luật, c là độ tin cậy (confidence) của luật

Luật XY có độ tin cậy c trong tập giao tác D, với c là tỷ lệ các giao dịch trong D chứa X và cũng chứa cả Y, so với tổng số giao dịch có chứa X

7 Độ tin cậy (confidence) của luật kết hợp XY, ký hiệu là conf(XY), là tỷ lệ phần trăm giữa số giao dịch chứa XY và số giao dịch chứa X trong CSDL giao dịch D sup( )

   Độ tin cậy của luật kết hợp XY chính là xác suất có điều kiện P(Y/X):

Xác suất có điều kiện P(Y/X) – xác xuất mà một giao dịch có chứa Y với điều kiện giao dịch đó đã chứa X Ví dụ với độ tin cậy confidence = 50% nghĩa là trong một giao dịch nếu X đã có mặt thì khả năng có tới 50% là Y sẽ có mặt trong đó

Khi đó độ tin cậy của luật XY được biểu diễn bằng: sup( )

2.2.1 Các tính chất của luật kết hợp

Luật kết hợp có một số tính chất sau:

- Tính chất 1: Không hợp các luật kết hợp

Nếu có hai luật X Y 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 giao dịch trong D hỗ trợ Z nếu và chỉ nếu chúng hỗ trợ mỗi X hoặc Y, khi đó luật XYZ có độ hỗ trợ 0%

Tương tự : XY  XZ thì không nhất thiết XYZ là đúng

- 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

8 Ví dụ trường hợp Z có mặt trong một giao dịch 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 thỏa mãn s(X) > s(XY) và s(Y)

> s(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 thì không thể suy ra XZ

Nếu luật X  (L - X) không thoả mãn độ tin cậy cực tiểu thì luật Y  (L - Y) cũng không thoả mãn, với X, Y, L là các tập phần tử và Y X

Ta có s(Y) ≥ s(X) nên: c(Y(L-Y))= (L) ( ) min_conf

Nếu có luật (L-X)  X thỏa mãn độ tin cậy thì ta có luật (L-Y) Y cũng thỏa mãn độ tin cậy, với X, Y, L là các tập phần tử và Y X

2.2.2 Một số hướng tiếp cận luật kết hợp

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 Dưới đây là một số hướng chính:

- Luật kết hợp nhị phân (Binary association rule hay Boolean association rule): là hướng nghiên cứu đầu tiên của luật kết hợp Theo luật này, các phần tử chỉ quan tâm là xuất hiện hay không trong cơ sở dữ liệu giao dịch Thuật toán tiêu biểu nhất của khai phá dạng luật này là thuật toán Apriori [2] và các biến thể của thuật toán này

Ví dụ luật: “Mua bánh mì = ‘yes’  mua đường= ‘yes’ => mua sữa = ‘yes’  mua bơ

= ‘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 cơ sở dữ liệu thực tế thường có thuộc tính đa dạng như nhị phân, số, mục (categorial) Vì vậy để khai phá luật kết hợp với các cơ sở dữ liệu này các nhà nghiên cứu đề xuất một số phương pháp rời rạc hóa 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ó [13] Một ví dụ

9 về dạng luật này là: “Tuổi  ‘30 39’  Thu nhập ‘42000 48000’=> Mua tivi có độ phân giải cao”

- Luật kết hợp tiếp cận theo hướng tập thô (mining association rule 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 rules): ngoài các dạng luật trên, các nhà nghiên cứu còn đề xuất một hướng nghiên cứu nữa về luật kết hợp là luật kết hợp nhiều mức [7] [15] Luật kết hợp nhiều mức liên quan đến các phần tử, thuộc tính ở các mức trừu tượng khác nhau, ví dụ như các luật:

Tuổi(X, “30 39”) → Mua(X, “laptop computer”) ƒ Tuổi(X, “30 39”) → Mua(X, “computer”)

- Luật kết hợp mờ (fuzzy association rule): Với những khó khăn gặp phải khi rời rạc hóa các thuộc tính số, các nhà nghiên cứu đã đề xuất luật kết hợp mờ nhằm khắc phục những 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 [3][4] Một ví dụ về dạng luật này: “Ho khan =

‘yes’  sốt cao  đau cơ = ‘yes’  khó thở = ‘yes’ => Bị nhiễm SARS = ‘yes’, với độ hỗ trợ 4% và độ tin cậy 85%” Trong luật này, điều kiện sốt cao ở vế trái của luật là một thuộc tính đã được mờ hóa.

Lập trình song song trên hệ thống đa nhân

Xử lý song song hay tính toán song song là quá trình xử lý thông tin trong đó nhấn mạnh việc nhiều đơn vị dữ liệu được xử lý đồng thời bởi một hay nhiều bộ xử lý để giải quyết một bài toán Trái ngược với xử lý tuần tự, đòi hỏi phải xử lý các công việc theo thứ tự tuần tự

Có hai kiểu song song đó là:

Song song về dữ liệu (data parallelism): là cơ chế sử dụng nhiều đơn vị xử lý thực hiện cùng một thao tác trên nhiều đơn vị dữ liệu

Song song lệnh (control parallelism): là cơ chế trong đó nhiều thao tác khác nhau tác động lên nhiều đơn vị dữ liệu khác nhau một cách đồng thời

Ngày nay, các bộ vi xử lý đa nhân (multi-core) cho phép nhiều luồng xử lý (thread) ngày càng phổ biến Khi lập trình song song người lập trình tập trung vào mô hình lập trình đa luồng (multi-thread) để tăng tốc độ xử lý và sử dụng tài nguyên của

10 hệ thống Có rất nhiều mô hình lập trình song song như mô hình dùng bộ nhớ chia sẻ (như Pthreads và OpenMP), mô hình lập trình truyền thông điệp (như Message Passing Interface (MPI)) Những mô hình này cung cấp công cụ mạnh mẽ cho lập trình song song, chẳng hạn như mô hình truyền thông điệp là một trong những mô hình lâu đời và được ứng dụng rộng rãi trong lập trình song song Tuy nhiên đối với mô hình lập trình chia sẻ bộ nhớ cổ điển, chương trình được song song hóa cho các luồng, người lập trình phải quản lý công việc tạo ra các luồng và phân công công việc cho các luồng, quản lý sự tồn tại các luồng, bên cạnh đó cần hiểu rõ về mặt kiến trúc vật lý (chẳng hạn như có bao nhiều lõi của bộ xử lý là đang sẵn sàng) để có thể đạt được những cải tiến về mặt hiệu năng

2.3.2 Parallel Extensions trong Net Framework

Parallel Extensions là một sự bổ sung cho các thư viện của Microsoft bắt đầu từ nền tảng NET Framework 4.0 Parallel Extensions gồm có Task Parallel Library (TPL), Parallel LINQ và nhiều lớp hỗ trợ khác cho việc lập trình xử lý song song trên nền tảng Net Những tính năng này giúp đơn giản hóa việc phát triển lập trình song song, loại bỏ sự phức tạp khi viết mã song song của các nhà phát triển để giúp họ tập trung vào giải quyết các vấn đề chính yếu về mặt nghiệp vụ

Lớp Parallel cung cấp các phương thức Parallel.For and Parallel.Foreach cho phép song song hóa các tác vụ vòng lặp truyền thống Với chương trình tuần tự, các vòng lặp for, foreach sẽ thực hiện tuần tự từng vòng lặp cho đến khi kết thúc, trong trường hợp CPU rỗi thì vẫn phải chờ sau khi thực hiện xong một vòng lặp rồi mới thực hiện vòng lặp tiếp theo Khi sử dụng các vòng lặp song song sẽ khắc phục được nhược điểm của lập trình tuần tự, các vòng lặp sẽ được thực thi đồng thời giúp tăng hiệu năng tính toán

Hình 2.1 Minh họa giải thuật tuần tự và song song với sự hỗ trợ của thư viện

11 Xét ví dụ nhân hai ma trận sau đây:

Giải thuật nhân ma trận A và B với giải thuật tuần tự như sau: void MultiplyMatricesSequential(double[,] matA, double[,] matB, double[,] result){ for (int i = 0; i < matARows; i++)

{ for (int j = 0; j < matBCols; j++) { double temp = 0; for (int k = 0; k < matACols; k++) { temp += matA[i, k] * matB[k, j];

Với sự hỗ trợ lập trình song song trên nền tảng Net, vòng lặp tuần tự trên được viết lại theo hướng tiếp cận song song hóa như sau: void MultiplyMatricesParallel(double[,] matA, double[,] matB, double[,] result)

{ for (int j = 0; j < matBCols; j++) { double temp = 0; for (int k = 0; k < matACols; k++) { temp += matA[i, k] * matB[k, j];

Trong chương 4 chúng tôi sẽ trình bày hướng tiếp cận song song hóa trong giai đoạn tìm các tập phổ biến dựa vào thư viện TPL của Net Framework

TỔNG THUẬT CÁC CÔNG TRÌNH LIÊN QUAN

Phát hiện luật kết hợp sử dụng đơn ngưỡng hỗ trợ tối thiểu

Trong hướng tiếp cận tìm tất cả các tập phổ biến để từ đó phát hiện ra các luật kết hợp từ các tập phổ biến, công trình nghiên cứu [2] đã đề xuất thuật toán Apriori để tìm tất cả các tập phổ biến từ cơ sở dữ liệu, đây là thuật toán tìm tập phổ biến nổi tiếng

- k-itemsets : Tập k – phần tử dữ liệu

- L k : Tập các k - tập phần tử phổ biến Mỗi một phần tử của tập này có 2 trường: tập phần tử và độ hỗ trợ

- C k : Tập các k - tập dữ liệu ứng cử viên (tiềm năng là tập phổ biến) Mỗi một phần tử của tập này có 2 trường: tập phần tử và độ hỗ trợ

Input: Tập các giao dịch D, giá trị ngưỡng support tối thiểu minsup

Output: L- tập phần tử phổ biến trong D

L 1 ={large 1-itemset (tập 1- mục phổ biến)} for (k=2; L k-1  ; k++) do begin

C k =apriori-gen(L k-1 ) ; //sinh ra tập ứng cử viên từ L k-1 for (mỗi một giao dịch TD) do begin

C T = subset(C k , T); //lấy tập con của T là ứng cử viên trong C k for (mỗi ứng cử viên c C T ) do

14 c.count++; //tăng bộ đếm tần suất thêm 1 đơn vị end;

L k = {c  Ck| c.count  minsup} end; return  k L k

Trong thuật toán này, giai đoạn đầu sẽ tiến hành đếm support cho các phần tử (item) Để xác định tập 1 - phần tử phổ biến (L1), trong giai đoạn này chỉ giữ lại các phần tử mà giá trị độ hỗ trợ 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- phần tử phổ biến) trong tập L k-1 được sử dụng để sinh ra các tập ứng cử viên (candidate itemset) C k , bằng cách thực hiện hàm Apriori_gen

Hàm Apriori_gen với đối số là L k-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

Trong giải thuật Apriori, bước loại bỏ (prunning) dựa trên độ hỗ trợ được dựa theo nguyên tắc sau:

Nếu một tập phần tử là thường xuyên, thì tất cả các tập con (subsets) của nó đều là các tập phần tử thường xuyên

Nếu một tập phần tử là không thường xuyên (not frequent) thì tất cả các tập cha (supersets) của nó đều là các tập mục không thường xuyên

15 Ví dụ: Xét cơ sở dữ liệu chứa các giao dịch sau:

Trong bước lặp đầu tiên, mỗi phần tử của tập dữ liệu đều được xem là ứng viên tập 1 phần tử C 1 Giải thuật sẽ duyệt qua tất cả các giao dịch để đếm số lần xuất hiện của mỗi phần tử này

Giả sử ngưỡng hỗ trợ tối thiểu được thiết lập là 2 (tức min_sup = 2) Tập phổ biến

L 1 được xác định từ tập C 1 , trong ví dụ này tất cả các phần tử trong tập ứng viên C 1 đều thỏa ngưỡng hỗ trợ tối thiểu

Tiếp theo để tìm tập phổ biến 2 phần tử L 2 , giải thuật sẽ thực hiện phép nối L 1 L 1 để sinh ra các tập ứng viên C 2 Không có ứng viên nào trong tập C 2 bị loại bỏ trong giai đoạn cắt vì mỗi tập con của ứng viên trong C 2 đều là tập phổ biến Độ hỗ trợ của các ứng viên trong tập C 2 sẽ được tính toán, bước tiếp theo sẽ thu được tập phổ biến L 2 từ các ứng viên trong C 2 mà thỏa điều kiện ngưỡng hỗ trợ tối thiểu

16 Duyệt D tìm số lần xuất hiện của mỗi ứng viên

So sánh độ hỗ trợ của các ứng viên với ngưỡng hỗ trợ tối thiểu

Sinh tập ứng viên C 2 từ L 1

So sánh độ hỗ trợ của các ứng viên với ngưỡng hỗ trợ tối thiểu

Sinh tập ứng viên C 3 từ L 2

Duyệt D tìm số lần xuất hiện của mỗi ứng viên

So sánh độ hỗ trợ của các ứng viên với ngưỡng hỗ trợ tối thiểu

Hình 3.1 Sinh các tập ứng viên và tập phổ biến với ngưỡng hỗ trợ tối thiểu bằng

Tập phần tử Số lần xuất hiện {I1}

Tập phần tử Số lần xuất hiện {I1}

Tập phần tử Số lần xuất hiện {I1,I2}

2 2 Tập phần tử Số lần xuất hiện {I1, I2, I3}

17 Quá trình sinh tập ứng viên C3 được mô tả như sau: a) Thực hiện phép nối L 2 L 2 ta thu được L 2 L 2 = {{I1, I2}, {I1, I3}, {I1, I5}, {I2, I3}, {I2, I4}, {I2, I5}}

{{I1, I2}, {I1, I3}, {I1, I5}, {I2, I3}, {I2, I4}, {I2, I5}} b) Thực hiện bước cắt theo tính chất Apriori: Tất cả các tập con không rỗng của một tập phổ biến thì phải là tập phổ biến

 Các tập con 2 phần tử của {I1, I2, I3} là {I1, I2}, {I1, I3} và {I2, I3} Tất cả các tập con này đều thuộc L 2 do đó sẽ giữ {I1, I2, I3} trong C 3

 Các tập con 2 phần tử của {I1, I2, I5} là {I1, I2}, {I1, I5} và {I2, I5} Tất cả các tập con này đều thuộc L2 do đó sẽ giữ {I1, I2, I5} trong C3

 Các tập con 2 phần tử của {I1, I3, I5} là {I1, I3}, {I1, I5} và {I3, I5} {I3, I5} không thuộc L2 do đó nó không phải là tập phổ biến vì vậy {I1, I3, I5} sẽ bị loại khỏi C3

 Các tập con 2 phần tử của {I2, I3, I4} là {I2, I3}, {I2, I4} và {I3, I4} {I3, I4} không thuộc L 2 do đó nó không phải là tập phổ biến vì vậy {I2, I3, I4} sẽ bị loại khỏi C 3

 Các tập con 2 phần tử của {I2, I3, I5} là {I2, I5}, {I2, I5} và {I3, I5} {I3, I5} không thuộc L2 do đó nó không phải là tập phổ biến vì vậy {I2, I3, I5} sẽ bị loại khỏi C3

 Các tập con 2 phần tử của {I2, I4, I5} là {I2, I4}, {I2, I5} và {I4, I5} {I4, I5} không thuộc L2 do đó nó không phải là tập phổ biến vì vậy {I2, I4, I5} sẽ bị loại khỏi C 3 c) Do đó ta thu được C 3 = {{I1, I2, I3}, {I1, I2, I5}} sau giai đoạn cắt

Duyệt qua cơ sở dữ liệu D để tìm số lần xuất hiện của các phần tử trong tập ứng viên C 3 và so sánh với ngưỡng hỗ trợ tối thiểu ta thu được tập L 3 = {{I1, I2, I3}, {I1, I2, I5}}

Giải thuật tiếp tục thực hiện phép nối L 3 L 3 để sinh ra tập ứng viên 4 phần tử C 4 Kết quả của phép nối thu được tập phần tử { I1, I2, I3, I5}, tập phần tử này bị loại vì tập con của tập này là {I2, I3, I5} không phải là tập phổ biến Do đó C 4 =  vì vậy giải thuật tìm tất cả các tập phổ biến sẽ dừng ở đây

Phát hiện luật kết hợp sử dụng đa ngưỡng hỗ trợ tối thiểu

Trong công trình nghiên cứu của H Yun và đồng nghiệp [18] đã đề xuất thuật toán RSAA (Relative Support Apriori Algorithm) Trong giải thuật RSAA, nhóm tác giả sử dụng các tham số sau:

(1) Độ hỗ trợ thứ nhất: là giá trị do người sử dụng đưa vào để phát hiện các tập phần tử phổ biến

(2) Độ hỗ trợ thứ hai: là giá trị do người sử dụng đưa vào dùng để phát hiện các phần tử hiếm (độ hỗ trợ này luôn nhỏ hơn độ hỗ trợ thứ nhất)

Bên cạnh độ hỗ trợ thứ nhất và độ hỗ trợ thứ hai trong giải thuật RSAA nhóm tác giả sử dụng thêm độ hỗ trợ quan hệ (relative support) Độ hỗ trợ quan hệ được định nghĩa như sau:

Cho tập dữ liệu I = {i 1 , i 2 ,…, ik} với độ hỗ trợ của phần tử dữ liệu i được ký hiệu là sup(i) khi đó độ hỗ trợ quan hệ của một tập phần tử được tính toán theo công thức sau:

Rsup{i 1 , i 2 ,…, i k ) = max( sup(i 1 , i 2 ,…, i k )/ sup(i 1 ), sup(i 1 , i 2 ,…, i k )/ sup(i 2 ), …, sup(i 1 , i 2 ,…, i k )/ sup(i k ))

Công trình nghiên cứu trong [8] các tác giả đã sử dụng thông số SD (support different) để xác định độ hỗ trợ cực tiểu cho các phần tử dữ liệu Với mỗi phần tử dữ liệu i j , ngưỡng hỗ trợ tối thiểu được tính như sau:

MIS(i j ) = S(i j ) – SD khi (S(i j ) – SD) > LS

= LS trong các trường hợp khác Đối với một tập dữ liệu, giá trị SD được tính:

SD = λ(1 − α) với λ: tham số liên quan đến tần số xuất hiện của phần tử dữ liệu α: giá trị được thiết lập bởi người dùng

Các tác giả đã đề xuất thuật toán IMSApriori (Improved Multiple Support Apriori Algorithm) dựa trên hướng tiếp cận Apriori để tìm các tập phần tử phổ biến [8]

Nhóm tác giả Hu và Chen trong [6] đã đề xuất cấu trúc dữ liệu là cây MIS (MIS Tree) dựa trên cách tiếp cận xây dựng FP Tree [5] trong đó điểm khác biệt quan trọng giữa cây FP Tree và MIS Tree đó là cây FP Tree chỉ chứa tập các phần tử phổ biến

19 trong khi MIS Tree ngoài chứa tập các phần tử phổ biến còn chứa cả tập các phần tử mà có độ hỗ trợ của các tập này không nhỏ hơn giá trị MIN (MIN: giá trị MIS nhỏ nhất của tất cả các phần tử trong tập dữ liệu) Nhóm tác giả đã đề xuất giải thuật CFP- Growth [6] trong việc tìm ra các luật kết hợp sử dụng đa ngưỡng hỗ trợ tối thiểu

Hình 3.2 Ví dụ cây MIS Tree [6]

PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ

Phương pháp tìm các tập phổ biến sử dụng đa ngưỡng hỗ trợ tối thiểu

Trong đề tài này sử dụng hướng tiếp cận trong [9] để tìm các tập phổ biến sử dụng đa ngưỡng hỗ trợ tối thiểu Mỗi phần tử i trong tập dữ liệu sẽ được gán một giá trị ngưỡng hỗ trợ tối thiểu MIS (minimum item supports)

Với tập phần tử I = {i 1 , i 2 ,…, i n ), ký hiệu MIS(i p ) là giá trị MIS của phần tử i p (i p  I) Giá trị MIS của tập phần tử A = {i 1 , i 2 ,…, i k } (1 ≤ k ≤ n) khi đó được định nghĩa như sau:

MIS(A) = min[MIS(i 1 ), MIS(i 2 ), , MIS(i k )]

Trong giải thuật tìm kiếm các tập phổ biến dựa theo hướng tiếp cận Apriori sử dụng tính chất “downward closed”: Nếu một tập phần tử thỏa mãn giá trị minsup (ngưỡng hỗ trợ tối thiểu) thì tất cả các tập con của nó cũng thỏa mãn giá trị minsup này Tính chất này đóng vai trò quan trọng ở giai đoạn loại bỏ các tập phần tử không thỏa mãn giá trị ngưỡng hỗ trợ tối thiểu Tuy nhiên trong phương pháp sử dụng đa ngưỡng hỗ trợ tối thiểu, tính chất này không còn được sử dụng nữa

Ví dụ 4.1: Xét tập dữ liệu có 4 phần tử: 1, 2, 3 và 4 Ngưỡng hỗ trợ tối thiểu của 4 phần tử như sau:

Nếu tìm được tập phần tử {1, 2} có giá trị độ hỗ trợ là 9% khi đó tập phần tử này sẽ không thỏa giá trị MIS(1) hoặc MIS(2) Khi đó giải thuật theo hướng tiếp cận

21 Apriori thì tập phần tử {1, 2} sẽ được loại bỏ Lúc này, các tập phần tử phổ biến tiềm năng {1, 2, 3} và {1, 2, 4} sẽ không được sinh ra ở mức tiếp theo của giải thuật Rõ ràng, tập phần tử {1, 2, 3} và {1, 2, 4} có thể là tập phổ biến vì giá trị MIS(3) là 5% và giá trị MIS(4) là 6% Do vậy, nếu không bỏ qua tập phần tử {1, 2} thì lúc này tính chất “downward closed” sẽ không còn được giữ Để giải quyết vấn đề trên, trong hướng tiếp cận tìm tất cả các tập phổ biến sử dụng đa ngưỡng hỗ trợ sẽ tiến hành công đoạn sau: Tất cả các phần tử trong tập phần tử sẽ được sắp xếp theo thứ tự tăng dần của giá trị MIS tương ứng của mỗi phần tử (tính chất “sorted closure property” [9])

Chẳng hạn, đối với tập dữ liệu trong ví dụ 4.1 ở trên các phần tử sẽ được sắp xếp lại tăng dần theo giá trị MIS tương ứng của mỗi phần tử là: 3, 4, 1, 2

Ký hiệu L k là tập các k - tập phần tử phổ biến Mỗi tập phần tử c có dạng với MIS(c[1]) ≤ MIS(c[2]) ≤ … ≤MIS(c[k]) Giải thuật MSApriori phát hiện luật kết hợp với đa ngưỡng hỗ trợ tối thiểu cho từng phần tử dữ liệu như sau:

L 1 = { | f ∈ F, f.count ≥ MIS(f)}; for (k = 2; L k-1 ≠ ∅; k++) do if k = 2 then C 2 = level2-candidate-gen(F) // sinh ra tập ứng viên C 2 else C k = candidate-gen(L k-1 ) //sinh ra tập ứng viên C k với k > 2 end for mỗi giao dịch t ∈ T do C t = subset(C k , t); for mỗi ứng viên c ∈ C t do c.count++; end L k = {c ∈ C k | c.count ≥ MIS(c[1])} end Answer = ∪ k L k ;

Trong giải thuật trên, có những điểm khác biệt so với giải thuật Apriori trong [2] đó là: tập ứng cử viên C 2 được sinh ra từ tập F 1 (F 1 : tập các phần tử có độ hỗ trợ ≥ MS(1) với MS(1) = min(MS(i))

22 Ví dụ 4.2: Với dữ liệu trong ví dụ 4.1, giả sử tập dữ liệu có 100 giao dịch Độ hỗ trợ của các phần tử trong cơ sở dữ liệu như sau: {3}.count = 6, {4}.count = 3, {1}.count = 9 and {2}.count = 25 Khi đó sẽ thu được :

Phần tử 4 không nằm trong L 1 vì 4.count/n < MIS(3) (=5%) và {1} không nằm trong F 1 vì 1.count / n < MIS(1) (= 10%)

Tập ứng cử viên C 2 được sinh ra theo giải thuật sau: for mỗi phần tử f trong tập F do if f.count ≥ MIS(f) then for mỗi phần tử h trong F theo sau phần tử f do if h.count ≥ MIS(f) then insert vào C 2 Ví dụ 4.3: với giá trị MIS của các phần tử trong ví dụ 4.2 như sau:

Kết quả ở bước sinh ra tập ứng viên C 2 như sau:

{1,2} không là tập ứng viên vì độ hỗ trợ của phần tử 1 có giá trị là 9, nhỏ hơn MIS(1) (%) Do đó, {1,2} không thể là tập phổ biến Đối với việc sinh tập ứng viên từ tập L k-1 (k>2) gồm có hai giai đoạn như sau:

- Giai đoạn nối: insert into C k select p.item 1 , p.item 2 , … , p.item k-1 , q.item k-1 from L k-1 p, L k–1 q where p.item1 = q.item 1 , …, p.itemk-2 = q.item k-2 , p.item k-1 < q.item k-1

23 - Giai đoạn cắt: for mỗi tập phần tử c ∈ C k do for mỗi (k-1)-subset s của c do if (c[1] ∈ s) hoặc (MIS(c[2]) = MIS(c[1])) then if (s ∉ L k-1 ) then loại bỏ c từ C k Trong giai đoạn cắt, với mỗi (k-1)-subset s trong c, nếu s không thuộc tập Lk-1, khi đó c có thể bị loại bỏ Tuy nhiên đối với trường hợp s không chứa phần tử c[1] (c[1] là phần tử có giá trị MIS nhỏ nhất), trong trường hợp này dù s không thuộc L k-1 thì cũng không thể loại bỏ c vì ở đây không chắc chắn rằng s sẽ không thỏa mãn giá trị MIS(c[1]) mặt dù chúng ta biết rằng s không thỏa mãn giá trị MIS(c[2])

Chẳng hạn, xét ví dụ sau:

Với tập L 3 thu được là {, , , ,

, , } Các phần tử trong tập các phần tử đã được sắp xếp theo thứ tự Sau bước nối, thu được tập ứng viên C 4 như sau:

{, , } Ở giai đoạn cắt sẽ loại bỏ đi tập phần tử bởi vì tập không thuộc L 3 Tập ứng viên thu được C 4 sau giai đoạn cắt sẽ là: C 4 = {, } Tập phần tử không bị loại bỏ mặc dù không thuộc L3 tuy nhiên ở đây giá trị ngưỡng hỗ trợ tối thiểu của là MIS(3) lớn hơn giá trị

MIS(1) Mặc dù tập có thể không thỏa MIS(3) (c.count > MIS(3)) nhưng cũng không thể chắc chắn rằng nó cũng không thỏa giá trị MIS(1) Tuy nhiên nếu trong trường hợp MIS(3) = MIS(1) thì khi đó tập phần tử cũng sẽ được loại bỏ

Ví dụ 4.4: Xét cơ sở dữ liệu với 7 giao dịch sau:

Beef, Bread Bread, Clothes Bread, Clothes, Milk Cheese, Boots

Beef, Bread, Cheese, Shoes Beef, Bread, Cheese, Milk

Bread, Milk, Clothes Đặt ngưỡng hỗ trợ cho MIS(Milk) = 50%, MIS(Bread) = 70% và 25% cho các mặt hàng còn lại Tập phần tử phổ biến thu được theo hướng tiếp cận đa ngưỡng hỗ trợ đã được trình bày ở trên như sau:

F 2 = {{Beef, Cheese}, {Beef, Bread}, {Cheese, Bread}

F 3 = {{Beef, Cheese, Bread}, {Clothes, Milk, Bread}}

Giá trị MIS của mỗi phần tử trong cơ sở dữ liệu được xác định theo công thức sau:

Song song hóa trong giai đoạn tìm tập phổ biến

Dựa trên nền tảng song song đa nhân đã được trình bày trong chương 2, chúng tôi đề xuất giải pháp song song hóa trong quá trình tìm các tập phổ biến ở giai đoạn tìm độ hỗ trợ cho các tập ứng viên như sau:

{ for (mỗi giao dịch t T do if c được chứa trong t then c.count++; end });

Trong quá trình tìm độ hỗ trợ cho tập các ứng viên đối với các tập dữ liệu có số lượng giao dịch lớn khi đó số lượng tập ứng viên sinh ra trong quá trình thực thi giải thuật sẽ rất lớn Trong giải thuật tuần tự, việc tìm độ hỗ trợ cho mỗi tập ứng viên sẽ được thực hiện tuần tự: sau khi tìm xong độ hỗ trợ cho tập ứng viên này sẽ tìm độ hỗ trợ cho tập ứng viên khác Trong quá trình song song hóa, việc tìm độ hỗ trợ của các tập ứng viên sẽ được thực hiện song song khi đó sẽ tận dụng tối đa khả năng xử lý của các bộ vi xử lý đa nhân nhằm tăng hiệu suất tính toán, giảm thời gian thực thi của giải thuật

Giai đoạn sinh các luật kết hợp

4.3.1 Giải thuật sinh luật kết hợp Để sinh các luật kết hợp:

 Với mỗi tập phổ biến X ∈ F, ta xác định các tập mục không rỗng là con của X

 Với mỗi tập mục con S không rỗng của X ta sẽ thu được một luật kết hợp là S→(X\S) Tính toán độ tin cậy của luật này nếu độ tin cậy thỏa mãn ngưỡng minconf thì luật đó là luật cần tìm

Từ tập phổ biến l, giai đoạn sinh luật sẽ sinh ra luật kết hợp dạng a  (l – a), trong đó a là một tập con khác rỗng của l Trong quá trình sinh luật, chúng ta tiến hành duyệt các tập con của l có kích thước lớn trước tiên và sẽ tiếp tục xét các tập con nhỏ hơn khi luật vừa sinh thỏa mãn độ tin cậy tối thiểu Ví dụ, l là tập phổ biến ABCD, nếu luật ABC => D không thỏa mãn độ tin cậy tối thiểu thì luật AB  CD cũng không thỏa mãn do độ hỗ trợ của AB luôn lớn hơn hoặc bằng ABC Do đó chúng ta không cần xét các luật mà có vế trái là tập con của ABC vì chúng không thỏa mãn độ tin cậy tối thiểu

Thuật toán trong [2] sinh các luật thể hiện ý tưởng trên như sau:

//Giải thuật sinh luật forall large itemsets l k , k ≥ 2 do call genrules(l k , l k );

//Sinh tất cả các luật (l k –), với a m

Procedure genrules (l k : frequent k-itemset, a m : frequent m-itemset) A = {(m-1)-itemsets a m-1 | a m-1 a m }; forall a m-1  A do begin conf = support(l k )/support(a m-1 ); if (conf ≥ minconf) then begin output the rule a m-1(l k – a m-1 ) if (m-1 > 1 ) then call genrules(l k , a m-1 ); end End

26 Xuất phát từ ý tưởng một luật không thỏa mãn độ tin cậy với tập cha thì cũng không thỏa mãn với tập con của nó và nếu xảy ra luật với tập con thì cũng xảy ra luật với tập cha Ví dụ nếu luật AB  CD có đủ độ tin cậy thì luật ABC  D cũng đủ độ tin cậy, giải thuật cải tiến sinh các luật được trình bày trong [2] như sau:

1) forall large k-itemsets l k , k ≥ 2 do begin 2) H 1 = {consequents of rules derived form l k with one item in the consequent };

Procedure ap-genrules(l k : large k-itemset, H m : set of m-item consequents) if (k > m + 1) then begin

H m+1 = apriori-gen(H m ); forall h m+1  H m+1 do begin conf = support(l k )/support(l k – h m+1 ); if (conf ≥ minconf) then output the rule (l k – h m+1 )  h m+1 with confidence = conf and support = support(l k ) else delete h m+1 from H m+1 ; end call ap-genrules(l k , H m+1 ); end

Trong luận văn này sẽ sử dụng hướng tiếp cận sinh các luật được mô tả ở trên để tìm các luật kết hợp từ các tập phổ biến đã tìm được

4.3.2 Tính toán độ tin cậy của luật khi sử dụng đa ngưỡng hỗ trợ tối thiểu

Trong giai đoạn sinh các luật kết hợp từ các tập phổ biến, trong trường hợp sử dụng một ngưỡng hỗ trợ, nếu f là tập phổ biến và f sub là một tập con của f khi đó f sub cũng là một tập phổ biến Tất cả độ hỗ trợ đã được tính toán và ghi nhận khi sử dụng hướng tiếp cận của giải thuật Apriori để tìm các tập phổ biến do đó độ tin cậy của luật được tính toán một cách dễ dàng mà không cần phải đọc lại cơ sở dữ liệu một lần nữa

Tuy nhiên, trong trường hợp sử dụng đa ngưỡng hỗ trợ tối thiểu, trong trường hợp chỉ ghi nhận độ hỗ trợ các tập phần tử phổ biến là chưa đủ

27 Ví dụ 4.5: Xét các phần tử Bread, Clothes, Shoes với ngưỡng hỗ trợ tối thiểu tương ứng của các phần tử như sau:

Phần tử Bread Clothes Shoes

Nếu độ hỗ trợ trong tập dữ liệu của tập phần tử {Clothes, Breads} là 0.15% và {Shoes, Clothes, Bread} là 0.12%, khi đó tập phần tử {Clothes, Bread} không là tập phổ biến vì độ hỗ trợ của tập phần tử này nhỏ hơn giá trị MIS(Clothes) Tuy nhiên, {Shoes, Clothes, Bread} là tập phổ biến vì độ hỗ trợ của tập phần tử này lớn hơn ngưỡng hỗ trợ tối thiểu của nó:

MIS({Shoes, Clothes, Bread}) = 0.1% < sup({Shoes, Clothes, Bread}) = 0.12%

Lúc này, chúng ta sẽ gặp phải vấn đề khi cần tính toán độ tin cậy cho luật:

Clothes, Bread → Shoes vì tập phần tử {Clothes, Bread} không phải là tập phổ biến do đó độ hỗ trợ của phần tử này không được ghi nhận lại Do vậy, trong trường hợp này cần phải duyệt lại tập dữ liệu và tìm độ hỗ trợ cho tập phần tử này

THỰC NGHIỆM

Thực nghiệm 1: Tìm các tập phổ biến

5.1.1 Tập dữ liệu MUSHROOMS 8124 giao dịch Đối với tập dữ liệu MUSHROOMS, thực nghiệm tiến hành đặt ngưỡng hỗ trợ tối thiểu được cho phép (LS) ở các mức: 0.2, 0.15 và 0.1

Kết quả chạy thực nghiệm cho tập dữ liệu MUSHROOMS trong giao đoạn tìm các tập phổ biến với hướng tiếp cận đa ngưỡng hỗ trợ song song hóa như sau:

Bảng 5.2 Số lượng tập phổ biến và thời gian thực thi với tập dữ liệu

LS Beta Số tập phổ biến Thời gian chạy

30 Các biểu đồ sau so sánh thời gian chạy trong giai đoạn tìm các tập phổ biến với các hướng tiếp cận: đơn ngưỡng hỗ trợ (Apriori), đa ngưỡng hỗ trợ tuần tự và đa ngưỡng hỗ trợ song song:

Hình 5.1 So sánh thời gian thực thi giải thuật trên tập dữ liệu MUSHROOMS với

Hình 5.2 So sánh thời gian thực thi giải thuật trên tập dữ liệu MUSHROOMS với

Beta Đơn ngưỡng Đa ngưỡng Đa ngưỡng song song

Beta Đơn ngưỡng Đa ngưỡng Đa ngưỡng song song

Hình 5.3 So sánh thời gian thực thi giải thuật trên tập dữ liệu MUSHROOMS với

Nhận xét: Thông qua thực nghiệm 1 với tập dữ liệu MUSHROOMS chúng tôi thấy rằng thời gian thực thi giải thuật đa ngưỡng song song là tốt hơn so với giải thuật đa ngưỡng tuần tự, thời gian thực thi của giải thuật đa ngưỡng song song với các giá trị LS đượt thiết lập 0.2, 0.15, 0.1 là 33.37%, 40.69% và 54.46% so với thời gian thực thi của giải thuật đa ngưỡng hỗ trợ tuần tự , đối với tập dữ liệu MUSHROOMS trong trường hợp đặt ngưỡng hỗ trợ tối thiểu cho phép LS = 0.2 với tham số Beta nằm trong khoảng giá trị [0.1, 0.5], thời gian thực thi tìm các tập phổ biến của giải thuật đa ngưỡng tuần tự là lớn hơn so với thời gian thực thi của giải thuật sử dụng đơn ngưỡng hỗ trợ

5.1.2 Tập dữ liệu C20D10K 10000 giao dịch Đối với tập dữ liệu C20D10K 10000 giao dịch, thực nghiệm tiến hành đặt ngưỡng hỗ trợ tối thiểu được cho phép (LS) ở các mức: 0.15, 0.1 và 0.05

Kết quả chạy thực nghiệm cho tập dữ liệu C20D10K trong giao đoạn tìm các tập phổ biến với hướng tiếp cận đa ngưỡng hỗ trợ tối thiểu song song hóa như sau:

Beta Đơn ngưỡng Đa ngưỡng Đa ngưỡng song song

32 LS Beta Số tập phổ biến Thời gian chạy

Bảng 5.3 Số lượng tập phổ biến và thời gian thực thi với tập dữ liệu C20D10K

33 Các biểu đồ sau so sánh thời gian chạy trong giai đoạn tìm các tập phổ biến đối với tập dữ liệu C20D10K với các hướng tiếp cận: đơn ngưỡng hỗ trợ (Apriori), đa ngưỡng hỗ trợ tuần tự và đa ngưỡng hỗ trợ song song:

Hình 5.4 So sánh thời gian thực thi giải thuật trên tập dữ liệu C20D10K với LS =

Beta Đơn ngưỡng Đa ngưỡng Đa ngưỡng song song

Hình 5.5 So sánh thời gian thực thi giải thuật trên tập dữ liệu C20D10K với LS =

Hình 5.6 So sánh thời gian thực thi giải thuật trên tập dữ liệu C20D10K với LS =

Beta Đơn ngưỡng Đa ngưỡng Đa ngưỡng song song

Beta Đơn ngưỡng Đa ngưỡng Đa ngưỡng song song

35 Nhận xét: Đối với tập dữ liệu C20D10K, thời gian chạy của giải thuật đa ngưỡng hỗ trợ tốt hơn so với giải thuật đơn ngưỡng hỗ trợ ngoại trừ trường hợp khi thiết lập tham số Beta = 0.1 trong hai trường hợp ngưỡng hỗ trợ tối thiểu được thiết lập là LS 0.1 và 0.15 thời gian chạy của hai giải thuật đơn ngưỡng và đa ngưỡng hỗ trợ là tương đương nhau Thời gian thực thi của giải thuật đa ngưỡng song song với các thiết lập giá trị LS bằng 0.01, 0.006 và 0.001 lần lượt là 24%, 24.49%, 26.84% so với thời gian thực hiện của giải thuật đa ngưỡng tuần tự

5.1.3 Tập dữ liệu BMS-POS 515597 giao dịch Đối với tập dữ liệu BMS-POS 515597 giao dịch, thực nghiệm tiến hành đặt ngưỡng hỗ trợ tối thiểu được cho phép (LS) ở các mức: 0.01, 0.006, 0.001

Kết quả chạy thực nghiệm cho tập dữ liệu BMS-POS trong giao đoạn tìm các tập phổ biến với hướng tiếp cận đa ngưỡng hỗ trợ tối thiểu song song hóa như sau:

36 LS Beta Số tập phổ biến Thời gian chạy

Bảng 5.4 Số lượng tập phổ biến và thời gian thực thi với tập dữ liệu BMS-POS

37 Các biểu đồ sau so sánh thời gian chạy trong giai đoạn tìm các tập phổ biến đối với tập dữ liệu BMS-POS với các hướng tiếp cận: đơn ngưỡng hỗ trợ (Apriori), đa ngưỡng hỗ trợ, đa ngưỡng hỗ trợ song song:

Hình 5.7 So sánh thời gian thực thi giải thuật trên tập dữ liệu BMS-POS với LS =

Hình 5.8 So sánh thời gian thực thi giải thuật trên tập dữ liệu BMS-POS với LS =

Beta Đơn ngưỡng Đa ngưỡng Đa ngưỡng song song

Beta Đơn ngưỡng Đa ngưỡng Đa ngưỡng song song

Hình 5.9 So sánh thời gian thực thi giải thuật trên tập dữ liệu BMS-POS với LS =

Nhận xét: Đối với tập dữ liệu BMS-POS khi ngưỡng hỗ trợ tối thiểu được thiết lập với các giá trị LS = 0.01 và 0.006, giải thuật đa ngưỡng tuần tự có thời gian thực thi lớn hơn so với giải thuật đơn ngưỡng hỗ trợ với các giá trị tham số Beta được thiết lập trong thí nghiệm Thời gian thực thi của giải thuật đa ngưỡng song song với thiết lập giá trị LS tương ứng 0.01, 0.006 và 0.001 lần lượt là 24%, 24.49% và 26.84% so với thời gian thực hiện của giải thuật đa ngưỡng tuần tự.

Thực nghiệm 2: Giai đoạn sinh các luật

Trong giai đoạn tìm các luật kết hợp từ các tập phổ biến đã tìm được ở bước trên, chúng tôi thiết lập độ tin cậy trong quá trình sinh các luật đối với tập dữ liệu C20D10K, BMS-POS là 85% và tập dữ liệu MUSHROOMS là 90%

Kết quả thực nghiệm ghi nhận số lượng luật được phát hiện và thời gian chạy trong giai đoạn sinh luật kết hợp của các tập dữ liệu thử nghiệm được trình bày trong các bảng sau:

Beta Đơn ngưỡng Đa ngưỡng Đa ngưỡng song song

39 Tập dữ liệu MUSHROOMS (conf = 90%):

Thời gian chạy (mili giây)

Thời gian chạy (mili giây)

Thời gian chạy (mili giây)

Bảng 5.5 Kết quả thực nghiệm với tập dữ liệu MUSHROOMS

Thời gian chạy (mili giây)

Thời gian chạy (mili giây)

Thời gian chạy (mili giây)

Bảng 5.6 Kết quả thực nghiệm với tập dữ liệu C20D10K

41 Tập dữ liệu BMS-POS (conf = 85%):

Thời gian chạy (mili giây)

Thời gian chạy (mili giây)

Thời gian chạy (mili giây)

Bảng 5.7 Kết quả thực nghiệm với tập dữ liệu BMS-POS

Ngày đăng: 09/09/2024, 03:49

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Agrawal R., Imielinski T., and Swami A. (1993), “Mining Association Rules between Sets of Items in Large Databases”, Proc. of ACM SIGMOD Conf.Management of Data, pp. 207-216 Sách, tạp chí
Tiêu đề: Mining Association Rules between Sets of Items in Large Databases
Tác giả: Agrawal R., Imielinski T., and Swami A
Năm: 1993
[2] Agrawal, R. and Srikant, R. (1994), “Fast algorithms for mining association rules” VLDB-94 Sách, tạp chí
Tiêu đề: Fast algorithms for mining association rules
Tác giả: Agrawal, R. and Srikant, R
Năm: 1994
[3] A. Gyenesei (2000), “A fuzzy approach for mining quantitative association rules”. Technical Report 336, Turku Centre for Computer Science Sách, tạp chí
Tiêu đề: A fuzzy approach for mining quantitative association rules
Tác giả: A. Gyenesei
Năm: 2000
[4] C. Kuok, A. Fu, and M. Wong (1998), “Mining fuzzy association rules in databases”. ACM SIGMOD Record, Volume 27 Issue 1, pp. 41 - 46 Sách, tạp chí
Tiêu đề: Mining fuzzy association rules in databases
Tác giả: C. Kuok, A. Fu, and M. Wong
Năm: 1998
[5] Han J., Pei J., Yin J., and Mao R. (2004), “Mining Frequent Patterns without Candidate Generation: A Frequent-Pattern Tree Approach”, Data Mining and Knowledge Discovery, Vol. 8, pp. 53-87 Sách, tạp chí
Tiêu đề: Mining Frequent Patterns without Candidate Generation: A Frequent-Pattern Tree Approach
Tác giả: Han J., Pei J., Yin J., and Mao R
Năm: 2004
[6] Hu, Y. H., &amp; Chen, Y. L. (2006), “Mining association rules with multiple minimum supports: A new mining algorithm and a support tuning mechanism”.Decision Support Systems, 42, 1–24 Sách, tạp chí
Tiêu đề: Mining association rules with multiple minimum supports: A new mining algorithm and a support tuning mechanism
Tác giả: Hu, Y. H., &amp; Chen, Y. L
Năm: 2006
[7] J. Han, Y. Fu (1995), "Discovery of Multiple-Level Association Rules from Large Databases", Proc. 21th Int'l Conf. Very Large Data Bases, pp. 420-431 Sách, tạp chí
Tiêu đề: Discovery of Multiple-Level Association Rules from Large Databases
Tác giả: J. Han, Y. Fu
Năm: 1995
[8] Kiran R. U., and Reddy P. K. (2009), “An Improved Multiple Minimum Support Based Approach to Mine Rare Association Rules”, Proc. of CIDM 2009, pp. 340-347 Sách, tạp chí
Tiêu đề: An Improved Multiple Minimum Support Based Approach to Mine Rare Association Rules
Tác giả: Kiran R. U., and Reddy P. K
Năm: 2009
[9] Liu B., Hsu W., and Ma Y. (1999), “Mining Association Rules with Multiple Minimum Supports”, Proc. of KDD 1999, pp. 337-341 Sách, tạp chí
Tiêu đề: Mining Association Rules with Multiple Minimum Supports
Tác giả: Liu B., Hsu W., and Ma Y
Năm: 1999
[10] Mannila, H. (1998), "Database methods for data mining” KDD-98 tutorial Sách, tạp chí
Tiêu đề: Database methods for data mining
Tác giả: Mannila, H
Năm: 1998
[11] Ng. R. T. Lakshmanan, L. Han, J. (1998) “Exploratory mining and pruning optimizations of constrained association rules.” SIGMOD-98 Sách, tạp chí
Tiêu đề: Exploratory mining and pruning optimizations of constrained association rules
[12] Park, J. S. Chen, M. S. and Yu, P. S, (1995) “An effective hash based algorithm for mining association rules.” SIGMOD-95, pp. 175-186 Sách, tạp chí
Tiêu đề: An effective hash based algorithm for mining association rules
[13] R.J. Miller, Y. Yang (1997), "Association Rules Over Interval Data", Proc. 1997 ACM-SIGMOD Int'l Conf. Management of Data, pp. 452-461 Sách, tạp chí
Tiêu đề: Association Rules Over Interval Data
Tác giả: R.J. Miller, Y. Yang
Năm: 1997
[14] R. Agrawal, J. Shafer (1996), "Parallel Mining of Association Rules", IEEE Trans. Knowledge and Data Eng., vol. 8, no. 6, pp. 962-969 Sách, tạp chí
Tiêu đề: Parallel Mining of Association Rules
Tác giả: R. Agrawal, J. Shafer
Năm: 1996
[15] R. Srikant, R. Agrawal (1995), "Mining Generalized Association Rules", Proc. 21th Int'l Conf. Very Large Data Bases, pp. 407-419 Sách, tạp chí
Tiêu đề: Mining Generalized Association Rules
Tác giả: R. Srikant, R. Agrawal
Năm: 1995
[16] Rastogi, R. and Shim, K. (1998), “Mining optimized association rules with categorical and numeric attributes.” ICDE –98 Sách, tạp chí
Tiêu đề: Mining optimized association rules with categorical and numeric attributes
Tác giả: Rastogi, R. and Shim, K
Năm: 1998
[17] Szathmary L., Valtchev P., and Napoli A. (2010), “Generating Rare Association Rules Using Minimal Rare Itemsets Family”, International Journal of Software and Informatics, Vol. 4 (3), pp. 219-238 Sách, tạp chí
Tiêu đề: Generating Rare Association Rules Using Minimal Rare Itemsets Family
Tác giả: Szathmary L., Valtchev P., and Napoli A
Năm: 2010
[18] Yun H., Ha D., Hwang B., Ryu K. H. (2003), “Mining Association Rules on Significant Rare Data Using Relative Support”, The Journal of Systems and Software 67, pp. 181-191 Sách, tạp chí
Tiêu đề: Mining Association Rules on Significant Rare Data Using Relative Support
Tác giả: Yun H., Ha D., Hwang B., Ryu K. H
Năm: 2003
[20] Frequent Itemset Mining Dataset Repository, http://fimi.ua.ac.be/data/ Link

HÌNH ẢNH LIÊN QUAN

Bảng 2.1 Ví dụ cơ sở dữ liệu giao dịch - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Bảng 2.1 Ví dụ cơ sở dữ liệu giao dịch (Trang 16)
Hình 2.1 Minh họa giải thuật tuần tự và song song với sự hỗ trợ của thư viện - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Hình 2.1 Minh họa giải thuật tuần tự và song song với sự hỗ trợ của thư viện (Trang 21)
Hình 3.1 Sinh các tập ứng viên và tập phổ biến với ngưỡng hỗ trợ tối thiểu bằng - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Hình 3.1 Sinh các tập ứng viên và tập phổ biến với ngưỡng hỗ trợ tối thiểu bằng (Trang 27)
Hình 3.2 Ví dụ cây MIS Tree [6] - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Hình 3.2 Ví dụ cây MIS Tree [6] (Trang 30)
Bảng 5.2 Số lượng tập phổ biến và thời gian thực thi với tập dữ liệu - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Bảng 5.2 Số lượng tập phổ biến và thời gian thực thi với tập dữ liệu (Trang 40)
Hình 5.2 So sánh thời gian thực thi giải thuật trên tập dữ liệu MUSHROOMS với - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Hình 5.2 So sánh thời gian thực thi giải thuật trên tập dữ liệu MUSHROOMS với (Trang 41)
Hình 5.1 So sánh thời gian thực thi giải thuật trên tập dữ liệu MUSHROOMS với - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Hình 5.1 So sánh thời gian thực thi giải thuật trên tập dữ liệu MUSHROOMS với (Trang 41)
Hình 5.3 So sánh thời gian thực thi giải thuật trên tập dữ liệu MUSHROOMS với - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Hình 5.3 So sánh thời gian thực thi giải thuật trên tập dữ liệu MUSHROOMS với (Trang 42)
Hình 5.4 So sánh thời gian thực thi giải thuật trên tập dữ liệu C20D10K với LS = - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Hình 5.4 So sánh thời gian thực thi giải thuật trên tập dữ liệu C20D10K với LS = (Trang 44)
Hình 5.5 So sánh thời gian thực thi giải thuật trên tập dữ liệu C20D10K với LS = - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Hình 5.5 So sánh thời gian thực thi giải thuật trên tập dữ liệu C20D10K với LS = (Trang 45)
Hình 5.6 So sánh thời gian thực thi giải thuật trên tập dữ liệu C20D10K với LS = - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Hình 5.6 So sánh thời gian thực thi giải thuật trên tập dữ liệu C20D10K với LS = (Trang 45)
Hình 5.8 So sánh thời gian thực thi giải thuật trên tập dữ liệu BMS-POS với LS = - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Hình 5.8 So sánh thời gian thực thi giải thuật trên tập dữ liệu BMS-POS với LS = (Trang 48)
Hình 5.7 So sánh thời gian thực thi giải thuật trên tập dữ liệu BMS-POS với LS = - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Hình 5.7 So sánh thời gian thực thi giải thuật trên tập dữ liệu BMS-POS với LS = (Trang 48)
Hình 5.9 So sánh thời gian thực thi giải thuật trên tập dữ liệu BMS-POS với LS = - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Hình 5.9 So sánh thời gian thực thi giải thuật trên tập dữ liệu BMS-POS với LS = (Trang 49)
Bảng 5.5 Kết quả thực nghiệm với tập dữ liệu MUSHROOMS - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Bảng 5.5 Kết quả thực nghiệm với tập dữ liệu MUSHROOMS (Trang 50)
Bảng 5.7 Kết quả thực nghiệm với tập dữ liệu BMS-POS - Luận văn thạc sĩ Khoa học máy tính: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
Bảng 5.7 Kết quả thực nghiệm với tập dữ liệu BMS-POS (Trang 52)

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

TÀI LIỆU LIÊN QUAN