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

Khai thác tập có thể xóa được

66 35 0

Đ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 66
Dung lượng 849,08 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thực tế đã có nhiều nghiên cứu và thuật toán đã được đề xuất để khai thác tập phổ biến từ cơ sở dữ liệu, nhằm giải quyết các bài toán về khai thác tập đóng hay khai thác tập có thể xoá,

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM

Trang 3

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM

Cán bộ hướng dẫn khoa học : TS VÕ ĐÌNH BẢY

(Ghi rõ h ọ, tên, học hàm, học vị và chữ ký)

Luận văn Thạc sĩ được bảo vệ tại Trường Đại học Công nghệ TP HCM ngày 17 tháng 10 năm 2015

Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm:

(Ghi rõ h ọ, tên, học hàm, học vị của Hội đồng chấm bảo vệ Luận văn Thạc sĩ)

1 GS TSKH Hoàng Văn Kiếm Chủ tịch

Xác nhận của Chủ tịch Hội đồng đánh giá Luận sau khi Luận văn đã được sửa chữa (nếu có)

Ch ủ tịch Hội đồng đánh giá LV

Trang 4

TP HCM, ngày 01 tháng 09 năm 2015

NHI ỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: Nguyễn Thị Mạnh Giới tính: Nữ

Ngày, tháng, năm sinh: 1980 Nơi sinh: Kiên Giang

Chuyên ngành: Công nghệ thông tin MSHV: 1341860045

I- Tên đề tài:

Khai thác tập có thể xóa đóng

II- Nhi ệm vụ và nội dung:

- Tập trung tìm hiểu, đánh giá và đề xuất hướng tiếp cận hiệu quả thuật toán khai

thác tập có thể xoá đóng

- Khảo sát phương pháp khai thác tập phổ biến đóng và tập có thể xoá

- Định hướng đề xuất hướng tiếp cận mới khai thác tập phổ biến có thể xoá đóng

III- Ngày giao nhi ệm vụ: Ngày 03 tháng 04 năm 2015

IV- Ngày hoàn thành nhi ệm vụ: ngày 17 tháng 9 năm 2015

V- Cán b ộ hướng dẫn: TS.VÕ ĐÌNH BẢY

CÁN B Ộ HƯỚNG DẪN KHOA QU ẢN LÝ CHUYÊN NGÀNH

PHÒNG QLKH – ĐTSĐH Độc lập – Tự do – Hạnh phúc

Trang 5

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết

quả nêu trong Luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác

Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này đã được cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc

H ọc viên thực hiện Luận văn

(Ký và ghi rõ h ọ tên)

Nguy ễn Thị Mạnh

Trang 6

Đào tạo sau Đại học trường Đại Học Công Nghệ Thành Phố Hồ Chí Minh đã tạo

mọi điều kiện thuận lợi giúp đỡ tôi trong quá trình học tập và hoàn thành luận văn này

Đặc biệt tôi xin gửi lời cảm ơn sâu sắc tới thầy TS.Võ Đình Bảy – thầy

hướng dẫn trong suốt quá trình làm đề tài Những lời dạy, phương pháp hướng dẫn

và đặc biệt là sự tận tình hướng dẫn của thầy đã giúp cho tôi đạt những kiến thức rất

bổ ích trong quá trình học tập và thực hiện luận văn

Anh Võ Minh Quân đã nhiệt tình giúp đở, hướng dẫn tôi trong quá trình thực

hiện luận văn

Toàn thể quý thầy cô đã nhiệt tình giảng dạy và truyền đạt những kiến thức

bổ ích cho tôi trong suốt khóa học vừa qua

H ọc viên thực hiện Luận văn

(Ký và ghi rõ h ọ tên)

Nguy ễn Thị Mạnh

Trang 7

TÓM TẮT

Khai thác dữ liệu đã và đang được ứng dụng rộng rãi trong rất nhiều lĩnh vực

và hiện nay đã có rất nhiều công cụ thương mại và phi thương mại triển khai các nhiệm vụ của khai thác dữ liệu Khai thác dữ liệu (data mining) là quá trình khám

phá các tri thức mới và các tri thức có ích ở dạng tiềm năng trong nguồn dữ liệu đã

có Khai thác các mô hình phổ biến hoặc tập phổ biến là một vấn đề cơ bản và cần thiết trong nhiều ứng dụng khai thác dữ liệu Các ứng dụng này bao gồm việc khám thác luật kết hợp, luật vững chắc, tương quan, các luật tuần tự, tập, mô hình đa chiều, và nhiều nhiệm vụ khám thác quan trọng khác Khai thác luật kết hợp là một

mô hình quan trọng trong khai thác dữ liệu Khai thác tập có thể xóa và khai thác

tập phổ biến đóng là một sự biến thiên thú vị của khai thác tập phổ biến, trong đó

nó cho phép các nhà quản lý xem xét cẩn thận các kế hoạch sản xuất của họ để đảm

Trang 8

MỤC LỤC

MỞ ĐẦU 1

CHƯƠNG 1 TỔNG QUAN 3

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 10

2.1 Tập phổ biến 10

2.1.1 Định nghĩa 10

2.1.2 Ví dụ 10

2.2 Khai thác tập có thể xóa 11

2.2.1 Định nghĩa 11

2.2.2 Cấu trúc dpidset 12

2.2.3 Thuật toán MEI 16

2.2.3.1 Hiệu quả của thuật toán trừ hai dpidset 16

2.2.3.2 Thuật toán trừ hai dpidset 17

2.2.3.3 Phát sinh lớp tương đương 19

2.2.3.4 Giải thuật MEI 20

2.3 Khai thác tập phổ biến đóng 25

2.3.1 Định nghĩa toán tử đóng 25

2.3.2 Định nghĩa tập phổ biến đóng 25

2.3.3 Cây tìm kiếm IT và các lớp tương đương 25

2.3.4 Thuật toán Charm 29

2.3.5 Ví vụ minh họa 39

2.4 Khai thác tập có thể xóa đóng 40

