Khai phát ập mục cổ phần cao

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Các tập mục thường xuyên trong khai phá dữ liệu và ứng dụng (Trang 30 - 47)

Bài toán cơ bản (hay còn gọi là bài toán nhị phân) khai phá luật kết hợp đề

xuất và nghiên cứu lần đầu tiên vào năm 1993 [9], mục tiêu của bài toán này là tìm tập mục thường xuyên, từđó tạo ra luật kết hợp. Trong mô hình của bài toán nhị phân này, giá trị mỗi mục dữ liệu trong một giao tác là 0 hoặc 1, tức là chỉ

quan tâm mục dữ liệu có xuất hiện trong giao tác hay không. Bài toán cơ bản này có nhiều ứng dụng, tuy vậy, do tập mục thường xuyên chỉ mang ngữ nghĩa thống kê nên nó chỉđáp ứng được phần nào nhu cầu của thực tiễn.

Nhằm khắc phục hạn chế của bài toán cơ bản khai phá luật kết hợp, nhiều nhà nghiên cứu đã mở rộng bài táo theo nhiều hướng khác nhau. Năm 1997, Hiderman và các cộng sự đề xuất bài toán khai phá tập mục cổ phần cao. Trong mô hình này, giá trị của mục dữ liệu trong giao tác là một số, số đó có thể là số

nguyên (như số lượng đã bán của mặt hàng). Cổ phần của một tập mục là sốđo tỷ lệ đóng góp của tập mục trong CSDL. Khai phá tập mục cổ phần cao là khám phá tất cả cac tập mục có cổ phần không nhỏ hơn ngưỡng quy định bởi người sử

dụng.

Trong bài toán cơ bản, các thuật toán khám phá được xây dựng theo phương pháp tìm kiếm từng bước. Cơ sở của các thuật toán là tính chất Apriori của tập mục thường xuyên (hay còn gọi là tính chất phản đơn điệu – Anti monotone). Trong mô hình khai phá tập mục cổ phần cao, tính chất này không còn đúng nữa. Vì vậy việc rút gọn không gian tìm kiếm không thể thực hiện

được như đối với khai phá tập mục thường xuyên. Có nhiều thuật toán khai phá tập mục cổ phần cao như ZP, ZSP, SIP, FSM,… trong đó thuật toán FSM [17] là một thuật toán nhanh, cho phép khám phá tất cả các tập mục cổ phần cao trong CSDL giao tác cho trước.

II.2.1. Bài toán khai phá tp mc c phn cao

Trước hết ta nêu định nghĩa của một số thuật ngữ theo [17]

Cho tập các mục (item) I. Một giao tác T là một tập con của I, T ⊆ I. CSDL là một tập các giao tác DB. 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 ⊆T.

Ta ký hiệu giá trị của mục ip (measure value) trong giao tác Tq là 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 không thuộc Tq và mv(ip, Tq) ≥ 1 nếu ip thuộc 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à

ݐ݉ݒ൫ܶ௤൯ = ෍ ݉ݒ(݅௣, ܶ௤)

௜೛∈்೜

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, ܶ݉ݒ = ෍ ෍ ݉ݒ(݅௣, ܶ௤) ௜೛∈்೜ ்೜∈஽஻ Cho cơ sở dữ liệu bảng sau, mv(D, T01)=1, mv(C,T03)=3, tmv(T01)=7, tmv(T03)=10, Tmv(DB)=56 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 0 0 0 1 1 0 6 lmv 5 14 14 8 4 2 2 4 56

Ký hiệu dbX là tập các giao tác chứa tập mục X.

Đị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), ký hiệu imv(ip, Tq), là tổng giá trị các mục ip trong Tq thuộc X, X ⊆ Tq

݅݉ݒ൫ܺ, ܶ௤൯ = ෍ ݉ݒ(݅௣, ܶ௤)

௜೛∈௑

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

݈݉ݒ(ܺ) = ෍ ݅݉ݒ൫ܺ, ܶ௤൯ = ෍ ෍ ݉ݒ(݅௣, ܶ௤)

௜೛∈௑ ்೜∈ௗ௕೉ ்೛∈ௗ௕೉

Đị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) 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. Trong 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à

min_lmv, min_lmv = minShare * Tmv, có thể thay điều kiện Sh(X) minShare

trong định nghĩa bởi điều kiện lmv(X) min_lmv

Mục DL A B C D E F G H Tổng

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 là

lmv(X) = imv(T01, X) + imv(T03, X) + imv(T06, X) + imv(T07, X) lmv(X) = 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 Tập mục cổ phần cao BC BD BCD lmv(X) 21 22 27 Sh(X) 37,5% 39,3% 48,2% Bng 10. Biu din tt c tp mc c phn cao

