Đánh giá hiệu quả của thuật toán khai phá luật kết hợp trong môi trường xử lý song song

Luật kết hợp chỉ ra mối quan hệ, sự kết hợp hay mối tương quan giữa các đối tượng trong

cơ sở dữ liệu. Khai phá luật kết hợp là bài toán đã và đang được quan tâm nghiên cứu trong

lĩnh vực khai phá dữ liệu. Các thuật toán thường được sử dụng trong khai phá luật kết hợp là

Apriori, FP-Growth. Mục đích của bài báo là đánh giá hiệu quả của các thuật toán Apriori,

FP-Growth và Apriori cải tiến trong môi trường xử lý song song. Việc so sánh các thuật toán

dựa vào hai yếu tố thời gian thực thi và hiệu suất của thuật toán sử dụng. Kết quả thực

nghiêm trên các bộ dữ liệu thực cho thấy rằng trong môi trường xử lý song song, thuật toán

PF-Growth thực thì hiệu quả nhất.

pdf 9 trang dienloan 19580
Bạn đang xem tài liệu "Đánh giá hiệu quả của thuật toán khai phá luật kết hợp trong môi trường xử lý song song", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Đánh giá hiệu quả của thuật toán khai phá luật kết hợp trong môi trường xử lý song song

Đánh giá hiệu quả của thuật toán khai phá luật kết hợp trong môi trường xử lý song song
8 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 53 (07/2019) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
ĐÁNH GIÁ HIỆU QUẢ CỦA THUẬT TOÁN KHAI PHÁ LUẬT KẾT 
HỢP TRONG MÔI TRƯỜNG XỬ LÝ SONG SONG 
EVALUATING THE EFFECTIVENESS OF ASSOCIATION RULES MINING 
ALGORITHMS IN PARALLEL PROCESSING ENVIRONMENT 
Nguyễn Đăng Cẩm, Nguyễn Thành Sơn 
Trường Đại học Sư phạm Kỹ thuật TP.HCM, Việt Nam 
Ngày toà soạn nhận bài 30/11/2018, ngày phản biện đánh giá 14/2/2019, ngày chấp nhận đăng 2/4/2019. 
TÓM TẮT 
Luật kết hợp chỉ ra mối quan hệ, sự kết hợp hay mối tương quan giữa các đối tượng trong 
cơ sở dữ liệu. Khai phá luật kết hợp là bài toán đã và đang được quan tâm nghiên cứu trong 
lĩnh vực khai phá dữ liệu. Các thuật toán thường được sử dụng trong khai phá luật kết hợp là 
Apriori, FP-Growth. Mục đích của bài báo là đánh giá hiệu quả của các thuật toán Apriori, 
FP-Growth và Apriori cải tiến trong môi trường xử lý song song. Việc so sánh các thuật toán 
dựa vào hai yếu tố thời gian thực thi và hiệu suất của thuật toán sử dụng. Kết quả thực 
nghiêm trên các bộ dữ liệu thực cho thấy rằng trong môi trường xử lý song song, thuật toán 
PF-Growth thực thì hiệu quả nhất. 
Từ khóa: Khai phá dữ liệu; Khai phá luật kết hợp; Apriori; FP-Growth; Apriory cải tiến. 
ABSTRACT 
An association rule indicates the relationship, association, or correlation between objects 
in the database. Association Rule Mining is a problem which has received an increasing 
amount of attention lately in data mining. Appriori and FP-Growth have commonly used 
algorithms in association rule mining. The aim of the paper is to evaluate the effectiveness of 
the Apriori, FP_Growth and Improved Apriori in a parallel processing environment. The 
comparison is based on execution time and the performance. The experimental results showed 
that in the parallel processing environment the FP-growth algorithm is the most efficient one. 
Keywords: Data Mining; Association Rule Mining; Apriori; FP-Growth; Improved Apriory. 
1. GIỚI THIỆU 
Khai phá dữ liệu là một quá trình đầy 
hứa hẹn và phát triển trong phân tích dữ liệu 
và nó được ứng dụng trong nhiều lĩnh vực. 
Khai phá dữ liệu là cốt lõi của quá trình 
“Phát hiện tri thức từ cơ sở dữ liệu” 
(Knowledge Discovery in Database-KDD), là 
quá trình khai phá, trích xuất, khai thác và sử 
dụng những dữ liệu có giá trị tiềm ẩn từ bên 
trong lượng lớn dữ liệu được lưu trữ trong 
các cơ sở dữ liệu (CSDL), kho dữ liệu, trung 
tâm dữ liệu lớn. 
Các thuật toán khai phá luật kết hợp tuần 
tự khi sử dụng với dữ liệu lớn sẽ mất nhiều 
thời gian. Vì vậy, yêu cầu cần có những thuật 
toán song song hiệu quả cho việc phát hiện 
các luật kết hợp trong khai phá dữ liệu là rất 
cần thiết. 
Hai hướng tiếp cận chính trong thiết kế 
thuật toán khai phá luật kết hợp song song là 
mô hình song song dữ liệu, mô hình song 
song thao tác. 
Bài báo này nhằm mục đích đánh giá 
hiệu quả giữa các thuật toán Apriori, Apriori 
cải tiến, Apriori cải tiến và FP-Growth trong 
môi trường xử lý song song. 
Phần còn lại của bài báo bao gồm: Phần 
2 trình bày các khái niệm cơ bản và các công 
trình liên quan. Phần 3 giới thiệu về các giải 
thuật khai phá luật kết hợp. Cách tiếp cận 
khai phá luật kết hợp sử dụng giải thuật song 
song được trình bày trong phần 4. Phần 5 là 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 53 (07/2019) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
9 
kết quả thực nghiệm. Phần 6 là kết luận và 
hướng phát triển của đề tài. 
2. CÁC KHÁI NIỆM CƠ BẢN VÀ CÁC 
CÔNG TRÌNH LIÊN QUAN 
2.1. Các khái niệm cơ bản 
Cho D = {t1, t2, , tm} là cơ sở dữ liệu 
các giao dịch. Mỗi giao dịch ti bao gồm một 
tập n thuộc tính I = {i1, i2, , in} và có một 
định danh duy nhất TID. 
 Một luật định nghĩa sự kéo theo có dạng X 
