.2 sau khi thêm mục cha

Một phần của tài liệu (LUẬN án TIẾN sĩ) phát triển một số thuật toán hiệu quả khai thác tập mục trên cơ sở dữ liệu có sự phân cấp các mục (Trang 42 - 48)

Giao dịch Mục t1 D, C, G, K, H t2 E, F, K t3 F, B, G, K t4 D, F, C, G, K, H t5 E t6 A, H

Nhƣ vậy, DB bao gồm sáu giao dịch tổng cộng mƣời một mục nhƣ trong Bảng 1.4, sau khi thêm các mục cha vào các giao dịch có chứa mục con ta có CSDL DB mới gồm sáu giao dịch và hai mƣơi mốt mục nhƣ trong Bảng 1.13.

1.5. Tiếp cận bit-vector trong khai thác FI

Các thuật toán khai thác FI dựa trên IT-tree trên CSDL nhị phân hay các mở rộng của IT-tree để khai thác trên các loại CSDL khác nhƣ: cấu trúc GIT- tree khai thác FI trên CSDL nhị phân có sự phân cấp các mục, cấu trúc WIT- tree dùng trong khai thác FWI trên CSDL trọng số, hay MWIT-tree dùng trong khai thác FWUI trên CSDL số lƣợng, v.v… cho thấy hiệu quả cao về mặt thời gian do chỉ cần duyệt dữ liệu một lần. Tuy nhiên nhƣ đã phân tích ở trên, bộ nhớ sử dụng lƣu tidset của các tập mục là rất lớn.

Đã có một số nghiên cứu nhằm tối ƣu hóa bộ nhớ để nâng cao hiệu quả của các phƣơng pháp dựa trên IT-tree. Một trong số đó là thuật tốn dEclat [50] do Zaki và đồng sự đề xuất với cấu trúc diffset thay vì tidset. Tuy nhiên diffset chỉ có hiệu quả trên CSDL dày (là CSDL có nhiều mục trên mỗi giao dịch). Trong khi thực tế CSDL thƣa lại rất phổ biến.

Một hƣớng hiệu quả là sử dụng phƣơng pháp bit-vector do tiết kiệm đƣợc bộ nhớ lƣu trữ tidset (mỗi giao dịch chỉ cần một bit), đồng thời tận dụng đƣợc tốc độ cao của các phép toán trên bit (bitwise).

Đầu tiên, Luoie & Liu [31] đề xuất sử dụng bit-vector trong biểu diễn tidset của các tập mục và sau đó Dong & Han [13] (Song và các đồng sự [33]) cụ thể hóa bằng đề xuất cấu trúc BitTable, với việc sử dụng bit-vector bằng mảng các byte để ghi nhận các giao dịch của tập mục. BitTable chỉ cần sử dụng ( +1) byte cho mỗi tập mục để lƣu tidset (T là số lƣợng giao dịch trong CSDL), đồng thời sử dụng phép toán AND trên bit để tính giao hai tidset nhằm xác định tidset của tập mục mới từ hai tập mục đã có.

Tuy nhiên, với CSDL có số lƣợng các giao dịch lớn, thì việc biểu diễn trên BitTable có thể chƣa hiệu quả bởi BitTable chứa nhiều byte có giá trị = 0, (do BitTable của mỗi tập mục sử dụng lƣợng bộ nhớ bằng nhau là ( +1) byte). Điều này làm cho phƣơng pháp sử dụng BitTable trong biểu diễn tidset

lãng phí bộ nhớ, đồng thời dẫn đến tốn thời gian trong xác định giao của hai BitTable.

Tiếp đến, Vo và các đồng sự đề xuất cấu trúc DBV (Dynamic bit-vector) [38] là một cải tiến của BitTable với việc loại bỏ các byte có giá trị bằng 0 ở đầu và cuối trong biểu diễn tidset trên mảng byte.

Tuy nhiên DBV cịn chứa nhiều byte có giá trị bằng 0 “ở giữa”, điều này làm cho cấu trúc DBV chƣa thật sự tối ƣu về bộ nhớ, do đó tốn thời gian khi tính tốn trên các byte có giá trị bằng 0. Đặc biệt trên các CSDL thƣa, số lƣợng các byte có giá trị bằng 0 rất lớn.

Ngoài ra, cấu trúc BitTable và DBV sử dụng mảng byte. Do đó, số lƣợng các phần tử của mỗi DBV là khá lớn, nhất là trên các CSDL có số lƣợng giao dịch nhiều. Nghiên cứu sử dụng các phần tử là các số nguyên lớn nhƣ bốn byte hay tám byte sẽ tăng tốc tính tốn trên DBV lên rất nhiều do hiện nay các thế hệ máy tính hỗ trợ 64 bit là phổ biến. Tuy nhiên, khó khăn khi sử dụng các số nguyên lớn là việc xác định tidset csủa các tập mục để tính các giá trị