Đị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 chứa tất cả các tập mục cổ phần cao, tức là tập HS = {X|X⊆I, Sh(X) ≥ minShare}

Nhn xét:

- Dữ liệu cho 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ị 0 hoặc 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 có bán được hay không mà bỏ qua các tham số 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 trên, 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/5 = 20%. Nếu lấy ngưỡng cổ phần minShare = 30% thì X là tập mục cổ phần cao,

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

- 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.

II.2.2. Thut toán FSM

Năm 2005, Yu-Chiang Li và đồng nghiệp tại khoa Khoa học máy tính và Kỹ thuật thông tin của Đại học Chung Chen, Đài Loan giới thiệu thuật toán FSM (Fast Share Measure) [17], đây là thuật toán hiệu quả tìm ra tất cả các tập mục cổ phần cao. Thay vì khai thác tính chất Apriori, thuật toán FSM sử dụng một số tính chất của tập mục cổ phần cao để rút gọn các tập mục ứng viên.

Cơ sở lý thuyết của thuật toán FSM

- Giá trị cổ phần tối thiểu min_lmv = minShare * Tmv

- Độ dài cực đại của các giao tác trong CSDL: ܯܮ = ݉ܽݔ൛หܶ௤ห|ܶ௤ ∈ ܦܤൟ - Giá trị cực đại của tất cả các mục trong CSDL là MV:

ܯܸ = ݉ܽݔ൛݉ݒ൫݅௣, ܶ௤൯|݅௣ ∈ ܶ௤ ∧ ܶ௤ ∈ ܦܤൟ

Mnh đề 2.1: Cho minShare và k-tập mục X không là tập mục cổ phần cao. Nếu CF(X) = lmv(X) + [lmv(X)/k]*MV*[ML-k] < min_lmv, CF(X) gọi là hàm tới hạn, thì tất cả các tập cha của X không là tập mục cổ phần cao.

II.2.3. Ni dung thut toán FSM

Thuật toán duyệt nhiều lần CSDL, ở lần duyệt thứ k, Ck lưu các tập mục

ứng viên, RCk lưu các tập mục nhận được sau khi kiểm tra hàm CF, Fk lưu các tập mục cổ phần cao nhận được.

Giống như thuật toán Apriori, ban đầu mỗi mục dữ liệu làm một ứng viên. Trong lần duyệt thứ nhất, thuật toán duyệt cơ sở dữ liệu, tính giá trị của mỗi mục dữ liệu. Mỗi ứng viên 1-tập mục X sẽ bị tỉa nếu CF(X) < min_lmv. Trong

mỗi lần duyệt tiếp theo, các tập ứng viên được tạo bằng cách nối hai (k-1)-tập mục trong RCk-1 nếu chúng có (k-2) mục đầu giống nhau và nhận được k-tập mục, kết nạp vào tập Ck (giả sử các mục của CSDL đã được sắp thứ tự). Tất cả

k tập con với độ dài (k-1) của mỗi k-tập mục trong Ck phải thuộc RCk-1, nếu không k-tập mục này sẽ bị tỉa. sau khi Ck được sinh ra, RCk-1 sẽ bị xóa. Tiếp theo thuật toán duyệt cơ sở dữ liệu dể tìm tập mục cổ phần cao. Với mỗi tập mục X trong Ck, nếu tập mục này có lmv(X) min_lmv thì X là tập mục cổ phần cao và được thêm vào Fk. Ngược lại, xét hàm tới hạn CF, nếu CF(X) < min_lmv

thì tập ứng viên X bị loại khỏi RCk. Quá trình cứ thế tiếp tục cho đến khi không còn tập ứng viên nào sinh ra.

II.2.4. Th tc mô t thut toán FSM

Input: CSDL giao tác DB, ngưỡng c phn minShare (s%) Output: Tp F gm các tp mc c phn cao.

Method:

k:=1,F1:=φ, C1:=I;

for each TDB // duyt cơ s d liu DB

tính giá tr lmv(ip) và CF(ip) ca các mc ip trong C1;

for each ip C1

if lmv(ip) min_lmv then F1 := F1 {ip}

Else if CF(ip) < min_lmv then C1 :=C1 \ {ip};

RC1 := C1; For k:= 2 to h

Begin

For each Xp, Xq RCk-1

Ck:=Apriori-join(Xp, Xq);

For each TDB// duyt cơ s d liu DB

