Khai phát ập mục lợi ích 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 47 - 56)

Khai phá tập mục lợi ích cao là sự mở rộng, tổng quát hóa của khai phá tập mục cổ phần cao. Mô hình khai phá tập mục lợi ích cao được Yao và cộng sự đề

xuất (Hong Yao và Hamilton, 2006; H. Yao, Hamilton và Butz, 2004) [10, 11, 12]. Trong mô hình khai phá tập mục lợi ích cao, giá trị của mục dữ liệu trong giao tác là một số (như số lượng đá bán của mặt hàng, gọi là giá trị khách quan), ngoài ra còn có bảng lợi ích cho biết lợi ích mang lại khi bán một đơn vị hàng

đó (gọi là giá trị chủ quan, do người quản lý kinh doanh xác định). Lợi ích của một tập mục là sốđo lợi nhuận mà tập mục đó đóng góp trong CSDL, nó có thể

là tổng lợi nhuận, là tổng chi phí của tập mục. Khai phá tập mục lợi ích cao là khám phá tất cả các tập mục lợi ích không nhỏ hơn ngưỡng lợi ích tối thiểu quy

định bởi người sử dụng.

Trong [10, 11, 12] Hong Yao và Howard Hamilton đề xuất phương pháp khai phá và các chiến lược tỉa dựa trên các tính chất của ràng buộc lợi ích, thể

hiện trong hai thuật toán Umining và UminingH. Các thuật tỉa mà hai thuật toán này áp dụng có khả năng thu gọn phần nào tập ứng viên, tuy vậy vẫn có nhược

điểm nên hiệu quả không cao.

Trong [6] Y. Liu, W.K. Liao và A. Choudhary, 2005 đưa ra khái niệm lợi ích của giao tác và lợi ích của tập mục tính theo lợi ích của giao tác chứa nó gọi là lợi ích TWU (transaction weighted utiliztion). Lợi ích theo giao tác TWU 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 và tập tất cả

các tập mục lợi ích cao chưa trong tập tất cả các tập mục lợi ích TWU cao. Y. Liu đề xuất thuật toán hiệu quả gồm hai pha để khai phá tập mục lợi ích cao. Thuật toán rút gọn không gian tìm kiếm nhờ áp dụng tính chất phản đơn điệu của lợi ích TWU. Tuy nhiên, thuật toán thực hiện kém hiệu quả khi khai phá các tập dữ liệu dày và mẫu dài vì tốn nhiều thời gian cho việc sinh ra khối lượng khổng lồ các tập mục ứng viên và tính lợi ích TWU của nó trong mỗi lần duyệt CSDL. Thuật toán phải duyệt CSDL nhiều lần, số lần duyệt bằng với chiều dài của mẫu dài nhất tìm được, do đó, khi số mục dữ liệu lớn thì khối lượng tính toán là vô cùng lớn.

Trong [7] A. Erwin và đồng sự (A. Erwin, R. P. Gopalan và N. R. Achuthan) đề xuất các thuật toán CTU-Mine và CTU-PRO khai phá tập mục lợi ích cao theo cách phát triển các mẫu trên cấu trúc cây. Thuật toán CTU-Mine khai phá hiệu quả hơn thuật toán hai pha chỉ trong cơ sở dữ liệu dày với ngưỡng lợi ích thấp. Thuật toán CTU-PRO có cải tiến so với thuật toán CTU-Mine nên khai phá hiệu quả hơn thuật toán hai pha và thuật toán CTU-Mine.

II.3.1. Bài toán khai phá tp mc li ích cao

Một sốđịnh nghĩa và thuật ngữ mô tả bài toán khai phá tập mục lợi ích cao theo [10, 11, 12] (H. Yao, Hamilton và Butz, 2004; Hong Yao, Hamilton và Geng, 2006)

Cho tập mục (item) I={I1,I2,…,Im}. Một giao tác (transaction) T là một tập con của I, T⊆ I. Cơ sở dữ liệu giao tác là 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à k-tập mục. Giao tác T gọi là chứa tập mục X nếu X ⊆ T.

Định nghĩa 2.8: Ta gọi giá trị của mục ip trong giao tác Tq (giá trị tại cột ip tại hàng Tq của cơ sở dữ liệu) là giá trị khách quan (objective value) của mục ip tại giao tác Tq, ký hiệu o(ip,Tq)

