BÀI TOÁN KHAI PHÁ TẬP MỤC CỔ PHẦN CAO

Một phần của tài liệu nghiên cứu một số thuật toán khai phá tập mục thường xuyên và tập mục cổ phần cao trong cơ sở dữ liệu (Trang 42 - 48)

Trƣớc hết ta nêu định nghĩa của một số thuật ngữ:

Cho tập các mục(item) I={i1,i2,…,in}. Một giao tác(transaction) T là một tập con của I, T I. Cơ sở dữ liệu là một tập các giao tác DB = {T1,T2,…,Tm}. Mỗi giao tác đƣợc gán một định danh TID. Một tập mục con X I, gồm k mục phân biệt đƣợc gọi là một k-tập mục. Giao tác T gọi là chứa tập mục X nếu X

Ta ký hiệu giá trị của mục ip(measure value) trong giao tác Tqmv(ip,Tq),

mv(ip,Tq) có giá trị là số tự nhiên(nhƣ số lƣợng đã bán của một mặt hàng trong giao tác), tức là mv(ip,Tq) = 0 nếu ip Tqmv(ip,Tq)  1 nếu ip Tq.

Giá trị của giao tác Tq(transaction measure value) là tổng giá trị các mục dữ liệu trong giao tác, ký hiệu là tmv(Tq), tức là tmv(Tq)= ( , )

p q p q i T mv i T   . Tổng

giá trị(total measure value) các mục dữ liệu trong cơ sở dữ liệu DB, ký hiệu là

Tmv, Tmv = ( , ) q p q p q T DB i T mv i T    

Tƣơng tự, với cơ sở dữ liệu con dbDB, Tmv(db)= ( , )

q p q p q T db i T mv i T     .

Ví dụ 2.1: Cho cơ sở dữ liệu bảng 2.1, mv(D, T01)=1, mv(C, T03)=3, tmv(T01)=7, tmv(T03)=10, Tmv(DB)=56. Bảng 2.1: Cơ sở dữ liệu ví dụ. TID A B C D E F G H tmv T01 1 1 1 1 1 0 1 1 7 T02 0 0 0 0 0 4 0 3 7 T03 0 4 3 3 0 0 0 0 10 T04 0 0 4 0 1 0 0 0 5 T05 0 3 0 2 0 0 0 0 5 T06 0 3 2 1 0 0 0 0 6 T07 0 3 4 1 2 0 0 0 10 T08 4 0 2 0 0 1 1 0 6 Lmv 5 14 14 8 4 5 2 4 56

Ký hiệu dbx là tập các giao tác chứa tập mục X, dbx = {Tq Tq DB X Tq}.

Định nghĩa 2.1: Cho giao tác Tq chứa tập mục X. Giá trị của tập mục X (itemset measure value) trong Tq, ký hiệu imv(X, Tq), là tổng giá trị của các mục iq trong

Tq thuộc X, imv(X, Tq)= ( , ) p p q i X mv i T   , với X Tq.

Định nghĩa 2.2: Cho tập mục X, dbx là tập các giao tác chứa X. Giá trị của tập mục X(local measure value), ký hiệu lmv(X), là tổng giá trị của tập mục X tại các

giao tác trong dbx, tức là lmv(X) = ( , ) q x q T db imv X T   = ( , ) q x p p q T db i X mv i T     .

Định nghĩa 2.3: Cổ phần (share value) hay đóng góp của tập mục X, ký hiệu là

Sh(X), là tỉ số giữa giá trị của tập mục X và tổng giá trị của tất cả các mục trong cơ sở dữ liệu, tức là: Sh(X)=lmv X( )

Tmv .

Sh(X) cho biết trong tổng giá trị của tất cả các mục dữ liệu trong cơ sở dữ liệu thì giá trị của tập X chiếm bao nhiêu phần trăm. Ví dụ, với CSDL giao tác bán hàng,

Sh(X)=30% tức là trong tổng số lƣợng hàng đã bán đƣợc thì số lƣợng các mặt hàng trong X chiếm 30%.

Định nghĩa 2.4: Cho ngƣỡng cổ phần (minimum share) minShare s% và tập mục

X. X đƣợc gọi là tập mục cổ phần cao nếu Sh(X)minShare. Trƣờng hợp ngƣợc lại, X đƣợc gọi là tập mục cổ phần thấp.

Ký hiệu giá trị cổ phần tối thiểu (minimum local measure value) là

Ví dụ: Xét cơ sở dữ liệu cho ở bảng 2.1 và minShare = 30%. Bảng 2.2 là giá trị của các mục dữ liệu và cổ phần của chúng.

Bảng 2.2: Giá trị lmv và cổ phần của các mục dữ liệu trong CSDL bảng 2.1.

Mục dữ

liệu A B C D E F G H Tổng số

