49
DANH MỤC CÁC HÌNH Hình 1 - Một ví dụ về bộ dữ liệu Hình 2 – Ma trận bit của tập dữ liệu Hình 3 - Ma trận bit rút gọn với minsup =2 Hình 4 - Một cell của mảng tâm thu Hình 5 – Chức năng của một cell trong mảng tâm thu 1 chiều Hình 6 – Ma trận bit chuyển đổi từ tập phần tử tương ứng với hình 1 Hình 7 – khởi tạo ban đầu của mảng tâm thu Hình 8 – Lần input đầu tiên của mảng tâm thu Hình 9 – Lần di chuyển thứ hai của mảng tâm thu. Hình 10 – Lần input thứ 3 của mảng tâm thu Hình 11 - Khởi tạo ban đầu của mảng tâm thu để khai thác tập phần tử có chứa “a” Hình 12 - Mảng tâm thu hai chiều khai thác tập dữ liệu phổ biến. Hình 13 - Thuật toán SABMA Hình 14 - Đặc điểm bộ dữ liệu test Hình 15 - Tập dữ liệu moshroom Hình 16 – Tập dữ liệu Pumsb 1

Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Embed Size (px)

Citation preview

Page 1: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

DANH MỤC CÁC HÌNH

Hình 1 - Một ví dụ về bộ dữ liệu

Hình 2 – Ma trận bit của tập dữ liệu

Hình 3 - Ma trận bit rút gọn với minsup =2

Hình 4 - Một cell của mảng tâm thu

Hình 5 – Chức năng của một cell trong mảng tâm thu 1 chiều

Hình 6 – Ma trận bit chuyển đổi từ tập phần tử tương ứng với hình 1

Hình 7 – khởi tạo ban đầu của mảng tâm thu

Hình 8 – Lần input đầu tiên của mảng tâm thu

Hình 9 – Lần di chuyển thứ hai của mảng tâm thu.

Hình 10 – Lần input thứ 3 của mảng tâm thu

Hình 11 - Khởi tạo ban đầu của mảng tâm thu để khai thác tập phần tử có chứa “a”

Hình 12 - Mảng tâm thu hai chiều khai thác tập dữ liệu phổ biến.

Hình 13 - Thuật toán SABMA

Hình 14 - Đặc điểm bộ dữ liệu test

Hình 15 - Tập dữ liệu moshroom

Hình 16 – Tập dữ liệu Pumsb

Hình 17 – Tập dữ liệu accident

Hình 18 – Tập dữ liệu retail

Hình 19 – Tập Dữ liệu Kosarak

1

Page 2: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

MỤC LỤC

TÓM TẮT.........................................................................................................................................3

CHƯƠNG 1: GIỚI THIỆU...............................................................................................................4

1.1 Phạm vi vấn đề......................................................................................................................4

1.2 Mở đầu và định nghĩa............................................................................................................5

CHƯƠNG 2: NHỮNG NGHIÊN CỨU LIÊN QUAN....................................................................10

2.1 Những phương pháp khai thác mẫu bit................................................................................10

2.2 Phương pháp khai thác mẫu song song................................................................................11

CHƯƠNG 3: MÔ HÌNH VẤN ĐỀ.................................................................................................13

3.1 Mảng tâm thu......................................................................................................................13

3.2 Vấn đề khai thác mẫu phần tử sử dụng mảng tâm thu.........................................................14

CHƯƠNG 4: PHƯƠNG PHÁP KHAI THÁC SONG SONG.........................................................21

4.1 Chia để trị............................................................................................................................21

4.2 Mảng tâm thu 2 chiều..........................................................................................................22

Vì chúng tôi tiếp tục tính toán mỗi lần hoàn thành từng dòng của mảng trong khi input tiến đến phía bên trái “1” của mảng tâm thu, thời gian thực thi được cải thiện nhiều. Hơn nữa chúng ta biết rằng nếu số số “1” trong y (array) nhỏ hơn minsup tiến trình của y sẽ dừng lại. Vì vậy chúng ta có thể sắp xếp các phần tử theo độ phổ biến của nó và xác suất dừng tiến trình tăng lên ở các hàng cao hơn, nhiều cells hơn và do đó thuật toán của chúng tôi được cải thiện. Kết quả thực nghiệm của chúng tôi cho thấy thời gian thực thi của thuật toán khai thác dữ liệu giảm rất nhiều.....................23

4.3 Thuật toán khai thác dựa trên mảng tâm thu........................................................................23

CHƯƠNG 5: KẾT QUẢ THỰC NGHIỆM.....................................................................................27

TÀI LIỆU THAM KHẢO...............................................................................................................32

2

Page 3: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

TÓM TẮT

Khai thác tập phần tử phổ biến là một trong những khái niệm quan trọng nhất

trong khai thác dữ liệu. Một trong những vấn đề lớn trong khai thác tập phần tử phổ

biến là sự bùng nổ của số lượng kết quả.ảnh hưởng trực tiếp đến thời gian thực thi

của thuật toán khai thác, đặc biệt là khi xử lý các bộ dữ liệu quá lớn. Để giải quyết

vấn đề này, tập phần tử phổ biến đóng đã được đề xuất, tập đóng này đã được rút

gọn tương đương với tập phần tử phổ biến gốc. Từ đó, các tập phần tử phổ biến

trong các tập ban đầu có thể được xây dựng lại từ tập này.Tuy nhiên, phương pháp

này vẫn chưa giải quyết được vấn đề bùng nổ mô hình, chủ yếu là do các bộ dữ liệu

lớn có quá nhiều phần tử trong mỗi giao dịch. Khai thác tập phần tử phổ biến khổng

lồ là một giải pháp khác để giảm kích thước đầu ra sẽ không thể hữu ích nếu tập tất

cả các tập phổ biến đã được yêu cầu. Bằng cách mở rộng phương pháp khai thác

song song có thể đạt được hiệu suất cao hơn.

Trong bài viết này, chúng tôi giới thiệu một thuật toán song song mở rộng hiệu quả

sử dụng mảng tâm thu để tiến hành khai thác các tập phần tử phổ biến rất lớn. Trong

thuật toán của chúng tôi, chúng tôi sử dụng một ma trận bit để nén các số liệu và

ánh xạ các thuật toán khai thác về kiến trúc mảng tâm thu. Với mục đích này, mỗi

giao dịch của bộ dữ liệu đại diện cho một hàng trong ma trận bit. Chúng tôi sử dụng

cấu trúc ma trận bit này để mô hình hóa mẫu khai phá như một mảng tâm thu. Kết