Thông thường giá trị khách quan của mục dữ liệu là số tự nhiên (như số

lượng đã bán của một mặt hàng trong giao tác).

Định nghĩa 2.9: Ta gọi giá trị do nhà kinh doanh gán cho mục ip trong cơ

sở dữ liệu, dựa trên đánh giá lợi nhuận mà mỗi đơn vị mục dữ liệu có thể đem lại, là giá trị chủ quan (subjective value) của mục ip và ký hiệu s(ip)

Giá trị chủ quan của một mục thường được cho trong một bảng kèm theo cơ sở dữ liệu và gọi là bảng lợi ích (utility table).

TID A B C D E T01 0 12 2 0 2 T02 0 12 0 2 1 T03 2 0 1 0 1 T04 1 0 0 2 1 T05 0 0 4 0 2 T06 1 2 0 0 0 T07 0 20 0 2 1 T08 3 0 25 6 1 T09 1 2 0 0 0 T10 0 0 16 0 1

Bng 17. Cơ s d liu giao tác trong khai phá tp mc li ích cao

Mục dữ liệu Lợi nhuận ($/đơn vị) A 3 B 5 C 1 D 3 E 5 Bng 18. Bng li ích các mc d liu

Giá trị khách quan của mục B tại giao tác T02 là o(B,T02) = 12, giá trị chủ

quan của B là s(B) = 5

Lợi ích của mục dữ liệu trong giao tác được đánh giá thông qua hàm 2 biến

Định nghĩa 2.10: Ký hiệu x là giá trị khách quan, y là giá trị chủ quan của mục dữ liệu. Một hàm 2 biến f(x,y): R×RR, đơn điệu tăng theo x và theo y,

được gọi là hàm lợi ích

Thông thường hàm lợi ích được xác định như sau: f(x,y) = x×y

Định nghĩa 2.11: Cho hàm lợi ích f(x,y). Lợi ích của mục ip tại thao tác T, ký hiệu u(ip,Tq) là giá trị của hàm f(x,y) tại o(ip,Tq)s(ip), tức là u(ip,Tq) = f(o(ip,Tq), s(ip)).

Định nghĩa 2.12: Cho tập mục X chứa trong giao tác Tq. Lợi ích của tập mục X tại giao tác Tq, ký hiệu u(X,Tq), là tổng lợi ích của tất cả các mục ip thuộc X tại giao tác Tq, tức là u(X, Tq) = ∑ ∈X i q p p T i u( , ) với X ⊆Tq.

Định nghĩa 2.13: Lợi ích của tập mục X trong cơ sở dữ liệu DB, ký hiệu

u(X), là tổng lợi ích của tập mục tại X tại các giao tác thuộc dbx, tức là:

∑ ∑ ∑ ∈ ∈ ∈ = = x q db q x p T T db i X q p q u i T T X u X u( ) ( , ) ( , ).

Ví dụ, trong cơ sở dữ liệu bảng trên u(B,T02) = 12.5 = 60. Xét X = {B, D}, u(X, T02) = u(B, T02) + u(D,T02) = 12.5+2.3=66, có 2 giao tác T02 và T07 chứa tập mục X.

Định nghĩa 2.14: (transaction utility): Lợi ích của giao tác Tq, ký hiệu

tu(Tq), là tổng lợi ích của tất cả các mục dữ liệu trong giao tác. Tức là

∑ ∈ = q p T i q p q u i T T tu ( ) ( , )

Ví dụ, trong cơ sở dữ liệu bảng trên, tu(T02) = 12.5+2.3+1.5=71.

Định nghĩa 2.15: Ngưỡng lợi ích tối thiểu, ký hiệu δ, là phần trăm của tổng lợi ích của toàn bộ cơ sở dữ liệu.

Từ ngưỡng lợi ích tối thiểu δ, có thể tính giá trị lợi ích tối thiểu minutil như