2.4.1 Định nghĩa 40

2.4.2 Thuật toán MECI 40

2.4.3 Ví dụ minh họa 42

CHƯƠNG 3 THỰC NGHIỆM VÀ ĐÁNH GIÁ 43

3.1 Môi trường và dữ liệu thực nghiệm 43

3.2 Kết quả và thời gian thực hiện 43

CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 49

Trang 9

4.1 Kết quả đạt được 49

4.2 Hạn chế 49

4.3 Hướng phát triển 50

TÀI LIỆU THAM KHẢO 51

Trang 10

ECPS: Erasable closed patterns

MEI: Mining erasable itemset

MECI: Mining erasable closed itemset

FCIs: Frequent closed itemsets

DFS: Depth-first-search

Trang 11

DANH MỤC CÁC BẢNG

Bảng 1.1 Số lượng EIsthu được bằng VME, MERIT, MERIT+, MEI

Bảng 2.1 CSDL ví dụ

Bảng 2.2 Chỉ số lợi nhuận G

Bảng 3.1 Đặc tính của các bộ dữ liệu được sử dụng trong thực nghiệm

Bảng 3.2 Kết quả thực nghiệm trên bộ dữ liệu Chess

Bảng 3.3 Kết quả thực nghiệm trên bộ dữ liệu Connect

Bảng 3.4 Kết quả thực nghiệm trên bộ dữ liệu Mushroom

Bảng 3.5 Số lượng EIs và ECIs trên CSDL thực nghiệm

Trang 12

DANH MỤC CÁC HÌNH ẢNH

Hình 2.1 Giải thuật trừ 2 dPidset

Hình 2.2 Giải thuật phát sinh lớp tương đương

Hình 2.3 Tập 2-itemset có thể xóa của node {e}

Hình 2.4 Tập 3-itemset có thể xóa của node {ed}

Hình 2.5 Tập tất cả items có thể xóa của node {e}

Hình 2.6 Cây IT_tree bao gồm tất cả các EIs với ngưỡng 16% Hình 2.7 Thuật toán MEI

Hình 2.8.Cây IT: cây tìm kiếm itemset-tidset

Hình 2.9.Tìm các mẫu phổ biến theo chiều sâu

Hình 2.10 Tính chất cơ bản của itemset và tidset

Hình 2.11 Thuật toán Charm

Hình 2.12 Kiểm tra sự gộp nhanh

Hình 2.13 Diffset: Tiền tố P và các lớp thành viên X và Y

Hình 2.14 Cây tìm kiếm FCIs dùng diffset

Hình 2.15 Thuật toán MECI

Hình 2.16 Cây IT-tree tìm tập phổ biến đóng thỏa ngưỡng T× ξHình 3.1 Thời gian khai thác của MECI trên tập dữ liệu Chess Hình 3.2 Thời gian khai thác của MECI trên tập dữ liệu Connect Hình 3.3 Thời gian khai thác của MECI trên tập dữ liệu Mushroom

Hình 3.4 Sử dụng bộ nhớ của MECI trên tập dữ liệu Chess

Hình 3.5 Sử dụng bộ nhớ của MECI trên tập dữ liệu Connect Hình 3.6 Sử dụng bộ nhớ của MECI trên tập dữ liệu Mushroom

Trang 13

M Ở ĐẦU

Khai thác dữ liệu là quá trình khám phá các tri thức mới và các tri thức có ích ở dạng tiềm ẩn trong nguồn dữ liệu đã có Trong khối cơ sở dữ liệu rộng lớn, khai thác dữ liệu là quá trình khai thác những mô hình thú vị, bao gồm các phương

thức giao nhau của trí tuệ nhân tạo, máy học và thống kê

Ngày nay với sự phát triển mạ ủa công nghệ thông tin, khai thác tập

phổ biến là một đề tài nghiên cứu cơ bản với nhiều ứng dụng trong khai thác dữ

liệu Khai thác dữ liệu đã và đang được ứng dụng rộng rãi trong rất nhiều lĩnh vực

và hiện nay đã có rất nhiều công cụ thương mại và phi thương mại triển khai các nhiệm vụ của khai thác dữ liệu Thực tế đã có nhiều nghiên cứu và thuật toán đã được đề xuất để khai thác tập phổ biến từ cơ sở dữ liệu, nhằm giải quyết các bài toán về khai thác tập đóng hay khai thác tập có thể xoá, mỗi thuật toán có ưu và khuyết điểm riêng Chẳng hạn, để khai thác tập có thể xoá, một số thuật toán đã được đề xuất như: META, VME, MERIT, MERIT+, MEI… hay đối với khai thác

tập đóng cũng có một số thuật toán đã đề xuất như: Close, Pascal, Closet, CHARM, dCHARM Tuy nhiên mỗi thuật toán chỉ giải quyết một khía cạnh nào đó, hoặc chưa giải quyết triệt để vấn đề đặt ra hay đòi hỏi môi trường thực hiện cao và thời gian thực hiện rất dài, chiếm nhiều không gian lưu trữ, thời gian xử lý và chi phí cao Hầu hết các thuật toán là biến thể của thuật toán Apriori, các thuật toán đã cho

thấy hiệu suất rất cao trong việc khai thác các tập dữ liệu Nhưng thực tế thì các thuật toán chỉ đạt hiệu suất tốt trên các bộ dữ liệu thưa thớt và các mẫu dữ liệu ngắn (như dữ liệu giỏ thị trường) và chưa thật sự đạt hiệu suất cao trên các bộ dữ liệu dày đặc với các mẫu dữ liệu dài (như viễn thông, dữ liệu điều tra dân số) Vấn đề đặt ra

là tìm các tập phổ biến trên các tập dữ liệu rộng lớn mà không tốn nhiều chi phí và

thời gian thực hiện nhưng vẫn đảm bảo được lợi nhuận và hiệu suất khai thác

Chẳng hạn, một nhà máy sản xuất nhiều sản phẩm được tạo ra từ một số mặt hàng

