Khai thác tập hữu ích cao tương quan trên cơ sở dữ liệu giao dịch có lợi nhuận âm

Nguyễn Văn Lễ, Nguyễn Thị Thanh Thủy, Mạnh Thiên Lý  
KHAI THÁ C TẬP HỮU Í CH CAO TƯƠNG  
QUAN TRÊN CƠ SỞ DỮ LIỆU GIAO DỊCH  
CÓ LỢI NHUẬN  M  
Nguyễn Văn Lễ*, Nguyễn Thị Thanh Thủy+, Mạnh Thiên Lý+  
*Khoa Cô ng nghệ thô ng tin, Trường Đại học Cô ng nghiệp Thực phẩm TPHCM  
+Khoa Cô ng nghệ thông tin, Trường Đại học Cô ng nghiệp Thực phẩm TPHCM  
thấy có thể rất lớn vì chúng chỉ tìm thấy các HUI dựa trên  
ngưỡng tối thiểu và bỏ qua mối tương quan giữa các mục  
bên trong mẫu. Nhiều HUI chứa các mặt hàng có tương  
quan yếu và thực tế không mang lại ý nghĩa. Để giải quyết  
vấn đề này, J. C. W. Lin và cộng sự đã đề xuất thuật toán  
FDHUP [10] để khai thác HUI có ràng buộc tần suất cao.  
Sau đó, vào năm 2017, W. Gan và cộng sự đề xuất thuật  
toán CoHUIM [11] xem xét cả tính tương quan và lợi  
nhuận giữa các sản phẩm trong giao dịch. Tuy nhiên, thuật  
toán này tạo ra một tập hợp lớn các ứng cử viên và việc  
quét lại cơ sở dữ liệu gốc nhiều lần làm tăng đáng kể thời  
gian thực hiện và bộ nhớ lưu trữ. Năm 2019, nhóm tác giả  
W. Gan và cộng sự đề xuất thuật toán CoUPM [12] cải  
tiến từ thuật CoHUIM bằng việc sử dụng cấu trúc lưu trữ  
Ulility-List tăng hiệu suất khai thác tập hữu ích cao tương  
quan. Tuy nhiên, thuật toán này vẫn kém hiệu quả khi  
thực thi trên cơ sở dữ liệu có lợi nhuận âm. Để giải quyết  
vấn đề này, chúng tôi đề xuất một thuật toán mới có tên là  
CHN để khai thác tập hữu ích cao tương quan một cách  
hiệu quả trên cơ sở dữ liệu giao dịch có lợi nhuận âm.  
Tóm tắt: Việc khai thác tập hữu ích cao tương quan  
(Correlated Hight Utility Itemset) trong cơ sở dữ liệu  
giao dịch đã được nghiên cứu rộng rãi để khám phá hành  
vi mua hàng của người dùng. Từ đó, các nhà quản lý  
doanh nghiệp có thể điều chỉnh chiến lược bán hàng một  
cách phù hợp để tăng lợi nhuận. Các cách tiếp cận khai  
thác tập hữu ích cao tương quan trước đây chỉ thực hiện  
trên cơ sở dữ liệu có lợi nhuận dương mà ít khi quan tâm  
đến các giá trị lợi nhuận âm. Trên thực tế, các doanh  
nghiệp có thể giảm lợi nhuận của các mặt hàng tồn kho  
lâu ngày để kích thích người mua, thậm chí có thể giảm  
lợi nhuận đến mức âm để tiêu thụ hết lượng hàng tồn  
kho. Để khai thác tập hữu ích cao tương quan hiệu quả  
trên cơ sở dữ liệu giao dịch có lợi nhuận âm, chúng tôi đề  
xuất thuật toán CHN (Correlated High utility itemset with  
Negative profit). Đánh giá thử nghiệm trên cả năm cơ sở  
dữ liệu Chess, Mushroom, Pumsb, Retail và Kosarak và  
cho thấy thuật toán CHN có hiệu suất thực thi một cách  
hiệu quả.  
Những đóng góp chính của bài báo:  
Từ khóa: Tập hữu ích cao, tính tương quan, khai thác  
dữ liệu, cơ sở dữ liệu giao dịch, tập hữu ích cao tương  
quan.  
a) Áp dụng cấu trúc dữ liệu PNU – List để lưu trữ dữ  
liệu trong quá trình khai thác tập hữu ích cao tương quan  
CHUIs trên cơ sở dữ liệu giao dịch có lợi nhuận âm.  
I. GIỚI THIỆU  
b) Áp dụng nhiều chiến lược tỉa để giảm không gian  
tìm kiếm như: U-Prune, LA-Prune, Kulc-Prune, EUCS.  
Xã hội ngày càng phát triển thì nhu cầu mua sắm của  
khách hàng ngày càng tăng. Các tổ chức kinh doanh cũng  
đã được thành lập ở khắp mọi nơi với các hình thức bán  
hàng đa dạng. Khi khách hàng càng có nhiều sự lựa chọn  
thì doanh nghiệp càng phải nghiên cứu thói quen mua  
hàng của họ. Ban đầu, các doanh nghiệp quan tâm đến  
việc tìm hiểu các mặt hàng thường được khách hàng mua  
cùng nhau. Nhiều thuật toán đã được đề xuất để khai thác  
các luật kết hợp để giải quyết hiệu quả nhu cầu này [1,2].  
Tuy nhiên, luật kết hợp có sự giới hạn là1không đề cập  
đến lợi nhuận của sản phẩm. Các thuật toán khai thác tập  
hữu ích cao (HUIM) đã được nghiên cứu để tìm ra tập các  
sản phẩm có lợi nhuận cao (High Utility Itemset – HUI)  
như: Thuật toán Two-Phase [3], UP-Growth [4], HUI-  
Miner [5], FHM [6], EFIM [7], D2HUP [8]. Năm 2016,  
Lin và cộng sự đề xuất thuật toán FHN [9] khai thác HUI  
trên cơ sở dữ liệu có lợi nhuận âm một cách hiệu quả.  
Mặc dù các thuật toán này khá hữu ích trong việc khám  
phá các tập hữu ích cao, tuy nhiên số lượng HUI được tìm  
c) Kết quả thực nghiệm so sánh với thuật toán CoUPM  
cho thấy thuật toán CHN có thời gian thực hiện nhanh hơn  
thuật toán CoUPM trên 5 cơ sở dữ liệu là Chess,  
Mushroom, Pumsb, Retail và Kosarak.  
Cấu trúc bài báo được chia làm 6 phần. Phần 1 trình  
bày giới thiệu; Phần 2 trình bày các công trình liên quan;  
Phần 3 trình bày các định nghĩa và ký hiệu; Phần 4 trình  
bày thuật toán đề xuất CHN; Phần 5 trình bày kết quả thực  
nghiệm và đánh giá; Phần 6 trình bày kết luận và hướng  
phát triển.  
II. CÁ C CÔ NG TRÌ NH LIÊN QUAN  
Khai thác tập hữu ích cao (HUI) đã được nghiên cứu  
rộng rãi và có nhiều ứng dụng trong thực tế để hỗ trợ việc  
kinh doanh hiệu quả hơn. Các tiếp cận ban đầu khai thác  
HUI chủ yếu dựa trên hai pha, trong đó pha một sinh ra  
các ứng viên có khả năng là tập hữu ích cao, pha hai thực  
hiện quét lại cơ sở dữ liệu để xác định ứng viên nào thực  
sự là HUI. Một số thuật toán được đề xuất trong giai đoạn  
này như: Two-Phase [3], CTU-Mine [13], TWU-Mining  
Tác giả liên hệ: Nguyễn Văn Lễ,  
Email: [email protected]du.vn  
Đến tòa soạn: 8/2020, chỉnh sửa: 9/2020, chấp nhận đăng: 10/2020.  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
94  
KHAI THÁ C TẬP HỮU ÍCH CAO TƯƠNG QUAN TRÊN CƠ SỞ DỮ LIỆU GIAO DỊCH CÓ LỢI NHUẬN  M  
[14], UP-Growth [4], UP-Growth+ [15]. Những thuật toán  
này tốn nhiều thời gian và bộ nhớ vì phải thực hiện trên  
hai pha và quét cơ sở dữ liệu nhiều lần. Năm 2012, Liu và  
cộng sự đề xuất thuật toán HUI-Miner [5] cùng với cấu  
trúc dữ liệu mới là Utility-List để khai thác HUI trên một  
pha cùng với chiến lược tỉa TWU đã làm giảm đáng  
không gian tìm kiếm và tăng hiệu suất thực thi của thuật  
toán. Năm 2014, Fournier và cộng sự bổ sung chiến lược  
tỉa EUCP vào thuật toán HUI-Miner và đề xuất thuật toán  
FHM [6] có thời gian khai thác HUI nhanh vượt trội so  
với thuật toán HUI-Miner. Năm 2017, Zida cùng cộng sự  
đề xuất thuật toán EFIM [7] sử dụng cơ chế chiếu và gộp  
trên cơ dữ liệu có hiệu quả cao khi khai thác trên cơ sở dữ  
liệu thưa. Năm 2018, Krishnamoorthy đề xuất thuật toán  
HMiner [16] với cấu trúc dữ liệu mới là CUL và nhiều  
chiến lược tỉa hiệu quả cho hiệu suất thực thi vượt trội cả  
về thời gian và bộ nhớ sử dụng so với thuật toán EFIM.  
Tuy nhiên, các thuật toán này vẫn kém hiệu quả và tìm ra  
số lượng HUI không đầy đủ khi khai thác trên cơ sở dữ  
liệu có lợi nhuận âm. Để giải quyết vấn đề này, Lin và  
cộng sự đã đề xuất cải tiến cấu trúc Utility-list để lưu trữ  
tách biệt lợi nhuận dương và âm và đề xuất thuật toán  
FHN [9] để khai thác đầy đủ tập HUI trên cơ sở dữ liệu  
giao dịch có lợi nhuận âm. Ngoài ra, năm 2019, Singh và  
cộng sự đề xuất thuật toán EHNL [17] để khai thác HUI  
hiệu quả với ràng buộc chiều dài tập mục trên cơ sở dữ  
liệu có lợi nhuận âm.  
Cho tập 퐼 = {ꢀ1, ꢀ2, . . . , ꢀ푚} gồm m mục phân biệt  
trong cơ sở dữ liệu giao dịch 퐷 = {푇 , 푇2, . . . , 푇 }, với n là  
1
푛
{ |  
số lượng giao dịch trong 퐷 . ∀ 푇 ∈ 퐷 , 푇 = 푥푙 푙 =  
푗
푗
1, 2, … , 푁 , 푥푙 ∈ 퐼}, với 푁 là số các mục trong giao dịch  
푗
푗
푇 . Bảng 1 trình bày ví dụ về cơ sở dữ liệu giao dịch 퐷 và  
푗
Bảng 2 trình bày lợi nhuận các mục.  
Mỗi mục 푥푖 trong tập mục I có một giá trị lợi nhuận  
xác định là 푃(푥푖) và có một số lượng mua 푄(푥푖, 푇 ) trong  
푗
giao dịch 푇 . Độ hữu ích của mục 푥푖 trong giao dịch 푇 ký  
푗
푗
( )  
hiệu là 푈(푥푖, 푇 ) với 푈(푥푖, 푇 ) = 푃 푥푖 ∗ 푄(푥푖, 푇 ).  
푗
푗
푗
{
}
Độ hữu ích của một tập mục 푋 = 푥1, 푥2, … , 푥푘 ⊆ 푇  
푗
∑
định nghĩa là 푈(푋, 푇 ) = 푥 ∈푋 푈(푥푖 , 푇 ) . Độ hữu ích  
푗
푗
푖
dương của tập mục 푋 trong giao dịch 푇 được định nghĩa  
푗
∑
là 푃푈(푋, 푇 ) =  
푈(푥푖 , 푇 ). Độ hữu ích âm  
푗
푗
푥 ∈푋푈(푥 ,푇 )>0  
푖
푖
푗
của tập 푋 trong giao dịch 푇 được định nghĩa là  
푗
∑
푁푈(푋, 푇 ) =  
푈(푥푖 , 푇 )  
.
Ta  
có  
푗
푗
푥 ∈푋푈(푥 ,푇 )<0  
푖
푖
푗
푈(푋, 푇 ) = 푃푈(푋, 푇 ) + 푁푈(푋, 푇 ).  
푗
푗
푗
Độ hữu ích dương của tập mục 푋 trong cơ sở dữ liệu  
( )  
∑
퐷 được định nghĩa 푃푈 푋 = 푋⊆푇 푇 ∈퐷 푃푈(푋 , 푇 ). Độ  
푗
푗
푗
( )  
hữu ích âm của 푋 trong 퐷 được định nghĩa 푁푈 푋 =  
∑
푋⊆푇 푇 ∈퐷 푁푈(푋 , 푇 ). Độ hữu ích của tập mục 푋 trong  
푗
푗
푗
( )  
( )  
cơ sở dữ liệu 퐷 được định nghĩa là 푈 푋 = 푃푈 푋 +  
푁푈(푋). Độ hữu ích dương của một giao dịch 푇 ∈ 퐷  
푗
Tập hữu ích cao được khai thác với các thuật toán  
trình bày ở trên đã có nhiều ứng dụng hữu ích trong thực  
tế. Tuy nhiên, các thuật toán này chỉ quan tâm đến độ hữu  
ích của tập mục kết quả mà không quan tâm đến sự tương  
quan giữa các mục bên trong. Do đó, kết quả khai thác  
được còn chứa nhiều tập mục có mối tương quan thấp  
giữa các mục bên trong và không có ý nghĩa trong thực tế.  
Ví dụ, trong cơ sở dữ liệu phát sinh một giao dịch mua  
hàng gồm một sản phẩm (A) có trị giá lợi nhuận rất cao  
kèm với một sản phẩm (B) có lợi nhuận thấp và chỉ có  
một giao dịch này trong cơ sở dữ liệu.  
∑
được định nghĩa là 푃푇푈(푇 ) =  
>0 푈(푥푖 , 푇 )  
푗
( )  
푥 ∈푇 U 푥  
푖
푗
푖
푗
[9].  
Bảng I. Cơ sở dữ liệu giao dịch có lợi nhuận âm  
Độ hữu ích  
TID Giao dịch (푻) Số lượng (푸) Độ hữu ích (푼)  
dương (푷푻푼)  
푇1  
푇2  
푇3  
푎, 푏, 푐, 푑  
푎, 푏, 푐  
3, 1, 4, 2  
3, 3, 2  
9, -1, 16, -4  
9, -3, 8  
25  
17  
25  
32  
38  
16  
17  
32  
푎, 푐, 푑, 푒, 푓  
푏, 푐, 푒  
4, 1, 2, 2, 1  
2, 5, 4  
12, 4, -4, 6, 3  
-2, 20, 12  
푇
4
푇5  
푇6  
푇7  
푇8  
푏, 푐, 푑, 푒  
푎, 푏, 푐, 푑, 푒, 푓  
푐, 푒  
6, 5, 4, 6  
-6, 20, -8, 18  
Khi khai thác HUI, tập gồm hai sản phẩm này sẽ được  
tìm thấy vì lợi nhuận cao vượt ngưỡng mức lợi nhuận tối  
thiểu. Tuy nhiên, sự tương quan giữa hai sản phẩm này là  
rất kém vì chỉ có một giao dịch trong cơ sở dữ liệu nên khi  
kết luận rằng khi khách hàng mua sản phẩm A thì sẽ mua  
kèm sản phẩm B là không chính xác. Để giải quyết vấn đề  
này, nhiều nghiên cứu đã được đề xuất để tính toán mối  
tương quan giữa các mục trong một tập mục được khai  
thác. Khái niệm về "độ đo" giữa các mục được  
Omiecinski [18] đưa ra từ rất sớm để khai thác luật kết  
hợp với ba độ đo là any-confidence, all-confidence và  
bond. Tuy nhiên, ba độ đo này vẫn chưa đánh giá được  
mối tương quan giữa các mục trong tập mục được khai  
thác. Năm 2018, Fournier-Viger và cộng sự [19] đã trình  
bày khái niệm "Correlation" dựa trên ba độ đo trên và đề  
xuất thuật toán CHIs để khai thác tập hữu ích cao tương  
quan trên cơ sở dữ liệu giao dịch. Bên cạnh đó, Lin và  
cộng sự đề xuất thuật toán CoHUIM [11] khai thác tập  
hữu ích cao tương quan (CoHUI) dựa trên độ đo Kulc và  
cơ chế chiếu trên cơ sở dữ liệu trong quá trình khai thác.  
Năm 2019, Gan và cộng sự [12] đề xuất thuật toán  
CoUPM khai thác CoHUI dựa trên cấu trúc dữ liệu  
Utility-list với nhiều chiến lược tỉa khác nhau đã cho kết  
quả khai thác CoHUI hiệu quả hơn thuật toán CoHUIM.  
2, 5, 1, 3, 1, 1 6, -5, 4, -6, 3, 3  
2, 3  
8, 9  
푐, 푑, 푒  
5, 2, 4  
20, -4, 12  
Bảng II. Lợi nhuận của các mục  
Các mục (Items)  
Lợi nhuận (P)  
1
3
2
3
4
4
5
6
3
-1  
-2  
3
Định nghĩa 1. Tập mục 푋 được gọi là một tập mục  
hữu ích cao (퐻푈퐼) nếu độ hữu ích của 푋 lớn hơn hoặc  
bằng giá trị ngưỡng độ hữu ích tối thiểu (minUtil). Trong  
đó giá trị minUtil được cung cấp bởi người dùng [16]. Ta  
{ |  
có: 퐻푈퐼푠 = 푋 푈(푋) >= 푚ꢀ푛푈푡ꢀ푙}  
Định nghĩa 2. Giá trị Positive Transaction Weighted  
Utility (푃푇푊푈) của tập mục 푋 trong 퐷 ký hiệu là  
푃푇푊푈 푋 = 푋⊆푇 ∈퐷 푃푇푈(푇 ) [9]. Ví dụ, trong Bảng 1,  
( )  
∑
푗
푗
(
)
( ) ( )  
(
)
ta có 푃푇푊푈 푎푏 = 푃푇푈 푇 + 푃푇푈 푇2 + 푃푇푈 푇6 =  
1
25 + 17 + 26 = 68. Bảng 3 trình bày các giá trị 푃푇푊푈  
của các tập mục gồm một phần tử trong D.  
( )  
Tính chất 1. Nếu 푃푇푊푈 푋 < 푚ꢀ푛푈푡ꢀ푙 thì mọi tập  
mục mở rộng từ 푋 đều không là 퐻푈퐼 [16].  
Định nghĩa 3. Độ hỗ trợ của tập mục 푋 trong cơ sở dữ  
liệu 퐷 ký hiệu 푆푈푃(푋) là số lượng các giao dịch chứa 푋  
III. CÁ C ĐỊNH NGHĨA VÀ KÝ HIỆU  
(
)
trong 퐷 [16]. Ví dụ 푆푈푃 푎푏 = 3 vì có 3 giao dịch chứa  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG 95  
Nguyễn Văn Lễ, Nguyễn Thị Thanh Thủy, Mạnh Thiên Lý  
{ab} là 푇 , 푇2 và 푇6. Độ hỗ trợ của mỗi mục trong cơ sở  
dữ liệu 퐷 thể hiện ở Bảng 3.  
Định nghĩa 8. Độ hữu ích dương còn lại sau tập mục  
푋 trong giao dịch 푇 , ký hiệu là 푃푅푈(푋, 푇 ), là tổng độ  
1
푗
푗
hữu ích của tất cả các mục có độ hữu ích dương trong tập  
Bảng III. Độ hỗ trợ của các mục  
푅푒(푋, 푇 ) [9]:  
푗
Items  
f
41  
2
a
83  
4
b
128  
5
d
136  
5
e
160  
6
c
202  
8
푃푅푈(푋, 푇 ) =  
∑
푈(푥푖, 푇 )  
푗
PTWU  
푗
푥 푅푒(푋,푇 )푈(푥 ,푇 )>0  
SUPPORT  
푖
푗
푖
푗
(
)
=
)
Ví dụ: Với dữ liệu trong Bảng 4, 푃푅푈 푎푏, 푇6  
Định nghĩa 4. (Thứ tự các mục) Thứ tự toàn phần của  
các mục trong cơ sở dữ liệu 퐷 được sắp xếp tăng dần  
theo độ hỗ trợ [11]. Xét 2 mục x và y, Ta có 푥 ≺ y nếu  
(
)
(
)
(
푈 푒, 푇6 + 푈 푐, 푇6 = 3 + 4 = 7. Trong đó 푈 푑, 푇6 sẽ  
không tính vào 푃푅푈 vì có độ hữu ích âm.  
( )  
( )  
푆푈푃 푥 < 푆푈푃(푦). Trường hợp 푆푈푃 푥 = 푆푈푃(푦) thì  
thứ tự dựa vào thứ tự Alphabet của x và y. Với cơ sở dữ  
liệu 퐷 (Bảng 1) và độ hỗ trợ (Bảng 3) thì thứ tự toàn  
phần được xác định là f ≺ a ≺ b ≺ d ≺ e ≺ c  
IV. THUẬT TOÁ N CHN  
A. Cấu trúc PNU-List  
PNU-List được cấu trúc lại từ cấu trúc dữ liệu Utility-  
List [5,9]. Mỗi tập mục được biểu diễn bởi một PNU-List  
tương ứng. Cấu trúc PNU-List của một tập mục 푋 lưu trữ  
tập các bộ dữ liệu, mỗi bộ chứa bốn thành phần là  
(푇ꢀ푑, 푃푢푡ꢀꢂ, 푁푢푡ꢀꢂ, 푃푟푢푡ꢀꢂ). Trong đó, 푇ꢀ푑 là số thứ tự  
của giao dịch có chứa 푋, 푃푢푡ꢀꢂ 푣à 푁푢푡ꢀꢂ là độ hữu ích  
dương và độ hữu ích âm của tập mục 푋 trong giao dịch  
푇ꢀ푑, 푃푟푢푡ꢀꢂ là tổng độ hữu ích dương của các mục sau 푋  
trong giao dịch 푇ꢀ푑.  
Với giá trị minUtil = 42, mục 푓 bị loại bỏ khỏi cơ sở dữ  
liệu 퐷 (Tính chất 1) và toàn bộ cơ sở dữ liệu 퐷 được sắp  
xếp lại theo thứ tự toàn phần được trình bày trong Bảng 4.  
Định nghĩa 5. Sự tương quan giữa các phần tử trong  
một tập mục 푋 = {푥1, 푥2, … , 푥푘} được định nghĩa là  
1
푆푢푝(푋)  
( )  
푘푢ꢂ푐 푋 =  
∑
( )  
)). Với 0푘푢ꢂ푐 푋 1 [11].  
(
푥 ∈푋  
푖
(
푘
sup 푥  
푖
( )  
Giá trị 푘푢ꢂ푐 푋 càng gần 1 thì tính tương quan giữa các  
PNU-List của tập mục một phần tử gồm năm mục  
được sắp xếp theo thứ tự toàn phần a ≺ b ≺ d ≺ e ≺ c.  
Trong đó, mục 푓 đã bị loại do 푃푇푊푈(푓) < ꢁꢀ푛푈푡ꢀꢂ  
(Tính chất 1). PNU-List của tập mục {a} gồm 4 bộ với  
Tid lần lượt có giá trị là 1, 2, 3, 6 nghĩa là tập mục {a}  
( )  
mục trong 푋 càng cao. Ngược lại, 푘푢ꢂ푐 푋 càng gần 0 thì  
tính tương quan giữa các mục trong X càng thấp.  
1
sup (푎푏)  
1
(
)
Ví dụ: 푘푢ꢂ푐 푎푏 = (  
+
sup (푎푏)) = (3 + 3) =  
( )  
sup 푎  
2
sup (푏) 2 4 5  
0.675  
xuất hiện trong các giao dịch tương ứng 푇 , 푇2, 푇3, 푇6 trong  
1
Tính chất 2. Xét thứ tự toàn phần 푥1 ≺ 푥1 ≺ ⋯ ≺  
푥푘 ≺ 푥푘+1 của các mục trong cơ sở dữ liệu 퐷, khi đó, giá  
trị kulc thỏa tính chất Downward closure là  
cơ sở dữ liệu D (Bảng 4). Xét bộ thứ nhất với Tid=1, ta có  
(
)
độ hữu ích dương 푃푢푡ꢀꢂ = 푈 푎, 푇 = 9, độ hữu ích âm  
1
푁푢푡ꢀꢂ = 0 (vì tập mục {푎} chỉ có 1 phần tử là a có giá trị  
độ hữu ích dương là 9, không có phần tử nào khác có giá  
trị độ hữu ích âm); độ hữu ích dương của các mục sau {푎}  
(
)
(
)
푘푢ꢂ푐 푥1, … , 푥푘+1 ≤ 푘푢ꢂ푐 푥1, … , 푥푘 [11].  
Bảng IV. Cơ sở dữ liệu giao dịch sau khi loại bỏ 푓 và sắp  
là 푃푟푢푡ꢀꢂ = 16 (vì các mục sau {푎} trong giao dịch 푇  
1
xếp theo thứ tự toàn phần  
gồm {b, d, c} nhưng chỉ 푐 có độ hữu ích dương là 16 còn  
b và d có độ hữu ích âm). Tương tự cho các bộ còn lại và  
các PNU-List khác.  
Độ hữu ích  
TID Giao dịch (푻) Số lượng (푸) Độ hữu ích (푼)  
dương (푷푻푼)  
푇1  
푇2  
푇3  
푎, 푏, 푑, 푐  
3, 1, 2, 4  
9, -1, -4, 16  
25  
17  
22  
32  
38  
13  
17  
32  
B. Các chiến lược tỉa  
푎, 푏, 푐  
3, 3, 2  
9, -3, 8  
푎, 푑, 푒, 푐  
푏, 푒, 푐  
4, 2, 2, 1  
2, 4, 5  
12, -4, 6, 4  
-2, 12, 20  
-6, -8, 18, 20  
6, -5, -6, 3, 4  
9, 8  
Chiến lược tỉa được áp dụng trong quá trình khai thác  
tập 퐶퐻푈퐼푠 nhằm thu hẹp không gian tìm kiếm đồng thời  
tăng hiệu suất thực thi của thuật toán, đặc biệt là thời gian  
thực hiện và dung lượng bộ nhớ sử dụng. Các chiến lược  
tỉa áp dụng trong bài báo này gồm: U-Prune, Kulc-Prune,  
LA-Prune và EUCS-Prune [5,6,10,11].  
푇
4
푇5  
푇6  
푇7  
T8  
푏, 푑, 푒, 푐  
푎, 푏, 푑, 푒, 푐  
푒, 푐  
6, 4, 6, 5  
2, 5, 3, 1, 1  
3, 2  
푑, 푒, 푐  
2, 4, 5  
-4, 12, 20  
Chiến lược 1 (U-Prune): Nếu tổng độ hữu ích dương  
của tập mục 푋 và tổng độ hữu ích dương của các mục sau  
푋 nhỏ hơn ꢁꢀ푛푈푡ꢀꢂ thì mọi tập mở rộng từ 푋 đều không  
Định nghĩa 6. Tập mục 푋 được gọi là tập hữu ích cao  
tương quan (Correlated High Utility Itemset - CHUI) nếu  
( )  
( )  
푘푢ꢂ푐 푋 ≥ ꢁꢀ푛퐶표푟 và 푈 푋 ≥ ꢁꢀ푛푈푡ꢀꢂ . Trong đó  
minUtil là giá trị ngưỡng độ hữu ích tối thiểu và minCor  
là giá trị ngưỡng tương quan tối thiểu [11].  
( )  
( )  
phải là 퐶퐻푈퐼 . Nghĩa là nếu 푃푈 푋 + 푃푅푈 푋 <  
ꢁꢀ푛푈푡ꢀꢂ thì 푌 푋, 푌퐶퐻푈퐼. Khi đó ngừng mở rộng  
với tập mục 푋.  
{
( )  
}
퐶퐻푈퐼푠 = 푋 ⊆ 퐼 | 푈 푋 ≥ ꢁꢀ푛푈푡ꢀꢂ ∧ 푘푢ꢂ푐(푋) ≥ ꢁꢀ푛퐶표푟  
Ví dụ: Xét tập mục {푎, 푒} với PNU-List tương ứng  
(
)
(
)
Ví dụ, trong Bảng 4, 푈 푎푏푐 = 43, 푘푢ꢂ푐 푎푏푐 =  
0.575 . Với ꢁꢀ푛푈푡ꢀꢂ < 43 và ꢁꢀ푛퐶표푟 < 0.575 thì tập  
mục {푎푏푐} là một CHUI. Ngược lại, tập mục {푎푏푐} không  
phải CHUI.  
(
)
(
)
∑(  
)
trong Hình 1, 푈 푎푒 + 푅푈 푎푒 = 푃푢푡ꢀꢂ + 푃푟푢푡ꢀꢂ =  
27 + 8 = 35 < ꢁꢀ푛푈푡ꢀꢂ = 42. Khi đó ngừng mở rộng  
với tập {푎, 푒}.  
Chiến lược 2 (LA-Prune): Xét 2 tập 푋 và 푌, nếu  
Định nghĩa 7. Xét tập mục 푋 ⊆ 푇 , tập tất cả các mục  
푗
( ) ∑  
푃푈 푋 + 푃푅푈 푋 −  
푋⊆푇 ∈ 퐷푌푇  
( )  
푃푈(푋 , 푇 ) +  
푗
푗
푗
sau 푋 trong 푇 được định nghĩa là 푅푒(푋, 푇 ) =  
푗
푗
푃푅푈(푋, 푇 ) < ꢁꢀ푛푈푡ꢀꢂ thì tập mục 푋푌 không phải là  
{푥푖푇 |푦푋, 푦 ≺ 푥푖 }.  
푗
푗
퐶퐻푈퐼 và mọi tập mở rộng từ 푋푌 cũng không phải là  
퐶퐻푈퐼 (nghĩa là 푍 푋푌 thì 푍 không phải là 퐶퐻푈퐼 ).  
Ví dụ: Với dữ liệu trong Bảng 4, 푅푒(푎푑, 푇 ) = {푐} ,  
1
(
)
(
)
푅푒 푎푑, 푇3 = 푅푒 푎푑, 푇6 = {푒, 푐}  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
96  
KHAI THÁ C TẬP HỮU ÍCH CAO TƯƠNG QUAN TRÊN CƠ SỞ DỮ LIỆU GIAO DỊCH CÓ LỢI NHUẬN  M  
Hì nh 1. PNU-List của các tập mục 1 phần tử và 2 phần tử  
Chiến lược 3 (EUCS-Prune): Xét 푋, 푌 là hai tập  
mục 1 phần tử, Nếu 푃푇푊푈(푋, 푌) < ꢁꢀ푛푈푡ꢀꢂ thì tập mục  
푋푌 không phải 퐶퐻푈퐼 và mọi tập mở rộng từ 푋푌 cũng  
không phải 퐶퐻푈퐼. Khi đó dừng mở rộng với itemset 푋푌.  
trong danh sách PNU-List 푈퐿푠. Dòng 2 kiểm tra điều kiện  
( )  
( )  
nếu 푈 푋 ꢁꢀ푛푈푡ꢀꢂ và 푘푢ꢂ푐 푋 ꢁꢀ푛퐶표푟 푋 là một tập  
hữu ích cao tương quan 퐶퐻푈퐼. Dòng 5 kiểm tra điều kiện  
( )  
( )  
nếu 푃푈 푋 + 푃푅푈 푋 ꢁꢀ푛푈푡ꢀꢂ ( chiến lược tỉa U-  
( )  
Prune) và điều kiện 푘푢ꢂ푐 푋 ꢁꢀ푛퐶표푟 (chiến lược tỉa  
( )  
4 (Kulc-Prune): Nếu 푘푢ꢂ푐 푋 <  
Chiến lược  
Kulc-prune) thì tạo danh sách các PNU-List mở rộng  
(푒푥푈퐿푠 ) từ PNU-List 푋 từ dòng 6 đến 11. ngược lại  
ngừng mở rộng với 푋. Dòng 8 áp dụng chiến lược tỉa  
EUCS-Prune, nếu 퐸푈퐶푆(푋, 푌)ꢁꢀ푛푈푡ꢀꢂ thì thực hiện  
thủ tục 푃푁푈Construct(푃, 푋, 푌) để tạo PNU-List 푋푌 từ 2  
PNU-List 푋 và 푌 và thêm vào danh sách 푒푥푈퐿푠, ngược lại  
không tạo PNU-List 푋푌. Dòng 12 gọi đệ quy thủ tục  
푆푒푎푟푐ℎ퐶퐻푈퐼 để tiếp tục mở rộng không gian tìm kiếm.  
ꢁꢀ푛퐶표푟 thì mọi tập mở rộng từ 푋 không phải lài một  
퐶퐻푈퐼. Giả sử rằng 푦 là phần tử mở rộng từ tập 푋 để có  
(
)
( )  
tập 푋푦, theo tính chất 2, ta có 푘푢ꢂ푐 푋푦 < 푘푢ꢂ푐 푋 <  
ꢁꢀ푛퐶표푟. Do đó mọi tập mở rộng từ 푋 không phải là  
퐶퐻푈퐼.  
C. Thuật toán CHN  
Thuật toán chính 퐶퐻푁 có dữ liệu đầu vào là cơ sở dữ  
liệu giao dịch 퐷 có lợi nhuận âm, kết quả thực hiện thuật  
toán là tập hữu cao có tương quan (CHUIs). Đầu tiên quét  
Thuật toán 2: 푆푒푎푟푐ℎ퐶퐻푈퐼  
Vào: 푃: PNU-List với vai trò là tiền tố; 푈퐿푠: Danh sách  
các PNU-List có tiền tô là PNU-List 푃, ꢁꢀ푛푈푡ꢀꢂ:  
Ngưỡng độ hữu ích tối thiểu, ꢁꢀ푛퐶표푟 : Ngưỡng  
tương quan tối thiểu, 퐸푈퐶푆: Cấu trúc EUCS  
Ra: Các tập mục độ hữu ích cao có tương quan (퐶퐻푈퐼푠).  
1. for each 푋푈퐿푠 do  
( )  
cơ sở dữ liệu 퐷 để tính 푆푈푃 ꢀ , 푅푇푊푈(ꢀ) và 푈(ꢀ) cho  
mỗi mục ꢀ퐼 trình bày  
ở
dòng 1. Nếu  
푅푇푊푈(ꢀ) ꢁꢀ푛푈푡ꢀꢂ thì đưa i vào tập 퐼∗ và loại bỏ các  
mục ꢀ ∉ 퐼∗ khỏi cơ sở dữ liệu 퐷 trình bày ở dòng 2. Dòng  
3 sắp xếp các mục trong tập 퐼∗ tăng dần theo độ hỗ trợ  
푆푈푃 đồng thời sắp xếp các mục trong cơ sở dữ liệu 퐷  
theo thứ tự của 퐼∗. Dòng 4 quét cơ sở dữ liệu 퐷 để xây  
dựng danh sách PNU-List cho từng phần tử ꢀ ∉ 퐼∗, ký hiệu  
là 푈퐿푠. Dòng 5 khởi tạo cấu trúc 퐸푈퐶푆 và dòng 6 gọi  
thực hiện thuật toán 2 là 푆푒푎푟푐ℎ퐶퐻푈퐼.  
( )  
퐶퐻푈퐼푠 푋  
4. end if  
5. if  
( )  
2. if 푈 푋 ꢁꢀ푛푈푡ꢀꢂ 푘푢ꢂ푐 푋 ꢁꢀ푛퐶표푟 then  
3.  
( )  
(푃푈 푋 +  
( )  
và Kulc-Prune  
( )  
푃푅푈 푋 ꢁꢀ푛푈푡ꢀꢂ 푘푢ꢂ푐 푋 ꢁꢀ푛퐶표푟) //U-Prune  
Thuật toán 1: (Thuật toán chính - CHN)  
6.  
푒푥푈퐿푠 = //Khởi tạo danh sách PNU-List mở  
Vào: 퐷: Cơ sở dữ liệu giao dịch có lợi nhuận âm,  
ꢁꢀ푛푈푡ꢀꢂ: Ngưỡng độ hữu ích tối thiểu, ꢁꢀ푛퐶표푟:  
Ngưỡng tương quan tối thiểu.  
rộng từ X  
7.  
8.  
for each 푌 after 푋 in 푈퐿푠 do  
if 퐸푈퐶푆(푋, 푌)ꢁꢀ푛푈푡ꢀꢂ then //Áp dụng chiến  
Ra: Các tập mục độ hữu ích cao có tương quan (퐶퐻푈퐼푠)  
lược tỉa EUCP  
( )  
1. Quét cơ sở dữ liệu 퐷 để tính 푆푈푃 ꢀ , 푅푇푊푈(ꢀ) và  
9.  
10.  
푒푥푈퐿푠 푃푁푈Construct(푃, 푋, 푌);  
end if  
푈(ꢀ) cho mỗi mục ꢀ có trong 퐼.  
2. Tính 퐼∗ = {ꢀ퐼 | 푅푇푊푈(ꢀ) ꢁꢀ푛푈푡ꢀꢂ} và loại bỏ  
các mục ꢀ ∉ 퐼∗ khỏi cơ sở dữ liệu 퐷.  
3. Sắp xếp 퐼∗ tăng theo 푆푈푃, sắp xếp các mục trong 퐷  
theo thứ tự của 퐼∗.  
11. end for  
12. 푆푒푎푟푐ℎ퐶퐻푈퐼(푋, 푒푥푈퐿푠, ꢁꢀ푛푈푡ꢀꢂ, ꢁꢀ푛퐶표푟,  
퐸푈퐶푆); //gọi đệ quy thuật toán.  
13.end if  
14.end for  
4. Quét cơ sở dữ liệu 퐷 để tính PNU-List cho mỗi phần  
tử ꢀ ∉ 퐼∗ là 푈퐿푠  
5. Khởi tạo cấu trúc 퐸푈퐶푆  
6. 푆푒푎푟푐ℎ퐶퐻푈퐼(, 푈퐿푠, ꢁꢀ푛푈푡ꢀꢂ, ꢁꢀ푛퐶표푟, 퐸푈퐶푆)  
Thuật toán 3 (푃푁푈퐶표푛푠푡푟푢푐푡) thực hiện kết hợp 2  
PNU-List 푃푥 và 푃푦 thành PNU-List 푃푥푦. Dòng 1 khởi  
tạo giá trị ban đầu cho 푈퐿퐴 là tổng độ hữu ích dương  
푃푈(푃) và độ hữu ích còn lại sau 푃 là 푃푅푈(푃). Dòng 2, 3  
duyệt qua từng phần tử 푒푥푃푥 và tìm phần tử 푒푦 푃푦  
sao cho 푒푥. 푡ꢀ푑 = 푒푦. 푡ꢀ푑. Nếu tìm thấy thì tạo phần tử  
푒푥푦 kết hợp từ 푒푥 và 푒푦 trong các trường hợp xem xét tại  
dòng 4. Nếu PNU-List tiền tố 푃   (trường hợp 1 dòng  
4), nghĩa là PNU-List 푃푥푦 đang xây dựng có từ 3 mục trở  
lên, ngược lại (trường hợp 2 dòng 7) thì 푃푥푦 là PNU-List  
Thuật toán 2 (푆푒푎푟푐ℎ퐶퐻푈퐼) thực hiện đệ quy mở  
rộng không gian tìm kiếm để xác định một tập mục có  
phải là 퐶퐻푈퐼 hay không. Thuật toán có đầu vào gồm P:  
một PNU-List ở mức trên đóng vai trò là tiền tố, danh  
sách các PNU-List có tiền tố là P; ngưỡng độ hữu ích tối  
thiểu minUtil; ngưỡng tương quan tối thiểu minCor và cấu  
trúc 퐸푈퐶푆. Đầu ra là các tập mục hữu ích cao có tương  
quan (퐶퐻푈퐼푠). Dòng 1 duyệt qua từng PNU-List 푋 có  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
97  
Nguyễn Văn Lễ, Nguyễn Thị Thanh Thủy, Mạnh Thiên Lý  
đang xây dựng chỉ có 2 mục. Dòng 6 tạo phần tử 푒푥푦 ứng  
với trường hợp 1, dòng 8 tạo phần tử 푒푥푦 ứng với trường  
hợp 2, dòng 10 thêm 푒푥푦 vào PNU-List 푃푥푦. Dòng 12 xét  
điều kiện nếu không tồn tại 푒푦 푃푦 mà 푒푥. 푡ꢀ푑 = 푒푦. 푡ꢀ푑  
thì áp dụng chiến lược tỉa LA-Prune từ dòng 13 đến 15 để  
loại bỏ sớm những tập mục không phải là 퐶퐻푈퐼. Dòng 18  
trả về kết quả là PNU-List 푃푥푦.  
thử nghiệm được tải từ thư viện SPMF [20] là các cơ sở  
dữ liệu giao dịch có lợi nhuận âm gồm Chess, Mushroom,  
Pumsb, Retail và Kosarak. Chi tiết các cơ sở dữ liệu trình  
bày trong Bảng 5. Thực nghiệm của thuật toán CHN được  
so sánh với thuật toán mới nhất cùng khai thác tập CHUI  
là CoUPM [12]. Kết quả thực nghiệm được đánh giá dựa  
trên thời gian thực thi và dung lượng bộ nhớ sử dụng.  
Bảng V. Đặc điểm các cơ sở dữ liệu thực nghiệm  
Thuật toán 3: (푃푁푈퐶표푛푠푡푟푢푐푡)  
Vào: 푃: PNU-List với vai trò là tiền tố; 푃푥, 푃푦: Hai  
PNU-List cần kết hợp; ꢁꢀ푛푈푡ꢀꢂ: Ngưỡng độ hữu  
ích tối thiểu.  
Ra: 푃푥푦: PNU-List sau khi kết hợp 푃푥 và 푃푦.  
1. 푆푒푡 푈퐿퐴 = 푃푈(푃) + 푃푅푈(푃);  
Cơ sở dữ Số lượng Số lượng Độ dài trung Độ dày  
liệu  
Chess  
Mushroom 8,124  
giao dịch item (I)  
bình (A)  
37  
(A/I) %  
49.3333  
3,196  
75  
119  
23  
19.3277  
3.5021  
0.0625  
0.0196  
Pumsb  
Retail  
49,046  
88,162  
990,002  
2113  
16,470  
41,270  
74  
2. for each element 푒푥푃푥 then  
10.3  
8.1  
3.  
4.  
5.  
6.  
if 푒푦 푃푦 푒푥. 푡ꢀ푑 = 푒푦. 푡ꢀ푑 then  
if 푃   then  
Kosarak  
Tìm 푒 푃 sao cho 푒. 푡ꢀ푑 = 푒푥. 푡ꢀ푑;  
푒푥푦 =< 푒푥. 푡ꢀ푑, 푒푥. 푃푢푡ꢀꢂ + 푒푦. 푃푢푡ꢀꢂ −  
푒. 푃푢푡ꢀꢂ, 푒푥. 푁푢푡ꢀꢂ + 푒푦. 푁푢푡ꢀꢂ −  
푒. 푁푢푡ꢀꢂ , 푒푦. 푃푟푢푡ꢀꢂ >;  
Hình 2, 3 trình bày kết quả thực nghiệm so sánh giữa  
thuật toán CHN và thuật toán CoUPM về thời gian thực  
thi và bộ nhớ sử dụng. Kết quả thực nghiệm cho thấy  
thuật toán CHN có thời gian thực thi hiệu quả hơn thuật  
toán CoUPM trên tất cả các cơ sở dữ liệu từ rất dày như  
Chess đến cơ sở dữ liệu rất thưa như kosarak. Tuy nhiên  
bộ nhớ sử dụng của thuật toán CHN chỉ có hiệu quả hơn  
thuật toán CoUPM ở cơ sở dữ liệu Pumsb trên tất cả các  
ngưỡng và các ngưỡng tương quan lớn.  
7.  
else  
8. 푒푥푦 = < 푒푥. 푡ꢀ푑, 푒푥. 푃푢푡ꢀꢂ + 푒푦. 푃푢푡ꢀꢂ, 푒푥. 푁푢푡ꢀꢂ +  
푒푦. 푁푢푡ꢀꢂ, 푒푦. 푃푟푢푡ꢀꢂ >;  
9.  
end if  
10. 푃푥푦 푒푥푦;  
11. else  
Hình 2 trình bày kết quả thực nghiệm của hai thuật  
toán CHN và CoUPM trên cơ sở dữ liệu rất dày Chess và  
dày trung bình Mushroom. Với cơ sở dữ liệu Chess, tại  
ngưỡng minCor=0.86 thời gian thực hiện của thuật toán  
CHN nhanh hơn thuật toán CoUPM từ 5 đến 7 lần. Đặc  
biệt, khi giảm ngưỡng minCor còn 0.7 thì thời gian thực  
hiện của CHN càng hiệu quả và có thời gian thực hiện ít  
hơn thuật toán CoUPM lên đến 25 lần tại ngưỡng  
minUtil=130,000. Với cơ sở dữ liệu Mushroom, thời gian  
thực hiện của thuật toán CHN tốt hơn thuật toán CoUPM  
ở tất cả các ngưỡng minCor và minUtil. Kết quả này  
chứng tỏ rằng các chiến lược tỉa và cấu trúc dữ liệu sử  
dụng trong thuật toán CHN là phù hợp khi khai thác tập  
CHUI trên cơ sở dữ liệu có lợi nhuận âm.  
12. 푈퐿퐴 = 푈퐿퐴 − 푒푥. 푃푢푡ꢀꢂ − 푒푥. 푃푟푢푡ꢀꢂ;  
13. if 푈퐿퐴 < ꢁꢀ푛푈푡ꢀꢂ then // áp dụng chiến lược tỉa  
LA-Prune  
14.  
return null;  
15. end if  
16. end if  
17. end for  
18. return 푃푥푦;  
V. THỰC NGHIỆM  
Thuật toán 퐶퐻푁 được cài đặt bằng ngôn ngữ lập trình  
Java, chạy thử nghiệm trên máy tính Dell Precision Tower  
3620, Intel Core i7-7800X CPU @3.5GHz, bộ nhớ RAM  
32GB trên hệ điều hành Windows 10. Các cơ sở dữ liệu  
Hì nh 2. So sánh thời gian thực thi trên cơ sở dữ liệu dày  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
SOÁ 03 (CS.01) 2020  
98  
KHAI THÁ C TẬP HỮU ÍCH CAO TƯƠNG QUAN TRÊN CƠ SỞ DỮ LIỆU GIAO DỊCH CÓ LỢI NHUẬN  M  
Hì nh 3. So sánh thời gian thực thi trên cơ sở dữ liệu thưa  
Hì nh 4. So sánh bộ nhớ sử dụng trên cơ sở dữ liệu dày  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
99  
Nguyễn Văn Lễ, Nguyễn Thị Thanh Thủy, Mạnh Thiên Lý  
Hì nh 5. So sánh bộ nhớ sử dụng trên cơ sở dữ liệu thưa  
Hình 3 trình bày kết quả thực nghiệm trên cơ sở dữ  
liệu từ thưa như Pumsb cho đến rất thưa như Kosarak.  
Kết quả thực nghiệm cho thấy thuật toán CHN có thời  
gian thực hiện thấp hơn thuật toán CoUPM trên cả 3 cơ  
sở dữ liệu thử nghiệm. Với cơ sở dữ liệu lớn, có độ dài  
trung bình của giao dịch cao nhất như cơ sở dữ liệu  
Pumsb thì thời gian thực hiện của thuật toán CHN nhanh  
hơn thuật toán CoUPM từ 5 đến 10 lần tại ngưỡng  
minCor=0.85, từ 10 đến 30 lần tại ngưỡng minCor=0.8.  
Đặc biệt với ngưỡng minCor=0.75 thì thuật toán CHN  
cho ra kết quả ở tất cả các ngưỡng minUtil còn thuật toán  
CoUPM chỉ có kết quả ở 2 ngưỡng minUtil là 10,000,000  
và 9,800,000, các ngưỡng còn lại không cho kết quả.  
Hình 4,5 so sánh bộ nhớ sử dụng của hai thuật toán  
CHN và CoUPM trên hai nhóm cơ sở dữ liệu dày và  
thưa. Kết quả thực nghiệm cho thấy thuật toán CHN có  
dung lượng bộ nhớ sử dụng thấp hơn thuật toán CoUPM  
ở hầu hết các cơ sở dữ liệu thực nghiệm tại các ngưỡng  
minCor cao. Khi ngưỡng minCor giảm xuống thấp hơn  
thì thuật toán CHN sử dụng bộ nhớ nhiều hơn thuật toán  
CoUPM ở hầu hết các cơ sở dữ liệu, ngoại trừ cơ sở dữ  
liệu lớn Pumsb. Kết quả này cho thấy rằng việc sử dụng  
các chiến lược tỉa và cấu trúc dữ liệu lưu trữ có ảnh  
hưởng đến bộ nhớ sử dụng của thuật toán CHN. Thật  
vậy, Với cấu trúc dữ liệu PNU-List sử dụng trong thuật  
toán CHN, mỗi bộ của một PNU-List gồm 4 giá trị là  
<Tid, Putil, Nutil, Prutil> trong khi cấu trúc dữ liệu  
Utility-List trong thuật toán CoUPM thì mỗi bộ chỉ gồm  
3 giá trị <Tid, Iutil, Rutil>. Ngoài ra, thuật toán CHN áp  
dụng chiến lược tỉa EUCS để lưu ma trận các giá trị  
RTWU của 2 phần tử dẫn đến tốn kém bộ nhớ trong quá  
trình thực thi.  
Với cơ sở dữ liệu Retail, biểu đồ thực nghiệm (Hình  
3) cho thấy thuật toán CHN có tốc độ xử lý nhanh hơn  
hơn thuật toán CoUPM khoảng 25 lần tại ngưỡng  
minCor=0.3 và minUtil=5000. Tại các ngưỡng khác,  
thuật toán CHN vẫn chứng tỏ được tính hiệu quả hơn  
thuật toán CoUPM. Với cơ sở dữ liệu rất thưa như  
Kosarak, thuật toán CHN có thời gian thực thi ổn định  
trung bình khoảng 5 giây ở tất cả các ngưỡng minCor và  
minUtil. Trong khi thuật toán CoUPM có thời gian thực  
hiện cao hơn, trung bình khoảng 25 giây cho tất cả các  
ngưỡng.  
VI. KẾT LUẬN  
Bài báo này đề xuất thuật toán 퐶퐻푁 khai thác tập hữu  
ích cao tương quan (퐶퐻푈퐼푠) trên cơ sở dữ liệu có lợi  
nhuận âm. Thuật toán sử dụng cấu trúc PNU-List biểu  
diễn tách biệt các giá trị lợi nhuận âm và dương để khai  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
100  
KHAI THÁ C TẬP HỮU ÍCH CAO TƯƠNG QUAN TRÊN CƠ SỞ DỮ LIỆU GIAO DỊCH CÓ LỢI NHUẬN  M  
thác đầy đủ tập 퐶퐻푈퐼푠 trên các cơ sở dữ liệu có lợi  
nhuận âm. Ngoài ra, thuật toán còn áp áp dụng nhiều  
chiến lược tỉa hiệu quả để cắt giảm không gian tìm kiếm  
như: U-Prune, Kulc-Prune, LA-Prune và EUCS-Prune.  
Kết quả thực nghiệm cho thấy thuật toán CHN có thời  
gian thực hiện nhanh hơn thuật toán CoUPM trên tất cả  
các cơ sở dữ liệu có lợi nhuận âm được thử nghiệm. Bộ  
nhớ sử dụng của thuật toán CHN tốt hơn thuật toán  
CoUPM ở các ngưỡng minCor cao, tuy nhiên, với các  
ngưỡng minCor thì thuật toán CHN có dung lượng bộ  
nhớ sử dụng nhiều hơn.  
H. Fujita, "Extracting non-redundant correlated purchase  
behaviors by utility measure," Knowledge-Based Systems,  
vol. 143, pp. 30-41, 2018.  
[12] W. Gan, J. C. W. Lin, H. C. Chao, H. Fujita, and S. Y.  
Philip, "Correlated utility-based pattern mining,"  
Information Sciences, vol. 504, pp. 470-486, 2019.  
[13] A. Erwin, R. P. Gopalan, and N. R. Achuthan, "CTU-  
Mine: An efficient high utility itemset mining algorithm  
using the pattern growth approach," IEEE International  
Conference on Computer and Information Technology, pp.  
71-76, 2007.  
Hướng phát triển tiếp theo là cải tiến cấu trúc dữ liệu  
lưu trữ và chiến lược tỉa để tăng hiệu suất thực thi của  
thuật toán trên các cơ sở dữ liệu có lợi nhuận âm, khai  
thác 퐶퐻푈퐼푠 trên các dạng cơ sở dữ liệu khác như cơ sở  
dữ liệu động và cơ sở dữ liệu tăng trưởng.  
[14] B. Le, H. Nguyen, T. A. Cao, and B. Vo, "A novel  
algorithm for mining high utility itemsets," First Asian  
Conference on Intelligent Information and Database  
Systems, pp. 13-17, 2009.  
[15] V. S. Tseng, B. E. Shie, C. W. Wu, and S. Y. Philip,  
"Efficient algorithms for mining high utility itemsets from  
transactional databases," IEEE transactions on knowledge  
and data engineering, vol. 25, pp. 1772-1786, 2012.  
TÀI LIỆU THAM KHẢO  
[1] R. Agrawal, T. Imieliński, and A. Swami, "Mining  
association rules between sets of items in large databases,"  
Proceedings of the 1993 ACM SIGMOD International  
Conference on Management of Data, pp. 207-216, 1993.  
[16] S. Krishnamoorthy, "HMiner: Efficiently mining high  
utility itemsets," Expert Systems with Applications, vol. 90,  
pp. 168-183, 2017.  
[2] R. Agrawal and R. Srikant, "Fast algorithms for mining  
association rules," In Proc. 20th Int. Conf. Very Large  
Data Bases (VLDB), pp. 487-499, 1994.  
[17] K. Singh, A. Kumar, S. S. Singh, H. K. Shakya, and B.  
Biswas, "EHNL: An efficient algorithm for mining high  
utility itemsets with negative utility value and length  
constraints," Information Sciences, vol. 484, pp. 44-70,  
2019.  
[3] Y. Liu, W. K. Liao, and A. Choudhary, "A two-phase  
algorithm for fast discovery of high utility itemsets," In  
Pacific-Asia Conference on Knowledge Discovery and  
Data Mining, pp. 689-695, 2005.  
[18] E. R. Omiecinski, "Alternative interest measures for  
mining associations in databases," IEEE Transactions on  
Knowledge and Data Engineering, vol. 15, pp. 57-69,  
2003.  
[4] V. S. Tseng, C. W. Wu, B. E. Shie, and P. S. Yu, "UP-  
Growth: an efficient algorithm for high utility itemset  
mining," In Proceedings of the 16th ACM SIGKDD  
International Conference on Knowledge Discovery and  
Data Mining, pp. 253-262, 2010.  
[19] P. Fournier-Viger, Y. Zhang, J. C. W. Lin, D. T. Dinh, and  
H. B. Le, "Mining correlated high-utility itemsets using  
various measures," Logic Journal of the IGPL, vol. 28, no.  
1, pp. 19-32, 2020.  
[5] M. Liu and J. Qu, "Mining high utility itemsets without  
candidate generation," In Proceedings of the 21st ACM  
International Conference on Information and Knowledge  
Management, pp. 55-64, 2012.  
[20] P. Fournier-Viger, A. Gomariz, A. Soltani, and H. Lam.  
(2014) An Open-Source Data Mining Library. [Online].  
[6] P. Fournier-Viger, C. W. Wu, S. Zida, and V. S. Tseng,  
"FHM: Faster high-utility itemset mining using estimated  
utility co-occurrence pruning," International Symposium  
on Methodologies for Intelligent Systems, vol. 8502, pp.  
83-92, 2014.  
MINING CORRELATED HIGH UTILITY  
ITEMSETS ON TRANSACTION DATABASE  
WITH NEGATIVE PROFITS  
[7] S. Zida, P. Fournier-Viger, J. C. W. Lin, C. W. Wu, and V.  
S. Tseng, "EFIM: a fast and memory efficient algorithm  
for high-utility itemset mining," Knowledge and  
Information Systems, vol. 51, no. 2, pp. 595-625, 2017.  
Abstract: Correlated High Utility Itemset mining on  
transaction databases have been extensively studied in  
order to discover user buying behavior. As a result,  
business managers can adjust sales strategies accordingly  
to increase profits. The previous correlated high utility  
itemset mining approaches are mostly performed on  
transaction databases that have positive profit with little  
regard for negative profit. In fact, businesses often reduce  
profit margin of perennial inventories to stimulate  
purchasers. Profit can even be reduced to negative  
numbers so that all inventory can be consumed. In this  
paper, we propose the CHN algorithm to mine effectively  
correlated high utility itemset on the transaction database  
with negative profits. The experimental results show that  
the CHN algorithm has effective performance on all five  
databases as Chess, Mushroom, Pumsb, Retail, and  
Kosarak.  
[8] J. Liu, K. Wang, and B. C. Fung, "Direct discovery of high  
utility itemsets without candidate generation," IEEE 12th  
international conference on data mining, pp. 984-989,  
2012.  
[9] J. C. W. Lin, P. Fournier-Viger, and W. Gan, "FHN: An  
efficient algorithm for mining high-utility itemsets with  
negative unit profits," Knowledge-Based Systems, vol. 111,  
pp. 283-298, 2016.  
[10] J. C. W. Lin, W. Gan, P. Fournier-Viger, T. P. Hong, and  
H. C. Chao, "FDHUP: Fast algorithm for mining  
discriminative high utility patterns," Knowledge and  
Information Systems, vol. 51, pp. 873-909, 2017.  
[11] W. Gan, J. C. W. Lin, P. Fournier-Viger, H. C. Chao, and  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
101  
Nguyễn Văn Lễ, Nguyễn Thị Thanh Thủy, Mạnh Thiên Lý  
Keywords: high utility itemset, correlation, data  
mining, transaction database, correlated high utility  
itemset.  
Nguyen Văn Lễ, nhận học vị  
Thạc sỹ năm 2011, chuyên ngành  
Truyền dữ liệu & Mạng máy tính  
tại Học viện Công nghệ Bưu chính  
Viễn Thông TPHCM. Hiện công  
tác tại khoa Công nghệ thông tin,  
trường Đại học Công nghiệp Thực  
phẩm TPHCM. Hướng nghiên  
cứu: Khai thác luật kết hợp, tập  
hữu ích cao trên cơ sở dữ liệu  
giao dịch, phân lớp văn bản.  
Nguyễn Thị Thanh Thủy, tốt  
nghiệp khoa Công nghệ thông tin,  
Trường Đại học Khoa học tự  
nhiên - Đại học quốc gia TP.HCM  
năm 2003 và nhận bằng thạc sỹ  
ngành Quản trị kinh doanh,  
Trường Đại học Kinh tế TP.HCM  
năm 2013. Hiện tại, đang là giảng  
viên khoa Công nghệ thông tin,  
Trường Đại học Công nghiệp  
Thực phẩm TP.HCM. Các hướng  
nghiên cứu gồm: khai thác luật kết  
hợp, khai thác tập hữu ích cao  
trong khai phá dữ liệu.  
Mạnh Thiên Lý, tốt nghiệp đại  
học ngành Công nghệ Thông tin  
tại Đại học Vinh năm 2006, nhận  
bằng Thạc sỹ Hệ thống Thông tin  
tại Học viện Kỹ thuật Quân sự Hà  
Nội năm 2010. Hiện tại là giảng  
viên trường Đại học Công nghiệp  
Thực phẩm TP.HCM. Một số  
hướng nghiên cứu chính: khai  
thác luật kết hợp, khai thác tập  
hữu ích cao trong khai phá dữ  
liệu.  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
102  
pdf 9 trang yennguyen 14180 Free
Bạn đang xem tài liệu "Khai thác tập hữu ích cao tương quan trên cơ sở dữ liệu giao dịch có lợi nhuận âm", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfkhai_thac_tap_huu_ich_cao_tuong_quan_tren_co_so_du_lieu_giao.pdf