sau: minutil = δ{ tuT@

`|}

Ví dụ, cơ sở dữ liệu bảng trên có tổng lợi ích là 398, nếu δ= 30% thì giá trị

lợi ích tối thiểu là minutil = 30% * 398 = 119,4.

Để tiện trình bày ở các phần sau, luận văn sử dụng các giá trị lợi ích tối thiểu minutil thay cho ngưỡng phần trăm δ.

Định nghĩa 2.16: Cho ngưỡng lợi ích minutil (>0) và xét tập mục X. X

được gọi là tập mục lợi ích cao nếu u(X)minutil. Trường hợp ngược lại, X

được gọi là tập mục lợi ích thấp.

Định nghĩa 2.17: Cho cơ sở dữ liệu giao tác DB và ràng buộc lợi ích minutil, khai phá tập mục lợi ích cao là tìm tập mục lợi ích HU chứa tất cả các tập mục lợi ích cao, tức là tập HU = {X|X⊆I, u(X) ≥ minutil}

Nhn xét:

- Ràng buộc lợi ích không có tính chất phản đơn điệu, ví dụ trong cơ sở dữ

liệu trên, ta có u(BC) = 62 < 72 = u(BCE), trong khi đó u(BC) = 62 > 0 = u(BCD)

- Có thể coi khai phá tập mục cổ phần cao là trường hợp đặc biệt của khai phá tập mục lợi ích cao khi tất cả các mục dữ liệu đều có giá trị chủ quan bằng 1. Nếu giá trị các mục dữ liệu trong các giao tác là 0 hoặc 1 và tất cả các giá trị

chủ quan bằng 1 thì ta gặp lại mô hình dữ liệu của khai phá tập mục thường xuyên.

- Về mặt ngữ nghĩa, tập mục lợi ích cao khác với tập mục thường xuyên, dù có khai phá trên tập dữ liệu nhị phân với ngưỡng lợi ích minutil bằng ngưỡng

độ hỗ trợ minsup thì kết quả khai phá cũng khác nhau, các tập mục tìm được có ý nghĩa khác nhau. Như vậy, phát triển mở rộng bài toán khai phá tập mục thường xuyên thành bài toán khai phá tập mục cổ phần cao và khai phá tập mục lợi ích cao không đơn thuần là mở rộng dữ liệu mà là thay đổi nhiệm vụ khai phá, khai phá với nhiệm vụ mới và kết quả các tập mục tìm được có các ứng dụng mới.

II.3.2. Khai phá tp mc li ích cao

Cho cơ sở dữ liệu giao tác và bảng lợi ích, ngưỡng lợi ích minutil, nếu giá trị ip trong mỗi giao tác được thay thành o(ip, Tq) * s(ip) thì nhiệm vụ khai phá lợi ích cao trở thành khai phá cổ phần cao với min_lmv = minutil.

TID A B C D E T01 0 60 2 0 10 T02 0 60 0 6 5 T03 6 0 1 0 5 T04 3 0 0 6 5 T05 0 0 4 0 10 T06 3 10 0 0 0 T07 0 100 0 6 5 T08 9 0 25 18 5 T09 3 10 0 0 0 T10 0 0 16 0 5

Tính cht toán hc ca ràng buc li ích. Ký hiệu

- Xk là k-tập mục (tập mục có k mục phân biệt)

- Lk-1 là tập tất cả các tập con có k-1 mục của tập Xk, tức là: Lk-1 = {Xk-1| Xk-1 ⊂ Xk}

Định nghĩa 2.18: Hàm lợi ích không âm là hàm f(x,y): (R,R)R+, ở đó R là tập số thực, R+ là tập số thực không âm

Chú ý: hàm f1(x,y) với miền giá trị [-n,m] với n≥0,m≥0 có thể chuyển đổi thành hàm không âm bằng cách thêm n vào tất cả các giá trị của hàm. Cũng như

vậy hàm không dương f2(x,y) ≤ 0 có thể chuyển đổi thành hàm không âm bằng cách lấy giá trị tuyệt đối của nó. Do vậy kết quả nhận được cho hàm không âm cũng có thể áp dụng cho các hàm f1 và f2

Định lý 2.4: (cận trên của lợi ích). Cho k-tập mục với Xk, u(Xk) là lợi ích của Xk tính trên hàm lợi ích không âm. Khi đó

1 ) ( ) u(X 1 1 1 k − ≤ ∑ − − ∈ − k X u k k L X k

Định lý này là một tính chất quan trọng của ràng buộc lợi ích, nó cho biết lợi ích của k-tập mục Xkđược giới hạn bởi lợi ích của tất cả các tập mục con có (k-1) mục của nó.

Các thuật toán khai phá tập mục lợi ích cao như Umining, UminingH sử

dụng tính chất trên để tỉa các tập ứng viên.

Y. Liu đưa ra khái niệm lợi ích của một tập mục tính theo lợi ích của các giao tác chứa nó, gọi là lợi ích TWU.

Định nghĩa 2.19: (Transaction Weighted Utility - TWU) Lợi ích TWU của tập mục X, ký hiệu twu(X), là tổng lợi ích của tất cả các giao tác chứa X trong cơ sở dữ liệu, tức là

~() = ()

∈∧ ⊆

Nhn xét:

u(X,Tq) tu(Tq) nên u(X) twu(X). Có thể coi twu(X) như là cận trên của u(X). Với ngưỡng lợi ích minutil, nếu X là tập mục lợi ích cao thì X cũng là tập mục lợi ích TWU cao. Ngược lại nếu X là tập mục lợi ích TWU thấp thì X cũng là tập mục lợi ích thấp.

Trong [6] Y. Liu đã chứng minh:

- Ràng buc li ích TWU có tính cht phn đơn điu, tc là: Mi tp mc cha ca tp mc li ích TWU thp cũng là tp mc li ích thp. Do vậy, nếu X là tập mục mục lợi ích TWU thấp, twu(X) < minutil, thì tập X và mọi tập cha của X đều là tập mục lợi ích thấp và có thể loại bỏ chúng trong quá trình khai phá tập mục lợi ích cao.

- Tp các tp mc li ích cao cha trong tp các tp mc li ích TWU cao.

Điều này có nghĩa là, nếu ta tìm được tập các tập mục lợi ích TWU cao thì ta chỉ cần tìm các tập mục lợi ích cao trong tập đó.

Do tập mục lợi ích TWU cao có tính chất phản đơn điệu nên có thể sử

dụng các phương pháp khai phá của tập mục thường xuyên để tìm các tập mục lợi ích cao. Tác giả sử dụng ý tưởng của thuật toán FSM để khai phá tập mục lợi ích cao với tính chất phản đơn điệu của tập mục lợi ích TWU cao.

Thuật toán FSM đã được trình bày ở phần trước, dưới đây là một dạng của thuật toán FSM thay vì sử dụng hàm tới hạn CF(X) để tỉa các tập ứng viên thì thuật toán này sử dụng tính chất tập mục lợi ích TWU thấp để tỉa các tập ứng viên.

II.3.3. Thut toán khai phá tp mc li ích cao

Dựa trên ý tưởng của thuật toán FSM, thay phương pháp tỉa các ứng viên không thỏa mãn điều kiện ta có thuật toán khai pháp tập mục lợi ích cao. Hàm Apriori-join dùng để sinh tập ứng viên Ck dựa trên tập mục Lk-1

Apriori-join

(1) For (each (k-1)-tp mc l1 Lk-1

(2) For(each(k-1)-tp mc l2 Lk-1) do

(3) if(l1[1] = l2[1] and l1[2] = l2[2] and … and l1[k-2] = l2[k-2] and l1[k-1] < l2[k-1]) then

(4) Ck { l1[1], l1[2], …, l1[k-2], l1[k-1], l2[k-1]}; //Kết np k-tp mc mi vào Ck

II.3.4. Mô t thut toán

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

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

tính giá tr u((ip) và twu(ip) ca các mc ip trong C1; for each ipC1

if u(ip) min_util then HS1:=HS1{ip}

else if twu(ip)<min_util then C1:=C1\{ip};

RC1:=C1; repeat

Begin

For each Xp, XqRCk-1

Ck:=Apriori_join(Xp, Xq);

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

Tính giá tr ca u(X) và twu(X) ca các ng viên X trong Ck; For each XCk If u(X)min_util HSk:= HSk {X} Else if twu(X)<min_util Ck:= Ck-{X}; RCk:=Ck; End Until Ck=; Return HS= HSk;

Dựa trên thuật toán FSM khai phá các tập mục cổ phần cao. Thuật toán FSM sử dụng hàm tới hạn CF(X) để tỉa bớt các tập ứng viên có ngưỡng cổ phần thấp hơn minShare cho trước thì thuật toán này sử dụng hàm twu(X) để tỉa bớt các tập ứng viên có lợi ích thấp hơn lợi ích minuitl cho trước.

Ngoài ra có rất nhiều thuật toán khai phá tập mục lợi ích cao hiệu quả hơn bằng thuật toán này sử dụng phương pháp khai phá dữ liệu dựa trên thuật toán FP-Growth đã được trình bày ở Chương I.

III.CÀI ĐẶT ỨNG DỤNG THỬ NGHIỆM KHAI PHÁ TẬP MỤC LỢI ÍCH 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 47 - 56)

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

(67 trang)