Mỗi sản phẩm mang lại thu nhập cho nhà máy Một nguồn tài chính là cần thiết để mua và lưu trữ tất cả các mặt hàng Tuy nhiên, trong một tình huống khủng hoảng

Trang 14

tài chính, nhà máy này không có đủ tiền để mua tất cả những thứ cần thiết như bình thường Do đó cần phải tìm ra những phương pháp tốt nhất, cần lập ra một kế hoạch

sản xuất mới mà có thể không cần có một nguồi tài chính dồi dào để mua hết tất cả các mặt hàng nhưng vẫn đảm bảo không làm giảm đi lợi nhuận

Xuất phát từ những thực tế đó và những vấn đề đặt ra như trên, đề tài “khai thác tập có thể xoá đóng” với mục đích kết hợp hai vấn đề khai thác tập đóng và khai thác tập có thể xoá thành một vấn đề chung nhằm tìm các tập phổ biến trên các

tập dữ liệu rộng lớn mà không tốn nhiều chi phí và thời gian thực hiện nhưng vẫn đảm bảo được lợi nhuận và hiệu suất khai thác

Khai thác tập phổ biến có thể xóa và khai thác tập phổ biến đóng là một sự

biến thiên thú vị của khai thác tập phổ biến, trong đó nó cho phép các nhà quản lý xem xét cẩn thận các kế hoạch sản xuất của họ để đảm bảo sự ổn định củ

Trang 15

C HƯƠNG 1 TỔNG QUAN

Ngày nay, với sự phát triển tốc độ và mạnh mẽ của Internet thì ngành công nghệ thông tin đã và đang phát triển vượt bậc và trở thành một ngành tiên tiến trên

thế giới và trong nước Trong đó lĩnh vực khai thác dữ liệu là một trong những lĩnh

vực đang được quan tâm phát triển Bên cạnh các mô hình khác của lĩnh vực khai thác dữ liệu thì khai thác luật kết hợp trở nên phổ biến và có nhiều ứng dụng trên

thực tế Một trong những biến thể mới của khai thác luật kết hợp là mô hình khai thác tập phổ biến có thể xoá đóng Đây là một phương pháp mới dựa trên các mô hình đã khai thác về khai thác tập phổ biến có thể xoá và khai thác tập đóng

Dựa trên các thuật toán đã được triển khai như Close, Pascal, Closet hay VME, MERIT, MERIT+, META nhưng tốn bộ nhớ, thời gian xử lý chậm Thuật toán CHARM và MEI cải tiến thời gian khai thác, cải thiện không gian lưu trữ của

bộ nhớ và mở rộng qui mô và chiều dài của dữ liệu

Thuật toán META [13], một thuật toán dựa trên Apriori, nhằm giải quyết vấn

đề khai thác các mô hình có thể xóa Tuy nhiên, thời gian thực hiện của META khá

chậm, bởi vì nó sử dụng một cách tiếp cận là tạo ra ứng viên và cách tiếp cận này được cho là một chiến lược ngây thơ, bởi vì:

(i) META quét cơ sở dữ liệu lần đầu tiên để xác định tổng lợi nhuận của các nhà máy và xác định các thông tin liên quan đến mỗi EI tại các mức k, với k là mức tối

đa của các kết quả của EIS Ví dụ, META tìm thấy một hoặc hơn 5 tập phổ biến có

thể xóa, đó là mức tối đa của EIS Vì thế, META phải quét cơ sở dữ liệu 6 lần

(ii) Các chiến lược META sử dụng để tạo ra tập ứng viên là một chiến lược ngây thơ, trong đó nó sử dụng (k- 1)-itemset X có thể xóa và xem xét với tất cả (k- 1)-itemset có thể xóa còn lại để kết hợp và tạo ra k-itemset có thể xóa Chỉ có một số

nhỏ tập itemset trong tất cả (k- 1) –itemset có thể xóa có tiền tố giống như tiền tố

của item X mới được kết hợp với item X Ví dụ, hãy xem xét tập 2-itemset có thể xóa sau {ab, ac, ad, bc, bd, cd} META xem xét phần tử đầu tiên {ab} và kết hợp

với tất cả tập 2 itemset còn lại trong tập hợp {ac, ad, bc, bd, cd } Chỉ có tập hai

Trang 16

phần tử {ac, ad} mới được kết hợp với {ab}, còn tập các phần tử {bc, bd, cd} là

thừa

Thuật toánVME [3] cũng được đề xuất để khai thác EIS VME sử dụng cấu trúc PID_List (định danh sản phẩm) Một PID_List là tập hợp các cặp <PID, Val>, trong đó PID là nhận dạng sản phẩm và Val là lợi nhuận của sản phẩm này (lợi nhuận thu được do bán sản phẩm này) Thuật toán VME được đánh giá là nhanh hơn META vì nó quét các cơ sở dữ liệu chỉ có hai lần (số lần quét cơ sở dữ liệu ít hơn nên thời gian thực thi thuật toán cũng ít hơn và nhanh hơn) Tuy nhiên thuật toán này cũng mắc phải một số khuyết điểm Một số điểm yếu liên quan với VME được chỉ ra như sau:

(i) VME quét các cơ sở dữ liệu để xác định tổng lợi nhuận của các nhà máy và sau

đó quét các cơ sở dữ liệu một lần nữa để tìm tất cả các tập phổ biến 1-erasable và PID_List của chúng Quét các cơ sở dữ liệu mất rất nhiều thời gian và bộ nhớ Nếu xem xét một cách kỹ lưỡng thì các cơ sở dữ liệu có thể được quét một lần duy nhất (ii) VME sử dụng chiến lược breadth-first-search, trong đó tất cả (k-1) -itemset có

thể xóa được sử dụng để tạo ra k-itemset có thể xóa Tuy nhiên, việc phân loại (k-1) -itemsets có thể xóa với tiền tố giống như của (k-2) -itemset có thể xóa sẽ