quả thực nghiệm cho thấy thuật toán này nhanh hơn so với các thuật toán song song

tốt nhất trước đây.

3

Page 4: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

CHƯƠNG 1: GIỚI THIỆU

Một trong những vấn đề quan trọng trong việc khai thác dữ liệu là phát hiện mẫu

phổ biến từ cơ sở dữ liệu giao dịch, mà mỗi giao dịch có chứa một tập hợp các phần

tử. Khai thác các mẫu phổ biến đóng vai trò quan trọng trong quá trình khai thác

luật kết hợp được sử dụng trong nhiều ứng dụng, bao gồm phân tích mẫu mua hàng

của khách hàng, phân tích mẫu truy cập web, điều tra các quy trình khoa học, y tế,

và các phân tích chuỗi DNA. Trong phần này, đầu tiên chúng tôi chỉ ra phạm vi vấn

đề của chúng tôi và sau đó chúng tôi trình bày sơ bộ và mô tả một cấu trúc ma trận

bit được sử dụng để xây dựng các phương pháp song song trong bài viết này.

1.1 Phạm vi vấn đề

Có một số phương pháp khai thác mẫu phổ biến: khai thác tập phần tử phổ biến,

khai thác mẫu tuần tự, và khai thác đồ thị. Trong bài báo này, chúng tôi tập trung

vào tập các phần tử, chúng tôi sử dụng thuật ngữ “mẫu” và “tập phần tử” thay thế

cho nhau.

Nhiều thuật toán khai thác mẫu phổ biến có hiệu quả đã được đề xuất trong các tài

liệu [2-9]. Các thuật toán như Apriori, khai thác theo thứ bậc quan trọng nhất, bị hai

vấn đề chính: số lượng lớn các bộ ứng viên, và phải liên tục quét lại các số liệu để

kiểm tra độ phổ biến của mỗi ứng viên [2-4]. FP- Growth kế thừa nó [5-8] là thế hệ

thứ hai của thuật toán khai thác mẫu, khai thác mẫu phổ biến của bộ dữ liệu bằng

phương pháp tìm kiếm theo chiều sâu đầu tiên mà không sử dụng ứng viên và

không cần quét nhiều lần trên tập dữ liệu. Những thuật toán tính toán theo chiều dọc

xử lý những bộ dữ liệu theo chiều dọc, là những bộ dữ liệu có số giao tác nhỏ

nhưng có số lượng các phần tử quá lớn trong mỗi giao dịch [9]. Trong định dạng dữ

liệu theo chiều dọc, mỗi hàng của dữ liệu có một phần tử và một tập các id giao tác

chứa phần này.

4

Page 5: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Thách thức lớn trong khai thác mẫu phổ biến là tất cả mẫu con của một mẫu phổ

biến là phổ biến, số tập con này tăng theo số mũ, kết quả thu được là một số lượng

quá lớn các mẫu phổ biến. Để khắc phục vấn đề này, khai thác mẫu phổ biến đóng

[10-15] được đề xuất. Mẫu đóng là một tập hợp nhỏ gọn của mẫu phổ biến mà vẫn

giữ đầy đủ các thông tin của bộ mẫu. Một mẫu là đóng trong một bộ dữ liệu nếu nó

là phổ biến trong các bộ dữ liệu và không tồn tại siêu mẫu có cùng độ support với

nó trong bộ dữ liệu.

Mặc dù khai thác mẫu đóng đã giảm số lượng tính toán và khối lượng đầu ra của

quá trình khai thác, nhưng có một vấn đề là tốn rất nhiều thời gian và không gian bộ

nhớ khi bộ dữ liệu quá lớn. Khai thác mẫu khổng lồ là một giải pháp thay thế tốt

cho vấn đề bùng nổ mẫu [1,16,17]. Ý tưởng chính của khai thác mẫu khổng lồ là

tìm phương pháp khai thác mà chỉ trích xuất các mẫu quy mô lớn mà không khai

thác các mẫu quy mô nhỏ và vừa. Ý tưởng này thích hợp cho các trường hợp mà

không cần tới tất cả các mẫu phổ biến và chỉ thích hợp cho mẫu quy mô lớn.

Thuật toán khai thác mẫu song song dự kiến sẽ đạt được mức hiệu suất cao hơn .

Bài báo này nghiên cứu giải pháp song song để tìm tất cả các mẫu phổ biến (đóng)

của cơ sở dữ liệu (mảng lớn).

1.2 Mở đầu và định nghĩa

Cho I ={i1,i2,....in} là một tập hợp các phần tử (gọi là cột). Tập dữ liệu D chứa

tập hợp các hàng (gọi là giao dịch) R={r1,r2,...rrn}, ở đây mỗi dòng ri là 1 tập của

những phần tử với id gọi là rid hoặc tid. Cho 1 tập của những phần tử X thuộc I

chúng ta định nghĩa tập support, chỉ rõ D(X) € R như tập giá trị lớn nhất của dòng

mà nó chứa X. Số hàng trong bộ dữ liệu có chứa X được gọi là support của X. Theo

định nghĩa support của X là Sup(X) = |D(X)|. Một tập phổ biến X được gọi là tập

phổ biến hoặc mẫu phổ biến nếu Sup(X) >= minsup, minsup là ngưỡng support

5

Page 6: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

được người dùng quy định. Nói cách khác, một mẫu là phổ biến nếu số lượng giao

dịch mà có chứa mẫu đó không nhỏ hơn so với ngưỡng người dùng quy định

Một tập các phần tử X € I gọi là mẫu đóng nếu không tồn tại Y mà Y € X và

Sup(X) = Sup(Y), Ví dụ: không có tập cha của X với cùng support. Nói một cách

khác, tập các dòng mà chứa tập cha Y, phải không cùng số dòng chứa X. Một tập

phần tử X gọi là mẫu đóng phổ biến, nếu nó đóng và phổ biến.

Hình 1 là một ví dụ về bộ dữ liệu có các phần tử được ký hiệu theo alphabets.

Hình 1. Một ví dụ về bộ dữ liệu

Tập các item được sử dụng trong cơ sở dữ liệu này là I={a, b, c, d, e, f, h, k, m, p}.

Trong bộ dữ liệu này, X={b, e, f} là tập phẩn tử phổ biến với support=2 bởi vì nó là

tập con của 2 giao dịch 6 và 7. Để đơn giản hơn, chúng tôi viết lại tập X=bef. “bef”

không phải là một tập đóng bởi vì tồn tại một tập cha “bdef” trong bộ dữ liệu có

cùng support. Tuy nhiên “bdef” là một tập đóng bởi vì chỉ có một tập cha của nó

