Khai phá tập mục lợi ích cao (HUIs) là nhiệm vụ chính trong khai phá dữ liệu, trong đó bao gồm sự khai phá các nhóm các phần tử (mặt hàng) có lợi nhuận cao trong CSDL giao dịch. Cụ thể, phân tích CSDL bán hàng của siêu thị, phân tích thói quen mua của khách hàng nhằm tìm ra những mặt hàng khác nhau được khách hàng mua trong cùng một lần mua.
1 KHAI PHÁ TẬP TỐI THIỂU SỐ LƯỢN Đỗ ThịTẬP ThanhTỐI NgaSỐ KHAI PHÁ THIỂU SỐ LƯỢN KHAI PHÁ TẬP TỐI THIỂU Phịng khoa học Đại họcÍCH Cơng vàCAO Quản lý Hữu Nghị LƯỢNG PHẦN TỬ Trường LỢI Đỗ Thịnghệ Thanh Nga e-mail: thanhngait94@gmail.com Phòng khoa học Trường Đại học Cơng nghệ Quản lý Hữu Nghị Tóm tắt: Khai phá tập mục lợi ích cao (HUIs) nhiệm vụ c e-mail: thanhngait94@gmail.com Đỗ Thị Thanh Nga phá nhóm phần tử (mặt hàng) có lợi nhuận cao tron Văn Thị Thanh Phòng khoa học siêu thị, phân tích thói quen mua khách hàng nhằm THCS Tóm tắt:Trường Khai phá tậpThăng mục lợiLong ích cao (HUIs) nhiệm vụ c Trường Đại học Công nghệ Quản lý Hữu Nghị mua lần mua Các thuật toán khai phá tập Email: thanhvan.vn1@gmail.com phá nhóm phần tử (mặt hàng) có lợi nhuận cao tron Email: thanhngait94@gmail.com thường tìm thấy tập chứa nhiều phần tử (mặt hàng) c siêu thị, phân tích thói quen mua khách hàng nhằm mua xác tập mặt hàng Một đại diện HU mua lần mua Các thuật toán khai phá tập Mining Minimal High Utility Itemsets (MinHUIs) đề x thường tìm thấy tập chứa rấtkhai nhiều phần tửliệu, (mặt hàng) Tóm tắt: Khai phá tập mục lợi ích cao (HUIs)tạo nhiệm vụ lợi nhuận cao CSDL giaophá dịch, giúp quản lý k mua tử xáchàng) tập mặt hàng Một đại diện HU bao gồm khai phá nhóm phần (mặt hợp lý, hiệu có lợi nhuận cao Mining Highphân Utilitytích Itemsets đề x CSDL giao dịch Cụ thể, phân tích CSDL bán hàng củaMinimal siêu thị, thói(MinHUIs) quen mua HUIs, MinHUIs tạo lợi nhuận cao CSDL giao mua dịch, giúp quản lý k khách hàng nhằm tìm mặt hàng Keywords: khác khách hàng hợp lý, hiệu lần mua Các thuật tốn khai phá tập lợi ích cao - High Utility Itemset Minining I GIỚI (HUIM) thường tìm thấy tập chứa nhiều phầnTHIỆU tử (mặt hàng) có lợi nhuận cao Keywords: HUIs, MinHUIs Bàixác tốntập khaimặt pháhàng tập tốiđó thiểu số lượng phầnmới tử thực tế, khách hàng mua Một đại diện íchích cao được-phát biểu sau: High Utility HUIs tập tối thiểu số lượng phần tửlợi cao Mining Minimal I.lợi GIỚI THIỆU Cho minutil ngưỡng ích tối thiểu, D -ra Itemsets (MinHUIs) đề xuất nhằm phát tập nhỏ -nhất cáclợimặt hàng tạo Bài toán khai phá tập tối thiểu số lượng phần tử mộtkinh CSDL giao dịch lợi nhuận cao CSDL giao dịch, giúp quản lý doanh tiếp thị lựa chọn xếp lợi ích cao phát biểu sau: Vấn đề việc khai phá tập tối thiểu số gian hàng hợp lý, hiệu Cho minutil - ngưỡng lợi ích tối thiểu, D lượng phần tử lợi ích cao tìm minHUI tập CSDL giao dịch Keywords: HUIs, MinHUIs chứa tập nhỏ phần tử lợi ích cao Vấn đề việc khai phá tập tối thiểu số Cho CSDL D - MinFHMTest hai lượng phần tử lợi ích cao tìm minHUI tập bảng 2.1 bảng 2.2; chứa tập nhỏ phần tử lợi ích cao I GIỚI THIỆU BẢNG 2.1 CSDL GIAO DỊCH MINFHMTEST Cho CSDL D - MinFHMTest hai Bài toán khai phá tập tối thiểu số lượng Tid bảng 2.1 bảng Giao 2.2; dịch phần tử lợi ích cao phát biểu sau: T B1ẢNG 2.1 CSDL(a,4) GIAO(c,3) DỊCH(d,1) MINFHMTEST T2 (a,3) (b,1) (c,2) (e,2) (g,3) Tid Giao dịch Cho minutil - ngưỡng lợi ích tối thiểu, D T3 (a,2) (b,2) (c,1) (d,6) (e,1) (f,2) T1 (a,4) (c,3) (d,1) CSDL giao dịch T4 (b,3) (c,3) (d,3) (e,2) T2 (a,3) (b,1) (c,2) (e,2) (g,3) T5 (b,2) (c,3) (e,1) (g,1) Vấn đề việc khai phá tập tối thiểu số T3 (a,2) (b,2) (c,1) (d,6) (e,1) (f,2) lượng phần tử lợi ích cao tìm minHUI T4ẢNG 2.2 CÁC GIÁ (b,3) (d,3) (e,2) B TRỊ(c,3) LỢI ÍCH NGỒI tập chứa tập nhỏ phần tử lợi ích T5 (b,2) (c,3) (e,1) (g,1) a b c d e f g Phần tử cao Cho CSDL D - MinFHMTest hai bảng 2.1 bảng 2.2; BẢNG 2.1 MINFHMTEST CSDL 24 TẠP CHÍ KHOA HỌC GIAO QUẢN LÝ VÀ CÔNG NGHỆ DỊCH BẢNG CÁC GIÁ TRỊ LỢI ÍCH NGỒI BẢNG 2.2 C2.2 ÁC GIÁ TRỊ LỢI ÍCH NGỒI 2 1 Lợi ích a b c d e f g Phần tử bảng2 2.1, 2giao dịch T52chỉ ra1rằng Lợi ích Trong phần tử b, c, e g xuất giao dịch với lợi ích tương ứng 2, 3, 1; bảng 2.2 Trong bảng 2.1, giao dịch T5 phần tử b, c, e g xuất giao dịch với lợi ích tương ứng 2, 3, 1; bảng 2.2 phá tập lợi ích cao - High Utility Itemset Minining (HUIM) ặt hàng) có lợi nhuận cao thực tế, khách hàng ới HUIs tập tối thiểu số lượng phần tử lợi ích cao đề xuất nhằm phát tập nhỏ mặt hàng Trong bảng 2.1, giao dịch T5 quản lý kinh doanh tiếp thị lựa chọn xếp gian hàng - ố p i c i chỉ ra rằng lợi lợi ích ích ngồi ngồi của các phần phần tử tử này tương tương ứng ứng là 2, 2, 2, 2, 22 và 1 Sau đó, đưa phần tử i thỏa mãn (TWU(i) ≥ phần tử b, c, e g xuất giao minutil UTIL(i)= minutil thì: output I 1; bảng 2.2 lợi ích ngồi xếp )các là: là: theo,U(X,T U(X,T == tử I* tăng X X3,của1chỉ trong giao giao dịch dịch TTjj Tiếp jj) phần lợi phần cácraphần tửích tương ứng tử 2, 2, 2tương dần theo giá trị TWU ứng 2, 2, ví vítậpcủa dụ, dụ, u({b,c,e},T u({b,c,e},T )) == Theo định nghĩa ích Theo định nghĩa 1.4, 1.4, lợilợi ích phần tập tử Thực quét55CSDL lần Các phần tử phầnX tửtrong X là: U(X,Tj) giao giao dịch dịch Tj là:Tj U(X,T = j) giao dịch xếp lại theo thứ 2*2+3*2+1*2 2*2+3*2+1*2 ==víví12 12 dụ, u({b,c,e},T5) u({b,c,e},T ) = = tự I* xác định EUCS cặp phần tử: dụ, = 2*2+3*2+1*2 = 12 cấu trúc lưu trữ TWU tất cặp 2*2+3*2+1*2 = 12 Theo Theo định định nghĩa nghĩa 1.5, lợi ích ích của tập tập phần phần tử tử Theo định nghĩa 1.5, lợi ích tập1.5, phần tửlợi phần tử {a,b} cho u{a,b} ≠ Theo 1.5, lợi ích tập phần X trongđịnh CSDLnghĩa là: X Xtửtrong CSDL là: là:ví dụ: = ∑CSDL u(X,T), Xu(X) CSDL là: Sau xây dựng cấu trúc EUCS, việc khai Trong CSDL D, u({b,c,e}) = u({b,c,e}, T ) phá tìm kiếm theo chiều sâu tập bắt u(X) u(X)u(X) == =∑ ∑∑T u(X,T), u(X,T), ví dụ: dụ: đầu việc gọi thủ tục đệ quy Search, bao ⊆TTTu(X,T), DB X ví dụ:ví TT∈T∈DB X⊆ + u({b,c,e}, )DB∧∧X + u({b,c,e}, T ) + u({b,c,e}, T ) = gồm:= phần tử ban đầu Trong CSDL D, u({b,c,e}) = u({b,c,e}, T2) Trong Trong CSDL CSDL D, D, u({b,c,e}) u({b,c,e}) =tậpu({b,c,e}, u({b,c,e}, TT22rỗng, )) tập phần (1*2+2*2+2*2) + (2*2+1*2+1*2) tử đơn lẻ I*, minutil cấu trúc EUCS + u({b,c,e},+T3) (3*2+3*2+2*2) + (2*2+3*2+1*2) = 46 ) ) ++ u({b,c,e}, u({b,c,e}, T T 3là3 một+tậpu({b,c,e}, Một tập XT4) lợi ích cao lợi ích = + u({b,c,e}, T5) Thuật toán 2.1: Thuật toán MinFHM u(X) lớn ngưỡng lợi ích tối thiểu (1*2+2*2+2*2) + (2*2+1*2+1*2) +ngườiu({b,c,e}, u({b,c,e}, TT44)) ++ u({b,c,e}, u({b,c,e}, TT55)) == minutil do+ dùng đưa (u(X) ≥ minutil) Input: Ngược lại, X + (2*2+3*2+1*2) tập phần tử lợi ích thấp + (3*2+3*2+2*2) = 46 (1*2+2*2+2*2) (1*2+2*2+2*2) + (2*2+1*2+1*2) (2*2+1*2+1*2) - D: CSDL giao dịch; Giả sử, minutil + = 45, tập {b,c,e} tập lợi Một tập X tập lợi ích cao lợi ích cao - minutil: ++nó(3*2+3*2+2*2) (3*2+3*2+2*2) + (2*2+3*2+1*2) (2*2+3*2+1*2) == ngưỡng 46 46 lợi ích tối thiểu Định nghĩa tậpngưỡng phần tử X+ tập ích u(X) lớn 2.1 hơnMột lợi ích tối thiểu số lượng tử lợidùng ích cao - MinHUI ≥ tối thiểu minutil dophần người đưa (u(X) Một Một tập tập X X là một tập tập lợi ích íchOutput: cao cao nếu lợi lợi ích ích u(X) minutil khơng tồn tập Y X cho: lợi minutil) u(Y) minutil tối thiểu phần tử lợi ích cao u(X) u(X)Ngược củaĐịnh nó lớn hơn một ngưỡng ngưỡng lợi lợi- Tập ích ích tối tối thiểu thiểu lại, Xnghĩa làlớn tập ích thấp 2.2.phần Nếu Xtử 1lợi MinHUI, phần bước: mở rộng X không MinHUI Giả sử, = 45,dùng tập {b,c,e} tập lợi minutil minutil dominutil người người dùng đưa đưa (u(X) (u(X) ≥≥Các minutil) minutil) ích cao Quét CSDL D lần để tính lợi ích giao Ngược Ngược lại, lại, X X là tập tập phần phần tử tử lợi ích ích thấp dịchlợi lợi ích thấp phần tử đơn: TWU(i) Định nghĩa 2.1 Một tập phần tử X tập UTIL(i) tối thiểu số Giả lượng lợi ích cao= -=MinHUI Giả phần sử, sử, tửminutil minutil 45, 45, tập tập {b,c,e} {b,c,e} là tập tập lợi lợi u(X) ≥ minutil không tồn tập Y X Đưa phần tử i thỏa mãn (TWU(i) ≥ ích ích cao saocao cho: u(Y) ≥ minutil minutil UTIL(i)= minutil mở rộng X khơng MinHUI thì: output I; tối tối thiểu thiểu số số lượng lượng phần phần tử tử lợi lợi ích ích cao cao MinHUI MinHUI nếu II THUẬT TOÁN KHAI PHÁ TẬP TỐI Sắp xếp phần tử I* tăng dần THIẾU SỐminutil LƯỢNG PHẦN TỬ LỢI ÍCH CAO theoY TWU (>); u(X) u(X) minutil và không không tồn tồn tại tập tập Y X X sao cho: cho: - MINFHM ALGORITHM Quét CSDL D lần để xây dựng danh u(Y) u(Y)Thuật minutil minutil toán MinFHM xây dựng dựa sách lợi ích phần tử i I* xây dựng thuật toán FHM [6] Đầu tiên, thuật toán cấu1 EUCS; Định Định nghĩa nghĩa 2.2 2.2 Nếu Nếu X X là 1trúc MinHUI, MinHUI, phần phần qt CSDL lần để tính tốn lợi ích có trọng Gọi hàm Search (Ø I*, minutil, EUCS); số (TWU) lợi ích (UTIL) củalà mỗiMinHUI phần tử mở mở rộng rộng của X X không không MinHUI T∈DB∧X⊆T TẠP CHÍ KHOA HỌC 25 QUẢN LÝ VÀ CƠNG NGHỆ Thuật toán 2.2: ExtensionsOfP, minutil) Hàm Search(P, Input: P: tập phần tử, ExtensionsOfP: tập mở rộng P, minutil: ngưỡng lợi ích tối thiểu, cấu trúc EUCS Output: tập tập phần tử lợi ích cao Input: tậpitemset phần tử, ExtensionsOfP: P: foreach Px ExtensionsOfP tập mở rộng P, minutil: ngưỡng lợi ích tối thiểu, cấu2 trúc if EUCS Output: tập tập phần tử lợi ích cao SUM(Px.utilitylist.iutil)+SUM(Px.utilitylist foreach itemset Px ∈ ExtensionsOfP rutil)≥minutil then if ExtensionsOfP ← Ø; SUM(Px.utilitylist.iutil)+SUM(Px.utili tylist.rutil)≥minutil then Py ExtensionsOfP Foreach itemset ← ; such that y ExtensionsOfP > x Foreach Py ∈ if ( thenminutil) then itemset if ExtensionsOfP such that y ≻ x Pxy ← Px andand c ≥c ≥ minutil) (EUCS(x,y) EUCS(x,y) Pxy ← Px Py; Pxy.utilitylist Py; ← Construct (P, Px, Py); Pxy.utilitylist ← Construct (P, Px, Py); ExtensionsOfPx ← ExtensionsOfPx ← ExtensionsOfPx ExtensionsOfPx Pxy; Pxy; if SUM(Px.utilitylist.iutil) ≥ minutil if SUM(Px.utilitylist.iutil) and (Px ≥ minutil is minHUI) then and (Px is minHUI) then 10 output Px; 11 10 output Px; remove Q with Px Q 12 11 remove Q with EndifPx 13 Endif 12 Endif 14 Endfor 15 13 EndifSearch ExtensionsOfPx, minutil); 16 14.Endif Endfor 17 Endfor Q Đầu vào tập lợi ích cao P, mở rộng P tạo Pz (thêm phần tử z vào P để tạo Pz), minutil EUCS Hoạt động hàm Search: Với Px mở rộng P, tổng giá trị iutil danh sách lợi ích Px lớn minutil Px tập lợi ích cao ghi tập kết Sau đó, tổng giá trị iuttil rutil danh sách lợi ích Px lớn minutil xét đến phần mở rộng Px Điều thực việc kết hợp Px với tất phần mở rộng Py P cho y > x Nếu EUCS(x, y) ≥ minutil tạo danh sách lợi ích Pxy chứa |Px| + phần tử Danh sách lợi ích Pxy xây dựng hàm Construct (Thuật toán 2.3) cách kết hợp danh sách lợi ích P, Px, Py Thuật toán 2.3: Hàm Construct Input: P: Một tập phần tử, Px: mở rộng P với phần tử x, Py: mở rộng P với phần tử y Output: Danh sách lợi ích Pxy UtilityListOfPxy ← Ø; foreach tuple ex if then ey Px.utilitylist Py.utilitylist and ex.tid = exy.tid if P.utilitylist ≠ Ø then (Px, 15 Search (Px, ExtensionsOfPx, minutil); Hàm Search (Thuật toán 2.2): 16 Endif Đầu vào tập lợi ích cao P, mở rộng P tạo Pz (thêm phần tử z vào P để tạo 17.một Endfor Pz), minutil EUCS Hàm (Thuật 2.2): Hoạt động hàm Search Search: Với Pxtoán mở rộng P, tổng giá trị iutil danh sách lợi ích KHOA Px lớn 26 hoặcTẠP bằngCHÍ minutil thìHỌC Px tập QUẢN LÝ VÀ CÔNG NGHỆ lợi ích cao ghi tập kết Sau đó, tổng giá trị iuttil rutil danh sách lợi ích Px lớn minutil Search element e P.utilitylist such that e.tid = ex.tid; exy ← (ex.tid, ex.iutil + ey.iutil – e.iutil, ey.rutil); end else exy ← (ex.tid, ex.iutil + ey.iutil, ey.rutil); EUCS(x, y) ≥ minutil tạo danh sách lợi ích Pxy chứa |Px| + phần tử Danh sách lợi ích Pxy xây dựng hàm Construct (Thuật toán 2.3) cách kết 10 UtilityListOfPxy ← UtilityListOfPxy hợp danh sách lợi ích P, Px, Py {exy}; Thuật toán 2.3: Hàm Construct Input: P: Một tập phần tử, Px: mở rộng P với 11 end phần tử x, Py: mở rộng P với phần tử y Output: Danh sách lợi ích Pxy 12 end UtilityListOfPxy ← TWU U ; 13 return UtilityListPxy; foreach tuple ex ∈ Px.utilitylist if từ ey ∈ Py.utilitylist ex.tid2.2 = Lấy lại3 liệu bảng 2.1 vàand bảng exy.tid then Với ngưỡng lợi ifích tối thiểu P.utilitylist ≠ minutil then = 45 Search element e ∈ P.utilitylist such that e.tid = ex.tid; exylần ← (ex.tid, ex.iutillợi+ ích Bước 6.1: Quét CSDL để tính ey.iutil – e.iutil, ey.rutil); giao dịch lợi ích phần tử đơn: end TWU(i) UTIL(i) else lợi ích giao exy ← (ex.tid, ex.iutil + 1.1 Tính dịch: ey.iutil, ey.rutil); ←1) = ) = u(a,TUtilityListOfPxy TU(T110 1) + u(c,T1) + u(d,T Thực bước thuật toán 1: 4*5+3*2+1*3UtilityListOfPxy = 29 ; 3 {exy}; 11 end ) =end u(a,T2) + u(b,T2) + u(c,T2) + TU(T212 u(e,T2) + 13 u(g,T 2) UtilityListPxy; return Lấy lại liệu từ bảng 2.1 bảng 2.2 = 3*5+1*2+2*2+2*2+3*1 = =28 Với ngưỡng lợi ích tối thiểu minutil 45 ; Thực bước thuật toán 1: TU(T3) = 38 ; Bước 1: Quét CSDL lần để tính lợi ích giao dịch vàTU(T lợi ích4)của = 25 ;phần tử đơn: TWU(i) UTIL(i) 1.1 Tính lợi ích giao dịch: ; 1) = u(a,T1) + u(c,T1) + TU(T5) = 13 TU(T u(d,T1) = 4*5+3*2+1*3 = 29 ; 1.2 Tính TWU phần tử: TU(T 2) = u(a,T2) + u(b,T2) + u(c,T ) + u(e,T ) + u(g,T ) Bảng 2.3 Bảng2 trọng2 số lợi2 ích - Giao = 3*5+1*2+2*2+2*2+3*1 = 28 ; dịch TU(Tsố ; - Giao dịch 3) = Bảng 2.3 Bảng trọng lợi38ích TU(T4) = 25 ; Phần {f} {g} TU(T{c} ; - Giao Bảng 2.3.{a} Bảng{b} trọng số lợi13ích {d} {e}dịch 5) = tử 1.2 Tính TWU phần tử: Phần TWU tử {a} 95 {b} 104 {c} 133 {d} 92 {e} 104 {f} 38 {g} 41 Tính133 lợi ích92 TWU 1.3 95 104 104phần 38tử đơn: 41 1.3 Tính lợi ích phần tử đơn: Bảng 2.4 Bảng lợi ích phần tử đơn 1.3 Tính lợi ích phần tử đơn: Bảng 2.4 Bảng lợi ích phần đơn Phần {f} tử{g} Bảng 2.4.{a} Bảng {b} lợi ích {c} phần{e} tử đơn {d} tử Phần {f} {g} {a} {b} {c} {d} {e} UTIL 45 16 24 30 12 tử UTIL 45 16 24 30 12 Bước 2: Đưa phần tử i vào tập I* thỏa mãn : TWU(i) ≥ minutil UTIL(i) < minutil * Bước 2:I* Đưa phần tử i vào mãn=: = {b,các c, d, e} Loại {f}, tập {g} Ivì thỏa TWU(f) TWU(i) minutil 38