⇒ Y trong đó X,Y ⊆ I và X ∩ Y = Ø. Trong 
dó, X gọi là phần mệnh đề điều kiện và Y 
gọi là mệnh đề kết quả của luật tương ứng. 
 Độ phổ biến 
Supp(X) = |X| / |D| 
 
D
TYXDT
YXSupp

:
)( 
 Độ tin cậy 
Conf(X⇒Y) =
Supp(X⇒Y)
Supp(X)
2.2. Các công trình liên quan 
Một trong những thuật toán đầu tiên khai 
phá luật kết hợp, thuật toán Apriory, do 
RaKesh Agrawal và các cộng sự đề suất năm 
1993 [1]. Thuật toán sau đó trở thành nền 
tảng cho sự phát triển các thuật toán sau này. 
Năm 2000, Jiawei Hai và các cộng sự đề 
xuất thuật toán FP-Growth. Thuật toán này 
sử dụng FP-tree để tìm các tập mục phổ biến, 
nhằm giảm số lần quét qua cơ sở dữ liệu [2]. 
Trong [3], Z. H. Deng và các cộng sự đề 
xuất một kiểu dữ liệu mới theo chiều dọc gọi 
là N-list, bắt nguồn từ FP-tree-like gọi là 
PPC-Tree. Dựa trên cấu trúc dữ liệu N-list, 
phát triển một thuật toán khai thác hiệu quả 
là PrePost, để khai thác tập mục phổ biến. 
Các quả thực nghiệm cho thấy thuật toán 
PrePost hiệu quả nhanh nhất trong tất cả các 
trường hợp. Mặc dù thuật toán sẽ tốn nhiều 
bộ nhớ khi các bộ dữ liệu nhỏ. 
Trong [4], Aiman Moyaid Said và các 
cộng sự đã cài đặt và so sánh thuật toán cải 
tiến của Fpgrowth, AFOPT, Nonordfp, 
Fpgrowth với dữ liệu T10I4D100k, 
T40I10D100K, Mushroom, Connect4. Với 
thuật toán Fpgrowth chạy trên dữ liệu 
T10I4D100k, T40I10D100K, Mushroom, 
Connect 4. Kết luận hiệu suất của thuật toán 
APFOPT là ổn định nhất trên hầu hết các loại 
dữ liệu. 
Trong [5], Zhi-Hong Deng và cộng sự 
trình bày một thuật toán hiệu quả được gọi là 
FIN để khai thác các tập mục thường xuyên. 
Để đánh giá hiệu suất của FIN, họ đã tiến 
hành các thực nghiệm để so sánh nó với 
PrePost và FP-growth trên nhiều bộ dữ liệu 
thực và tổng hợp. Kết quả thử nghiệm cho 
thấy rằng FIN có hiệu suất cao trên cả thời 
gian chạy và mức sử dụng bộ nhớ. 
Trong [6], Dawen Xia, Yanhui Zhou, 
Zhuobo Rong, và Zili Zhang đề xuất một 
thuật toán FP-Growth sử dụng giải thuật song 
song cải tiến (IPFP), sử dụng MapReduce để 
thực hiện thuật toán FP-Growth sử dụng giải 
thuật song song. Do đó cải thiện hiệu suất 
tổng thể và hiệu quả khai phá các tập mục 
phổ biến. 
Một số giải thuật khai phá luật kết hợp sử 
dụng trong môi trường xử lý song song cũng 
đã được đề xuất nhằm tăng tốc độ xử lý của 
thuật toán. Chẳng hạn, trong [7] Yanbin Ye 
and Chia-Chu Chiang giới thiệu giải thuật 
song song để khai phá các tập mục phổ biến 
sử dụng thuật toán Apriory; trong [8], Yi 
Wang và các công sự sử dụng giải thuật 
FP-Growth trong môi trường song song để 
khai phá các tập mục phổ biến. Cách tiếp cận 
chung của các giải thuật khai phá luật kết hợp 
thường được thực hiện qua hai giai đoạn: 
(1) Tìm tất cả các tập mục dữ liệu có độ 
hỗ trợ thỏa ngưỡng tối thiểu cho trước, gọi là 
các tập mục dữ liệu phổ biến. 
(2) Tìm ra những luật kết hợp từ những 
tập mục dữ liệu phổ biến thỏa độ tin cậy cho 
trước. 
Các công trình nghiên cứu về bài toán 
khai phá luật kết hợp thường tập trung đề xuất 
mới hoặc cải tiến thuật toán thực hiện trong 
giai đoạn 1 tìm tất cả các tập mục phổ biến. 
Còn giai đoạn 2 thường là xử lý như nhau. 
(1) 
(2) 
(3) 
10 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 53 (07/2019) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
3. MỘT SỐ GIẢI THUẬT KHAI PHÁ 
LUẬT KẾT HỢP 
3.1. Giải thuật Apriori 
Thuật toán sinh tập mục ứng viên từ 
những tập mục phổ biến ở bước trước, sử 
dụng kỹ thuật “tỉa” để bỏ đi tập mục ứng viên 
không thỏa mãn ngưỡng hỗ trợ cho trước. 
Thuật toán gồm các bước sau: 
- Tìm tất cả các tập mục phổ biến 1- phần 
tử (C1). 
- Tạo các tập ứng viên có k – phần tử (k - 
candidate itemset) từ các tập phổ biến có 
(k-1) – phần tử. Ví dụ, tạo tập ứng viên C2 
từ tập phổ biến C1. 
- Kiểm tra độ phổ biến của các ứng viên 
trên CSDL và loại các ứng viên không 
phổ biến ta được các tập mục phổ biến Li, 
với mọi 1 ≤ i ≤ k. 
- Dừng khi không tạo được tập mục phổ 
biến hay tập ứng viên, i.e., Lk = {} hay Ck 
= {}. 
Mã giả thuật toán Apriori 
Dữ liệu vào: Tập các giao dịch D, 
ngưỡng hỗ trợ minsup 
Dữ liệu ra: Tập trả lời bao gồm các tập 
mục phổ biến trên D 
Giải thuật: 
L1 = {large 1-itemset}; 
for (k = 2; Lk-1 ≠ 𝜙; k++) do begin 
Ck = apriori_gen(Lk-1); // sinh tập mục 
ứng viên mới Ck; 
For all giao dịch t ∈ D do begin 
Ct = subset(Ck, t); // các tập mục 
ứng viên chứa trong t; 
For all tập mục ứng viên ci ∈ Ct do 
ci.count ++ ; 
end; 
Lk = {ci ∈ Ck | ci.count ≥ minsup} 
end; 
Return tất cả các tập mục phổ biến Lk; 
Ưu điểm thuật toán Apriori 
- Là thuật toán đơn giản, dễ hiểu và dễ cài 
đặt. 
- Thuật toán Apriori tìm tập mục phổ biến 
thực hiện tốt bởi rút gọn kích thước các 
tập ứng viên nhờ kỹ thuật “tỉa”. 
Nhược điểm thuật toán Apriori 
- Phải duyệt CSDL nhiều lần. 
- Số lượng lớn tập ứng viên được tạo ra làm 
gia tăng sự phức tạp không gian. 
- Để xác định độ support của các tập ứng 
viên, thuật toán luôn phải quyét lại toàn 
bộ CSDL. 
3.2. Thuật toán Apriori cải tiến 
Để nâng cao hiệu quả khai phá các 
itemset phổ biến, Girja Shankar và Latita 
Bargadiya [9] đã thảo luận về hai vấn đề của 
thuật toán Apriori. 
Đầu tiên, thuật toán cần phải quét cơ sở 
dữ liệu nhiều lần và ở lần thứ hai, nó sẽ tạo ra 
itemset ứng viên lớn và làm tăng thời gian xử 
lý, cũng như độ phức tạp về không gian. Để 
khắc phục những khuyết điểm trên, các tác giả 
đề xuất cải tiến như sau: đầu tiên tìm 
frequent_one_itemset của cơ sở dữ liệu sau đó 
tạo ra tập power của frequent_one_itemset và 
khởi tạo itemset count = 0. Gọi power set này 
là Global power set. Khi thuật toán quét qua 
cơ sở dữ liệu để đếm itemset, thì xóa các item 
từ giao dịch không có mặt trong danh sách 
frequent_one_itemset. Sau khi quá trình xóa 
thuật toán tạo ra Local Power set từ các item 
còn lại của giao dịch và so sánh với các 
Global power set. Khi phù hợp thì tăng số 
lượng itemset lên một. Bước này sẽ làm giảm 
số lần quét qua cơ sở dữ liệu. 
Nội dung thuật toán: 
Input: 
1) Cơ sở dữ liệu D với định dạng (TID, 
itemset), trong đó TID là một định danh của 
giao dịch và itemset là một tập mục tương ứng 
2) Ngưỡng hỗ trợ tối thiểu: min-sup. 
Output: các tập mục phổ biến trong D. 
Các bước xử lý: 
1) Tìm tập mục phổ biến 1 phần từ 
 L1 = frequent_one_itemset (D) 