Tính giá tr lmv(X) và CF(X) ca các ng viên X trong Ck; For each XCk If lmv(X) minlmv Fk:= Fk{X} Else if CF(X) < min_lmv Ck:=Ck – {X}; RCk:=Ck; End Return F=Fk;

Thuật toán FSM có ưu điểm là tương đối dễ hiểu, sau khi thực hiện tìm

được tập F chứa tất cả các tập mục cổ phần cao. Đây là một thuật toán tốt để

khai phá tập mục cổ phần cao.

Tuy vậy, thuật toán còn một số hạn chế. Thuật toán sử dụng hàm tới hạn CF(X) để thu gọn tập các tập mục ứng viên nhưng thực tế số các tập mục của tập RCk vẫn còn lớn do giá trị hàm tới hạn CF(X) còn cao, chưa sát với giá trị

thực của các tập mục trong RCk.

Có một số thuật toán cải tiến thuật toán FSM này như: EFSM, AFSM, ShFSM, SuFSM… sử dụng một số định nghĩa và tính chất khác để thực hiện việc tỉa bớt các tập ứng viên.

II.2.5. Thut toán AFSM

Cơ s lý thuyết ca thut toán AFSM

Như phần trên đã trình bầy, ràng buộc cổ phần không có tính chất phản

đơn điệu như tập mục thường xuyên, đây chính là trở ngại của bài toán khai phá tập mục cổ phần cao. Để khắc phục điều này, [4] đề xuất khái niệm “giá trị theo giao tác tập mục”, “tập mục cổ phần theo giao tác cao” và chứng minh tập mục cổ phần theo giao tác có tính chất phản đơn điệu (Anti Monotone), do đó có thể

sử dụng để tỉa các tập mục ứng viên.

Định nghĩa 2.6: Cho tập mục X, dbx là tập các giao tác chứa X. Giá trị

theo giao tác (transaction meassure value) của tập mục X, ký hiệu tmv(X), là tổng giá trị của tất cả các giao tác chứa tập mục X, tức là

tmv(X) = Tmv(dbx) = ෍ tmv൫T୯൯

்೜

Ví dụ: xét cơ sở dữ liệu ở bảng 2.1, tmv(A) = tmv(T01) + tmv(T08) = 7+6=13.

Định nghĩa 2.7: Tập mục X được gọi là tập mục cổ phần theo giao tác cao nếu tmv(X) min_lmv. Trường hợp ngược lại, X được gọi là tập mục cổ phần theo giao tác thấp.

Ví dụ, xét cơ sở dữ liệu ở với minShare= 30%, min_lmv = 16,8, tmv(A) = 13, tmv(E) =22, 1-tập mục A là tập mục cổ phần theo giao tác thấp còn E là tập mục cổ phần theo giao tác cao.

Định lý 2.1: Tập mục cổ phần theo giao tác cao có tính chất phản đơn điệu (Anti Monotone) [4].

Chng minh:

Xét hai tập mục X, Y sao cho Y ⊂X, ta chứng minh nếu Y là tập mục cổ

Ta có Y ⊂ X nên dbY ⊇ dbX, do đó tmv(Y)=tmv(dbY) tmv(dbX) – tmv(X). Nếu Y là tập mục cổ phần theo giao tác thấp, tức là tmv(Y) < min_lmv thì

tmv(X) tmv(Y) < min_lmv, X cũng là tập mục cổ phần theo giao tác thấp.

Định lý 2.1 cho biết các tập mục cổ phần theo giao tác cao có tính chất phản đơn điệu như tính chất của tập mục thường xuyên, do đó có thể sử dụng tính chất này để tỉa các ứng viên khi khai phá.

Định lý 2.2: Nếu tập mục X là tập mục cổ phần cao thì X cũng là tập mục cổ phần theo giao tác cao [4].

Chng minh: Ký hiện dbX là tập các giao tác chứa tập mục X, ta có: Lmv(X) = ෍ imv(X, T୯) ୘౧∈ୢୠ౔ = ෍ ෍ mv൫i୮,T୯൯ ୧౦∈ଡ଼ ୘౧∈ୢୠ౔ ≤ ෍ ෍ mv൫i୮,T୯൯ ୧౦∈୘౧ ୘౧∈ୢୠ౔ = ݐ݉ݒ(ܺ) Do đó, nếu X là tập mục cổ phần cao, tức lmv(X) min_lmv, thì X cũng là tập mục cổ phần theo giao tác cao vì tmv(X) lmv(X) min_lmv.