mất rất nhiều thời gian và thao tác

Ví dụ, tập 2-itemset có thể xóa là {ab, ac, ad, bc, bd, cd}, trong đó có ba tiền tố 1-itemset, cụ thể là {a}, {b} và {c} Thuật toán này có sự phân chia các phần tử thành các nhóm 2 –itemset có thể xóa, trong đó có các tiền tố giống như tập 1-itemset có thể xóa Trong trường hợp đặc biệt, tập 2-itemset có thể xóa được phân loại thành ba nhóm: {ab, ac, ad}, {bc, bd}, và {cd} Sau đó, thuật toán này

kết hợp các phần tử của từng nhóm để tạo ra các ứng cử viên của tập 3 –itemset

có thể xóa, đó là {abc}, {abd}, {acd}, và {bcd} Rõ ràng thời gian tiêu tốn sẽ nhiều cho việc phân chia và kết hợp các phần tử của từng nhóm

(iii) VME sử dụng các chiến lược liên minh trong đó PID_List của X là một tập con PID_List của Y, nếu X là con của Y Chiến lược này đòi hỏi tốn nhiều bộ nhớ

và các thao tác cho một số lượng lớn các EIS

Trang 17

(iv) VME chứa giá trị lợi nhuận của mỗi sản phẩm (Val) trong một cặp <PID, Val>

của PID_List Điều này dẫn đến trùng lắp dữ liệu vì một cặp <PID, Val> có thể

xuất hiện trong nhiều PID_List Do đó, thuật toán này đòi hỏi rất nhiều bộ nhớ

Việc sử dụng bộ nhớ có thể được giảm bằng cách sử dụng chỉ số lợi nhuận Thuật toán MERIT [3][5] - khai thác tập có thể xóa nhanh MERIT sử dụng khái niệm NC_Set để giảm thiểu sử dụng bộ nhớ Đầu tiên, MERIT tạo ra một cây WPPC, một cấu trúc giống FP-tree, trong đó mỗi nút trên cây gồm một bộ (tập hợp)

dạng <Ni item-name, Ni.weight, Ni.childnodes, Ni.pre-order, Ni.post-order>, trong

đó:

- Ni.item-name là định danh của item

- Ni.weight là giá trị thu được kết hợp với các item

- Ni.childnodes là một tập hợp các nút con kết hợp với các item

- Ni.pre-order là số thứ tự của các nút khi cây được duyệt qua từ trên xuống

và từ trái sang phải

- Ni.post-order là số thứ tự của các nút khi cây duyệt qua từ dưới lên và từ trái sang phải

Mã (NC) của mỗi nút Ni trong cây WPPC là một bộ <Ni.pre-order, Ni.post-order,

Ni.weight> Các tập hợp mã số nút (NC_Set) là tập hợp NCs kết hợp với EIS Thuật toán này sử dụng cấu trúc NC_Set để giảm sử dụng bộ nhớ cũng như thời gian khai thác Mặc dù việc sử dụng các NC_Set cho MERIT có lợi thế hơn META nhưng

vẫn còn một số nhược điểm sau đây:

(i) MERIT sử dụng các chiến lược liên minh, theo đó NC_Set của mẫu được giả định là một tập hợp con của NC_Set của mẫu , với ⊂ Kết quả là tốn lượng bộ

nhớ lớn cho một số lượng lớn các EIS

(ii) Để xây dựng cây WPPC thì MERIT phải quét cơ sở dữ liệu ba lần.Sau đó, nó quét cây WPPC hai lần để tạo ra tập mã nút NC_Set của tập phổ biến có thể xóa Các bước trước đó tốn rất nhiều thời gian thực thi và thao tác

(iii) MERIT lưu trữ các giá trị lợi nhuận của sản phẩm trong mỗi mã nút NC của tập

mã nút NC_Set, điều này dẫn đến sự trùng lắp dữ liệu

Trang 18

MERIT gây ra sự mất mát một số lượng lớn các EIS là do hai nguyên nhân chính sau:

(i) MERIT sử dụng một câu lệnh if để kiểm tra tất cả các tập con (k- 1) -itemset của k-itemset X có thể xóa được hay không để tránh việc thực hiện thủ tục

NC_Combination Tuy nhiên, MERIT s ử dụng chiến lược deep-first-search vì

thế CSDL không có đủ (k- 1) -itemset trong kết quả kiểm tra này Do đó câu lệnh

if luôn luôn sai, do đó tập tất cả k-itemset có thể xóa (k > 2) thì luôn không thể xóa Các kết quả của MERIT là như vậy, xóa được 1- itemset và xóa được 2 -itemset Khi X của NC_Set được xác định, thuật toán ngay lập tức có thể quyết

định xóa X Do đó, câu lệnh if trong thuật toán này là không cần thiết

(ii) MERIT mở rộng các lớp tương đương của ECv [k] Điều này cải thiện thời gian khai thác, nhưng không có EISnào được khai thác

Thuật toán MERIT+ [3] là một thuật toán xuất phát từ MERIT, nhưng MERIT+ có khả năng khai thác tất cả các EIS, mà không cần:

(i) Kiểm tra tất cả các tập con (k -1) – itemset của tập k-itemset X có thể xóa hay không thể xóa

(ii) Mở rộng các lớp tương đương

Thuật toán Close [14]- một thuật toán được đề xuất khai thác tập phổ biến đóng Close là một thuật toán cũng gống như thuật toán Apriori Để khai thác các

tập đóng, Close tiến hành thuật toán của mình qua hai bước chính:

(i) Close sử dụng phương pháp tìm kiếm từ dưới lên để xác định generators, tập phổ

biến nhỏ nhất được xác định chính là tập phổ biến đóng Sau khi tìm thấy các tập

phổ biến tại mức k, Close sẽ so sánh độ hỗ trợ của mỗi tập với tập con của nó ở

mức trước đó Nếu độ hỗ trợ của một itemset trùng với bât kỳ độ hỗ trợ nào của