Lmv(ip) 5 14 14 8 4 5 2 4 56

Sh(ip) 8,9% 25,0% 25,0% 14,3% 7,1% 8,9% 3,6% 7,1% 100%

Xét X= BCD, giá trị của tập mục X là: (adsbygoogle = window.adsbygoogle || []).push({});

Lmv(X) = imv(X, T01) + imv(X, T03) + imv(X, T06) + imv(X, T07) = 3+10+6+8=27.

Đóng góp của tập mục X: Sh(X) = lmv X( ) Tmv =27

56=0,482 > 30%

Do đó, X = BCD là tập mục cổ phần cao.

Bảng 2.3 biểu diễn tất cả các tập mục cổ phần cao của cơ sở dữ liệu bảng 2.1.

Bảng 2.3: Các tập mục cổ phần cao của CSDL bảng 2.1.

Tập mục cổ

phần cao BC BD BCD

lmv(X) 21 22 27

Định nghĩa 2.5: Cho CSDL giao tác DB và ràng buộc cổ phần minShare, khai phá tập mục cổ phần cao là tìm tập HS(High Share), chứa tất cả các tập mục cổ phần cao, tức là tập HS = {XX I, Sh(X)minShare}.

Nhận xét:

 Dữ liệu cho khai phá tập mục thƣờng xuyên là trƣờng hợp đặc biệt của dữ liệu cho khai phá cổ phần cao khi tất cả các mục dữ liệu trong các giao tác có giá trị là 0 và 1.

 Tập mục cổ phần cao mang ý nghĩa khác với tập mục thƣờng xuyên. Tập mục thƣờng xuyên chỉ quan tâm đến số lần xuất hiện của tập mục trong các giao tác, trong khi đó tập mục cổ phần cao quan tâm đến tổng giá trị các mục dữ liệu của tập mục trong các giao tác. Tập mục thƣờng xuyên quan tâm xem nhóm hàng X(tập mục) có bán đƣợc hay không mà bỏ qua các tham số rất quan trọng là tổng số lƣợng hàng bán đƣợc hoặc tổng lợi nhuận mang lại,…Với ngƣỡng minShare cho trƣớc, một tập mục X có thể chỉ chứa trong một số ít giao tác của CSDL nhƣng lại là tập mục cổ phần cao nếu cổ phần Sh(X) của nó vƣợt ngƣỡng minShare. Kể cả khi khai phá trên tập dữ liệu có giá trị nhị phân(0 hoặc 1) thì khai phá tập mục cổ phần cao cũng cho kết quả khác với khai phá tập mục thƣờng xuyên. Chẳng hạn, với CSDL cho trong bảng 2.4, tập mục X = ABCDGH chỉ xuất hiện trong giao tác T01, có cổ phần Sh(X)= 6

12 =50% và độ hỗ trợ sup(X) =

1

cũng lấy ngƣỡng độ hỗ trợ minsup=30% thì X không phải tập mục thƣờng xuyên.

Bảng 2.4: CSDL minh họa ngữ nghĩa của tập mục cổ phần cao.

TID A B C D E F G H tmv T01 1 1 1 1 0 0 1 1 6 T02 1 0 0 0 0 0 0 0 1 T03 1 0 0 0 1 0 0 0 2 T04 0 1 0 0 0 1 0 0 2 T05 0 0 0 1 0 0 0 0 1 lmv 3 2 1 2 1 1 1 1 12

 Tính chất cơ bản đƣợc khai thác để xây dựng các thuật toán khai phá tập mục thƣờng xuyên là tính chất Apriori. Dễ thấy, tính chất này không còn đúng với ràng buộc cổ phần. Ví dụ, xét cơ sở dữ liệu ở bảng 2.1 với

minShare =30%, lmv(BCD)=27, lmv(BC)=21, lmv(B)=14, Sh(BCD)=27/56=48,2%, Sh(BC)=21/56=37,5%, Sh(B)=14/56=25,0%.

Nhƣ vậy, BCD là tập mục cổ phần cao, tập con của nó BC là tập mục cổ phần cao nhƣng tập con khác B lại không phải.

Do đó không thể áp dụng các thủ pháp sử dụng tính chất Apriori vào việc khai phá tập mục cổ phần cao. Đã có nhiều công trình nghiên cứu các thuật toán tìm tập mục cổ phần cao, các tác giả đã đề xuất một số các thuật toán nhƣ thuật toán ZP, ZSP, SIP, FSM,… Trong số các thuật toán đó, thuật toán FSM là một

thuật toán hiệu quả. Phần tiếp theo dƣới đây trình bày nội dung cơ bản của thuật toán FSM cùng một số nhận xét.

Một phần của tài liệu nghiên cứu một số thuật toán khai phá tập mục thường xuyên và tập mục cổ phần cao trong cơ sở dữ liệu (Trang 42 - 48)