Nhn xét: Từ định lý 2.2 có thể suy ra tập các tập mục cổ phần cao chứa trong tập các tập mục cổ phần theo giao tác cao. Theo định lý 2.1, các tập mục cổ phần theo giao tác cao có tính chất phản đơn điệu như tập mục thường xuyên, do đó ta có thể áp dụng một số thuật toán khai phá tập mục thường xuyên đã có (như các thuật toán kiểu Apriori, thuật toán tìm kiếm theo chiều sâu FP- growth, …), thay số lần xuất hiện của tập mục vởi giá trị theo giao tác của tập mục thì sẽ nhận được kết quả khai phá là các tập mục cổ phần theo giao tác cao. Khi đó ta chỉ cần duyệt lại cơ sở dữ liệu để tính giá trị đóng góp thực sự

của các tập mục cổ phần theo giao tác cao để nhận được các tập mục cổ phần cao.

Định lý 2.2 cũng cho ta một điều kiện cần để X là tập mục cổ phần cao, đó là X phải là tập mục cổ phần theo giao tác cao. Áp dụng định lý 2.1 và định lý 2.2, [4] đề xuất cách tỉa các tập ứng viên trong thuật toán mới AFSM như sau:

Ở bước lặp thứ k, nếu X là tập mục cổ phần theo giao tác thấp thì X là tập mục cổ phần thấp và mọi tập cha của X cũng là tập mục cổ phần theo giao tác thấp. Do đó ta có thể loại bỏ tập ứng viên X, từ bước (k+1) trở đi không cần sinh ra các tập cha của X nữa.

Như vậy, điều kiện để tỉa các ứng viên cho thuật toán mới AFSM là

tmv(X)<min_lmv. Để tiện trình bày khi so sánh với thuật toán FSM, ta cũng gọi giá trị tmv(X) là hàm tới hạn của tập mục X. Ký hiệu CFFSM(X) và CFAFSM(X) tương ứng là hàm tới hạn dùng cho thuật toán FSM và thuật toán mới AFSM:

CF୊ୗ୑(ܺ) = ݈݉ݒ(ܺ) +݈݉ݒ(ܺ)݇ . ܯܸ. (ܯܮ − ݇), CF୊ୗ୑(ܺ) = ݐ݉ݒ(ܺ)

Định lý 2.3 sau so sánh giá trị hai hàm tới hạn này.

Định lý 2.3: Cho cơ sở dữ liệu DB và k-tập mục X. Khi đó:

CF୅୊ୗ୑(ܺ) ≤ CF୊ୗ୑(ܺ).

Giá trị hai hàm tới hạn luôn bằng nhau khi cơ sở dữ liệu DB là bảng nhị

phân với độ dài các giao tác bằng nhau [4].

Chng minh: 1) CF୅୊ୗ୑(ܺ) ≤ CF୊ୗ୑(ܺ). Ta có CF୅୊ୗ୑(ܺ) = ݐ݉ݒ(ܺ) = ݐ݉ݒ(ܾ݀௑) = ෍ tmv(T୯) ୘౧∈ୢୠ౔ = ෍ ෍ mv൫i୮,T୯൯ ୧౦∈୘౧ ୘౧∈ୢୠ౔ = ෍ ቎෍ mv(i୮T୯) ୧౦∈ଡ଼ + ෍ mv൫i୮, T୯൯ ୧౦∈୘౧\ଡ଼ ቏ ୘౧∈ୢୠ౔

= ෍ ෍ mv൫i୮,T୯൯ ୧౦∈ଡ଼ ୘౧∈ୢୠ౔ + ෍ ෍ mv൫i୮,T୯൯ ୧౦∈୘౧\ଡ଼ ୘౧∈ୢୠ౔ = lmv(X) + ෍ ෍ mv൫i୮,T୯൯ ୧౦∈୘౧\ଡ଼ ୘౧∈ୢୠ౔ Vì ቊห݉ݒ൫ip,Tq൯ ≤ ܯܸ Tq\Xห ≤ ܯܮ − ݇ (a) Nên: CF୅୊ୗ୑(ܺ) ≤ ݈݉ݒ(ܺ) + ෍ ܯܸ. (ܯܮ − ݇) = ݈݉ݒ(ܺ) +|VW | CD∈EFG . -7. (-. − ) Mặt khác, ta có |VW | ≤ &'(( )` (b) Do đó: CFUOPQ() ≤ !() + |VW |. -7. (-. − ) ≤ !() +!(). -7. (-. − ) = CFOPQ() (c) Vậy CFUOPQ() ≤ CFOPQ():

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Các tập mục thường xuyên trong khai phá dữ liệu và ứng dụng (Trang 30 - 47)

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

(67 trang)