tập con của nó, thì itemset đó không phải là một generator và nó sẽ được cắt tỉa

đi

(ii) Close tính toán tính đóng của tất cả các generator tìm thấy được ở bước trước

đó Để tính toán tính đóng của một itemset , cần phải tiến hành và kiểm tra giao tác của nó với tập con của nó Tính đóng của tất cả các generator có thể được

Trang 19

tính ra ngay ở lần đầu tiên quét CSDL, ngược lại có thể sẽ phải mất nhiều thời gian và thao tác cho việc tính toán tính đóng

Thuật toán Pascal [11] là một thuật toán cải tiến từ thuật toán Close được đề

xuất cho mục đích khai thác tập phổ biến và tập đóng Pascal đưa ra một khái niệm

gọi là key pattern và cho thấy rằng các mô hình phổ biến khác có thể được suy ra từ

mô hình key pattern mà không cần phải truy xuất vào CSDL Thực nghiệm cho thấy

rằng Pascal tìm thấy được cả tập phổ biến lẫn tập đóng nhanh gấp hai lần so với Close và nhanh gấp mười lần so với Apriori Tuy rằng Pascal tìm và đưa ra được tất

cả các mẫu nhưng thực tế nó chỉ thực hiện tốt trên các mẫu có chiều dài ngắn

Thuật toán Closure[7] cũng được đề nghị để giải quyết vấn đề tìm ra tập phổ

biến đóng Closure cũng dựa trên chiến lược tìm kiếm từ dưới lên Và thực tế chứng minh rằng thuật toán này cũng chỉ khá hơn chút ít so với thuật toán Apriori

Thuật toán Closet [8] sử dụng một cấu trúc mới là FP-tree [12] Theo cấu trúc này thuật toán sẽ nén một giao dịch đại diện cho tất cả các giao dịch trên CSDL Closet sử dụng đệ quy lại chiến lược chia và chinh phục và phương pháp

tiếp cận CSDL để khai thác các mô hình dài

Thuật toán Closet + [9] là một thuật toán nâng cao của Closet với chiến lược tìm kiếm tập đóng như đã giới thiệu trước đó ở thuật toán Close

Thuật toán Mafia [10] là một thuật toán được đưa ra chủ yếu dùng cho việc khai thác tập phổ biến lớn nhất Tuy nhiên, Mafia cũng có một vài tùy chọn cho

mục đích khai thác tập đóng Mafia dựa vào hiệu quả của việc nén và dựa trên bitmap dọc tính toán tần suất

Rút kết từ các vấn đề của của các thuật toán đã được đề nghị trước đó, MEI [3] sử dụng cấu trúc dPidset để nhanh chóng xác định các thông tin về mô hình có

thể xóa MEI cho ra thời gian khai thác và sử dụng bộ nhớ tốt hơn so với các thuật toán trên, hiệu suất khai thác của MEI trên các mô hình đã được chứng minh Charm [6] sử dụng hiệu quả phương pháp tìm kiếm lai, bỏ qua nhiều cấp độ, liệt kê các tập đóng bằng cây tìm kiếm kép itemset-tidset Charm sử dụng một kỹ thuật gọi

Trang 20

là diffset để giảm bộ nhớ cho các tính toán trung gian và loại bỏ các tập "không đóng”

Bảng 1.1 đưa ra số lượng các EIS thu được bằng các giải thuật VME, MERIT, MERIT+, và MEI Theo số liệu trên bảng, số lượng EIS thu được bằng MERIT nhỏ hơn so với số lượng thu được bởi VME, MERIT+, và MEI Mặc dù

hiệu quả của MERIT cao hơn, nhưng nó không hỗ trợ cho tất cả các EIS, không

giống như VME, MERIT+, và MEI hỗ trợ cho tất cả các EIs Hai thuật toán MERIT+ và MEI cho ra số lượng EIs bằng nhau, nhưng MERIT+ tiêu tốn nhiều bộ

nhớ và thời gian khai thác các EIshơn so với MEI

B ảng 1.1 Số lượng EI s thu được bằng VME, MERIT, MERIT+, MEI

Database Threshold (%) VME MERIT MERIT+ MEI

Trang 21

EIsthu được từ các thuật toán này là rất lớn Khi đó, các hệ thống thông minh sử

dụng các EIs như kiến thức chung và đây sẽ là tình huống khó khăn với một số lượng lớn các EIs Trên thực tế, tập các mẫu xóa đóng (ECIs) có thể tính toán lại tập

hợp các EIs mà không làm mất thông tin Tập hợp này không có hai hoặc nhiều EIs

có cùng lợi nhuận Chúng có thể được sử dụng để khai thác các luật không dư thừa

mà không phải cắt tỉa luật bị dư thừa đi Mục đích của mô hình xóa đóng không ngoài mục đích hạn chế không gian lưu trữ, tìm kiếm và làm giảm thiểu số tập hợp

Trang 22

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

2.1 T ập phổ biến [3]

2.1.1 Định nghĩa

Đặt I= {i 1 , i 2 , , i m } là tập hợp tất cả các item, là các thể hiện trừu tượng các thành phần của sản phẩm Một cơ sở dữ liệu sản phẩm được ký hiệu là DB= {P 1 , P 2 , ., P n } , trong đó Pi (1 in) là m ột sản phẩm được trình bày dưới dạng <Items,

Val>, trong đó Items là các mặt hàng (các thành phần) cấu thành Pi và Val là lợi

nhuận mà các nhà máy có được bằng cách bán các sản phẩm Pi Một tập

X ⊆ I thì được gọi là một tập phổ biến (itemset), và một tập phổ biến (itemset) với

k item được gọi là k-itemset

Trang 23

Trong cơ sở dữ liệu này, {a, b, c, d, e, f, g, h} là tập hợp các item được sử

dụng để tạo ra tất cả các sản phẩm {P 1 , P 2 , , P 11 } S ản phẩm P 1 được tạo từ hai thành phần {abc} Nhà máy thu được 2.100 ngàn USD bằng cách bán sản phẩm P 1