“bcdef” có độ support là 1.

6

Page 7: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Với tập dữ liệu D và một ngưỡng minsup, vấn đề của việc khai thác mẫu phổ biến là

tìm tất cả mẫu phổ biến tương ứng với ngưỡng minsup, tương tự với vấn để của việc

khai thác mẫu phổ biến đóng là tìm mẫu phổ biến đóng tương ứng với ngưỡng

minsup.

Chúng ta có thể biểu diễn một bộ dữ liệu thành một ma trận bit [1] với m

hàng và n cột sao cho mỗi hàng tương ứng với một giao dịch của tập dữ liệu và mỗi

cột tương ứng với một phần tử trong tập I. Mỗi hàng của tập dữ liệu là một chuỗi n

bit, nếu một hàng dữ liệu có chứa phần tử i thì bit thứ i của chuỗi tương ứng là 1 và

ngược lại là 0. Do đó bộ dữ liệu được nén thành một ma trận bit. Ví dụ như ma trận

bit tương ứng với dữ liệu của hình 1 là hình 2.

Hình 2 –Ma trận bit của tập dữ liệu

Hai mảng của ma trận bit: colSum là một mảng n-phần tử chỉ ra cho biết độ

phổ biến (support) của từng phần tử và rowSum là một mảng có m phần tử chỉ ra số

lượng các phần tử trong mỗi hàng. Chúng ta có thể lượt bớt cột của ma trận bit theo

minsup, loại bỏ tất cả các cột tương ứng với colsum có giá trị nhỏ hơn minsup.Cột

thứ 3 của hình 1 cho thấy dữ liệu được cắt bớt dựa trên ngưỡng minsup = 2. Hình 3

7

Page 8: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

là một ma trận bit đã được rút gọn sau khi loại bỏ các cột tương ứng với colSum có

giá trị nhỏ hơn minsup = 2.

Hình 3. Ma trận bit rút gọn với minsup =2

Để xác định xem một tập phẩn tử phổ biến X là thường xuyên hay không,

chúng ta xây dựng ColAndVector của nó bằng cách thực hiện toán tử “And” trên

các cột tương ứng với tất cả các phần tử của X. Nếu tổng của các giá trị trong một

ColAndVector không nhỏ hơn minsup thì tập phần tử phổ biến của ColAndVector

đó là thường xuyên. Ví dụ, ColAndVector (ab) chỉ có một bit với giá trị 1 ( bit thứ

3) và do đó ab là không thường xuyên.

Để chỉ ra tập phổ biến X là đóng từ ma trận bit, chúng ta nên xây dựng

ColAndVector của X và toán hạng And trên ColAndVector với cột của từng phần tử

không tồn tại trong X. Nếu kết quả cuối cùng của toán hạng AND là bằng với

colAndVector của X thì X không đóng. Ví dụ, chúng ta có thể nhìn thấy trong hình

3, colAndVector ((bef)=00000110 và colAndVector(bdef)=00000110 và vì thế bef

không phải là mẫu đóng.

8

Page 9: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Trong bài báo này, chúng tôi sử dụng các ma trận bit tương ứng với bộ dữ

liệu để trích xuất hoàn chỉnh tập phần tử phổ biến của bộ dữ liệu, sử dụng thuật toán

song song dựa trên mảng tâm thu.

Những đóng góp chính của bài báo này:

- Một phương pháp khai thác mới được phát triển theo hướng tiếp cận

chia để trị để giảm kích thước của ma trận bit. Vì vậy nó giải quyết

các vần đề khai thác của bộ dữ liệu hiệu quả.

- Một hướng tiếp cận mới nhằm mô hình hóa các vấn đề khai thác mẫu

thường xuyên thành mảng tâm thu.

- Một mảng tâm thu dựa trên phương pháp song song được thiết kế

nhằm khai thác tập phần tử phổ biến của bộ dữ liệu bằng cách sử

dụng bit để khai thác các mẫu phổ biến từ bộ dữ liệu lớn.

Trong phần 2, chúng tôi thảo luận các nghiên cứu hiện có, có liên quan đến

việc xử lý song song trong khai thác mẫu phổ biến. Chúng tôi cũng mô tả các thuật

toán khai thác mẫu phổ biến hiện nay dựa trên cách biến đổi về bit. Phần 3 bao gồm

các định nghĩa và mô tả sơ bộ các mảng tâm thu và trình bày mô hình chính của

khai thác dữ liệu phổ biến song song như vấn đề của mảng tâm thu. Chúng tôi trình

bày phương pháp song song mới của chúng tôi và thuật toán trong phần 4 và tiến

hành nghiên cứu thực nghiệm trong phần 5. Cuối cùng chúng tôi kết luận phần

nghiên cứu trong phần 6.

9

Page 10: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

CHƯƠNG 2: NHỮNG NGHIÊN CỨU LIÊN QUAN

2.1 Những phương pháp khai thác mẫu bit

Gần đây, có nhiều nỗ lực áp dụng kỹ thuật bitmap trong các thuật toán khai

thác mẫu phổ biến [18-21]. BitTableFI[18] là thuật toán dựa trên BitTable, khai thác

theo cả chiều ngang và chiều dọc. BitTable là một cấu trúc dữ liệu đặc biệt sử dụng

cả chiều dọc và ngang để nén cơ sở dữ liệu thành tập ứng viên nhanh chóng và tính

toán độ support.

Mặc dù việc thực hiện các phép tính toán trên bit hiệu quả, BitTableFI phát

sinh và kiểm tra quá nhiều ứng viên. Để giải quyết vấn đề này, một thuật toán mới

Index-BitTableFI đã được đưa ra [19]. Index-BitTableFI cũng sử dụng BitTable

theo chiều dọc và ngang. Sử dụng bitTable theo chiều ngang, một chỉ số của mảng

và phương pháp tính toán tương đương đã được đề xuất. Bằng cách tính toán các

chỉ số phụ, những tập phần tử xuất hiện đồng thời với phần tử đang xét đến được

xác định một cách nhanh chóng bằng cách tìm kiếm chính xác theo bề rộng cùng

một lúc.

Trong [20] một thuật toán khai thác nhanh đã được trình bày, tích hợp

những giá trị của thuật toán ma trận và thuật toán Index-BitTableFI, và tạo ra một

thuật toán khai thác hiệu quả tập phần tử phổ biến. Trong thuật toán này, nó có thể

sinh ra trực tiếp vài tập phần tử phổ biến mà không sinh ra trong Index-BitTableFI.

Mặt khác, thuật toán không sử dụng phương pháp đệ quy, không mất thời gian tính

toán các tập phổ biến khác trong thuật toán index-BitTableFI, và sử dụng chiến lược

tìm kiếm theo chiều rộng để tạo ra tất cả các tập phổ biến.

CFP-tree and CFP-array [21] là hai cấu trúc dữ liệu mới sử dụng kỹ thuật nén

nhẹ để giảm tiêu tốn bộ nhớ của FP-tree bằng một thuật toán theo thứ bậc. CFP-tree

là một sự kết hợp của 2 kỹ thuật FP-tree và bitmap.

10

Page 11: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

2.2 Phương pháp khai thác mẫu song song

Nhiều thuật toán song song và phân tán đã được đề xuất để khai thác tất cả

các tập phần tử phổ biến trong một cơ sở dữ liệu giao dịch [22-27]. Vào năm 1999

một cuộc khảo sát được tiến hành để khai thác luật kết hợp và các sơ đồ song song

của nó[22]. Trong cuộc khảo sát này, hầu hết các thế hệ đầu tiên của thuật toán khai

thác mẫu song song và phân tán được nghiên cứu dựa trên Apropri. Tất cả những

thuật toán đều có những điểm hạn chế giống Apriori vì chúng đều dựa trên nguyên

tắc Apriori.

Lấy cảm hứng từ thuật toán FP-growth dựa trên kỹ thuật Apriori, một số

lượng lớn các nghiên cứu tìm hiểu kỹ thuật khai thác FP-tree theo mô hình khai thác

song song và phân tán [23-27]. Những công trình này phân vùng dữ liệu thành

nhiều phần và sau đó xây dựng FP-tree riêng cho từng phần song song [23,24]. Mặt

khác, có một số thuật toán khác xây dựng cây FP-tree cho toàn bộ cơ sở dữ liệu,

bằng kỹ thuật cây song song. [25,26].

Một thuật toán song song hiệu quả khai thác mẫu phổ biến dựa trên nền tảng

song song không chia sẻ đã được trình bày trong [23]. Bằng cách phân vùng hiệu

quả danh sách các phần tử phổ biến trên bộ xử lý, thuật toán PFP-tree cố gắng giảm

tối thiểu chi phí kết nối và chi phí đồng bộ hóa. Cân bằng tải FP-tree (LFP-tree) là

một thuật toán khai thác phân tán và song song khác dựa trên cấu trúc FP-tree[24].

Thuật toán phân chia các tập phần tử cần khai thác theo chiều rộng và chiều sâu của

cây. Hơn nữa, một công thức tính toán đơn giản và đáng tin cậy để cân bằng tải đã

được đề xuất trong [24]. Thời gian kết nối trong LFP-tree đã giảm bớt bằng cách

giữ các phần tử nặng trong các nút máy tính cục bộ của nó, vì vậy LFP-tree giảm

được chút thời gian tính toán so với PFP-tree. Ngoài ra, nó có tốc độ tốt hơn so với

PFP-tree khi số lượng bộ vi xử lý tăng lên.

11

Page 12: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Cả 2 hướng tiếp cận LFP-tree và PFP-tree phát triển các tập phổ biến dựa

trên tiền tố cây. Thay vì xây dựng một số FP-tree cục bộ, Chen và các cộng sự.[26]

đề xuất một kỹ thuật cây phân vùng mà chỉ có một FP-tree và phân vùng nó thành

nhiều phần độc lập để khai thác mẫu phổ biến bằng cách chỉ định từng phần đến

một bộ xử lý. Tuy nhiên, phương pháp này vẫn còn bị hạn chế là tiêu tốn bộ nhớ và

chi phí kết nối giữa các bộ vi xử lý. DFP là một chiến lược khai thác tập phổ biến từ

dữ liệu terabyte trên hệ thống cụm được trình bày trong [25]. Trong chiến lược này,

thiết kế được tối ưu hóa để giảm chi phí giao tiếp bằng cách nén cấu trúc dữ liệu và

sử dụng phương pháp mã hóa. Tối ưu hóa để cải thiện bộ nhớ cache, bộ nhớ và I/O

bằng kỹ thuật rút gọn, và chiến lược sắp xếp dữ liệu thông minh cũng được sử dụng

trong chiến lược này.

PP-tree( Parallel pattern tree) là một cấu trúc cây mới được đề xuất ở [27].

PP-tree giảm chi phí I/O bằng cách nắm các nội dung cơ sở dữ liệu trong một lần

quét và FP-growth khai thác trên nó.

Mặc dù các phương pháp FP-tree cục bộ hoặc toàn cục có thể được xây

dựng mà chỉ tốn ít chi phí giao tiếp giữa các bộ vi xử lý, nhưng hầu như tất cả các

phương pháp tiếp cận đều tốn quá nhiều chi phí giao tiếp, trong quá trình khai thác

dữ liệu. Tất cả các phương pháp khai thác mẫu song song được phát triển trước đây

cũng có một vấn đề chung là “làm thế nào chúng ta có thể chia các bộ dữ liệu giữa

các máy tính và khai thác độc lập mà không cần phải chia sẻ thông tin và kết quả”.

Chúng tôi sử dụng mảng tâm thu để giải quyết vấn đề này. Kỹ thuật mảng

tâm thu cho phép chúng tôi khai thác mẫu phổ biến song song mà không cần phải

chia sẻ thông tin và kết quả và không làm I/O quá tải.

12

Page 13: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

CHƯƠNG 3: MÔ HÌNH VẤN ĐỀ

Trong phần này, chúng tôi giới thiệu mảng tâm thu và những vấn đề trong khai thác

tập phần tử phổ biến song song bằng cách sử dụng phương pháp biến đổi bit.

3.1 Mảng tâm thu

Một mảng tâm thu là sự sắp xếp từng vi xử lý trong một mảng, dòng chảy dữ

liệu đồng bộ chảy qua từng tế bào trong mảng, thông thường các dòng dữ liệu khác

nhau chảy theo hướng khác nhau. Mỗi bộ xử lý tại mỗi bước lấy dữ liệu từ những

bộ xử lý kế nó (ví dụ bắc và tây), xử lý nó, và kết quả đi ra theo hướng ngược lại.

Kung và Leiserson là những người đầu tiên viết một bài báo về mảng tâm thu [29].

Đây là một dạng đặc biệt của tính toán song song. Cell (bộ xử lý), tính toán dữ liệu

và lưu trữ nó độc lập. Trong loại song song này, không giống như nhiều hình thức

song song song khác, chúng tôi không bị mất tốc độ vì kết nối giữa các bộ xử lý.

Hình 4 cho thấy ví dụ của một Cell mảng tâm thu. Cell này có 2 đầu vào “a” và “b”’

và 1 bộ nhớ “m” để lưu dữ liệu. Sau đó mỗi lần tính toán, cell trả về 2 giá trị đầu ra

x và y. Công thức tính toán được xác định cho bộ xử lý.

Hình 4- Một cell của mảng tâm thu

13

Page 14: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

3.2 Vấn đề khai thác mẫu phần tử sử dụng mảng tâm thu.

Để sử dụng mảng tâm thu như là môi trường cho các thuật toán song song

của chúng tôi, đầu tiên chúng tôi xác định giá trị đầu vào, đầu ra và bộ nhớ trong

cell. Vì mục đích này, trước tiên chúng tôi sử dụng một mảng tâm thu có khả năng

xây dựng tất cả các tập phổ biến của một bộ dữ liệu và vector bit tương ứng của nó

để cho biết là nó thường xuyên hay không. Ý tưởng chính là:” xác định những phần

tử phổ biến trong tập dữ liệu, nếu có tồn tại “n” phần tử phổ biến trong tập dữ liệu,

sẽ có 2n-1 tập phần tử có khả năng phổ biến, kết quả là có 1 đến 2n-1 chuỗi nhị phân

của tập phần tử, và mỗi phần tử tương ứng với với 1 bit của trong từng chuỗi.” Để

thực hiện ý tưởng này, chúng ta hãy xem xét một mảng tâm thu một chiều với các

cell như hình 5.

Hình 5 – Chức năng của một cell trong mảng tâm thu 1 chiều

Sau đây là thông tin và luật từng cell của mảng tâm thu:.

- Mỗi cell có một bộ nhớ (x) lưu trữ vector bit của một phần tử.

- Mỗi cell có một bộ nhớ (m) lưu trữ tên của một phần tử.

- Mỗi cell có một bộ nhớ (z) lưu trữ một bit. Nếu có phần tử của cell

tương ứng trong tập phần tử thì z là 1, ngược lại z là 0.

Mỗi cell có đầu vào (y) gồm 3 phần: y(IS) là một tập phần tử, y(array) là

vector bit tương ứng của tập phần tử. Và y(sw) để xác định xem tiến trình xử lý đã

hoàn thành hay không.

14

Page 15: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Mỗi cell có 2 đầu ra “a” và “b”.

Đầu tiên, giả sử chúng ta có một mảng một chiều với n cell (n là số lượng

các phần tử phổ biến trong các bộ dữ liệu) sao cho output “a” của cell “i” là input

“y” của cell “i+1” ( cho mỗi 0<i<n). Input ban đầu cho cell đầu tiên trong từng tiến

trình là y, với y(IS) có giá trị là rỗng, y(array) là một vector n bit có giá trị là 1, và

y(sw) là 1.

Ví dụ, xét 8 dòng dữ liệu của hình 1. Nếu minsup là 2 thì kết quả là cột 3 của

hình 2. Do đó tập các phần tử phổ biến là {a,b,c,d,e,f} tương ứng ma trận bit Hình

3. Vì mỗi cell của mảng tâm thu lưu trữ các bit đại diện cho một phần tử, vì vậy

chúng tôi chuyển bộ dữ liệu sang chiều dọc. Các bộ dữ liệu theo chiều dọc có thể

được tạo ra bởi chuyển đổi ma trận bit tương ứng. Trong hình 6 cho thấy ma trân bit

chuyển đổi tương ứng hình 3.

Hình 6 – Ma trận bit chuyển đổi từ tập phần tử tương ứng với hình 1

Mỗi dòng của ma trận bit chuyển đổi tương ứng với một vector bit của một

phần tử và được lưu trong cell của mảng tâm thu. Hình 7 là ví dụ cho thấy giá trị

input của mảng tâm thu khi được khởi tạo lần đầu.

15

Page 16: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Hình 7 – khởi tạo ban đầu của mảng tâm thu

Để cho đơn giản, trong mảng tâm thu của hình 7. Chúng tôi không trình bày

vector bit của những phần tử của mỗi cell. Hình 7 chỉ chỉ ra tên từng phần tử, vị trí

của nó trong cell và vector bit chuyển đổi tương ứng của nó.

Ý tưởng khai thác là xây dựng tất cả các tập phần tử có thể có và vector bit

tương ứng của nó, và kiểm tra độ phổ biến của nó bằng cách đếm số lượng các bit

có giá trị “1” trong vector bit tương ứng. Vì mỗi cột của ma trận bit chuyển đổi

tương ứng với một hàng của các tập dữ liệu, nên nếu số bit có giá trị 1 trong vector

bit tương ứng của tập phần tử lớn hơn “minsup” ( hay chính xác “minsup” bit(s)),

thì tập đó sẽ là một tập phổ biến.

Mảng tâm thu của hình 7 cho thấy biểu diễn nhị phân của các con số từ 1 đến

63 ( 26 – 1 cho 6 phần tử) mà mỗi bit của số được lưu trữ trong một cell của mảng

và sau đó sử dụng các bit này để tạo ra một mẫu. Mẫu này và vector bit tương ứng

của nó di chuyển giữa các cell và có một cờ kiểm tra quá trình tạo mẫu kết thúc

trong từng bước.

Quá trình tính toán của mỗi cell trong qua từng bước được dựa trên các quy

tắc sau:

16

Page 17: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Quá trình tính toán này tạo ra tất cả các số từ 1 đến 2n -1 trong các cell của

mảng tâm thu mà mỗi bit của số được lưu trữ trong một cell của mảng. Ví dụ: dãy

nhị phân 6 bit của 31 là 011111 và dãy này được lưu trữ trong cell mảng tâm thu từ

trái sang phải ( 0 cho cell bên trái và 1 cho các cell khác).

Bạn có thể nhìn thấy quá trình lưu trữ trong hình 8-10

Hình 8 chỉ ra tập phần tử {f} là phổ biến vì số bit 1(output) của y(array) là 7

và lớn hơn minsup (minsup = 2).

17

Page 18: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Hình 8 – Lần input đầu tiên của mảng tâm thu

Hình 9 cho thấy lần input thứ 2 của mảng tâm thu.

18

Page 19: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Hình 9 – Lần di chuyển thứ hai của mảng tâm thu.

Bạn có thể nhìn thấy rằng sau lần input đầu tiên các cell của mảng xây dựng

dạng nhị phân của 2 và sau lần input thứ hai nó xây dựng các dạng nhị phân của 3.

Cần chú ý rằng, quá trình input diễn ra liên tục, ngay sau khi lần input đầu tiên vào

cell đầu tiên xong, sẽ input ngay lập tức vào cell thứ 2, và input lại vào cell đầu tiên,

cứ như thế tiếp tục.

Hình 10 cho thấy quá trình input của y vào mảng tâm thu trong lần thứ 3.

19

Page 20: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Hình 10 – Lần input thứ 3 của mảng tâm thu

Những hình trên trên cho thấy chức năng của mảng tâm thu.

Nhìn vào hình trên, ta thấy rằng sau tiến trình đầu, bit “1” bên trái của mảng

không thay đổi. Vì chỉ có logk+1( cho mỗi k) bit bên phải của k được sử dụng vì vậy

chúng tôi sử dụng một counter và ngừng sự dịch chuyển sau khi kết thúc input vào

cell bên trái là “1” của mảng tâm thu.

20

Page 21: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

CHƯƠNG 4: PHƯƠNG PHÁP KHAI THÁC SONG SONG

Trong phần này chúng tôi trình bày một phương pháp khai thác song song.

Trước tiên chúng tôi mô tả làm cách nào chúng ta có thể khai thác tập dữ liệu theo

phương pháp chia để trị và sau đó chúng tôi trình bày thuật toán song song của

chúng tôi.

4.1 Chia để trị

Chúng tôi sử dụng cách tiếp cận chia để trị để cải thiện phương pháp song

song. Trong cách tiếp cận này chúng tôi phân chia tập dữ liệu dựa trên các mẫu phổ

biến tối thiểu. Nói chung, chúng tôi chia các mẫu khai thác của mỗi bộ dữ liệu thành

các loại khác nhau dựa trên các phần tử. Vì mục tiêu này, trước tiên chúng tôi sắp

xếp các phần tử trong mỗi giao dịch về cùng một cấp độ (được gọi là cấp độ chung

trong bài báo này) và sau đó phân loại ra những mẫu phổ biến theo cấp độ như sau:

Những mẫu có chứa những phần tử đầu tiên (cùng cấp) sẽ là thành viên của nhóm

thứ 1, những mẫu có chứa các phần tử thứ hai và không có chứa phần tử đầu tiên sẽ

là thành viên của nhóm thứ 2, mẫu có chứa các phần tử thứ ba và không phần tử đầu

tiên và thứ hai sẽ là thành viên của nhóm thứ ba và vân vân.

Ví dụ như xem xét các ma trận bit của hình 8. Ma trận bit này có 6 phần tử

mà được sắp xếp theo thứ tự alphabets (ở đây thứ tự sắp xếp chung là dựa vào

alphabets). Chúng tôi phân chia mẫu rút trích của ma trận bit này thành 6 loại khác

nhau như sau:

(1) Những mẫu chứa a.

(2) Những mẫu chứa b và không chứa a.

(3) Những mẫu chứa c và không chứa a và b

(4) Những mẫu chứa d và không chứa a và b và c

21

Page 22: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

(5) Những mẫu chứa e và không chứa a và b và c,d

(6) Những mẫu chứa f.

Chúng tôi sử dụng hướng tiếp cận này trong khai thác mẫu phổ biến song

song để giảm thời gian thực thi. Vì mục tiêu này, chúng tôi chia mỗi nhóm thành

mảng tâm thu và sử dụng mảng để xây dựng mẫu của từng nhóm. Vì vậy, phương

pháp của chúng tôi tăng mức độ song song.

4.2 Mảng tâm thu 2 chiều

Dựa trên hướng tiếp cận chia để trị, chúng tôi sử dụng một mảng tâm thu với

n-1 cell để khai thác loại thứ nhất của tập dữ liệu (tập phổ biến có chứa a). Hình 11

cho thấy cấu trúc của mảng này.

Hình 11- Khởi tạo ban đầu của mảng tâm thu để khai thác tập phần tử có

chứa “a”

Trong mảng này, chúng tôi sử dụng cấu trúc giống như mảng trong phần 4

nhưng input bao gồm phần tử “a” và mảng không có cell tương ứng với phần tử “a”.

Giá trị input di chuyển trong mảng và cell giống như mảng trong phần 4. Chúng tôi

phát triển n-1 mảng cho n–1 phần tử ( tất cả nhưng trừ phần tử cuối cùng) của tập

dữ liệu. Vì thế chúng ta có mảng hai chiều như hình 12 giảm được thời gian thực thi

rất nhiều.

22

Page 23: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Hình 12- Mảng tâm thu hai chiều khai thác tập dữ liệu phổ biến.

Vì chúng tôi tiếp tục tính toán mỗi lần hoàn thành từng dòng của mảng trong khi

input tiến đến phía bên trái “1” của mảng tâm thu, thời gian thực thi được cải thiện

nhiều. Hơn nữa chúng ta biết rằng nếu số số “1” trong y (array) nhỏ hơn minsup

tiến trình của y sẽ dừng lại. Vì vậy chúng ta có thể sắp xếp các phần tử theo độ phổ

biến của nó và xác suất dừng tiến trình tăng lên ở các hàng cao hơn, nhiều cells hơn

và do đó thuật toán của chúng tôi được cải thiện. Kết quả thực nghiệm của chúng tôi

cho thấy thời gian thực thi của thuật toán khai thác dữ liệu giảm rất nhiều.

4.3 Thuật toán khai thác dựa trên mảng tâm thu

Thông qua cách tiếp cận chia để trị, chúng tôi trình bày một thuật toán song

song mới, SABMA (Systolic Array Based Mining Algorithm), khai thác các mẫu

23

Page 24: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

phổ biến của bộ dữ liệu hiệu quả. SABMA dùng 1 mảng tâm thu 2 chiều có n-1

dòng, với mỗi dòng “k” (mọi 1<=k<=n-1) chứa “n-k” cell. Hình 13 cho thấy thuật

toán khai thác dữ liệu dựa trên mảng tâm thu (SABMA).

Hình 13- Thuật toán SABMA

Tham số đầu vào của thuật toán này bao gồm m, số dòng của tập dữ liệu (là

số của cột ma trận bit chuyển đổi), n, số phần tử phổ biến (là số hàng của ma trận

bit chuyển đổi), y, input của mỗi hàng của mảng tâm thu, minsup, (người dùng chỉ

định) support tối thiểu của mẫu và bitMat, ma trận bit chuyển đổi từ tập dữ liệu.

Trong phần chính (trong khối chính “while’ của thuật toán), các thuật toán

xác định input cho các hàng khác nhau của mảng tâm thu, lặp đi lặp lại, sau đó gởi

24

Page 25: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

chúng đến các cell thứ nhất. Trong mỗi vòng của vòng lặp, các thuật toán cũng

kiểm tra output của các cell cuối cùng để xuất các giá trị thành file.

Trong mỗi vòng lặp for bên trong, đầu tiên input y được khởi tạo với các

phần tử có giá trị tương ứng. Ví dụ khi chúng ta có 6 phần tử {a,b,c,d,e,f} trong tập

dữ liệu, n là 6 và có 5 vòng lặp cho 5 dòng. Trong lần lặp đầu tiên, y[1] được khởi

tạo với giá trị y[1] .IS=‘a’, y[i] bitVector =10110000 ( dòng tương ứng của của

phần tử a trong ma trân bit), và y[1].sw =1 cho dòng đầu tiên. Tương tự, quá trình

chuẩn bị giá trị input tương ứng cho dòng kế tiếp được lặp lại. Sau đó khởi tạo

input, y[1] di chuyển từ 1 cell đến cell khác trên hàng đầu tiên của mảng tâm thu.

Khi input này đến cell số ([log2t+1]+1), thuật toán kiểm tra độ phổ biến của các tập

phổ biến, và nếu nó là phổ biến, nó sẽ được xuất ra file. Ví dụ, dòng thứ 3 của mảng

tâm thu của hình 12, ở lần lặp thứ 2 của vòng lặp for, y[3] được khởi tạo

(‘c’,10011100,1) và di chuyển trên hàng thứ 3 của mảng tâm thu. Khi nó đến số cell

([log22+1]+1)=2, tương ứng với tập dữ liệu (ce) sẽ được kiểm tra có phổ biến hay

không, và ‘ce’ sẽ được xuất ra file output là tập dữ liệu phổ biến. Dựa trên quy luật

mảng tâm thu, sau khi hoàn tất dòng thứ 3 của mảng tâm thu, z bit của cell d,e và f

sẽ tương ứng là 0,1 và 1. Giá trị z hàng này chuẩn bị input cho tập phần tử kế tiếp sẽ

là phần tử c (cef). Vòng lặp bên ngoài(while) đảm bảo quét tất cả tập phần tử trong

mỗi dòng của mảng tâm thu.

25

Page 26: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

26

Page 27: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

CHƯƠNG 5: KẾT QUẢ THỰC NGHIỆM

Trong phần này, chúng tôi nghiên cứu hiệu suất thuật toán của chúng tôi. Vì

thuật toán của chúng tôi trích xuất tất cả các tập phổ biến, chúng tôi có độ chính xác

tối đa (100%) trong mẫu đã rút trích. Do đó chúng tôi so sánh hiệu suất về độ chính

xác và kích thước của các mẫu output mà chúng tôi so sánh thời gian thực thi của

phương pháp song song. Tất cả các thực nghiệm của chúng tôi thực hiện trên máy

tính có cấu hình 2.2GHz core 2 duo CPU, 2GB RAM và 120 GB ổ cứng. Thời gian

chạy bao gồm thời gian tính toán và thời gian IO. Mặc dù PP-tree[27] cho thấy nó

có hiệu suất tốt hơn so với kiểu liệt kê cột và hàng dựa trên thuật toán song song

như PFP-tree[23], LFP-tree[24] và kỹ thuật phân hoạch song song [25,26], nó đã

được cấu hình thực nghiệm trong các nghiên cứu trước đây. Do đó, chúng tôi so

sánh các thuật toán của chúng tôi với PP-tree (là thuật toán song song tốt nhất),

LFP-tree ( là thuật toán song song không chia sẻ tốt nhất), và DFP (là kỹ thuật phân

vùng song song tốt nhất).

Vì kích thước không giống nhau của bộ dữ liệu được sử dụng để nghiên cứu

hiệu suất của thuật toán, chúng tôi không xác định ngưỡng minsup với một giá trị

chính xác. Thay vào đó, minsup được xác định bằng tỉ lệ phần trăm số lượng giao

dịch. Chúng tôi sử dụng năm bộ dữ liệu thực tế để so sánh các thuật toán. Chúng

tôi sử dụng 5 bộ dữ liệu thực tiêu chuẩn từ FIMI[28] để so sánh các thuật toán. Hình

14 cho thất một số thông tin thống kê về dữ liệu được sử dụng để nghiên cứu hiệu

suất.

27

Page 28: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Hình 14- Đặc điểm bộ dữ liệu test

Lưu ý rằng số lượng các bộ xử lý được mô phòng bởi phần mềm của chúng

tôi cho mỗi hai thuật toán là bằng nhau trong mỗi lần chạy.

Hình 15-19 cho thấy kết quả chạy hai thuật toán SABMA (thuật toán song

song dựa trên mảng tâm thu) và PP-Tree ( thuật toán cây song song) trên bộ dữ liệu

chuẩn thực tế. Chúng tôi thấy rằng nếu tăng min support hiệu suất tất cả các thuật

toán sẽ giảm.

Hình 15- Tập dữ liệu moshroom

28

Page 29: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Hình 16 – Tập dữ liệu Pumsb

Hình 17 – Tập dữ liệu accident

29

Page 30: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Hình 18 – Tập dữ liệu retail

Hình 19 – Tập Dữ liệu Kosarak

30

Page 31: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Kết Luận

Một trong những vấn đề lớn trong khai thác tập phổ biến là sự bùng nổ số lượng kết

quả làm trực tiếp ảnh hưởng đến thời gian thực thi của thuật toán khai thác tập phổ

biến, khi xử lý các bộ dữ liệu quá lớn. Một cách hữu ích và phù hợp để giải quyết

vấn đề này là sử dụng các kỹ thuật song song và phân phối. Trong bài viết này,

chúng tôi giới thiệu một phương pháp song song để khai thác các tập phổ biến trong

bộ dữ liệu rất lớn. Trong phương pháp của chúng tôi, chúng tôi sử dụng một ma trận

bit để nén dữ liệu, tính toán các thuật toán khai thác dễ dàng hơn và là cơ sở cho xử

lý song song. Chúng tôi sử dụng các mảng tâm thu để khai thác các mẫu phổ biến

song song vì chi phí kết nối và tính toán rất thấp. Kết quả thử nghiệm của chúng tôi

cho thấy rằng thuật toán của chúng tôi đạt được hiệu quả khai thác tốt trên nhiều bộ

dữ liệu đầu vào khác nhau. Hơn nữa, nghiên cứu của chúng tôi cho thấy rằng thuật

toán này nhanh hơn so với các thuật toán tốt nhất trước đó.

31

Page 32: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

TÀI LIỆU THAM KHẢO

[1] M.K. Sohrabi, A.A. Barforoush, Efficient colossal pattern mining in high

Dimensional datasets, Knowledge Based Systems

(2012),http://dx.doi.org/10.1016/j.knosys.2012.03.003.

[2] R. Agrawal, T. Imielinski, A. Swami, Mining association rules between sets of

items in large databases, in: Proceedings of the 1993ACM-SIGMOD International

Conference on Management of Data (SIGMOD’93), Washington, DC, 1993,

pp.207–216.

[3] R. Agrawal, R. Srikant, Fast algorithms for mining association rules, in: Proc.

1994 Int. Conf. Very Large Data Bases (VLDB’94), Santiago, Chile, September

1994, pp. 487–499.

[4] H. Mannila, H. Toivonen, A.I. Verkamo, Efficient algorithms for discovering

association rules, in: KDD’94, Seattle, WA, 1994, pp. 181–192.

[5] J. Han, J. Pei, Y. Yin, Mining frequent patterns without candidate generation, in:

Proceeding of the 2000 ACM-SIGMOD International Conference on Management

of Data (SIGMOD’00), Dallas, TX, 2000, pp. 1–12.

[6] R. Agarwal, C.C. Aggarwal, V.V.V. Prasad, A tree projection algorithm for

generation of frequent itemsets, Journal of Parallel and Distributed Computing

61 (2001) 350–371.

[7] J. Liu, Y. Pan, K. Wang, J. Han, Mining frequent item sets by opportunistic

projection, in: Proceeding of the 2002 ACM SIGKDD International Conference

on Knowledge Discovery in Databases (KDD’02), Edmonton, Canada, 2002, pp.

239–248.

[8] G. Grahne, J. Zhu, Efficiently using prefix-trees in mining frequent itemsets, in:

32

Page 33: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

Proceeding of the ICDM’03 International Workshop on Frequent Itemset Mining

Implementations (FIMI’03), Melbourne, FL, 2003, pp. 123–132.

[9] M.J. Zaki, Scalable algorithms for association mining, IEEE Transaction of

Knowledge and Data Engineering 12 (2000) 372–390.

[10] N. Pasquier, Y. Bastide, R. Taouil, L. Lakhal, Discovering frequent closed

Itemsets for association rules, in: Proceeding of the 7th International

Conference on Database Theory (ICDT’99), Israel, 1999, pp. 398-416.

[11] J. Pei, J. Han, R. Mao, CLOSET an effective algorithm for mining frequent

closed

itemsets, in: Proceeding of the 2000 ACM-SIGMOD SIGMOD International

Workshop Data Mining and Knowledge Discovery (DMKD’00), Dallas, TX,

2000, pp. 11–20.

[12] M.J. Zaki, C.J. Hsiao, CHARM: an efficient algorithm for closed itemset

mining,

in: Proceeding of the 2002SIAM International Conference on Data Mining

(SDM’02), Arlington, VA, 2002, pp. 457–473.

[13] J. Wang, J. Han, J. Pei, CLOSET+: searching for the best strategies for mining

frequent closed itemsets, in: Proceeding of the 2003 ACM SIGKDD

International Conference on Knowledge Discovery and Data Mining

(KDD’03), Washington, DC, 2003, pp. 236–245.

[14] G. Grahne, J. Zhu, Efficiently using prefix-trees in mining frequent itemsets,

in:

Proceeding of the ICDM’03 International Workshop on Frequent Itemset

Mining Implementations (FIMI’03), Melbourne, FL, 2003, pp. 123–132.

33

Page 34: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

[15] U. Yun, Mining lossless closed frequent patterns with weight constraints,

Knowledge Based Systems 20 (1) (2007) 86–97.

[16] F. Zhu, X. Yan, J. Han, P. Yu, H. Cheng, Mining colossal frequent patterns by

core

pattern fusion, in: Proceeding of the 2007 Pacific-Asia Conference on

Knowledge Discovery and Data Mining, 2007.

[17] Madhavi Dabbiru, Moghalla Shashi, An efficient approach to colossal

pattern.mining, in: International Journal of Computer Science and Network

Security (IJCSNS), 2010, pp. 304–312.

[18] J. Dong, M. Han, BitTableFI: an efficient mining frequent itemsets algorithm,

Knowledge Based Systems 20 (4) (2007) 329–335.

[19] W. Song, B. Yang, Z. Xu, Index-BitTableFI: an improved algorithm for mining

frequent itemsets, Knowledge Based Systems 20 (4) (2007) 329–335.

[20] Z. Xu, D. Gu, S. Wei, An efficient matrix algorithm for mining frequent

itemsets,

in: International Conference on Computational Intelligence and Software

Engineering, CiSE, 2009.

[21] B. Schlegel, R. Gemulla, W. Lehner, Memory-efficient frequent itemset

mining,

in: Proc. 14th International Conference on Extending Database Technology

(EDBT), 2011.

[22] M.J. Zaki, Parallel and distributed association mining: a survey, IEEE

Concurrency 7 (4) (1999) 14–25.

[23] A. Javed, A. Khokhar, Frequent pattern mining on message passing

34

Page 35: Khai Thac Mau Pho Bien Song Song Dua Tren Mang Tam Thu

multiprocessor systems, Distributed and Parallel Databases 16 (2004) 321–

334.

[24] K.-M. Yu, J. Zhou, W.C. Hsiao, Load balancing approach parallel algorithm

for

frequent pattern mining, in: PaCT, 2007, pp. 623–631.

[25] G. Buehrer, S. Parthasarathy, S. Tatikonda, T. Kurc, J. Saltz, Toward terabyte

pattern mining an architecture-conscious solution, in: PPoPP, 2007, pp. 2–12.

[26] D. Chen, C. Lai, W. Hu, W.G. Chen, Y. Zhang, W. Zheng, Tree partition based

parallel frequent pattern mining on shared memory systems, in: IEEE Parallel

and Distributed Processing Symposium, 2006.

[27] S.K. Tanbeer, C.F. Ahmed, B.-S. Jeong, Parallel and distributed algorithms for

frequent pattern mining in large databases, IETE Technical Review (2010).

[28] Frequent Itemset Mining Implementations Repository. <http://

fimi.cs.helsinki.fi/>.

[29] H.T. Kung, C.E. Leiserson, Algorithms for VLSI processor arrays, in: C.

Mead, L.

Conway (Eds.), Introduction to VLSI Systems, Addison-Wesley, 1979.

35