twu, wus trong khai thác FWUI trên CSDL số lƣợng và tw, ws trong khai thác

FWI trên CSDL trọng số.

1.6. Kết luận chƣơng

Có thể nói, khai thác FI là một khâu rất quan trọng trong khai thác dữ liệu, phục vụ cho việc khai thác luật kết hợp và các yêu cầu khác nhằm chỉ ra mối quan hệ, quy luật giữa các mục trong CSDL. Vì vậy, bài tốn này đã thu hút đƣợc nhiều nhóm nghiên cứu trên thế giới quan tâm nghiên cứu. Từ thuật toán Apriori với nhiều lần quét CSDL, đến thuật toán FP-Growth với chỉ hai lần quét CSDL và duyệt cây FP-tree. Tiếp đến Zaki với tiếp cận theo dữ liệu dọc đã đề xuất khai thác FI với chỉ một lần quét CSDL.

Bên cạnh CSDL nhị phân, khai thác tập mục phổ biến trên CSDL số lƣợng cũng đã nhận đƣợc nhiều quan tâm từ các nhóm nghiên cứu về khai

thác dữ liệu trên thế giới. Trong đó, khai thác FWI với hai độ đo tw và ws trên CSDL trọng số là một trƣờng hợp riêng của CSDL số lƣợng đƣợc quan tâm từ rất sớm với việc áp dụng các thuật toán Apriori, FP-Growth hay Eclat. Cùng với đó là khai thác FWUI với độ đo twu của các giao dịch và wus của các tập mục đƣợc biết đến lần đầu tiên với nghiên cứu của Khan và đồng sự. Phƣơng pháp khai thác FWI và FWUI từ CSDL số lƣợng tốt nhất đến hiện nay là phƣơng pháp tiếp cận quét CSDL một lần sử dụng cấu trúc MWIT-tree [40]. Tuy nhiên, nhƣ đã phân tích ở trên, các cấu trúc dữ liệu hiện tại sử dụng trong các thuật tốn cịn nhiều hạn chế. Do đó, cần phát triển các cấu trúc mới để cải thiện về bộ nhớ và thời gian khai thác của các thuật tốn hiện tại.

CSDL có sự phân cấp các mục là CSDL có mặt nhiều trong các ứng dụng thực tế. Do đó, thời gian gần đây khai thác FI trên loại CSDL này đã nhận đƣợc nhiều quan tâm nghiên cứu. Từ việc khai thác cùng một ngƣỡng hỗ trợ, tiếp đến là khai thác trên nhiều ngƣỡng hỗ trợ, mỗi mục có một ngƣỡng hỗ trợ riêng và qua đó xây dựng các công thức xác định độ hỗ trợ tối thiểu cho các tập mục. Tuy nhiên, các nghiên cứu hiện tại cịn có nhiều hạn chế, thời gian và bộ nhớ sử dụng còn lớn, nhiều tồn tại cần đƣợc nghiên cứu khắc phục để có thể khai thác hiệu quả hơn trên loại CSDL này. Một trong số đó là việc thêm các mục nút cha trên các cây phân cấp vào các giao dịch có chứa các mục con của nó trong CSDL là một hạn chế lớn, có thể sẽ gây ra sự bùng nổ về dung lƣợng CSDL, nhất là trên các CSDL có nhiều cây phân cấp hay các cây phân cấp có độ cao lớn. Đây là các điểm hạn chế cần đƣợc cải tiến để giảm thời gian khai thác và dung lƣợng bộ nhớ sử dụng.

CSDL số lƣợng có sự phân cấp các mục là loại CSDL có sự khác biệt nhiều so với các CSDL hiện có, đây là sự kết hợp giữa CSDL số lƣợng và CSDL có sự phân cấp các mục. Do đó việc khai thác cần có các phƣơng pháp riêng biệt, đặc thù. Tuy nhiên, hiện nay nghiên cứu khai thác tập mục trên CSDL số lƣợng có sự phân cấp các mục chƣa đƣợc quan tâm. Do vậy, bài

toán khai thác tập mục trên CSDL số lƣợng có sự phân cấp các mục cần đƣợc đặt ra nghiên cứu. Đề xuất thuật toán khai thác hiệu quả trên CSDL số lƣợng có sự phân cấp các mục có thể đƣợc áp dụng vào khai thác hiệu quả trên CSDL số lƣợng và CSDL có sự phân cấp, khắc phục những hạn chế hiện tại của các thuật toán khai thác tập mục phổ biến trên hai loại CSDL này nhƣ đã phân tích ở trên là các mục tiêu của luận án.