| {

)

(

φ

Items P

X P

k k k

Val P

X g

Lợi nhuận của itemset X là tổng lợi nhuận của các sản phẩm chứa ít nhất

một item trong tập phổ biến X

Ví dụ, đặt X = {ac} là một tập phổ biến Từ cơ sở dữ liệu ví dụ trong bảng

2.1, các sản phẩm {P1, P2, P3, P4, P6, P7, P11} bao gồm các thành phần {a}, {c}

hoặc {ac}.Vì thế, g(X)= P1.Val + P2.Val +P3.Val +P4.Val + P6.Val +P7.Val+ P11.Val

=4650 ngàn USD

Định nghĩa 2.2

Cho một ngưỡng ξ và một cơ sở dữ liệu sản phẩm DB, đặt T là tổng lợi

nhuận của nhà máy Một tập itemset X có thể xóa được nếu:

ξ

×

≤ T X

K

K

Val P

Tổng lợi nhuận (T) của các nhà máy là tổng lợi nhuận của tất cả các sản

phẩm Từ cơ sở dữ liệu cho trong bảng 2.1, ta thấy tổng lợi nhuận của nhà máy T là

5000 ngàn USD Và một itemset X được gọi là có thể xóa (EI) nếu thỏa điều kiện:

ξ

×

≤ T X

g ( )

Ví dụ, ta đặt ngưỡng là 16% (ξ = 16%) Theo định nghĩa 2.1, g ({e}) = 600 ngàn USD Item e được gọi là một EI với ξ = 16% vì g ({e}) = 600 5000* 16% =

Trang 24

800 Điều này có nghĩa rằng các nhà máy không cần phải mua và lưu trữ item e Trong trường hợp đó, các nhà máy sẽ không sản xuất các sản phẩm P4, P5, P6, P7,

và P8, nhưng nó vẫn có khả năng sinh lời (lớn hơn hoặc bằng 5000* 16% = 800 ngàn USD)

Định nghĩa2.3

Đặt DB là cơ sở dữ liệu sản phẩm Một mảng được định nghĩa như là các chỉ

số về lợi nhuận:G[i] = Pi.Val

Trong đó Pi DB, 1

Theo Định nghĩa 2.3, lợi nhuận của sản phẩm Pi là giá trị của phần tử ở vị trí

i trong chỉ số lợi nhuận G Đối với cơ sở dữ liệu trong bảng 2.1, chỉ số lợi nhuận G

sẽ được thể hiện trong bảng 2.2

( X p A p

Định nghĩa 2.5(Lợi nhuận của một tập phổ biến dựa trên pidset)

Cho X là một tập phổ biến Lợi nhuận của X ký hiệu là g (X) được tính như sau:

=

) (

] [ )

(

X p

P K

k G X

g

Trang 25

Trong đó G [k] là phần tử ở vị trí k của G

Ví d ụ 2.1:

Cho CSDL trong bảng 2.1, pidset của {a} là {1,2,3} bởi vì P 1 , P 2 và P 3 bao

gồm thành phần {a} Tương tự, pidset của {b} là {1,2,4,5,10} Theo định nghĩa 2.4,

piset của itemsetX ={ab} là p(X) = p({a}) p({b}) = {1,2,3} {1,2,4,5,10} =

{1,2,3,4,5,10} L ợi nhuận của X là g(X) = G[1] + G[2] + G[3] + G[4] + G[5] +

G[10] = 4450 ngàn USD Theo định nghĩa 2.2, X là không thể xóa được với ngưỡng ξ =16% bởi vì g(X) > T ξ = 5000 16% = 800 ngàn USD

Định lý 2.1 Đặt X là tập k-itemset và B là tập 1-itemset Giả sử rằng pidset của X là

p(X) và pidset của B là p(B) Khiđó:

) ( ) ( )

Ch ứng minh: Định lý đã được chứng minh trong [3]

Định lý 2.2 Cho XA và XB là hai tập phổ biến có cùng tiền tố X Giả sửp(XA) và

p(XB) là pidset c ủa XA và XB tương ứng Pidset của XAB được tính như sau:

) ( ) ( ) ( XAB p XB p XA

Ch ứng minh: Định lý đã được chứng minh trong [3]

Ví d ụ 2.2:

Cho ví dụ về CSDL trong bảng 2.1, XA= {ab},với p(XA) = {1,2,3,4,5,10} và

XB ={ac}, v ới p(XB)= {1,2,3,4,6,7,11} Theo định lý 2.2 thì pidset của item XAB là

p(XAB)=p(XBA) = p(XA) p(XB) = {1,2,3,4,5,10} {1,2,3,4,6,7,11} = {1,2,3,4,5,6,7,10,11}

Định nghĩa 2.6(dPidset)

Đặt XA và XB là hai tập phổ biến với cùng tiền tố X pidset của XA được ký

hiệu là p(XA) và pidset của XB được ký hiệu là p(XB) dPidset của các pidsetp(XA)

và p(XB), ký hi ệu là dP(XAB), được định nghĩa như sau:

) (

\ ) ( ) ( XAB p XB p XA

Theo định nghĩa 2.6, dPidset của pidsetp(XA) và p(XB) là bộ định danh sản phẩm

chỉ tồn tại trên p(XB)

Trang 26

Ví d ụ2.3

XA ={ab} v ới p(XA) ={ 1,2,3,4,5,10} và XB = {ac} với p(XB)

={1,2,3,4,6,7,11} D ựa trên định nghĩa 2.6, dPidset của XAB là dP(XAB) =

p(XB)\p(XA) = {1,2,3,4,6,7,11} \ { 1,2,3,4,5,10} ={6,7,11} Chú ý rằng, nếu đảo

ngược thứ tự của XA và XB sẽ cho một kết quả khác Do đó dP{XBA) =

Theo ví dụ 2.2, p(XAB) = p({abc}) = {1,2,3,4,5,6,7,10,11) Theo ví dụ 2.3,

dP(XAB) = dP({abc}) = {6,7,11} T ừ kết quả này, dP(XAB) ={6,7,11} p(XAB)

={1,2,3,4,5,6,7,10,11}

Với tập itemset XY, định lý 2.3 cho thấy rằng số lượng các phần tử trong

dPidset của XY luôn ít hơn so với số phần tử trong pidset của XY Vì vậy, sử dụng

dPidset luôn tốt hơn so với sử dụng pidset vì thuật toán dPidset sẽ:

(1) sử dụng ít bộ nhớ

(2) đòi hỏi thời gian khai thác ít hơn do số phần tử ít hơn

Định lý 2.4 Đặt XA và XB là hai tập phổ biến có cùng tiền tố X Giả sử rằng dP(XA)

và dP(XB) là dPidset tương ứng của XA và XB dPidset của XAB được tính như sau:

) (

\ ) ( )

(1) Theo định lý 2.1, p(XA) = p(X) p(A) = {1,2,3,4,5,10} và p(XB) = p(X) p(B)

={1,2,3,4,6,7,11} D ựa vào định lý 2.6, dPidset của XAB là dP(XAB) =

p(XB)\p(XA) = {1,2,3,4,6,7,11}\{1,2,3,4,5,10} = {6,7,11}

Trang 27

(2) Theo định nghĩa 2.6, dP(XA) = p(A)\p(X) = {4,5,10} và dP(XB) = p(B)\p(X)

={4,6,7,11} D ựa theo định lý 2.4, dPidset của XAB là dP(XAB) =

dP(XB)\dP(XA) = {4,6,7,11}\{4,5,10} = {6,7,11}

Từ (1) và (2), dPidset của XAB là dP(XAB) = {6,7,11}

Định lý 2.5 Cho XAB là một tập phổ biến Lợi nhuận của XAB được xác định dựa

vào XA như sau:

][)

()

(

XAB dP

P K

k G XA

g XAB

g

Trong đó g(XA) là lợi nhuận của X và G[k] là phần tử tại vị trí k của G

Ch ứng minh: Định lý đã được chứng minh trong [3]

Ví d ụ 2.6:

Theo ví dụ 2.1, XA ={ab} với p(XA)= {ab} = {1,2,3,4,5,10} và XB ={ac} với

p(XB) ={1,2,3,4,6,7,11}

Áp dụng định nghĩa 2.5 thì lợi nhuận g(XA) = 4450 và g(XB) =4650

(1) Dựa vào định lý 2.2, p(XAB) = {1,2,3,4,5,6,7,10,11} Ví thế lợi nhuận của XAB

là g(XAB) = 4850 ngàn USD

(2) Theo định nghĩa 2.6, dP(XAB) = p(XB) \ p(XA) = {1,2,3,4,6,7,11} \

{1,2,3,4,5,10} ={6,7,11} Vì v ậy lợi nhuận của XAB dựa trên định lý 2.5 như

sau:

4850100

2001004450]

11[]7[]6[4450)

(

)

