Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 47 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
47
Dung lượng
588,5 KB
Nội dung
Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp Đại Học Quốc Gia TPHCM Trường Đại Học Công Nghệ Thông Tin *** ĐỒ ÁN MÔN HỌC KHAI PHÁ DỮ LIỆU VÀ KHO DỮ LIỆU NGHIÊN CỨU MỘT SỐ GIẢI PHÁP ĐẨY NHANH TỐC ĐỘ TÍNH TOÁN TẬP PHỔ BIẾN, TÌM LUẬT KẾT HỢP Giảng viên Phụ trách: PGS.TS. Đỗ Phúc Học viên thực hiện: Nguyễn Đình Tấn Mã số học viên: CH1101039 Thành Phố Hồ Chí Minh – 11/2012 Trang 1 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp MỤC LỤC LỜI MỞ ĐẦU 5 CHƯƠNG 1: TỔNG QUAN 6 1.1Nội dung thực hiện 6 1.2Dự kiến kết quả đạt được 6 CHƯƠNG 2: PHÂN TÍCH CÁC THUẬT GIẢI KHAI THÁC LUẬT KẾT HỢP 6 2.1Giới thiệu 6 2.1.1Luật kết hợp 6 2.1.2Nội dung trình bày trong phần này 8 2.1.3Các nghiên cứu liên quan 8 2.2Các nguyên lý cơ bản 9 2.2.1Mô tả bài toán 9 2.2.2Duyệt không gian tìm kiếm 10 2.2.3Xác định các Itemset Support 13 2.3Các giải thuật thông dụng 14 2.3.1Hệ thống hóa 14 2.3.2BFS và đếm các thể hiện 15 2.3.3BFS và giao tập hợp của các biến nhận dạng (TID-List Intersection) 16 2.3.4DFS và đếm các thể hiện 16 2.3.5DFS và giao tập hợp của các biến nhận dạng 17 2.4So sánh các giải thuật 17 2.4.1So sánh việc đếm các thể hiện với việc thực hiện giao tập hợp 17 Trang 2 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp 2.4.2Giảm khoảng phân biệt giữa việc phát sinh ứng viên và việc tính toán độ hỗ trợ 18 2.4.3Tỉa bớt ứng viên 19 CHƯƠNG 3: PHÂN TÍCH, ĐỀ XUẤT CÁC CHI TIẾT CẢI TIẾN 19 3.1Tạo danh sách các ứng viên Ck từ tập Fk-1 19 3.1.1 Cách xây dựng một ứng viên c Ck từ tập Fk-1 20 3.1.2Lưu trữ có thứ tự các item i trong f Fk – thứ tự trong Fk 20 3.1.3Cải tiến 1 – Giảm chi phí kiểm tra trùng lắp khi phát sinh các ứng viên c Ck 20 3.2Kiểm tra độ support của các ứng viên c để đưa vào Fk 22 3.2.1Cải tiến 2 – Giảm thiểu các ứng cử viên cần phải kiểm tra độ support. 22 3.2.2Cải tiến 3 – Giảm số lần đọc cơ sở dữ liệu 23 3.2.3Cải tiến 3’ – Loại bỏ sớm các ứng viên không thỏa độ support 24 3.3Loại bỏ phần thừa trong cơ sở dữ liệu tại mỗi bước của hướng tiếp cận levelwise 26 3.3.1Cải tiến 4 – Cắt xén theo dòng 26 3.3.2Cải tiến 5 – Cắt xén theo cột 27 3.3.3Áp dụng đồng thời Cải tiến 4 & Cải tiến 5 28 3.4Áp dụng giải thuật DHP & PHP 28 3.4.1Thuật giải Direct Hashing and Pruning (DHP) 28 3.4.2Thuật giải Perfect Hashing and Pruning 33 3.5Phát sinh luật từ các tập phổ biến 37 3.5.1Cải tiến 6 - Giảm số lượng các luật được phát sinh & cần phải kiểm tra 38 3.5.2Cải tiến 6’ – Tránh phát sinh các luật không có ý nghĩa 39 3.5.3Một số kỹ thuật khác trong việc tối ưu hóa chi phí tính độ confident 41 CHƯƠNG 4: CÀI ĐẶT THỬ NGHIỆM 41 Trang 3 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp 4.1Môi trường cài đặt ứng dụng 41 4.2Cài đặt thử nghiệm 41 4.2.1Bài toán tìm tập phổ biến 41 4.2.2Bài toán tìm luật kết hợp 44 CHƯƠNG 5: KẾT LUẬN 45 Tài liệu tham khảo 46 Phụ Lục 46 LỜI MỞ ĐẦU Trang 4 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp Ngày nay, khi công cụ thu thập dữ liệu tự động và công nghệ lưu trữ dữ liệu ngày càng hoàn thiện giúp con người tạo lập và quản lý một lượng dữ liệu khổng lồ trong các cơ sở dữ liệu thì nhu cầu nắm bắt dữ liệu, trích rút thông tin trở thành cấp thiết và có ý nghĩa to lớn. Một trong những nhu cầu trích rút thông tin có ý nghĩa từ kho dữ liệu lớn là tính toán tập phổ biến và tìm ra các luật kết hợp từ dữ liệu mua hàng như ở các siêu thị, qua đó biết được xu hướng của thị trường. Từ đó có những chương trình và chiến lược nhập hàng, bố trí mặt hàng phù hợp. Tuy nhiên, việc tìm ra được các luật kết hợp trong một kho dữ liệu khổng lồ là việc không dễ dàng, cần nhiều thời gian và tốc độ xử lý của máy tính cao. Do đó, việc đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp là đề tài cần được nghiên cứu. Dựa trên yêu cầu thực tiễn đó, tiểu luận này tập trung nghiên cứu giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp; cùng với đó là cài đặt chương trình mô phỏng tính toán tập phổ biến, tìm luật kết hợp. Em xin chân thành cảm ơn PGS.TS. Đỗ Phúc – Giảng viên phụ trách môn học Khai phá dữ liệu và Kho dữ liệu đã truyền đạt những kiến thức vô cùng quý báu, xin chân thành cám ơn ban cố vấn học tập và ban quản trị chương trình đào tạo thạc sĩ Công nghệ thông tin qua mạng của Trường Đại học Công Nghệ Thông Tin - Đại Học Quốc Gia TPHCM đã tạo điều kiện để em có thể hoàn thành môn học này. Chân thành cám ơn! Nguyễn Đình Tấn Trang 5 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp CHƯƠNG 1: TỔNG QUAN 1.1 Nội dung thực hiện • Tìm hiểu các khó khăn, hạn chế của giải thuật tính toán các tập phổ biến và luật kết hợp; Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp. • Cài đặt chương trình mô phỏng tìm các tập phổ biến và luật kết hợp. 1.2 Dự kiến kết quả đạt được • Tìm hiểu thành công và đề xuất được một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp. • Cài đặt thành công chương trình mô phỏng tính toán tập phổ biến, tìm luật kết hợp. CHƯƠNG 2: PHÂN TÍCH CÁC THUẬT GIẢI KHAI THÁC LUẬT KẾT HỢP Ngày nay, có nhiều giải thuật hiệu quả để giải quyết các bài toán có độ tính toán phức tạp trong việc khai thác luật kết hợp. Chúng ta cùng xem xét nền tảng của việc khai thác luật kết hợp và đưa ra một mô hình luật kết hợp chung. Chúng ta cũng khảo sát một cách kỹ lưỡng các ưu khuyết điểm của các giải thuật. 2.1 Giới thiệu 2.1.1 Luật kết hợp Từ khi nó được giới thiệu từ năm 1993. Bài toán khai thác luật kết hợp nhận được rất nhiều sự quan tâm của nhiều nhà khoa học. Ngày nay việc khai thác Trang 6 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp các luật như thế vẫn là một trong những phương pháp khai thác mẫu phổ biến nhất trong việc khám phá tri thức và khai thác dữ liệu (KDD: Knowledge Discovery and Data Mining). Một cách ngắn gọn, một luật kết hợp là một biểu thức có dạng: YX ⇒ , trong đó X và Y là tập các trường gọi là item. Ý nghĩa của các luật kết hợp khá dễ nhận thấy: Cho trước một cơ sở dữ liệu có D là tập các giao tác - trong đó mỗi giao tác DT ∈ là tập các item - khi đó YX ⇒ diễn đạt ý nghĩa rằng bất cứ khi nào giao tác T có chứa X thì chắc chắn T có chứa Y . Độ tin cậy của luật (rule confidence) có thể được hiểu như xác suất điều kiện )|( TXTYp ⊆⊆ . Ý tưởng của việc khai thác các luật kết hợp có nguồn gốc từ việc phân tích dữ liệu mua hàng của khách và nhận ra rằng “Một khách hàng mua mặt hàng x 1 và x 2 thì sẽ mua mặt hàng y với xác suất là c%”. Ứng dụng trực tiếp của các luật này trong các bài toán kinh doanh cùng với tính dễ hiểu vốn có của chúng – ngay cả đối với những người không phải là chuyên gia khai thác dữ liệu – làm cho luật kết hợp trở thành một một phương pháp khai thác phổ biến. Hơn nữa, luật kết hợp không chỉ bị giới hạn trong phân tích sự phụ thuộc lẫn nhau trong phạm vi các ứng dụng bán lẻ mà chúng còn được áp dụng thành công trong rất nhiều bài toán kinh doanh. Khi khai thác các luật kết hợp, có 2 vấn đề chính cần phải giải quyết. Trước tiên, đó là độ phức tạp của giải thuật. Số lượng luật tăng theo cấp độ lũy thừa cùng với số lượng các item. May thay, các giải thuật ngày nay có thể giảm bớt không gian tìm kiếm này dựa trên các ngưỡng tối thiểu để đánh giá độ hiệu quả của luật. Thứ hai, các luật tốt phải được lấy ra từ tập hợp các luật tìm được. Điều này rất khó bởi vì tập hợp các luật tìm được là rất lớn, thường là trên 100000 luật, trong khi đó số lượng các luật có thể dùng được lại chiếm một tỷ lệ vô cùng nhỏ. Các nghiên cứu liên quan đến vấn đề thứ hai hầu hết chú trọng vào việc giúp người dùng duyệt tập luật, và việc phát triển các độ đo chất lượng của luật. Trang 7 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp 2.1.2 Nội dung trình bày trong phần này Trong bài này, chúng ta đề cập đến khía cạnh giải thuật của việc khai thác luật kết hợp. Trên thực tế, rất nhiều giải thuật hiệu quả dùng cho việc khai thác luật kết hợp đã được phát triển trong những năm gần đây. Ở đây, ta đã thực hiện một cuộc khảo sát các ý tưởng cơ sở của khai thác luật kết hợp: • Đưa ra những chiến lược cơ bản và mô tả chi tiết các chiến lược này. • Kết quả này được sử dụng để hệ thống hóa và giới thiệu những cách tiếp cận phổ biến hiện nay. • Thêm vào đó, chúng ta cũng đưa ra những nguyên lý chung và sự khác biệt giữa các giải thuật. • Cuối cùng, chúng ta sẽ hoàn chỉnh một cách khái quát bằng cách so sánh các giải thuật có liên quan đến tính hiệu quả. Sự so sánh này dựa trên những xem xét lý thuyết và thực nghiệm cụ thể. Kết luận với một tóm tắt ngắn về kết quả đạt được. 2.1.3 Các nghiên cứu liên quan Các nghiên cứu được giới hạn trong phạm vi “bài toán luật kết hợp cổ điển”. Đó là việc khai thác tất cả các luật tồn tại trong cơ sở dữ liệu D đối với các ngưỡng tối thiểu trên một số độ đo chất lượng. Trong trường hợp này, D bao gồm các dữ liệu market-basket, tức là các giao tác chứa trung bình 10-20 item trên tổng số 1000-100000 item. Mặc dù “bài toán cổ điển” vẫn còn là một đề tài cho các nghiên cứu sâu hơn nhưng trong những năm gần đây nhiều giải thuật dùng cho những công việc đặc thù đã được phát triển. Trước hết, có rất nhiều hướng tiếp cận để nâng cao các luật kết hợp. Ví dụ như: luật kết hợp số lượng (quantitative AR), luật kết hợp tổng quát (generalized AR), và trong một phạm vi nào đó về mẫu Trang 8 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp tuần tự (sequential patterns). Ngoài ra còn có một số khái quát chung về bài toán luật. Thêm vào đó, các giải thuật đã được xây dựng khai thác rất tốt các tập con luật xác định theo những phần tử cụ thể hay những độ đo chất lượng, chẳng hạn như các ràng buộc chung, luật tối ưu (optimized rules), tập phổ biến tối đại (maximal frequent itemsets), tập phổ biến đóng (frequent closed itemsets). Ngoài ra còn có các giải thuật dùng để khám phá các cơ sở dữ liệu dày. Những hướng tiếp cận này được hỗ trợ bởi các giải thuật dành cho khám phá trực tuyến các luật kết hợp, và các giải thuật tính tiền lãi. 2.2 Các nguyên lý cơ bản 2.2.1 Mô tả bài toán Cho I = {x 1 , …, x n } là tập các item. Tập X ⊆ I với k = |X| được gọi là “tập k- item” hay đơn giản là một tập phần tử. Cho cơ sở dữ liệu D là một đa tập hợp của các tập con của I. Mỗi T ∈ D được gọi là một giao tác. Ta nói rằng giao tác T ∈ D hỗ trợ tập phần tử X ⊆ I nếu X ⊆ T. Một luật kết hợp là một biểu thức X ⇒ Y, trong đó X, Y là những tập item và X ∩ Y = ∅ đúng. Tỷ số các giao tác T hỗ trợ tập phần tử X và cơ sở dữ liệu D được gọi là độ hỗ trợ của X, supp(X) = |{T∈D|X ⊆ T}|/|D|. Độ hỗ trợ của luật X ⇒ Y được định nghĩa như sau: supp(X⇒Y) = supp(X∪Y). Độ tin cậy của luật này được định nghĩa như sau: conf(X⇒Y) = supp(X ∪ Y)/supp(X). Như đã đề cập trước, khó khăn lớn nhất trong khai thác các luật kết hợp chính là số lượng khổng lồ các luật cần phải xem xét về mặt lý thuyết. Trên thực tế, số lượng luật tăng theo lũy thừa của |I|. Thực tế chứng minh là không cần phải khai thác hết tất cả các luật này nên các tập luật thường được giới hạn bởi các ngưỡng tối thiểu trên các độ hỗ trợ (minsupp) và độ tin cậy (minconf). Giới hạn này cho phép ta chia bài toán thành 2 phần riêng biệt: Một tập phần tử X là phổ biến nếu supp(X) ≥ minsupp. Khi, F = {X⊆I| X Trang 9 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp liên tục}, tập hợp tất cả các itemset cùng với các giá trị support của chúng xác định, suy ra các luật kế hợp cần thiết là hiển nhiên: Với mỗi X∈F, kiểm tra độ tin cậy của tất cả các luật X\Y ⇒ Y, Y ⊆ X, ∅≠Y≠X và bỏ những luật không thỏa minconf. Theo định nghĩa trên, nó đủ để biết tất cả các giá trị hỗ trợ của các tập con của X để tính độ tin cậy của mỗi luật. Tri thức về các giá trị hỗ trợ của tất cả các tập con của X được bảo đảm bằng thuộc tính chặn dưới đóng (downward closure property) của tập item thỏa ngưỡng minsupp: Tất cả các tập con của một tập phổ biến cũng phổ biến. Với lý thuyết này, thao tác khai thác luật kết hợp có thể chuyển thành bài toán tìm tất cả các tập phổ biến với một ngưỡng tối thiểu minsupp cho trước. Phần còn lại của nghiên cứu và hầu hết các tài liệu về khai thác luật kết hợp cũng nhằm giải quyết vấn đề này. 2.2.2 Duyệt không gian tìm kiếm Như đã giải thích trên đây, ta phải tìm tất cả các itemset thỏa ngưỡng minsupp. Với các ứng dụng thực tiễn, việc duyệt tất cả các tập con của I sẽ hoàn toàn thất bại vì không gian tìm kiếm quá lớn. Trên thực tế, sự tăng tuyến tính số lượng các item vẫn kéo theo sự tăng theo cấp lũy thừa các itemset cần xem xét. Với trường hợp đặc biệt I ={1,2,3,4}, ta có thể biểu diễn không gian tìm kiếm thành một lưới như trong hình 1. Trang 10 [...]... Cải tiến 3’ – Loại bỏ sớm các ứng viên không thỏa độ support Xét đến bài toán tìm luật kết hợp trong trường hợp cần tìm một luật có độ phổ biến cao, ta thấy rằng có thể áp dụng kỹ thuật bù để loại bỏ sớm những c Trang 24 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp ∉ Fk Chẳng hạn nếu chúng ta cần tìm các tập phổ biến có minSupp = 95%, nếu chúng ta phát hiện... không gian tìm kiếm (BFS, DFS) b) Xác định giá trị hỗ trợ của tập item (itemset) Ngoài ra, một giải thuật có thể dùng một số các tối ưu khác để tăng tốc thêm Hệ thống hóa các giải thuật Trang 14 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp 2.3.2 BFS và đếm các thể hiện Giải thuật phổ biến nhất của loại này là giải thuật Apriori, trong đó có trình bày tính chặn.. .Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp Hình 1: Dàn cho tập I = {1,2,3,4} Các tập phổ biến nằm trong phần trên của hình trong khi những tập không phổ biến lại nằm trong phần dưới Mặc dù không chỉ ra một cách tường minh các giá trị hỗ trợ cho mỗi itemset nhưng ta giả sử rằng đường biên đậm trong hình phân chia các tập phổ biến và tập không phổ biến... có độ support nhỏ hơn minSupp Trang 33 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp Trong các bước tiếp theo, giải thuật cắt xén bớt cơ sở dữ liệu bằng cách bỏ đi không xét đến các transaction không chứa bất kỳ một tập phổ biến nào cũng như bỏ tất cả các item không tham gia vào một tập phổ biến nào Kế đó, thuật giải phát sinh các ứng viên k-phần tử và đếm số. .. 34 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp for each item x in t do H1.add(x); end for each itemset y in H1 do if H1.hassupport(y) then F1=F1 ∪ y end H1.prune(minsupp) D1=Database /* Tìm Fk tập phổ biến k-item, k ≥ 2 */ k=2; repeat Dk= ∅ ; Fk= ∅ ; for each transaction t ∈ Dk-1 do begin // w là k-1 subset của item in t Trang 35 Nghiên cứu một số giải pháp đẩy. .. Cả hai thuật toán đều phát sinh ra các ứng viên k+1 phần tử từ một tập k-phần tử (với số lượng lớn) Và cũng với số lượng lớn các tập k+1 phần tử này được xác nhận bằng cách đếm sự xuất hiện của các ứng viên k+1 phần tử này trên database (thực chất là tính lại 2 độ support) Sự khác biệt Trang 28 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp của thuật toán DHP ở... prefix-tree được gán một ứng viên xác định trong tập phổ biến Cách sử dụng cũng ngược với hashtree, bất cứ khi Trang 15 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp nào tới được một nút ta có thể khẳng định rằng tập item đã kết hợp với nút này trong giao tác đó Hơn nữa, việc xác định độ hỗ trợ và phát sinh ứng viên khớp nhau sẽ làm giảm đi số lần duyệt cơ sở dữ... itemset mà ta đã duyệt qua trong quá trình tìm kiếm đường biên giữa tập phổ biến và tập không phổ biến Cuối cùng, chiến lược thực sự để tìm đường biên Trang 12 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp là do lựa chọn của chúng ta Các hướng tiếp cận phổ biến hiện nay sử dụng cả tìm kiếm ưu tiên bề rộng (BFS) lẫn tìm kiếm ưu tiên chiều sâu (DFS) Với BFS, giá... các siêu thị Trang 25 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp 3.3 Loại bỏ phần thừa trong cơ sở dữ liệu tại mỗi bước của hướng tiếp cận levelwise 3.3.1 Cải tiến 4 – Cắt xén theo dòng Ở trong hướng tiếp cận levelwise để tìm các tập phổ biến, chúng ta thấy rằng nếu như một transaction t thỏa tập phổ biến f ∈ Fk thì nó cũng thỏa luôn các tập con f’ ∈ Fk-1 Ngược... sánh các giải thuật và giải thích các điểm khác biệt trong việc thực thi 2.4.1 So sánh việc đếm các thể hiện với việc thực hiện giao tập hợp Câu hỏi được đặt ra liên quan đến thời gian thực thi của giải thuật là liệu việc đếm các thể hiện hay việc thực hiện giao các tidlist có tốc độ thực thi nhanh Trang 17 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp hơn Ưu . các tập phổ biến và luật kết hợp; Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp. • Cài đặt chương trình mô phỏng tìm các tập phổ biến và luật kết hợp. 1.2. tính toán tập phổ biến, tìm luật kết hợp là đề tài cần được nghiên cứu. Dựa trên yêu cầu thực tiễn đó, tiểu luận này tập trung nghiên cứu giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật. 3 Nghiên cứu một số giải pháp đẩy nhanh tốc độ tính toán tập phổ biến, tìm luật kết hợp 4.1Môi trường cài đặt ứng dụng 41 4.2Cài đặt thử nghiệm 41 4.2.1Bài toán tìm tập phổ biến 41 4.2.2Bài toán