2) Tạo power set của L1 và khởi tạo itemset 
count = 0, và gọi nó là Global power set; 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 53 (07/2019) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
11 
3) Quét cơ sở dữ liệu D đến hết. 
a) Đọc itemset từ giao dịch và xóa các 
item không ở trong L1 và sau đó tạo ra 
local power set từ các item còn lại của 
giao dịch. 
b) So sánh local power set với Global 
power set từng cái một và nếu itemset phù 
hợp thì tăng số lượng itemset lên 1 trong 
Global power set. 
Tỉa các ứng cử itemset. 
4) Quét Global power set và đếm số ứng viên 
itemset; 
Nếu độ hỗ trợ của ứng viên itemset nhỏ 
hơn minsup thì xóa item set đó từ Global 
power set. 
5) Các itemset còn lại của Global power set sẽ 
là itemset phổ biến được yêu cầu. 
3.3. Thuật toán FP-Growth 
Thuật toán FP-Growth được đề xuất 
nhằm khắc phục được các nhược điểm của 
thuật toán Apriori. 
Nội dung thuật toán: 
Bước 1: Xây dựng FP-Tree: 
- Duyệt CSDL lần một, xác định các tập 
mục phổ biến L và sắp xếp chúng theo độ 
hỗ trợ. 
- Duyệt qua CSDL lần hai, với mỗi giao 
dịch T sắp xếp các tập mục theo thứ tự tập 
L. Giả sử các tập mục phổ biến trong T có 
dạng [p|P] với p là tập mục cần đưa vào 
FP-Tree và P là danh sách các tập mục 
còn lại, N là nút cần chèn. Nếu nút con 
của N giống p, tăng biến count nút con đó 
lên 1. Ngược lại, tạo nút con mới cho N 
có tên mục là p và count = 1. Tiếp tục 
chèn P vào nút con vừa xét. 
Bước 2: Xây dựng cơ sở mẫu điều kiện 
(Conditional Patern Bases) cho mỗi tập 
mục phổ biến. 
Bước 3: Xây dựng FP-Tree điều kiện 
(Conditional FP-Tree) cho mỗi tập mục 
phổ biến trong cơ sở mẫu điều kiện. 
Bước 4: Đệ quy xây dựng FP-Tree điều kiện 
đến khi FP-Tree điều kiện còn một nhánh 
duy nhất (single path), sau đó tiến hành 
sinh tất cả tổ hợp mục phổ biến. 
4. KHAI PHÁ LUẬT KẾT HỢP 
TRONG MÔI TRƯỜNG XỬ LÝ 
SONG SONG 
4.1. Khai phá luật kết hợp sử dụng giải 
thuật song song 
Khai phá luật kết hợp sử dụng giải thuật 
song song dựa trên ý tưởng của khai phá luật 
kết hợp, thực hiện song song hóa nhằm đáp 
ứng sự tăng lên nhanh chóng của dữ liệu và 
giảm thời gian thực hiện. 
Các giải thuật xử lý song song được áp 
dụng trong giai đoạn tìm các tập mục phổ 
biến nhằm giảm thời gian thực thi của giai 
đoạn này. Trong các thuật toán dùng trong 
khai phá luật kết hợp, thuật toán FP-Growth 
thường được sử dụng trong các giải thuật xử 
lý song song vì tính hiệu quả của nó. 
Khai phá luật kết hợp trong môi trường 
xử lý song song được thực hiện qua các bước 
sau: (1) Cơ sở dữ liệu ban đầu được phân 
hoạch cho các bộ xử lý; (2) Mỗi bộ xử lý 
thực hiện thuật toán FP-Growth để phát sinh 
tập mục phổ biến cục bộ; (3) Bộ xử lý chủ 
tổng hợp các tập mục phổ biến cục bộ từ các 
bộ xử lý khác để phát sinh các tập mục phổ 
biến toàn cục; (4) Các luật kết hợp được phát 
sinh từ tập mục phổ biến toàn cục. 
Hình 1 minh họa các bước thực hiện của 
thuật toán khai phá luật kết hợp FP-Growth 
trong môi trường xử lý song song. 
Hình 1. Mô hình giải thuật song song dùng 
thuật toán FP-Growth 
12 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 53 (07/2019) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
4.2. Thuật toán song song sử dụng Apriori 
cải tiến 
Dựa vào thuật toán Apriori cải tiến, thuật 
toán này sử dụng mô hình “Chủ-Tớ”. 
Nội dung thuật toán: 
Input: 
1) Cơ sở dữ liệu D với định dạng (TID, 
itemset), trong đó TID là một định danh của 
giao dịch và itemset là một tập mục tương ứng 
với công việc kinh doanh. D1, D2,, Dp: các 
phân hoạch CSDL, p là số bộ xử lý. 
2) Ngưỡng hỗ trợ tối thiểu: min-sup. 
Output: Các tập mục phổ biến trong D 
Các bước xử lý: 
1) Với mọi bộ xử lý i, 
 L1(i) = tìm frequent_one_itemset (Di); 