(

) (

=+++

=+

++

+

G G

G XA

g

XAB

g

XAB dP

P K

Theo (1) và (2), lợi nhuận của XAB là 4850 ngàn USD

Định lý 2.6 Gọi A và B là hai tập 1-itemset có thể xóa Giả sử rằng pidset của

chúng là p(A) và p(B) N ếu |p(A)| > |p(B)|, thì:

Trang 28

(2) dP(BA) = p(A)\p(B) = {1,2,3}\{1,2,3,4,5,10} = {3}

Từ (1) và (2) ta thấy, kích thước của dP(AB) thì lớn hơn so với dP(BA)

Định lý 2.7 Đặt XA và XB là hai tập k-itemset có thể xóa với dPidset tương ứng là

dP(XA) và dP(XB) N ếu |dP(XA)| > |dP(XB)|, thì:

2.2.3 Thu ật toán MEI

Theo định lý 2.4 và 2.5 cho thấy thuật toán MEI lưu trữ dPidset của k-itemset

có thể xóa (k 2) và dễ dàng xác định được lợi nhuận của k-itemset có thể xóa MEI quét các cơ sở dữ liệu để tạo ra 1-itemset có thể xóa và pidset của chúng Sau

đó, MEI kết hợp tất cả tập 1-itemset có thể xóa lại với nhau để tạo ra tập 2-itemset

và dPidset của chúng theo định nghĩa 2.6 Từ tập k-itemset (k 2), MEI sử dụng định lý 2.4 để xác định dPidset và sử dụng định lý 2.5 để tính toán lợi nhuận

2.2.3.1 Hi ệu quả của thuật toán trừ hai dPidset

Từ định lý 2.6 cho thấy rằng việc trừ pidset d 2 cho pidset d 1với |d 1 | > |d 2 | thì

luôn luôn tốt hơn trong việc sử dụng bộ nhớ và thời gian khai thác so với cách làm

ngược lại (trừ pidset d 1 cho pidset d 2 với |d 1 | < |d 2 |) Vì vậy, việc sắp xếp tập itemset có thể xóa theo thứ tự giảm dần về kích thước pidset của chúng trước khi

1-kết hợp chúng lại với nhau sẽ cải tiến thuật toán rất nhiều Từ những phân tích trên, MEI sắp xếp tập 1 –itemset có thể xóa theo thứ tự giảm dần kích thước pidset

Và từ định lý 2.7, ta thấy rằng khi trừ dPidset d 2 cho dPidset d 1với |d 1 | > |d 2 |

thì luôn luôn tốt hơn về cách sử dụng bộ nhớ so chiều ngược lại Như vậy, sắp xếp

Trang 29

k-itemset có thể xóa với k>1 theo thứ tự giảm dần của kích thước dPidset đã giúp thuật toán tối ưu hóa việc sử dụng bộ nhớ Tuy nhiên, định lý 2.6 lại sắp xếp 1-itemset có thể xóa theo thứ tự giảm dần của kích thước pidset Do đó, trong hầu hết các trường hợp, các dPidset của k-itemset có thể xóa với k>1 là ngẫu nhiên được

sắp xếp Trong những trường hợp này, sự sắp xếp làm tăng thời gian khai thác Vì

thế, MEI không sắp xếp k-itemset có thể xóa với k>1

Do đó, trong các phương pháp thông thường, khi trừ dPidset d 2 có n phần

tử cho dPidset d 1 với m phần tử, thì thuật toán chỉ xem xét tất cả phần tử trong d 2 bất

chấp nó tồn tại trong d 1 Do đó, độ phức tạp của phương pháp này là

O(n x m) Sau khi có d 3 với k phần tử, thuật toán phải quét tất cả các phần tử trong

d 3để xác định lợi nhuận của một tập phổ biến Do đó sự phức tạp của thuật toán này

là O(n x m +k) Đối với CSDL ví dụ ở trên thì thời gian khai thác của thuật toán không đáng kể Tuy nhiên, thời gian khai thác này sẽ là rất lớn đối với các cơ sở dữ

liệu lớn Vì vậy, cần có một phương pháp hiệu quả để trừ hai dPidset là cần thiết

Trong quá trình quét các cơ sở dữ liệu, MEI tìm thấy pidset 1-itemset có

thể xóa, được sắp xếp theo thứ tự tăng dần của các định danh sản phẩm Ví dụ, pidset của {a} là {1, 2, 3}

2.2.3.2 Thu ật toán trừ hai dPidset

Ý tưởng của thuật toán:

(i) Trước tiên, thuật toán đặt:

i=0 là ch ỉ số của phần tử đầu tiên trong d 1

j=0 là ch ỉ số của phần tử đầu tiên trong d 2 ;

d 3 =∅ là dPidset kết quả của thuật toán này;

Gain=0 là lợi của d 3

(ii) Thuật toán sử dụng vòng lặp while với điều kiện c <|d 1 | và m< |d 2 |

Nếu các điều kiện trên được thỏa mãn, thuật toán sẽ so sánh các phần tử ở vị trí thứ i trong d 1ký hiệu là d 1 [i] và các ph ần tử tại vị trí thứ j trong d 2 ký hiệu là

d 2 [j] Sự so sánh này có ba khả năng như sau:

Trang 30

- Nếu d 1 [i]<d 2 [j] , thì d 1 [i] b ị bỏ qua bởi vì nó thuộc về d 1 Phần tử tiếp theo

ở vị trí (i+1) trong d 1 được kiểm tra

- Nếu d 1 [i] = d 2 [j], thì d 1 [i] và d 2 [j] được bỏ qua vì chúng thuộc d 1 Kế tiếp, các phần tử tiếp theo ở vị trí (i+1) trong d 1 và các phần tử tiếp theo ở vị trí (j+1) trong d 2 được kiểm tra

- Nếu trường hợp (1) và (2) không thỏa, có nghĩa là d 2 [j] không tồn tại

trong d 1 Ví thế, thuật toán thêm d 2 [j] vào d 3 Đồng thời, thuật toán cập nhật Gain =

Gain + G[d 2 [j]] Sau đó, trong vòng lặp while, các phần tử ở vị trí (j+1) trong d 2

được kiểm tra

Đến cuối của vòng lặp while, nếu d2 vẫn còn phần tử chưa được xem xét,

có nghĩa là các phần tử không tồn tại trong d 1 Trong tình huống này, thuật toán nối các phần tử ở vị trí j trong d 2 vào d 3 và cập nhật lợi nhuận Gain = Gain + G[d 2 [j]],

với j<|d 2 | Dựa trên những phân tích trên, thuật toán trừ hai dPidset được gọi

Sub_dPidsets được thể hiện trong hình 2.1

Mô t ả thuật toán:

Đầu vào: dPidset d1, d2 và chỉ số lợi nhuận G

ả: dPidset d3 và lợi nhuận của d3 Gain

Trang 31

Hình 2.1 gi ải thuật trừ 2 dPidset [3]

2.2.3.3 Phát sinh l ớp tương đương

Định nghĩa 2.7

Đặt XA và XB là 2 tập k-itemset có tiền tố X giống nhau Phép toán ex-or tạo

ra (k-1)-itemset được định nghĩa như sau:

XB XA

XAB = ⊕

Procedure Sub_dPidsets

Input: dPidset d1, d2 and index of gain G

Output: dPidset d3 and its gain (Gain)

Trang 32

Dựa vào công thức như trên, thuật toán phát sinh lớp tương đương được gọi

là Expand_E được thể hiện trong hình 2.2

XAB = ⊕ =

2.2.3.4 Gi ải thuậtMEI

Ý tưởng của thuật toán

Trước hết, MEI sẽ quét qua CSDL sản phẩm một lần để xác định tổng lợi nhuận của nhà máy (T), các chỉ số về lợi nhuận (G), và tập 1-itemset có thể xóa với pidset của chúng Sau đó, thuật toán sử dụng chiến lược chia-và-chinh phục với tập 1-itemset có thể xóa đã được đề cập ở trên cho đến khi thu được tất cả EIS (hình 2.7)

Mô t ả thuật toán

MEI thực hiện trên CSDL cho ở bảng 1 với ngưỡng là 16%(ξ = 16 %)

Thuật toán thực hiện với 4 bước chính:

(1) MEI quét DB để xác định T = 5000 ngàn USD, là tổng lợi nhuận của nhà máy;

G là chỉ số về lợi nhuận; và 1–itemset xóa được {d, e, f, g, h} với pidset của

Trang 33

(2) Tập 1-itemset xóa được được sắp xếp thứ tự giảm dần của kích thước pidset của chúng Sau khi sắp xếp, thứ tự mới của 1-itemset xóa được là {e, f, d, h, g}

Hình 2.3 T ập 2-itemset có thể xóa của node {e}[3]

Hình 2.4 T ập 3-itemset có thể xóa của node {ed}[3]

Ngày đăng: 05/03/2021, 15:28

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w