KHAI THÁC SONG SONG tập PHỔ BIẾN dựa TRÊN VECTOR BIT ĐỘNG

83 137 1
KHAI THÁC SONG SONG tập PHỔ BIẾN dựa TRÊN VECTOR BIT ĐỘNG

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

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

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN  NGUYỄN TẤN THÀNH KHAI THÁC SONG SONG TẬP PHỔ BIẾN DỰA TRÊN VECTOR BIT ĐỘNG LUẬN VĂN THẠC SĨ NGÀNH: KHOA HỌC MÁY TÍNH Mã số: 60.48.01.01 NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS Lê Hoài Bắc TP HỒ CHÍ MINH – 2015 LỜI CẢM ƠN Tơi xin bày tỏ lòng biết ơn sâu sắc đến Thầy, PGS TS Lê Hoài Bắc, người hết lòng hướng dẫn, động viên giúp đỡ cho tơi hồn thành luận văn Tơi xin chân thành gửi lời cám ơn đến quý Thầy Cô trường Đại Học Cơng nghệ thơng tin TP.HCM tận tình dạy dỗ, bảo kiến thức q báu giúp tơi hồn thành khóa học tiến độ tảng cho nghiên cứu Xin cảm ơn Phòng Sau đại học nhiệt tình hỗ trợ mặt thủ tục, giấy tờ Cuối cùng, xin chân thành cảm ơn cha mẹ, chị em, bạn bè đồng nghiệp khích lệ, động viên, tạo điều kiện thuận lợi cho suốt thời gian thực luận văn TP HCM, tháng 10 năm 2015 Tác giả luận văn Nguyễn Tấn Thành LỜI CAM ĐOAN Tôi xin cam đoan nội dung luận văn cơng trình nghiên cứu thân tơi Tất tài liệu tham khảo từ nghiên cứu có liên quan nêu rõ nguồn gốc phần tài liệu tham khảo Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Tác giả luận văn Nguyễn Tấn Thành MỤC LỤC Chương 1.1 TẬP PHỔ BIẾN 13 Tập phổ biến 13 1.1.1 Định nghĩa 13 1.1.2 Các tính chất tập phổ biến 14 1.1.3 Cách biểu diễn liệu 14 1.2 Một số thuật toán khai thác tập phổ biến 16 1.2.1 Phương pháp sinh ứng viên – thuật toán Apriori: 16 1.2.2 Thuật toán Eclat 20 1.2.3 Thuật toán FP-Growth 21 1.2.4 Thuật toán BitTableFI 21 Chương MỘT SỐ TIẾP CẬN TRONG KHAI THÁC SONG SONG TẬP PHỔ BIẾN 23 2.1 Nguyên lý thiết kế thuật toán song song 23 2.2 Một số thuật toán khai thác song song tập phổ biến 23 2.2.1 Hệ thống nhớ phân tán nhớ chia sẻ 24 2.2.2 Mơ hình song song liệu song song tác vụ 25 2.2.3 Chiến lược cân tải động tĩnh 25 2.2.4 Thuật toán khai thác song song tập phổ biến dựa Apriori 27 2.2.5 Khai thác song song tập phổ biến dựa Eclat 39 2.2.6 Khai thác song song tập phổ biến dựa FP-Growth 43 2.2.7 Thuật toán song song Apriori tảng Hadoop MapReduce 46 Chương KHAI THÁC SONG SONG TẬP PHỔ BIẾN DỰA TRÊN MẢNG TÂM THU VÀ VECTOR BIT ĐỘNG 51 3.1 Khai thác tập phổ biến với vector bit động 51 3.1.1 Khái niệm 51 3.1.2 Cấu trúc vector bit động (DBV – Dynamic Bit Vector) 51 3.1.3 Thuật tốn tìm phần giao hai vector bit động 52 3.1.4 Một số nhận xét thuật toán 53 3.1.5 Cách tính nhanh độ phổ biến tập mục 54 3.2 Khai thác song song tập phổ biến với mảng tâm thu 54 3.2.1 Khái quát mảng tâm thu 54 3.2.2 Bài toán khai thác song song tập phổ biến sử dụng mảng tâm thu 56 3.2.3 Sử dụng phương pháp chia để trị khai thác song song tập phổ biến 62 3.2.4 Mảng tâm thu hai chiều 63 3.2.5 Thuật toán khai thác song song tập phổ biến với mảng tâm thu chiều 64 3.3 Thuật toán khai thác song song tập phổ biến dựa mảng tâm thu vector bit động 67 Chương KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 76 4.1 Kết thực nghiệm 76 4.2 Kết luận đánh giá 80 4.3 Hướng nghiên cứu 81 DANH MỤC CÁC KÝ HIỆU VIẾT TẮT KÍ HIỆU Ý NGHĨA CSDL Cơ sở liệu DB Cơ sở liệu (Database) FP-Tree Cây phổ biến mẫu ( Frequent Pattern Tree) HDFS Hệ thống tập tin phân tán Hadoop (Hadoop Distributed File System) KTDL Khai thác liệu minconf Độ tin cậy tối thiểu minsup Độ hỗ trợ tối thiểu DBV Vector bit động (Dynamic Bit Vector) Sup Độ hỗ trợ (support) SABMA Thuật toán khai thác dựa mảng tâm thu (Systolic Array Based Mining Algorithm) DBV_SABMA Thuật toán khai thác dựa mảng tâm thu – Vector bit động (Dynamic Bit Vector- Systolic Array Basic Mining Algorithm) DANH MỤC CÁC BẢNG Bảng 1.1 Cơ sở liệu mẫu 13 Bảng 1.2 Minh họa liệu định dạng theo chiều dọc 15 Bảng 1.3 Minh họa liệu biểu diễn ma trận bit 16 Bảng 1.4 Các tập phổ biến có danh mục 18 Bảng 1.5 Các tập phổ biến có danh mục 18 Bảng 1.6 Các tập phổ biến có danh mục 19 Bảng 1.7 Các tập phổ biến có danh mục 19 Bảng 2.1 Phân hoạch sở liệu D 29 Bảng 2.2 Tập phổ biến 1-itemset 30 Bảng 2.3 Tập phổ biến 2-itemset 30 Bảng 2.4 Tập phổ biến 3-itemset 31 Bảng 2.5 Tập phổ biến 4-itemset 32 Bảng 2.6: Tập phổ biến 5-itemset 32 Bảng 2.7 Tập phổ biến 1-itemset 35 Bảng 2.8 : Tập phổ biến 2-itemset 35 Bảng 2.9 Tập phổ biến 3-itemset 35 Bảng 2.10 Tập phổ biến 4-itemset 36 Bảng 2.11 Tập phổ biến 5-itemset 36 Bảng 2.12 CSDL minh họa thuật toán song song Eclat 41 Bảng 2.13 Phân hoạch CSDL cục 44 Bảng 3.1 Bảng tra số bit 54 Bảng 3.2 Biểu diễn cấu trúc DBV cho item hình 3.7 68 DANH MỤC CÁC HÌNH Hình 1.1 Thuật tốn Apriori 17 Hình 2.1 Kiến trúc nhớ chia sẻ khai thác liệu [13] 24 Hình 2.2 Kiến trúc nhớ phân tán khai thác liệu [13] 24 Hình 2.3 Phân loại mơ hình số thuật tốn song song điển hình [7] 26 Hình 2.4 Thuật tốn Count Distribution [7] 28 Hình 2.5 Thuật tốn song song Eclat [7] 41 Hình 2.6 Khai thác tập mục phổ biến sử dụng thuật tốn song song Eclat 42 Hình 2.7 Cấu trúc FP-Tree cục xây dựng từ phân hoạch sở liệu 44 Hình 2.8 Khai thác tập mục phổ biến sử dụng thuật toán song song FP-Growth 45 Hình 2.9 Minh họa trình sinh tập phổ biến 1-itemsets 47 Hình 2.10 Thuật tốn Mapper, Combiner and Reducer [12] 49 Hình 3.1 Minh họa cấu trúc DBV 51 Hình 3.2 Thí dụ cách tìm phần giao hai DBV 52 Hình 3.3 Thuật tốn tìm phần giao hai DBV 53 Hình 3.4 Một cell mảng tâm thu 55 Hình 3.5 Một số mơ hình phổ biến mảng tâm thu 55 Hình 3.6 Chức cell mảng tâm thu chiều 56 Hình 3.7 Thí dụ liệu 57 Hình 3.8 Ma trận bit rút gọn với minsup=2 57 Hình 3.9 Ma trận bit chuyển đổi từ tập phần tử tương ứng với hình 3.8 58 Hình 3.10 Khởi tạo ban đầu mảng tâm thu 58 Hình 3.11 Lần gửi giá trị đầu vào qua mảng tâm thu 60 Hình 3.12 Lần thứ hai gửi giá trị đầu vào qua mảng tâm thu 61 Hình 3.13 Lần thứ ba gửi giá trị đầu vào qua mảng tâm thu 62 Hình 3.14 Khởi tạo ban đầu mảng tâm thu để khai thác tập phần tử có chứa “a” 63 Hình 3.15 Khai thác tập liệu phổ biến với mảng tâm thu hai chiều 64 Hình 3.16 Thuật toán SABMA [9] 65 Hình 3.17 Chức xử lý mảng tâm thu 67 Hình 3.18 Khởi tạo mảng tâm thu để khai thác tập mục có chứa “a” dựa DBV 69 Hình 3.19 Khởi tạo mảng tâm thu chiều để khai thác tập phổ biến dựa DBV 69 Hình 3.20 Mã giả minh họa thuật toán DBV_SABMA 71 Hình 3.21 Minh họa giá trị khởi tạo cho lần di chuyển 72 Hình 3.22 Giá trị khởi tạo chuẩn bị cho lần di chuyển thứ qua mảng tâm thu 74 Hình 3.23 Giá trị khởi tạo chuẩn bị cho lần di chuyển thứ qua mảng tâm thu 74 Hình 4.1 Kết thử nghiệm với liệu Retail 77 Hình 4.2 Kết thử nghiệm với liệu T10I4D100K 77 Hình 4.3 Kết thử nghiệm với liệu Mushroom 78 Hình 4.4 Kết thử nghiệm với liệu giao dịch Coopmart 79 MỞ ĐẦU Đặt vấn đề Với tốc độ phát triển công nghệ thông tin nay, kho liệu mà người sở hữu vô phong phú, đa dạng không ngừng gia tăng với tốc độ chóng mặt Lượng liệu khổng lồ thực nguồn tài nguyên giá trị thơng tin yếu tố đóng vai trò then chốt hoạt động, hỗ trợ hiệu cho người trình định Bài toán với yêu cầu đặt khai thác thơng tin có ích từ kho liệu khổng lồ dẫn đến nhu cầu cấp thiết cần phải có kỹ thuật công cụ để chuyển đổi lượng liệu to lớn thành tri thức có ích Khai thác liệu kỹ thuật khám phá tri thức phát thông tin tiềm ẩn có ích từ sở liệu lớn Đây hướng tiếp cận có nhiều ý nghĩa, lĩnh vực thời nhận quan tâm nhà khoa học ngồi nước Từ đó, kỹ thuật khai thác liệu không ngừng phát triển có nhiều kết đáng khích lệ, đặc biệt lĩnh vực hoạt động sản xuất kinh doanh, y học, … Các kỹ thuật phát tri thức khai thác liệu thực qua nhiều giai đoạn thường sử dụng kỹ thuật phân lớp, phân cụm, tổng hợp, tìm luật kết hợp, … Một hướng tiếp cận hiệu nhận nhiều quan tâm từ nhà nghiên cứu khai thác luật kết hợp (association rules), dạng luật biểu diễn tri thức đơn giản kết thu lại có nhiều ý nghĩa việc phát luật tiềm ẩn sở liệu Thông tin mà dạng luật đem lại đáng kể hỗ trợ khơng nhỏ q trình định Bài toán xác định luật kết hợp lần Agrawal R giới thiệu sau giải sở thuật tốn Apriori [2] Phần lớn thuật toán phát luật kết hợp chia q trình giải tốn thành hai giai đoạn: giai đoạn xác định tập phổ biến, tập phần tử mà số lần xuất chúng sở liệu khảo sát khơng nhỏ ngưỡng người dùng quy định [2] Sau đó, từ tập phổ biến thu giai đoạn này, thuật toán chuyển sang giai đoạn để sinh luật kết hợp Trong hai giai đoạn trên, giai 10 đoạn xác định khó khăn, phức tạp tốn nhiều chi phí quan tâm nhiều từ nhà nghiên cứu Thuật toán xác định tập phổ biến có độ phức tạp tính tốn cỡ hàm mũ Mặt khác, sở liệu khảo sát ngày gia tăng kích thước Vì thế, có nhiều thuật tốn đề xuất nhằm cải thiện hiệu tính tốn q trình khai thác tập phổ biến có nhiều kết khả quan Trong số thuật tốn này, kể đến lớp toán sử dụng nhiều mà đại diện thuật toán Apriori, Eclat FP-Growth Thuật toán Apriori xây dựng với tư tưởng đơn giản tìm tập phổ biến chứa phần tử trước tiên, sau sinh ứng viên tập có hai phần tử để từ xác định tập phổ biến có hai phần tử Q trình lặp đến khơng ứng viên sinh Nhược điểm phương pháp trình duyệt sở liệu thực nhiều lần phát sinh nhiều chi phí cho việc sinh loại bỏ ứng viên Thuật tốn Eclat nhóm nghiên cứu Zaki đề xuất vào năm 1997 Trong thuật toán này, tác giả đưa khái niệm lớp tương đương để giảm tập ứng viên Ngoài ra, để hạn chế số lần quét sở liệu, tác giả sử dụng định dạng liệu theo chiều dọc dựa vào phần giao tập định danh giao dịch (Transactions Identifier Set - TidSet) để tính nhanh tập phổ biến Vào năm 2003, nhóm Zaki đưa cải tiến với kỹ thuật sử dụng Diffset (Different Set) nhằm nâng cao hiệu tính tốn Thuật toán FP-Growth Han cộng đề xuất vào năm 2000 sử dụng cấu trúc FP-Tree (Frequent Pattern) để nén sở liệu từ xác định tập phổ biến Ưu điểm thuật toán không sinh ứng viên quét sở liệu hai lần Thuật toán tiếp tục cải tiến với tên gọi FP-Growth* vào năm 2005 tác giả Grahne Zhu Ngoài lớp thuật tốn trên, kể từ năm 2007 có số nghiên cứu đề xuất sử dụng cấu trúc bit vector để nén tập liệu khai thác tập phổ biến thuật toán BitTableFI, Index-BitTableFI Đến năm 2011, thuật toán dựa cấu trúc vector bit động (DBV – Dynamic Bit Vector) nghiên cứu để giảm khơng gian lưu trữ cải thiện thời gian tính toán khai thác tập phổ biến 10 69 Nếu khai thác với minsup=2 kết tập phần tử phổ biến {a, b, c, d, e, f} Dựa theo phương pháp chia để trị trình bày trên, mảng tâm thu với n1 xử lý sử dụng để khai thác loại thứ tập liệu (là tập phổ biến có chứa a) khởi tạo sau: b {0, 100} c {0, 57} d {0, 118} e {0, 250} f {0, 247} {0, 13} ({a}, 1) Hình 3.18 Khởi tạo mảng tâm thu để khai thác tập mục có chứa “a” dựa DBV Nhằm khai thác tất tập phổ biến có, ta thiết kế mảng tâm thu chiều khởi tạo để khai thác song song tập phổ biến hình 3.19 b {0, 100} c {0, 57} d {0, 118} e {0, 250} f {0, 247} c {0, 57} d {0, 118} e {0, 250} f {0, 247} d {0, 118} e {0, 250} f {0, 247} e {0, 250} f {0, 247} f {0, 247} Hình 3.19 Khởi tạo mảng tâm thu chiều để khai thác tập phổ biến dựa DBV 69 70 Để xác định tập mục {af} có phổ biến hay khơng, dựa vào thuật tốn tìm phần giao hai DBV trình bày mục 3.1.2, DBV(a) = {0, 13} và DBV(f) = {0, 247}, DBV(af)= DBV(a) ∩ DBV(f) = {0, 5} Dựa đề xuất cách tính nhanh độ hỗ trợ itemset trình bày mục 3.1.5 việc sử dụng bảng tra để tra số lượng bit byte tương ứng, ta xác định sup(af) = >= minsup nên tập mục {af} phổ biến Tương tự, để xác định tập mục {ae} có phổ biến hay khơng, dựa vào thuật tốn tìm phần giao hai DBV trình bày mục 3.1.2, DBV(a) = {0, 13} và DBV(e) = {0, 250}, DBV(ae)= DBV(a) ∩ DBV(e) = {0, 8} Dựa đề xuất cách tính nhanh độ hỗ trợ itemset trình bày mục 3.1.5 việc sử dụng bảng tra để tra số lượng bit byte tương ứng, ta xác định sup(ae) = < minsup nên tập mục {ae} không phổ biến Sau mã giả trình bày thuật tốn cải tiến DBV_SABMA: DBV = Record Begin pos : integer; Bitlist : Array of byte // danh sách byte loại bỏ byte không // đầu cuối vector bit End; InputStruct = Record Begin sw: boolean; Is: String; dbv: DBV End; Procedure DBV_SABMA Input n: integer; //number of frequent items items: array[1 n] of integer; //set of all frequent items y: array [1 n-1] of InputStruct; //input of systolic array’s row minsup : integer; // minimum support 70 71 dbvArray: array[1 n] of DBV Output File: TextFile; // File of the frequent Itemsets mined from the dataset Var i: integer Begin 1) t:=1 2) while (there is at list one bit z with value 0) then 3) Begin 4) For i:=1 to n-1 5) Begin 6) y[i].Is :=intostr(items[i] + ' ') ; 7) y[i].dbv := dbvArray[items[i]] ; 8) y[i].sw :=1; 9) send y[i] to first cell of row i of systolic array; if (there are a valid value in output “a” of cell [log ( 𝑡 + 1)]+1) then 10) 11) if (the itemset is frequent) then Output (File, a.Is) 12) End; 13) t:=t+1; 14) End; End; Hình 3.20 Mã giả minh họa thuật tốn DBV_SABMA Trong phần thuật tốn, ta xác định giá trị đầu vào cho dòng khác mảng tâm thu, sau gửi chúng đến xử lý dòng mảng tâm thu Trong lần lặp for bên trong, trước tiên đầu vào y khởi tạo với giá trị item tương ứng Thí dụ, có item phổ biến {a, b, c, d, e, f} tập liệu, n vòng lặp bên có lần lặp tương ứng cho dòng Trong lần lặp vòng lặp for, y[1] khởi tạo với giá trị : y[1].Is = ‘a’, y[1].dbv = {0, 13} (DBV tương ứng tập mục a), y[1].sw = để chuẩn bị đầu vào cho dòng thứ Tương tự lần lặp thứ 2, y[2] khởi tạo với giá trị: y[2].Is = ‘b’, y[2].dbv = {0, 100} , y[2].sw = để chuẩn bị đầu 71 72 vào cho dòng thứ hai Để chuẩn bị đầu vào cho dòng thứ mảng tâm thu, lần lặp thứ khởi tạo y[3] với giá trị: y[3].Is = ‘c’, y[3].dbv = {0, 57} , y[3].sw = Lần lặp thứ 4, y[4] khởi tạo với giá trị: y[4].Is = ‘d’, y[4].dbv = {0, 118} , y[4].sw = để chuẩn bị đầu vào cho dòng thứ Và tương tự, lần lặp thứ 5, y[5] khởi tạo với giá trị: y[5].Is = ‘e’, y[5].dbv = {0, 250} , y[5].sw = để chuẩn bị đầu vào cho dòng thứ b {0, 100} c {0, 57} d {0, 118} e {0, 250} f {0, 247} c {0, 57} d {0, 118} e {0, 250} f {0, 247} {0, 100} d {0, 118} e {0, 250} f {0, 247} {0, 57} e {0, 250} f {0, 247} {0, 118} f {0, 247} {0, 250} {0, 13} ({a}, 1) ({b}, 1) ({c}, 1) ({d}, 1) ({e}, 1) Hình 3.21 Minh họa giá trị khởi tạo cho lần di chuyển mảng tâm thu chiều Sau khởi tạo, đầu vào y[1] di chuyển ngang qua dòng thứ mảng tâm thu truyền theo thứ tự từ xử lý đến xử lý Tương tự, y[2] di chuyển ngang qua dòng hai mảng tâm thu, y[3] di chuyển ngang qua dòng ba mảng tâm thu, y[4] di chuyển ngang qua dòng tư mảng tâm thu, y[5] di chuyển ngang qua dòng cuối mảng tâm thu Khi đầu vào di chuyển đến xử lý số [log ( 𝑡 + 1)]+1, thuật toán kiểm tra độ phổ biến tập mục Nếu tập mục phổ biến, chúng ghi vào tập 72 73 tin kết Quá trình tính tốn xử lý dòng, xử lý mảng tâm thu thực hồn tồn song song Thí dụ, lần di chuyển (tương ứng với lần lặp t=1 vòng lặp while), dòng thứ mảng tâm thu hình 3.21 khai thác tập {af}, đầu vào y[1] (‘a’, {0,13}, 1) di chuyển ngang qua hàng thứ mảng tâm thu Theo quy tắc tính tốn xử lý, xử lý f, y[1] có giá trị : y[1].Is = ‘af’, y[1].dbv = DBV (a) ∩ DBV(f) = {0, 5} Do sup(af) = >= minsup nên tập {af} phổ biến ghi vào tập tin kết Dòng thứ mảng tâm thu thực song song để khai thác tập {bf}, đầu vào y[2] (‘b’, {0,100}, 1) di chuyển ngang qua hàng thứ mảng tâm thu Theo quy tắc tính tốn xử lý, xử lý f, y[2] có giá trị : y[2].Is = ‘bf’, y[2].dbv = DBV (b) ∩ DBV(f) = {0, 4} Do sup(bf) = < minsup nên tập {bf} không phổ biến Trong đó, dòng thứ mảng tâm thu khai thác tập {cf}, đầu vào y[3] (‘c’, {0,57}, 1) di chuyển ngang qua hàng thứ mảng tâm thu Theo quy tắc tính tốn xử lý, xử lý f, y[3] có giá trị : y[3].Is = ‘cf’, y[3].dbv = DBV (c) ∩ DBV(f) = {0, 49} Do sup(cf) = >= minsup, nên tập {cf} phổ biến ghi vào tập tin kết Song song đó, dòng thứ mảng tâm thu khai thác tập {df}, đầu vào y[4] (‘d’, {0, 118}, 1) di chuyển ngang qua hàng thứ mảng tâm thu Theo quy tắc tính tốn xử lý, xử lý f, y[4] có giá trị: y[4].Is = ‘df’, y[4].dbv = DBV (d) ∩ DBV(f) = {0, 118} Do sup(df) = >= minsup, nên tập {df} phổ biến ghi vào tập tin kết Dòng thứ mảng tâm thu thực song song để khai thác tập {ef}, đầu vào y[5] (‘e’, {0, 250}, 1) di chuyển ngang qua hàng thứ mảng tâm thu Theo quy tắc tính tốn xử lý, xử lý f, y[5] có giá trị: y[5].Is = ‘ef’, y[5].dbv = DBV (e) ∩ DBV(f) = {0, 242} Do sup(ef) = >= minsup, nên tập {ef} phổ biến ghi vào tập tin kết Dựa quy luật tính tốn xử lý, sau lần di chuyển hoàn tất, giá trị z xử lý dòng điều chỉnh để chuẩn bị cho lần di chuyển thứ hai hình 3.22 Lúc này, dòng thứ khai thác xong nên xem hoàn tất q trình khai thác dòng Ở lần di chuyển thứ hai (tương ứng với lần lặp t=2 vòng lặp while), dòng thứ mảng tâm thu hình 3.22 khai 73 74 thác tập {ae} Đồng thời, thời điểm đó, dòng thứ khai thác tập {be}, dòng thứ khai thác tập {ce}, dòng thứ khai thác tập {de} b {0, 100} c {0, 57} d {0, 118} e {0, 250} f {0, 247} c {0, 57} d {0, 118} e {0, 250} f {0, 247} {0, 100} d {0, 118} e {0, 250} f {0, 247} {0, 57} e {0, 250} f {0, 247} {0, 13} ({a}, 1) ({b}, 1) ({c}, 1) {0, 118} ({d}, 1) Hình 3.22 Giá trị khởi tạo chuẩn bị cho lần di chuyển thứ qua mảng tâm thu Theo quy tắc tính tốn xử lý, sau kết thúc lần di chuyển thứ Mảng tâm thu điều chỉnh giá trị z xử lý để chuẩn bị cho lần di chuyển thứ ba hình 3.23 b {0, 100} c {0, 57} d {0, 118} e {0, 250} f {0, 247} c {0, 57} d {0, 118} e {0, 250} f {0, 247} {0, 100} d {0, 118} e {0, 250} f {0, 247} {0, 57} e {0, 250} f {0, 247} {0, 13} ({a}, 1) ({b}, 1) ({c}, 1) {0, 118} ({d}, 1) Hình 3.23 Giá trị khởi tạo chuẩn bị cho lần di chuyển thứ qua mảng tâm thu 74 75 Ở lần di chuyển thứ 3, dòng khai thác tập {aef}, dòng khai thác tập {bef}, dòng khai thác tập {cef}, dòng khai thác tập {def} Sau kết thúc lần di chuyển thứ Mảng tâm thu điều chỉnh giá trị z xử lý để chuẩn bị cho lần di chuyển Q trình lặp vòng lặp while bên để đảm bảo khai thác tất phần tử có khả phổ biến dòng mảng tâm thu Ngoài ra, tập mục phổ biến 1-itemsets ban đầu xếp tăng dần theo độ phổ biến trước khởi tạo cho mảng tâm thu để tận dụng ưu điểm DBV tính tốn Nhờ kỹ thuật loại bỏ byte không đầu cuối vector bit, đề xuất cách tính nhanh độ phổ biến itemset bên thuật tốn tìm phần giao hai DBV Thuật tốn DBV_SABMA giảm khơng gian lưu trữ thời gian tính tốn liệu đầu vào truyền qua xử lý mảng tâm thu 75 76 Chương KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 4.1 Kết thực nghiệm Để có sở đánh giá kết nghiên cứu chứng minh tính hiệu thuật tốn đề nghị, tất thuật tốn lập trình với ngơn ngữ Java tảng JDK 8.0 Kiến trúc mảng tâm thu giả lập dựa phương pháp lập trình song song Multithread (đa tuyến) Java Mỗi xử lý mô mảng tâm thu xây dựng dựa tuyến trình(Thread) Chương trình mơ sử dụng kiến trúc nhớ chia sẻ truyền thông điệp qua xử lý chế đồng tuyến Máy tính chạy chương trình thử nghiệm Window Server 2008 với cấu hình CPU Intel Core Gbs RAM: Các CSDL thử nghiệm lấy từ http://fimi.cs.helsinki.fi/data Bộ liệu Retail gồm 88.162 giao dịch với 16.469 item Bộ liệu T10I4D100K gồm 100.000 giao dịch với 1.000 item Bộ liệu Mushroom gồm 8.124 giao dịch với 120 item Ngồi ra, chương trình thử nghiệm liệu giao dịch công ty COOP-Mart thực giao dịch năm 2006 Bộ liệu gồm 104.932 giao dịch với 26.497 item So sánh hiệu suất thực thuật toán SABMA gốc thuật toán DBV_SABMA cải tiến liệu chuẩn CSDL dùng để thử nghiệm Retail Tổng cộng có 88.600 giao dịch có 16.469 item Hình 4.1 cho thấy thời gian thực thi chương trình thuật tốn đề nghị tốt SABMA tham số độ hỗ trợ từ ngưỡng 0.03 trở xuống Chẳng hạn, khai thác với độ hỗ 0.024, thời gian thực thi DBV_SABMA 4.97 (s) SABMA 19.48 (s) 76 77 25 Time (sec) 20 15 SABMA 10 DBV_SABMA 0.4 0.3 0.1 0.03 0.025 0.024 Minsup Hình 4.1 Kết thử nghiệm với liệu Retail CSDL thứ hai dùng để so sánh T10I4D100K Tổng cộng có 100.000 giao dịch có 1.000 item Hình 4.2 cho thấy thời gian thực thi chương trình thuật tốn đề nghị tốt SABMA tham số độ hỗ trợ từ ngưỡng 0.49 trở xuống Chẳng hạn với độ hỗ 0.46, thời gian thực thi DBV_SABMA 4.53 (s) SABMA 24.63 (s) 30 25 Time (Sec) 20 15 SABMA DBV_SABMA 10 0.04 0.05 0.049 0.046 Minsup Hình 4.2 Kết thử nghiệm với liệu T10I4D100K 77 78 CSDL thứ ba dùng để so sánh Mushroom gồm có tổng cộng 8.124 giao dịch với 120 item Hình 4.3 cho thấy thời gian thực thi chương trình thuật tốn đề nghị nhìn chung tốt SABMA tham số độ hỗ trợ từ ngưỡng 0.5 trở xuống Chẳng hạn với độ hỗ 0.45, thời gian thực thi DBV_SABMA 9.51 (s) SABMA 11.12 (s) Tuy nhiên thời gian chênh lệch khơng lớn ngưỡng hỗ trợ CSDL khai thác có tính chất đặc nên cấu trúc vector bit động thuật toán đề nghị chưa phát huy hiệu 12 10 Time (Sec) SABMA DBV_SABMA 0.8 0.7 0.6 0.5 0.45 Minsup Hình 4.3 Kết thử nghiệm với liệu Mushroom Tập liệu cuối dùng cho thử nghiệm tập liệu Công ty COOP Mart thực giao dịch năm 2006 lưu trữ CSDL MS Access Bộ liệu có tổng cộng 104.932 giao dịch với 26.497 item Bộ liệu thử nghiệm tiền xử lý trước cho chạy thử nghiệm Đây CSDL giao dịch có tính chất thưa Hình 4.4 cho thấy thời gian thực thi chương trình thuật toán đề nghị tốt hẳn SABMA Chẳng hạn, khai thác với độ hỗ 0.085, thời gian thực thi DBV_SAMBA 26.94 (s) SABMA 80.82 (s) 78 79 90 80 70 Time (Sec) 60 50 SABMA 40 DBV_SABMA 30 20 10 0.1 0.095 0.09 0.085 Minsup Hình 4.4 Kết thử nghiệm với liệu giao dịch Coopmart Từ Hình 4.1 đến Hình 4.4 cho thấy thuật tốn đề nghị đạt hiệu suất khai thác tốt SABMA với tham số độ hỗ trợ thấp Tuy nhiên, dựa kết thực nghiệm cho thấy, ta khai thác với độ hỗ trợ lớn (CSDL có tính chất đặc) thuật tốn cải tiến khơng tốt thuật tốn gốc cấu trúc DBV tỏ khơng hiệu CSDL có tính chất đặc (vector bit có nhiều bit 1) Khai thác với độ hỗ trợ nhỏ (hoặc CSDL có tính chất thưa) thuật tốn cải tiến có thời gian khai thác nhanh so với thuật tốn ban đầu Điều cho thấy tính khả thi việc cải tiến thuật toán song song DBV_SABMA dựa phương pháp sử dụng cấu trúc vector bit động (DBV) so với thuật toán song song SABMA dựa phương pháp sử dụng cấu trúc BitTable, đặc biệt ta khai thác tập liệu thưa Khi áp dụng giải pháp đề xuất, thuật toán cải tiến đề nghị luận văn khai thác hiệu kể khác thác CSDL có tính chất đặc thưa Về bản, thuật toán đề nghị tốt SABMA hai tiêu chí như: i Thời gian thực thi (thông qua kiểm nghiệm thực tế) ii Dung lượng nhớ tạm (chứng minh qua phần trình bày thuật toán đề nghị) 79 80 Tuy nhiên, chương trình thử nghiệm thuật tốn cài đặt máy tính đơn, q trình song song hóa mảng tâm thu mô chế đa tuyến trình với mơ hình chia sẻ nhớ chung (vì chất dùng chung tài nguyên máy tính) nên hiệu suất thuật tốn song song thử nghiệm tốt triển khai thuật toán mảng tâm thu với kiến trúc phần cứng phân tán thật 4.2 Kết luận đánh giá Luận văn tìm hiểu kỹ lưỡng sở lý thuyết tập phổ biến, số thuật toán khai thác tập phổ biến thông dụng theo phương pháp tuần tự, nghiên cứu tìm hiểu số tiếp cận thiết kế vài thuật toán khai thác tập phổ biến theo tiếp cận song song Luận văn hoàn thành mục tiêu đề nghiên cứu tìm hiểu tiếp cận khai thác song song tập phổ biến: “Thuật toán khai thác song song tập phổ biến sử dụng mảng tâm thu” Tiếp cận khai thác hiệu CSDL lớn có tính chất đặc Tuy nhiên, tính hiệu phương pháp giảm khai thác CSDL có tính chất thưa, hạn chế cấu trúc BitTable mà thuật toán sử dụng Trên sở thực nghiệm, luận văn đề xuất giải pháp cải tiến sử dụng cấu trúc vector bit động (DBV) thay cho cấu trúc BitTable thuật toán gốc để nâng cao hiệu tính tốn giảm khơng gian lưu trữ xử lý Thực nghiệm chứng tỏ thuật toán đề xuất luận văn có hiệu suất tốt so với thuật toán gốc khai thác tập phổ biến với độ hỗ trợ thấp, đặc biệt với sở liệu có tính chất thưa Tổng kết lại đóng góp cụ thể luận văn sau: i Tìm hiểu nghiên cứu xu hướng nghiên cứu khai thác tập phổ biến gần ii Nghiên cứu trình bày thuật tốn khai thác song song tập phổ biến theo tiếp cận sử dụng kiến trúc mảng tâm thu dựa cấu trúc liệu BitTable iii Nghiên cứu cấu trúc liệu Vector bit động (DBV: Dynamic Bit Vector) khai thác tập phổ biến Vận dụng ưu điểm cấu trúc DBV để cải tiến thuật toán khai thác song song tập phổ biến đề xuất luận văn Cải tiến 80 81 giúp cho phương pháp đề xuất giảm khơng gian lưu trữ có hiệu suất khai thác tốt khai thác CSDL có tính chất thưa 4.3 Hướng nghiên cứu Thuật toán dựa cấu trúc vectơ bit động giải số lượng bit đầu cuối nhiều, trường hợp số bit nhiều cách tiếp cận chưa có hướng giải pháp xử lý Chính vậy, nghiên cứu cách loại bỏ số trường hợp để giảm khơng gian lưu trữ thời gian tính phần giao vectơ bit công việc mà luận văn cần hướng tới Bên cạnh đó, thuật tốn khai thác song song tập phổ biến sử dụng mảng tâm thu (systolic array) cần nghiên cứu cải tiến để giảm bớt tập ứng viên Nghiên cứu ứng dụng cấu trúc vector bit động thuật toán khai thác song song tập phổ biến dựa kiến trúc GPU (Graphics Processing Unit) [14] tiếp cận nghiên cứu thời gian tới 81 82 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Bùi Danh Hường (2010), Khai thác sở liệu tai nạn giao thông Luận văn thạc sĩ Khoa học máy tính, Đại học Khoa học Tự Nhiên TP.HCM Tiếng Anh [2] R.Agrawal, T.Imielinski, and A.Swami (1993), “Mining association rules between sets of items in large databases”, In Pro 1993 ACM-SIGMOD Int Conf.Management of Data, pages 207-216, Washington, D.C [3] J Han, J Pei, Y Yin (2000), Mining frequent patterns without candidate generation, in: Proceeding of the 2000 ACM-SIGMOD International Conference on Management of Data (SIGMOD’00), Dallas, TX, pp 1–12 [4] MH Dunham, Y Xiao, L Gruenwald, Z Hossain (2000), “A survey of association rules”, Technical Report, Southern Methodist University, Department of Computer Science, Technical Report TR 00-CSE-8 [5] H.Li, Y.Wang, D.Zhang, M.Zhang, E.Y.Chang (2008, October) PFP: Parallel fp-growth for query recommendation In Proceedings of the 2008 ACM conference on Recommender systems (pp 107-114) ACM [6] J Dong, M Han (2007), BitTableFI: an efficient mining frequent itemsets algorithm, Knowledge Based Systems 20 (4) 329–335 [7] M.J Zaki (1999), Parallel and distributed association mining: a survey, IEEE Concurrency (4) 14–25 [8] Bay Vo, Tzung-Pei Hong, Bac Le (2011), Dynamic bit vectors: An efficient approach for mining frequent itemsets, Scientific Research and Essays Vol.6(25), pp 5358-5368 [9] M K Sohrabia, A A Barforoush (2013), Parallel frequent itemset mining using systolic arrays, Knowledge-Based Systems, 462–471 [10] Frequent Itemset Mining Implementations Repository [11] H.T Kung, C.E Leiserson (1979), Algorithms for VLSI processor arrays, in: C Mead, L Conway (Eds.), Introduction to VLSI Systems, Addison-Wesley 82 83 [12] Sudhaka r Singh, Rakhi Garg, P K Mishra (2014), Review of Apriori Based Algorithms on Map Reduce Framework, International Conference on Communication and Computing, ICC 2014, At Bangalore, India [13] Ms Poonam Modgi, Prof Dinesh Vaghela (2014), Mining Distributed Frequent Itemset with Hadoop, International Journal of Computer Science and Information Technologies, Vol (3) , 3093 – 3097 [14] V B Nikam, B B Meshram (2014), Scalable Frequent Itemset Mining using Heterogeneous Computing: Parapriori Algorithm, International Journal of Distributed and Parallel Systems (IJDPS) Vol.5, No.5 83 ... thác song song tập phổ biến dựa Apriori 27 2.2.5 Khai thác song song tập phổ biến dựa Eclat 39 2.2.6 Khai thác song song tập phổ biến dựa FP-Growth 43 2.2.7 Thuật toán song song... Tính chất : Mọi tập tập phổ biến tập phổ biến X tập phổ biến Y  X sup(Y)  sup(X)  minSup, Y tập phổ biến Tính chất : Mọi tập cha tập khơng phổ biến khơng phổ biến X tập khơng phổ biến Y  X sup(Y)... trúc vector bit động khai thác liệu thuật toán khai thác song song tập phổ biến sử dụng kiến trúc mảng tâm thu Từ đó, đề xuất thuật toán kết hợp cấu trúc vector bit động khai thác tập phổ biến

Ngày đăng: 23/12/2018, 06:15

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan