Giá trị tw của CSDL DB trong ví dụ 1.4

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 35)

Giao dịch Tw t1 tw(t1) = = 0,45 t2 tw(t2) = = 0,20 t3 tw(t3) = = 0,45 t4 tw(t4) = = 0,30 t5 tw(t5) = = 0,42 t6 tw(t6) = = 0,43 Sum_tw 0,45+0,20+0,45+0,30+0,42+0,43 = 2,25

Định nghĩa 1.11. Độ hỗ trợ trọng số (ws) của tập mục X đƣợc tính nhƣ cơng thức 1.2:

(1.2)

Với, t(X) là tập các giao dịch chứa tập mục X và sum_tw = ∑ Với tập mục BD trong DB ở ví dụ 1.3 đƣợc xác định nhƣ sau:

ws(BD) = 0,78. Tập mục X đƣợc gọi là phổ biến nếu và chỉ nếu ws(X) minws, với

minws đƣợc xác định bởi ngƣời sử dụng. Bài toán khai thác FWI trên CSDL

trọng số là bài tốn tìm tất cả các tập mục X (X I) thỏa mãn ws(X) minws.

1.3.2.2. Một số nghiên cứu liên quan

Ramkumar và các đồng sự [32] đƣa ra bài toán khai thác FWI trên CSDL trọng số. Sau đó, Tao và đồng sự [34] đề xuất mơ hình giải quyết bài toán này dựa trên hai đại lƣợng trọng số giao dịch (tw) và độ hỗ trợ trọng số (ws) với cơng thức tính nhƣ trên trong định nghĩa 1.15 và định nghĩa 1.16.

Vo và các đồng sự [37] đề xuất cấu trúc WIT-tree là một mở rộng của IT-tree [49]. Mỗi nút trên WIT-tree gồm ba thành phần ws, itemset, tidset.

Sự kết nối hai nút trong cùng một lớp tƣơng đƣơng ở mức k tạo ra nút mới ở

mức k+1, nếu ws của tập mục mới tạo thành này thỏa ngƣỡng minws, tập mục ở nút mới chính là hợp từ hai tập mục của hai nút phía trên và tidset mới chính là giao của hai tidset của hai nút đó. Sau khi xây dựng xong WIT-tree, các tập mục trên cây chính là tất cả các FWI thỏa ngƣỡng khai thác minws.

Tuy nhiên các tiếp cận này chƣa đƣợc tối ƣu cả về thời gian lẫn bộ nhớ.

1.3.3. Khai thác FWUI

Bên cạnh khai thác FWI, bài toán khai thác FWUI cũng nhận đƣợc một số quan tâm nghiên cứu [21, 39]. Việc khai thác FWUI liên quan đến việc xác định trọng số hữu ích của các giao dịch twu (transaction weight utility) và độ hỗ trợ trọng số hữu ích wus (weight utility support).

Khan và đồng sự [21] đã đƣa ra định nghĩa hai đại lƣợng là trọng số hữu ích của giao dịch - transaction weight utility (twu) và độ hỗ trợ trọng số hữu ích - weight utility support (wus) đƣợc biểu diễn lại nhƣ sau:

Định nghĩa 1.12. Trọng số hữu ích của các giao dịch twu đƣợc định nghĩa nhƣ công thức 1.3:

Với:

- twu( ) là trọng số hữu ích của ;

- là số lƣợng mục thứ i trong , i [1,…, n]; - là trọng số của mục i;

- s( là tổng các mục trong giao dịch

Bảng 1.12 là giá trị twu của các giao dịch của CSDL DB đƣợc cho trong ví dụ 1.2

Bảng 1.12. twu các giao dịch của DB trong ví dụ 1.2

Tid Twu t1 6 9 4 2 7 1,13 t2 3 3 2 5 0,4 t3 6 2 9 3 2 2 8 1,1 t4 6 3 3 2 6 0,6 t5 6 2 3 2 9 2 3 9 0,58 t6 3 9 3 0,43 Sum_twu 1,13 + 0,4 + 1,1 + 0,6 + 0,58 + 0,43 = 4,24 twu( ) = ∑ (1.3)

Định nghĩa 1.13. Độ hỗ trợ trọng số hữu ích của các tập mục wus đƣợc

định nghĩa nhƣ công thức 1.4:

wus(X) = ∑

(1.4)

Với, T(X) là tập các giao dịch chứa tập mục X và sum_twu = ∑ .

Một tập mục X đƣợc gọi là phổ biến với ngƣỡng minwus (do ngƣời sử

dụng đƣa vào) nếu wus(X) minwus. Bài toán xác định tập mục phổ biến trên CSDL số lƣợng là bài toán xác định tất cả các tập X sao cho X I và wus(X)

minwus.

Các tập mục phổ biến xác định theo minwus thỏa ngƣỡng tính chất bao đóng giảm, điều này đã đƣợc chứng minh trong [40].

Khan và các đồng sự [21] đề xuất bài toán khai thác FWUI bằng việc đề xuất hai độ đo trong khai thác FWUI là trọng số hữu ích của giao dịch - twu

và độ hỗ trợ trọng số hữu ích - wus, đồng thời đề xuất một “framework” trong việc giải quyết bài toán khai thác FWUI dựa trên hai độ đo này.

Vo và các đồng sự đề xuất một cấu trúc dữ liệu có tên MWIT-tree [39] là một mở rộng khác của IT-tree để khai thác FWUI với chỉ một lần quét dữ liệu dựa trên tính chất bao đóng giảm của wus. Cấu trúc này gồm nhiều nút mỗi

nút gồm ba thành phần {X, t(X), wus(X)} trong đó X là tập mục, t(X) là tidset(X) và wus(X) là độ hỗ trợ trọng số hữu ích của X. Tuy nhiên tiếp cận

này có hạn chế là bộ nhớ sử dụng lƣu trữ tidset của các tập mục còn rất lớn, điều này ảnh hƣởng đến thời gian khai thác FWUI.

1.3.4. Khai thác TRFIk

Khai thác FI là bài toán trọng tâm trong khai thác dữ liệu đƣợc nhiều nhóm nghiên cứu quan tâm. Tuy nhiên, trong nhiều trƣờng hợp khai thác FI với ngƣỡng cho trƣớc không đáp ứng đƣợc các địi hỏi thực tế. Ví dụ, với ngƣỡng minsup đƣa vào thì số lƣợng các FI khai thác đƣợc quá nhiều hoặc

q ít, nghĩa là ngƣời sử dụng khơng kiểm sốt đƣợc số lƣợng các FI tìm thấy, v.v… Trong những trƣờng hợp nhƣ vậy khai thác TRFIk sẽ giải quyết đƣợc yêu cầu trên.

Fang và các đồng sự [17] đã đề xuất thuật toán VTK để khai thác TRFIk trên CSDL nhị phân. Thuật toán VTK khai thác dữ liệu theo chiều dọc gồm hai bƣớc. Đầu tiên VTK quét CSDL để chuyển dữ liệu sang chiều dọc và tính

support của các 1-itemset và đƣa chúng vào TRFI-Table theo thứ tự giảm dần

của support. Mỗi thành phần trên TRFI-Table gồm hai thành phần, một là count (support của tập mục) hai là danh sách các tập mục có cùng support.

Bƣớc thứ 2, các l-itemset trong TRFI-Table đƣợc kết nối với nhau để tạo ra các (l+1)-itemset, các tập mục mới đƣợc tạo thành sẽ đƣợc chèn vào TRFI- Table nếu support của nó lớn hơn giá trị tại chỉ số k của TRFI-Table (phần tử cuối của TRFI-Table). Thuật tốn kết thúc khi khơng cịn tập mục nào đƣợc cập nhật vào TRFI-Table. VTK là một thuật toán khá hiệu quả song nó có một số điểm yếu nhƣ:

- Bộ nhớ sử dụng lớn trong lƣu trữ tidset của các tập mục.

- Tốn nhiều thời gian thực hiện kết nối các l-itemset để tạo ra (l+1)-

itemset từ TRFI-Table, do phải xét cặp với m là số lƣợng các tập mục trong TRFI-Table.

Deng và các đồng sự [8,10] đã đề xuất thuật toán NTK dựa trên cấu trúc N-list để tiết kiệm bộ nhớ, giảm thời gian tính tốn trong khai thác TRFIk. NTK tạo ra cây PPC-tree giống với cây FP-tree. Dựa trên PPC-tree sinh ra N- list của các 1-itemset, từ đó khai thác TRFIk. NTK tuy đã cải thiện đƣợc bộ nhớ lƣu trữ tidset của các tập mục, song vẫn tốn thời gian nhiều do quét CSDL hai lần để tạo ra PPC-tree.

Le cùng các đồng sự [26] đƣa ra một cải tiến của NTK với thuật toán iNTK dựa trên cấu trúc N-list giúp giảm thời gian trong tính giao các N-list

của các tập mục. Tuy nhiên cũng nhƣ NTK thuật toán iNTK vẫn phải quét CSDL hai lần để tạo cây PPC-tree và tốn thời gian duyệt cây để tạo N-list của

1-itemset.

Hai thuật toán NTK và iNTK cải tiến đƣợc bộ nhớ nhƣng vẫn gặp phải hạn chế thứ hai của VTK đã nêu ở trên.

1.4. Khai thác FI trên CSDL có sự phân cấp các mục

CSDL có sự phân cấp các mục theo Định nghĩa 1.2 là CSDL có nhiều trong các ứng dụng thực tế, trong đó các mục trong CSDL có mối quan hệ nhất định với nhau thơng qua cây phân cấp, các mục tại nút lá là các mục có mặt trong các giao dịch trong CSDL, các mục ở nút cha trên cây phân cấp là các mục ở mức khái quát của các mục nút lá. Do đó, bài tốn này đã nhận đƣợc sự quan tâm từ nhiều nhóm nghiên cứu [4, 5, 6, 14, 15, 20, 28, 30, 35, 36].

Một số định nghĩa liên quan đến khai thác FI trên CSDL có sự phân cấp các mục đƣợc trình bày trong [30]:

Một giao dịch trên CSDL có sự phân cấp các mục t = tid, X, X = (Y Z) là tập các mục có trong giao dịch (Y) và các mục cha của Y trên cây phân cấp (Z).

Định nghĩa 1.14. Tập X là FI thì support(X) minsup, đồng thời trong X không tồn tại một cặp mục nào có quan hệ cha con, nhƣ vậy X là

phổ biến khi:

{  ( )

Có hai tiếp cận khai thác FI trên CSDL có sự phân cấp các mục, đó là khai thác với một ngƣỡng phổ biến và khai thác với nhiều ngƣỡng phổ biến. Các ngƣỡng phổ biến khác nhau đối với mỗi cấp trên cây phân cấp.

Khai thác với một ngưỡng phổ biến

Khai thác FI trên CSDL phân cấp sử dụng cùng một ngƣỡng phổ biến là việc coi các mục cha trên cấp phân cấp và các mục con (là các mục trong CSDL) có cùng một vai trị nhƣ nhau, đƣợc khai thác với cùng một ngƣỡng phổ biến. Một số nghiên cứu theo tiếp cận này nhƣ [4, 5, 15, 20]. Tuy nhiên, trong nhiều CSDL thực tế các mục tuy ít xuất hiện nhƣng lại quan trọng và cần đƣợc quan tâm hơn các mục khác. Đồng thời các mục cha trên cây phân cấp sẽ có tần suất xuất hiện nhiều hơn sau khi đƣợc thêm vào CSDL để khai thác. Do đó, khi khai thác nhiều khả năng sẽ ít xuất hiện các mục con trong các tập mục phổ biến tìm thấy. Do vậy cần đặt ra nhiều ngƣỡng phổ biến để có thể lọc đƣợc các tập mục phổ biến đáp ứng đƣợc nhu cầu của ngƣời sử dụng. Từ đó hình thành một tiếp cập khác rất tự nhiên là ngƣời ta sử dụng nhiều ngƣỡng phổ biến để khai thác.

Khai thác với nhiều ngưỡng phổ biến

Khai thác tập mục phổ biến trên CSDL phân cấp mà mỗi mục đƣợc xác định một ngƣỡng hỗ trợ khác nhau, điều này giúp cho việc khai thác các luật kết hợp thú vị từ các mục ít xuất hiện trong CSDL nhƣng lại có tầm quan trọng cao hơn các mục khác. Một số nghiên cứu theo hƣớng này [30, 35] đã cho rằng việc khai thác tập mục phổ biến với nhiều ngƣỡng hỗ trợ là cần thiết và cần đƣợc đầu tƣ nghiên cứu hơn nữa trên nhiều loại CSDL khác nhau.

Định nghĩa 1.15. ms(x) là độ hỗ trợ nhỏ nhất của mục x (I J), một

tập mục X = {x1, x2, …, xk} với xi (I J) và 1 i đƣợc gọi là phổ biến nếu:

support(X) ms(xi)

Liu và các đồng sự [30] đề xuất bài toán khai thác tập mục phổ biến trên CSDL có sự phân cấp các mục với nhiều ngƣỡng hỗ trợ theo tiếp cận Apriori. Tiếp đến, Tseng và đồng sự [35] đƣa ra các công thức xác định các ngƣỡng

hỗ trợ tối thiểu đối với các mục, từ đó đƣa ra cơng thức tính ngƣỡng hỗ trợ cho các tập mục. Sau đó sử dụng phƣơng pháp sinh ứng viên theo hƣớng tiếp cận Apriori để khai thác FI. Phƣơng pháp này có đặc điểm ngƣời sử dụng tự đƣa ra các ngƣỡng tối thiểu cho các mục theo quan điểm cá nhân để có thể khai thác đƣợc các luật thú vị, tuy nhiên chính điều này cũng làm khó khăn cho ngƣời sử dụng khi số lƣợng các mục cần quan tâm lớn. Đồng thời cách tiếp cận Apriori tốn nhiều thời gian khai thác do quét CSDL nhiều lần.

Kế thừa các công thức từ [30], Vo và các đồng sự [36] sử dụng hƣớng tiếp cận theo thuật toán Eclat [49] với việc đề xuất cấu trúc dữ liệu GIT-tree là một mở rộng của IT-tree. Tuy nhiên, hạn chế của nghiên cứu này là việc thêm các mục cha trên cây phân cấp vào các giao dịch của CSDL, thao tác này làm tăng bộ nhớ lƣu trữ CSDL dẫn đến tăng thời gian khai thác do phải phai thác trên CSDL lớn hơn.

Với CSDL phân cấp DB trong Ví dụ 1.2, sau khi thêm các mục cha vào các giao dịch có chứa nút con, CSDL mới sẽ gồm các giao dịch nhƣ Bảng 1.13:

Bảng 1.13. DB trong Ví dụ 1.2 sau khi thêm mục cha

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

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 35)

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

(120 trang)