2) Nhận L1(i) từ bộ xử lý i 
Tạo power set của L1 và khởi tạo itemset 
count = 0, và gọi nó là Global power set; 
3) Bộ xử lý chủ quét cơ sở dữ liệu D đến hết. 
Đọc itemset từ giao dịch và xóa các item 
không ở trong L1 và sau đó tạo ra local 
power set từ các item còn lại của giao dịch. 
Gửi local power set và Global power set (i) 
tới các bộ xử lý tớ. 
4) Bộ xử lý tớ i so sánh local power set với 
Global power set (i). Nếu itemset phù hợp 
thì tăng số lượng itemset lên 1 trong Global 
power set (i). 
5) Bộ xử lý chủ nhận Global power set (i) từ 
bộ xử lý tớ. Quét Global power set và đếm 
số ứng viên của từng itemset; 
Nếu số ứng viên của itemset ít hơn minsup 
thì xóa itemset đó khỏi Global power set. 
6) Các itemset còn lại của Global power set sẽ 
là itemset phổ biến được yêu cầu. 
4.3. Thuật toán song song sử dụng 
FP-Growth 
Thuật toán xây dựng một số Fp-tree cục 
bộ trong môi trường bộ nhớ phân tán dựa trên 
mô hình “Chủ - Tớ”. 
Thuật toán khai phá luật kết hợp này gồm 
hai nhiệm vụ chính: 
- Xây dựng song song FP-Tree 
- Khai phá song song và sinh tập mục phổ 
biến. 
(1) Xây dựng song song FP-Tree 
 Chia CSDL giao dịch D cho P bộ xử lý. 
 Mỗi bộ xử lý tính toán độ hỗ trợ 