CHƢƠNG 2. KHAI THÁC TẬP MỤC PHỔ BIẾN TRÊN CƠ SỞ DỮ LIỆU SỐ LƢỢNG

Tiếp cận bit-vector trong biểu diễn tidset của các tập mục là một hƣớng phát triển hiệu quả, do tận dụng đƣợc tốc độ tính tốn của các phép tốn trên bit, đồng thời tiết kiệm đƣợc bộ nhớ lƣu trữ tidset do mỗi giao dịch chỉ cần đánh dấu bởi một bit. Do đó, trong nhiều nghiên cứu liên quan đến biểu diễn chuỗi các phần tử có tính liên tục ngƣời ta thƣờng sử dụng phƣơng pháp bit- vector. Đối với khai thác tập mục phổ biến ngƣời ta đã sửa dụng phƣơng pháp bit-vector từ khá sớm, tuy nhiên việc sử dụng phƣơng pháp này khá nguyên thủy [13, 31] hoặc chƣa đƣợc cải tiến triệt để nhƣ DBV [38] để có thể loại bỏ các bộ nhớ thừa nhằm tối ƣu bộ nhớ cũng nhƣ tăng tốc độ tính tốn tốt hơn .

Trong chƣơng này, luận án trình bày một số cải tiến theo hƣớng tiếp cận này với việc đề xuất hai cấu trúc dữ liệu IWS và MBiS sử dụng trong thuật toán khai thác tập phổ biến. Cấu trúc IWS là một cải tiến của cấu trúc DBV [38] bằng việc loại bỏ tất các các đoạn hai byte (word) liên tiếp có giá trị bằng 0 trên bit-vector giúp giảm bộ nhớ lƣu trữ tidset của các tập mục. Đồng thời luận án đề xuất một mảng MAP khai báo trƣớc vị trí các bit 1 trong các số nguyên hai byte để giúp tính nhanh độ phổ biến ws của các tập mục. Cấu trúc MBiS [I] là một đề xuất khác theo hƣớng tiếp cận bit-vector, MBiS chỉ lƣu các đoạn bit 1 liên tiếp trên bit-vector. Cấu trúc này cho phép việc xác định nhanh hợp của các tập mục thông qua xác định giao của các MBiS của chúng, do chỉ cần cập nhật lại các vị trí đầu đoạn và cuối đoạn mới bằng các phép toán lấy MAX và MIN của hai đầu đoạn và cuối đoạn trƣớc đó.

Các phân tích về mặt lý thuyết và kết quả thực nghiệm cho thấy sự hiệu quả của các cấu trúc mới này trong việc tiết kiệm bộ nhớ và giảm thời gian khai thác trên các CSDL thƣa và CSDL trung bình.

Đồng thời, chƣơng 2 cũng trình bày về một đề xuất hiệu quả cho bài toán khai thác hiệu quả FWUIk trên CSDL số lƣợng với hai cấu trúc DTab và DHeap. Các kết quả thực nghiệm cho thấy các cấu trúc mới đề xuất này có hiệu quả hơn các cấu trúc đã có.

2.1. Thuật tốn khai thác tập FWI

Phần này luận án trình bày về cấu trúc Interval word segment - IWS là một cải tiến của BDV, đã đƣợc công bố tại hội thảo quốc tế SMC 2015 [II], sau đó đƣợc phát triển mở rộng, thử nghiệm trên nhiều bộ dữ liệu hơn và công bố tại [V].

2.1.1. Giới thiệu

Định nghĩa 2.1. Interval word segment (IWS) của một tập mục X thuộc

CSDL DB là một cấu trúc gồm nhiều đoạn, trong đó mỗi đoạn là các word (hai byte) liên tiếp khác 0 trên bit-vector biểu diễn tidset của tập mục X.

Mỗi đoạn gồm hai thành phần:

Start: Vị trí word đầu tiên của đoạn trên bit-vector. Word list: Danh sách giá trị các word liên tiếp khác 0.

Ví dụ 2.1: Cho tập mục X của CSDL DB biểu diễn bởi một bit-vector đƣợc cho dƣới dạng các byte nhƣ bảng 2.1

Một phần của tài liệu (LUẬN án TIẾN sĩ) phát triển một số thuật toán hiệu quả khai thác tập mục trên cơ sở dữ liệu có sự phân cấp các mục (Trang 42 - 48)

Tải bản đầy đủ (PDF)

(120 trang)