(flocal(i)) của mỗi mục i bằng cách quét 
phân hoạch CSDL cục bộ. Sau đó, tất cả 
các bộ xử lý gửi flocal(i) cục bộ đến bộ 
xử lý chủ. 
 Bộ xử lý chủ kết hợp các flocal(i) lại để 
sinh độ hỗ trợ toàn cục (fglocal (i)). 
 Tập các 1-itemset phổ biến thu được sẽ 
được truyền cho tất cả các bộ xử lý trong 
nhóm. 
 Xây dựng các FP-Tree cục bộ, Mỗi bộ xử 
lý quét CSDL cục bộ của nó và chèn các 
mục phổ biến vào trong cây FP-Tree 
(2) Khai phá song song và sinh tập mục phổ 
biến 
 Đầu tiên, thuật toán duyệt toàn bộ FP-Tree 
và tạo ra các mẫu điều kiện cơ sở. 
 Tiếp theo, thuật toán tập hợp các mẫu 
điều kiện cơ sở từ các bộ xử lý để xây 
dựng FP-Tree điều kiện cơ sở (CFPT) 
cho mỗi mục phổ biến. 
 Cuối cùng là thực thi việc khai phá bằng 
cách xây dựng đệ qui các mẫu điều kiện 
cơ sở và các CFPTs cho đến khi nó sinh 
tất cả các tập mục phổ biến. 
5. KẾT QUẢ THỰC NGHIỆM 
5.1. Môi trường thực nghiệm 
Hệ thống thực nghiệm được cài đặt bằng 
C# trên nền Microsoft Windows 10 
Enterprise 64bit, .Net Framework 4.5, thực 
hiện trên CPU Intel® Core™ i5-3210M CPU 
@ 2.50GHz 2.50GHz, RAM 12.0GB, SSD 
240GB. Hệ thống phần mềm được sử dụng: 
Visual Studio 2017 Enterprise, Microsoft’s 
Message Passing Interface (MS-MPI) [10]. 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 53 (07/2019) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
13 
5.2. Các tập dữ liệu thực nghiệm 
Gồm 3 tập dữ liệu: Dữ liệu mushroom.dat 
được lấy từ bộ dữ liệu của UCI, có 8124 giao 
dịch; dữ liệu T10I4D100K được tạo ra bằng 
cách sử dụng trình tạo từ nhóm nghiên cứu 
của IBM Almaden Quest, có 100000 giao 
dịch; dữ liệu BMS_WebView_1 chứa 59.602 
giao dịch dữ liệu nhấp chuột từ một trang web 
thương mại điện tử. 
5.3. Kết quả thực nghiệm 
Chúng tôi cài đặt các thuật toán Apriori, 
Apriori cải tiến, Apriori cải tiến sử dụng giải 
thuật song song, FP-Growth và FP-Growth 
sử dụng giải thuật song song, so sánh các 
thuật toán dựa vào thời gian thực thi và số 
lượng tài nguyên mà thuật toán sử dụng. 
5.3.1. Thời gian thực thi 
Hình 2, 3, 4 Mô tả kết quả thực nghiệm về 
thời gian thực thi của các thuật toán được tính 
bằng giây. 
Hình 2. Thời gian thực thi của các thuật toán 
với bộ dữ liệu mushroom. 
Hình 3. Thời gian thực thi của các thuật toán 
với bộ dữ liệu T10I4D100K. 
Hình 4. Thời gian thực thi của các thuật toán 
với bộ dữ liệu BMS_WebView_1. 
Kết quả thực nghiệm cho thấy thời gian 
thực thi của thuật toán FP-Growth sử dụng 
giải thuật song song là nhanh nhất, thời gian 
thực thi của thuật toán Apriori cải tiến và 
Apriori cải tiến sử dụng giải thuật song song 
thời tăng đột biến khi độ hỗ trợ nhỏ. 
5.3.2. Tài nguyên thuật toán sử dụng 
Bảng 1, 2, 3 trình bày kết quả thực 
nghiệm về hiệu suất (số lượng tài nguyên sử 
dụng) của các thuật toán. 
Bảng 1. Kết quả về số lượng tài nguyên (mà 
thuật toán cần sử dụng) với độ hỗ trợ được 
chọn là 60% với bộ dữ liệu mushrom. 
Độ hỗ trợ (%) 60 
Tài nguyên 
CPU 
(%) 
RAM 
(MB) 
Apriori 24.94 68.15 
Apriori cải tiến 24.86 67.41 
FPGrowth 24.97 71.54 
FPGrowth song song 44.21 132.75 
Apriori cải tiến song song 51.72 148.08 
Bảng 2. Kết quả về số lượng tài nguyên (mà 
thuật toán cần sử dụng) với độ hỗ trợ được 
chọn là 7% với bộ dữ liệu T10I4D100K 
Độ hỗ trợ (%) 7 
Tài nguyên 
CPU 
(%) 
RAM 
(MB) 
Apriori 24.96 87.42 
Apriori cải tiến 24.93 86.09 
FPGrowth 24.97 89.65 
FPGrowth song song 50.32 283.68 
Apriori cải tiến song song 51.40 286.83 
0
10
20
30
40
50
60
70
80
50 60 70 80
Th
ờ
i g
ia
n
 (
gi
ây
) 
Độ hỗ trợ 
Apriori
Apriori cải tiến 
0
50
100
5 6 7 8 9
Th
ờ
i g
ia
n
 (
gi
ây
) 
Độ hỗ trợ 
Apriori
Apriori cải tiến 
FPGrowth
FPGrowth song song
0
20
40
60
80
100
120
2.5 3 3.5 4 4.5
Th
ờ
i g
ia
n
 (
gi
ây
) 
Độ hỗ trợ 
Apriori
Apriori cải tiến 
FPGrowth
FPGrowth song song
14 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 53 (07/2019) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
Bảng 3. Kết quả về số lượng tài nguyên (mà 
thuật toán cần sử dụng) với độ hỗ trợ được 
chọn là 3.5% với bộ dữ liệu BMS_WebView_1 
Độ hỗ trợ (%) 3.5 
Tài nguyên 
CPU 
(%) 
RAM 
(MB) 
Apriori 24.90 79.61 
Apriori cải tiến 24.95 80.09 
FPGrowth 24.97 81.42 
FPGrowth song song 42.79 199.75 
Apriori cải tiến song song 46.73 196.61 
Kết quả thực nghiệm cho thấy số lượng 
tài nguyên sử dụng của các thuật toán trong 
môi trường xử lý song song gần gấp hai lần 
thuật toán tuần tự cả về bộ nhớ RAM (Mb) và 
phần trăm % CPU. 
5.3.3. Độ chính xác của thuật toán. 
Vì không biết trước trong các tập dữ liệu 
thực nghiệm có chính xác bao nhiêu tập mục 
phổ biến, nên để đánh giá về độ chính xác của 
các thuật toán chúng tôi liệt kê danh sách các 
tập mục phổ biến được trả về từ các thuật toán 
đối với mỗi tập dữ liệu và so sánh chúng với 
nhau. Nếu chúng giống nhau thì độ chính xác 
là như nhau. Ngược lại là không chính xác. Do 
giới hạn số trang của bài báo, trong Bảng 4 
chúng tôi chỉ trình bày kết quả các tập mục 
phổ biến tìm được của các thuật toán trên bộ 
dữ liệu mushroom với độ hỗ trợ 80%. Kết quả 
cho thấy các thuật toán đều sinh 23 tập mục 
phổ biến giống nhau. Thực nghiệm trên các bộ 
dữ liệu còn lại cũng cho kết quả tương tự. Như 
vậy có thể kết luận độ chính xác của các thuật 
toán là như nhau. 
5.4. Nhận xét kết quả thực nghiệm 
Kết quả thực nghiệm cho thấy thời gian 
thực thi của thuật toán FP-Growth, 
FP-Growth song song nhỏ hơn thuật toán 
Apriori tuần tự, thuật toán Apriori cải tiến, 
Apriori cải tiến song song trên các bộ dữ liệu. 
Ta thấy FP-Growth song song thời gian thực 
hiện nhanh hơn FP-Growth và ổn định trên 
các bộ dữ liệu. 
Thuật toán Apriori cải tiến thời gian thực 
thi nhanh hơn thuật toán Apriori tuần tự với 
độ hỗ trợ lớn, nhưng với độ hỗ trợ nhỏ sẽ phát 
sinh số lượng tập các 1-item lớn, nên thuật 
toán Apriori sinh ra rất nhiều tập mục ứng 
viên, do đó thời gian thực thi của Apriori cải 
tiến lớn hơn rất nhiều so với Apriori tuần tự. 
Tuy nhiên về mặt tài nguyên, các thuật 
toán song song cần sử dụng số lượng tài 
nguyên lớn hơn khoảng 2 lần so với số lượng 
tài nguyên mà thuật toán tuần tự cần dùng. So 
sánh các giải thuật song song thì FP-Growth 
song song sử dụng ít hơn thuật toán Apriori 
cải tiến song song. 
Bảng 4. Kết quả các tập mục phổ biến thu được khi chạy các thuật toán trên bộ dữ liệu mushroom 
Supp 
(%) 
Apriori Apriori cải tiến FPGrowth 
FPGrowth song 
song 
Apriori cải tiến 
song song 
80 
{85} (s:100%) 
{86} (s:97.54%) 
{85, 86} 
(s:97.54%) 
{34} (s:97.42%) 
{85, 34} 
(s:97.42%) 
{86, 34} 
(s:97.32%) 
{86, 85, 34} 
(s:97.32%) 
{90} (s:92.17%) 
{85, 90} 
(s:92.17%) 
{85} (s:100%) 
{86} (s:97.54%) 
{85, 86} 
(s:97.54%) 
{34} (s:97.42%) 
{85, 34} 
(s:97.42%) 
{86, 34} 
(s:97.32%) 
{86, 85, 34} 
(s:97.32%) 
{90} (s:92.17%) 
{85, 90} 
(s:92.17%) 
{85} (s:100%) 
{86} (s:97.54%) 
{85, 86} 
(s:97.54%) 
{34} (s:97.42%) 
{85, 34} 
(s:97.42%) 
{86, 34} 
(s:97.32%) 
{86, 85, 34} 
(s:97.32%) 
{90} (s:92.17%) 
{85, 90} 
(s:92.17%) 
{85} (s:100%) 
{86} (s:97.54%) 
{85, 86} 
(s:97.54%) 
{34} (s:97.42%) 
{34, 85} 
(s:97.42%) 
{34, 86} 
(s:97.32%) 
{34, 85, 86} 
(s:97.32%) 
{90} (s:92.17%) 
{85, 90} 
(s:92.17%) 
{85} (s:100%) 
{86} (s:97.54%) 
{85, 86} 
(s:97.54%) 
{34} (s:97.42%) 
{85, 34} 
(s:97.42%) 
{86, 34} 
(s:97.32%) 
{86, 85, 34} 
(s:97.32%) 
{90} (s:92.17%) 
{85, 90} 
(s:92.17%) 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 53 (07/2019) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
15 
Supp 
(%) 
Apriori Apriori cải tiến FPGrowth 
FPGrowth song 
song 
Apriori cải tiến 
song song 
{86, 90} 
(s:89.71%) 
{86, 85, 90} 
(s:89.71%) 
{34, 90} 
(s:89.81%) 
{34, 85, 90} 
(s:89.81%) 
{34, 86, 90} 
(s:89.71%) 
{34, 86, 85, 90} 
(s:89.71%) 
{36} (s:83.85%) 
{85, 36} 
(s:83.85%) 
{86, 36} 
(s:81.49%) 
{86, 85, 36} 
(s:81.49%) 
{34, 36} 
(s:81.27%) 
{34, 85, 36} 
(s:81.27%) 
{34, 86, 36} 
(s:81.27%) 
{34, 86, 85, 36} 
(s:81.27%) 
{86, 90} 
(s:89.71%) 
{86, 85, 90} 
(s:89.71%) 
{34, 90} 
(s:89.81%) 
{34, 85, 90} 
(s:89.81%) 
{34, 86, 90} 
(s:89.71%) 
{34, 86, 85, 90} 
(s:89.71%) 
{36} (s:83.85%) 
{85, 36} 
(s:83.85%) 
{86, 36} 
(s:81.49%) 
{86, 85, 36} 
(s:81.49%) 
{34, 36} 
(s:81.27%) 
{34, 85, 36} 
(s:81.27%) 
{34, 86, 36} 
(s:81.27%) 
{34, 86, 85, 36} 
(s:81.27%) 
{86, 90} 
(s:89.71%) 
{86, 85, 90} 
(s:89.71%) 
{34, 90} 
(s:89.81%) 
{34, 85, 90} 
(s:89.81%) 
{34, 86, 90} 
(s:89.71%) 
{34, 86, 85, 90} 
(s:89.71%) 
{36} (s:83.85%) 
{85, 36} 
(s:83.85%) 
{86, 36} 
(s:81.49%) 
{86, 85, 36} 
(s:81.49%) 
{34, 36} 
(s:81.27%) 
{34, 85, 36} 
(s:81.27%) 
{34, 86, 36} 
(s:81.27%) 
{34, 86, 85, 36} 
(s:81.27%) 
{86, 90} 
(s:89.71%) 
{85, 86, 90} 
(s:89.71%) 
{34, 90} 
(s:89.81%) 
{34, 85, 90} 
(s:89.81%) 
{34, 86, 90} 
(s:89.71%) 
{34, 85, 86, 90} 
(s:89.71%) 
{36} (s:83.85%) 
{36, 85} 
(s:83.85%) 
{36, 86} 
(s:81.49%) 
{36, 85, 86} 
(s:81.49%) 
{34, 36} 
(s:81.27%) 
{34, 36, 85} 
(s:81.27%) 
{34, 36, 86} 
(s:81.27%) 
{34, 36, 85, 86} 
(s:81.27%) 
{86, 90} 
(s:89.71%) 
{86, 85, 90} 
(s:89.71%) 
{34, 90} 
(s:89.81%) 
{34, 85, 90} 
(s:89.81%) 
{34, 86, 90} 
(s:89.71%) 
{34, 86, 85, 90} 
(s:89.71%) 
{36} (s:83.85%) 
{85, 36} 
(s:83.85%) 
{86, 36} 
(s:81.49%) 
{86, 85, 36} 
(s:81.49%) 
{34, 36} 
(s:81.27%) 
{34, 85, 36} 
(s:81.27%) 
{34, 86, 36} 
(s:81.27%) 
{34, 86, 85, 36} 
(s:81.27%) 
6. KẾT LUẬN VÀ HƯỚNG PHÁT 
TRIỂN 
Bài báo đã trình bày và so sánh hiệu quả 
về một số thuật toán khai phá luật kết hợp và 
thuật toán khai phá luật kết hợp sử dụng giải 
thuật song song, qua đó ta thấy thuật toán sử 
dụng giải thuật song song đã giải quyết được 
vấn đề khai phá dữ liệu trên dữ liệu lớn về 
tốc độ xử lý. 
Trong tương lai chúng tôi sẽ tiếp tục 
nghiên cứu sâu hơn về các thuật toán khai phá 
luật kết hợp sử dụng giải thuật song song, tìm 
cách cải tiến và khắc phục nhược điểm của 
các giải thuật song song hiện có, xây dựng các 
thuật toán mới nhằm đạt hiệu quả tốt hơn.
TÀI LIỆU THAM KHẢO 
[1] R. Agrawal; , R. Srikant, "Fast algorithms for minning association rules," in In 20th 
VL.DBConf,, 1994. 
[2] Jiawei Han , Jian Pei , Yiwen Yin, "Mining Frequent Patterns without Candidate 
Generation," in SIGMOD, 2000. 
[3] Z. H. Deng; , Z. Wang; , J. Jiang, A New Algorithm for Fast Mining Frequent Itemsets 
Using N-Lists. SCIENCE CHINA Information Sciences, 55 (9), 2008 - 2030, 2012. 
[4] Aiman Moyaid SaidA; , Dr. P D D. DominicB; , Dr. Azween B AbdullahC, "A 
Comparative Study of FP-growth Variations," In IJCSNS International Journal of 
Computer Science and Network Security, no. VOL.9 No.5, pp. 266-272, May 2009. 
16 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 53 (07/2019) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
[5] Zhi-HongDeng and Sheng-LongLv, "Fast mining frequent itemsets using Nodesets," 
Expert Systems with Applications, no. Volume 41, Issue 10, pp. 4505-4512, August 2014. 
[6] Dawen Xia, Yanhui Zhou, Zhuobo Rong and Zili Zhang, "IPFP: An Improved Parallel 
FP-Growth Algorithm for Frequent Itemsets Mining," Proceedings 59th ISI World 
Statistics Congress, vol. Hong Kong (Session CPS026), p. 4034, 25-30 August 2013. 
[7] Yanbin Ye and Chia-Chu Chiang, "A Parallel Apriori Algorithm for Frequent Itemsets 
Mining," in Fourth International Conference on Software Engineering Research, 
Management and Applications (SERA'06), Seattle, WA, USA, 2006. 
[8] Yi Wang , Haoyuan Li , Dong Zhang , Ming Zhang , Edward Chang, "PFP: Parallel 
FP-Growth for Query Recommendation," in ACM, 2001. 
[9] Girja Shankar , Latita Bargadiya, "A New Improved Apriori Algorithm For Association 
Rules Mining," International Journal of Engineering Research & Technology (IJERT), 
vol. 2, no. 6, June 2013. 
[10] Douglas Gregor, Benjamin Martin, MPI.NET Tutorial in C#, Open Systems Laboratory, 
Indiana University., 2008. 
Tác giả chịu trách nhiệm bài viết: 
Nguyễn Thành Sơn 
Trường Đại học Sư phạm Kỹ thuật TP.HCM 
Email: sonnt@hcmute.edu.vn 

File đính kèm:

  • pdfdanh_gia_hieu_qua_cua_thuat_toan_khai_pha_luat_ket_hop_trong.pdf