Professional Documents
Culture Documents
Artificial Fish Swarm Algorithm For Mining High Utility Itemsets - En.vi
Artificial Fish Swarm Algorithm For Mining High Utility Itemsets - En.vi
com
Trừu tượng.Việc khám phá các tập mục hữu ích cao (HUI) là một chủ đề hấp
dẫn trong khai thác dữ liệu. Do chi phí tính toán cao nên việc sử dụng các
phương pháp heuristic là một cách tiếp cận đầy hứa hẹn để nhanh chóng khám
phá đủ HUI. Thuật toán đàn cá nhân tạo là một phương pháp heuristic có nhiều
ứng dụng. Ngoại trừ vị trí hiện tại, cá nhân tạo không ghi lại thông tin bổ sung
trước đó như các phương pháp liên quan khác. Điều này phù hợp với vấn đề
khai thác HUI: kết quả không phải lúc nào cũng được phân bổ xung quanh một
vài điểm cực trị. Vì vậy, chúng tôi nghiên cứu khai thác HUI từ góc độ thuật
toán chiến tranh cá nhân tạo và đề xuất thuật toán khai thác HUI có tên là
HUIM-AF. Chúng tôi mô hình hóa bài toán khai thác HUI với ba hành vi của cá
nhân tạo: đi theo, bầy đàn và săn mồi. Chúng tôi giải thích thuật toán HUIM-
AF và so sánh nó với hai thuật toán liên quan trên bốn bộ dữ liệu có sẵn công
khai. Kết quả thử nghiệm cho thấy HUIM-AF có thể khám phá nhiều HUI hơn
các thuật toán hiện có với hiệu quả tương đương.
Từ khóa:Khai thác dữ liệu · Thuật toán đàn cá nhân tạo · Tập mục hữu ích cao · Vectơ
vị trí
1 Giới thiệu
Các tập mục có ích cao (HUI) là phần mở rộng của các tập mục thường xuyên (FI)
xem xét cả lợi nhuận đơn vị và tần suất xuất hiện. Khai thác HUI (HUIM) [2] là một
chủ đề nghiên cứu tích cực về khai thác dữ liệu và các thuật toán khác nhau [6,11] vì
nó đã được đề xuất. Ngược lại với biện pháp hỗ trợ (được sử dụng trong khai thác FI),
tiện ích (được sử dụng trong HUIM) không đáp ứng thuộc tính đóng xuống. Do đó,
chi phí tính toán của HUIM cao. Hơn nữa, đối với các lĩnh vực ứng dụng như hệ
thống gợi ý, không cần thiết phải sử dụng tất cả các HUI [13].
Để giảm bớt gánh nặng của HUIM, các phương pháp heuristic—chẳng hạn như
thuật toán di truyền (GA) [3] và tối ưu hóa bầy hạt (PSO) [5]—đã được sử dụng cho
HUIM, để khám phá các tập mục có thể chấp nhận được trong một khoảng thời gian
hợp lý. Đối với các thuật toán này, HUI được phát hiện lặp đi lặp lại và kết quả của
một lần lặp sẽ ảnh hưởng đến các HUI được phát hiện trong lần lặp tiếp theo. Do đó,
các HUI thu được có xu hướng được phân cụm xung quanh các tập mục nhất định sau
408 W. Song và cộng sự.
nhiều lần lặp và số lượng kết quả bị hạn chế nếu không có cá thể mới nào được tạo
ngẫu nhiên.
2 Vòng sơ loại
2.1 Vấn đề HUIM
Cho I = {i1, i2, …, im} là tập hữu hạn các mục; mỗi tập X ⊆ I được gọi là một tập
mục. Cho D = {T1, T2, …, Tn} là cơ sở dữ liệu giao dịch. Mỗi giao dịch Td ∈ D, với
mã định danh duy nhất d, là một tập con của I.
Tiện ích nội tại q(ip, Td) biểu thị số lượng vật phẩm ip trong giao dịch Td. Tiện
ích bên ngoài p(ip) là giá trị lợi nhuận đơn vị của ip. Tiện ích của ip trong Td được
định nghĩa là u(ip, Td) = p(ip) × q(ip, Td). Tiện ích của tập mục X trong Td được định
nghĩa là u P∈X∧X⊆Td uip , Td. Tiện ích của X trong D được định nghĩa là
u(X) =
. Tiện ích giao dịch (TU) của giao dịch Td được xác định là
TU(Td) = u(Td, Td). Ngưỡng tiện ích tối thiểu δ do người dùng chỉ định là tỷ lệ phần
trăm của tổng giá trị TU của cơ sở dữ liệu và giá trị tiện ích tối thiểu min_util
= × . Một tập mục X được gọi là HUI nếu u(X) ≥ min_util. Cho một
cơ sở dữ liệu giao dịch D, nhiệm vụ của HUIM là xác định tất cả các tập mục có tiện
ích không nhỏ hơn min_util.
Việc sử dụng trọng số giao dịch (TWU) của tập mục X là tổng tiện ích giao dịch
của tất cả các giao dịch có chứa X [6], và được định nghĩa là TWU(X) =
. X là tập mục sử dụng trọng số giao dịch cao (HTWUI) nếu
TWU(X) ≥ min_util. Một HTWUI chứa k mục được gọi là k-HTWUI.
AFSA [4], được lấy cảm hứng từ phong trào tập thể của cá và các hành vi xã hội điển
hình của chúng. Đối với AFSA, Ai đại diện cho AF thứ i. Vị trí của Ai, ký hiệu là Xi
= < xi1, xi2, …, xid >, thể hiện một phương án khả thi. Ngoài ra, nồng độ thực phẩm
tại vị trí X được ký hiệu là Y = f(X). Đặt di,j = ||Xi − Xj|| là khoảng cách giữa hai vị
trí Xi và Xj. Một AF đặt tại Xi sẽ kiểm tra không gian tìm kiếm xung quanh nó, trong
khoảng cách trực quan (VD) của nó. Nếu có một vị trí Xj mới sao cho di,j ≤ VD và f
(Xj) > f (Xi), AF sẽ di chuyển một bước về phía Xj. Để hiện thực hóa nguyên tắc này,
ba hành vi của AF được sử dụng lặp đi lặp lại.
Hành vi săn mồi.Săn mồi là hành vi cá di chuyển đến nơi có nhiều thức ăn nhất. Gọi
Xi(t) là vị trí hiện tại của AF thứ i (Ai) tại thời điểm t, vị trí của Ai được chọn ngẫu
nhiên trong khoảng cách nhìn thấy VD là:
410 W. Song và cộng sự.
trong đó rand() tạo ra một số ngẫu nhiên trong khoảng từ 0 đến 1. Nếu f (Xj) > f (Xi),
Ai sẽ di chuyển một bước về phía Xj, như sau:
Xi(t)
Xi(t + 1) = Xi(t) + S × rand() × . (2)
trong đó S là độ dài tối đa của một bước mà AF có thể thực hiện ở mỗi chuyển động.
Ngược lại, Ai chọn lại vị trí Xj một cách ngẫu nhiên, sử dụng phương trình.1và quyết
định xem nó có thỏa mãn điều kiện thuận hay không. Nếu nó không thể đáp ứng sau
try_number lần, nó sẽ di chuyển một bước ngẫu nhiên như sau:
(Xi)
. (4)
N
Trong đó n là tổng số AF, δ ∈ (0, 1) là hệ số đông và Xc = < xc1, xc2, …, xcd > là vị
trí trung tâm trong khoảng cách VD của Ai, có các phần tử được xác định bởi:
Nf
trong đó 1 k d. Điều này có nghĩa là ở trung tâm có nhiều đồ ăn hơn và khu vực
này không quá đông đúc. Do đó, Xi(t) di chuyển một bước tới tâm đồng hành bằng
cách sử dụng:
Xc Xi(t)
Xi(t + 1) = Xi(t) + S × rand() × −− . (6)
Xc Xi(t)
Nếu các điều kiện trong phương trình.4không hài lòng thì hành vi săn mồi sẽ được
thực hiện thay thế.
Theo dõi hành vi.Khi một con cá tìm thấy một vị trí có nhiều thức ăn hơn, những con
cá khác sẽ đi theo. Gọi Xb là vị trí trong khoảng cách VD của Ai có nồng độ thức ăn
cao nhất. Nghĩa là, với mọi Xj sao cho di,j `VD, F(Xj) `f (Xb). Nếu các điều kiện sau
được thỏa mãn:
Thuật toán đàn cá nhân tạo để khai thác các tập vật phẩm có tính tiện ích cao
411
(Xi)
. (7)
N
Aitiến lên một bước tới Xb bằng cách sử dụng:
Xb− Xi(t)
(số
Xi(t + 1) = Xi(t) + S × rand() × − .
8)
Xb Xi(t)
Ngược lại, Ai thực hiện hành vi săn mồi.
Giả sử P là PV, bit thứ j (1 j NH) của P được khởi tạo ngẫu nhiên bằng cách
sử dụng lựa chọn bánh xe roulette với xác suất:
TWU
Pr(P(j)) = . (9)
NHk
=1 TWU(ik)
Tương tự như các công việc liên quan khác [5,7], chúng tôi sử dụng tiện ích của
tập mục trực tiếp làm đối tượng để tối ưu hóa. Gọi X là tập mục tương ứng với P,
Trong Thuật toán 1, quần thể ban đầu được tạo ở Bước 1. SHUI, tập hợp các HUI
được phát hiện, được khởi tạo dưới dạng tập trống ở Bước 2. Bước 3 đặt bộ đếm vòng
lặp thành 1. Trong vòng lặp ở Bước 4–17, mỗi bộ đếm AF thực hiện một trong ba
hành vi, đó là theo dõi, bầy đàn hoặc con mồi, sau đó bộ đếm lặp được tăng thêm 1.
Quy trình này của AF (thực hiện một hành động và tăng bộ đếm lặp) được lặp lại cho
đến khi đạt được số lần lặp tối đa . Ở đây Pi là PV của Ai trong dân số hiện tại. Cuối
Thuật toán đàn cá nhân tạo để khai thác các tập vật phẩm có tính tiện ích cao
413
cùng, Bước 18 xuất ra tất cả các HUI được phát hiện. Các quy trình theo dõi, bầy đàn
và con mồi được mô tả lần lượt trong các Thuật toán 2, 3 và 4.
Trong Thuật toán 2, mô tả hành vi sau, Bước 1–7 xác định PV tốt nhất (có giá trị
tiện ích cao nhất) trong khoảng cách VD của PV liệt kê. Nếu PV tốt nhất được phát
hiện khác với chính PV liệt kê, Bước 10 sẽ đặt biến tiếp theo và Bước 11–12 cập nhật
PV liệt kê bằng cách bổ sung từng bit trong các bit khác với PV tốt nhất. Hoạt động ở
Bước 3 và 8, được sử dụng để tính toán sự khác biệt giữa hai PV, được định nghĩa là:
BitDiff , (11)
trong đó Pi(n) là bit thứ n của Pi, ⊕ là phép tách độc quyền và |S| biểu thị số phần tử
trong một tập hợp S. Theo phương trình.11, khoảng cách giữa hai PV được biểu thị
bằng số bit tương ứng có giá trị khác nhau. Nếu PV được cập nhật có giá trị tiện ích
không thấp hơn ngưỡng tối thiểu và không được ghi dưới dạng HUI thì nó sẽ được
lưu trong Bước 13–15. Hàm IS(P) trả về tập mục X bao gồm các mục có bit tương
ứng trong P là 1.
414 W. Song và cộng sự.
Trong Thuật toán 3, mô tả hành vi bầy đàn, hai mảng nhị phân để xác định PV
trung tâm, trong khoảng cách VD của PV liệt kê, được khởi tạo ở Bước 1–4. Sau đó,
hai mảng giống nhau sẽ được cập nhật trong vòng lặp ở Bước 5–13. Theo hai mảng
này, PV trung tâm được xác định trong vòng lặp ở Bước 14–20. Nếu PV trung tâm đại
diện cho một HUI chưa được phát hiện trước đó thì HUI này sẽ được ghi lại ở Bước
21–23. Nếu PV trung tâm có tiện ích cao hơn PV hiện tại thì biến bầy đàn được đặt ở
Bước 25. Ngoài ra, PV hiện tại được cập nhật theo PV trung tâm ở Bước 26–28. Nếu
PV được cập nhật đại diện cho một HUI chưa được phát hiện trước đó thì HUI này sẽ
được ghi lại ở Bước 29–31.
Thuật toán đàn cá nhân tạo để khai thác các tập vật phẩm có tính tiện ích cao
415
Trong Thuật toán 4, mô tả hành vi của con mồi, một tham số cờ, biểu thị liệu có
thể tìm thấy vị trí tốt hơn trong try_number hay không, được khởi tạo thành false ở
Bước 1. Sau đó, số lần thử được khởi tạo thành 1 ở Bước 2. Vòng lặp ở Bước 3 –15
tạo HUI mới và cập nhật vị trí hiện tại bằng cách thử tối đa try_number lần. Nếu
không tìm thấy vị trí nào tốt hơn trong vòng lặp này thì PV hiện tại sẽ được thay đổi
bằng cách sử dụng thao tác bù bit ngẫu nhiên trên một số bit của nó ở Bước 17. Nếu
PV mới đại diện cho HUI không được phát hiện trước đó thì nó sẽ được lưu trữ ở
Bước 19.
Chúng tôi sử dụng cơ sở dữ liệu giao dịch trong Bảng1và bảng lợi nhuận trong
Bảng2để giải thích thuật toán. Cho min_util = 35, vì TWU(F) < min_util, mục F bị
xóa khỏi giao dịch T1 và T7. Do đó, PV của AF là một vectơ nhị phân năm chiều,
trong đó năm bit đầu tiên tương ứng là A, B, C, D và E.
Giả sử rằng kích thước của dân số N là 5 và khoảng cách nhìn thấy VD là 3. Theo
phương trình.9, năm PV được tạo ngẫu nhiên: P1 = <10110>, P2 = <11010>, P3 =
<10111>, P4 = <11001> và P5 = <00001>.
Xét P1, đầu tiên nó thực hiện hành vi sau, trong đó nó cũng được khởi tạo là
Best_AF. Các PV trong khoảng cách nhìn thấy được của P1 được xác định là P1, P2
và P3. Theo phương trình.10, f (P1) = 32, f (P2) = 41, và f (P3) = 16, vì vậy Best_AF
416 W. Song và cộng sự.
=P2. Theo phương trình.11, dis' = BitDiff (Best_AF, P1) = 2, do đó is_follow được
đặt thành true. Bởi vì bit thứ hai và thứ ba của P1 khác với các bit tương ứng của
Best_AF, nên một trong hai bit này (ví dụ: bit thứ ba) được thay đổi ngẫu nhiên để
cập nhật P1 mới thành < 10010 >, đại diện cho tập mục AD. Vì u(AD) > min_util nên
SHUI = {AD}. Vì PV đầu tiên thực hiện hành vi tiếp theo nên hai hành vi còn lại (bầy
đàn và con mồi) không được thực hiện trong lần lặp này.
Trong cùng một lần lặp, bốn PV còn lại được xử lý tương tự. Lần lặp tiếp theo sẽ
bắt đầu xử lý từng PV để khám phá HUI cho đến khi đạt được số lần lặp tối đa.
Các thử nghiệm được thực hiện trên máy tính có CPU 4 nhân tốc độ 3,20 GHz và bộ
nhớ 4 GB chạy Microsoft Windows 7 64 bit. Các chương trình của chúng tôi được
viết bằng Java. Bốn bộ dữ liệu thực đã được sử dụng để đánh giá hiệu suất của các
thuật toán. Các đặc điểm của bộ dữ liệu được trình bày trong Bảng3.
Bàn số 3.Đặc điểm của bộ dữ liệu được sử dụng để đánh giá thử nghiệm.
Bộ dữ liệu Trung bình Số mặt hàng Số người
Dịch. chuyển giới
chiều dài
Cờ vua 37 76 3.196
Nấm 23 119 8.124
Tai nạn_10% 34 469 34.018
Kết nối 43 130 67.557
Bốn bộ dữ liệu cũng được tải xuống từ thư viện khai thác dữ liệu SPMF [1]. Bộ dữ
liệu Cờ vua và Kết nối bắt nguồn từ các bước của trò chơi. Bộ dữ liệu Mushroom
chứa nhiều loài nấm khác nhau và đặc điểm của chúng. Bộ dữ liệu Tai nạn bao gồm
dữ liệu tai nạn giao thông (ẩn danh). Tương tự như công việc của Lin et al. [5], tập dữ
liệu được sử dụng cho thử nghiệm Tai nạn_10% chỉ chứa 10% tổng số tập dữ liệu.
Đối với tất cả thử nghiệm, quy mô quần thể được đặt thành 20, try_number được
đặt thành 3 và tiêu chí chấm dứt được đặt thành 10.000 lần lặp. Hơn nữa, VD được
đặt thành một giá trị cụ thể cho từng tập dữ liệu, bằng cách:
VD × NH + 1, (12)
Thuật toán đàn cá nhân tạo để khai thác các tập vật phẩm có tính tiện ích cao
417
Ở đâu 0,1 × NH biểu thị số nguyên lớn nhất nhỏ hơn hoặc bằng (0,1 × NH).
6.2 Thời gian thực hiện
Đầu tiên, chúng tôi chứng minh hiệu suất của các thuật toán này. Khi đo thời gian
thực hiện, chúng tôi đã thay đổi ngưỡng tiện ích tối thiểu cho mỗi tập dữ liệu.
Chúng ta có thể quan sát từ Hình.1rằng thời gian thực hiện của HUIM-AF được đề
xuất tương đương với thời gian thực hiện của hai thuật toán còn lại. Cụ thể, nó luôn
nhanh hơn hai thuật toán còn lại trên tập dữ liệu Mushroom, trong khi tốc độ của nó
thấp hơn so với hai thuật toán còn lại trên tập dữ liệu Connect. Trên tập dữ liệu Tai
nạn_10%, HUIMAF nhanh hơn hai thuật toán còn lại ngoại trừ khi ngưỡng tiện ích tối
thiểu là 12,6%. Trên tập dữ liệu Cờ vua, HUIM-AF chậm hơn HUPEUMU-GARM và
có thể so sánh với HUIM-BPSOsig. Lý do chính cho tốc độ của HUIM-AF là do các
PV nằm trong khoảng cách VD của PV liệt kê luôn cần được xác định, điều này phát
sinh chi phí tính toán tương đối cao.
Do các thuật toán HUIM dựa trên phương pháp heuristic không thể đảm bảo việc
khám phá tất cả các tập mục trong một số chu kỳ nhất định nên chúng tôi đã so sánh
số lượng HUI được khám phá bởi mỗi thuật toán trong số ba thuật toán. Các kết quả
được hiển thị trong hình.2.
Ngược lại với kết quả về hiệu quả, HUIM-AF luôn phát hiện được nhiều HUI hơn
hai thuật toán còn lại. Đặc biệt, có những trường hợp cả HUPEUMU-GARM và
HUIM-BPSOsig đều không thể tìm thấy bất kỳ kết quả nào trên bộ dữ liệu Mushroom
hoặc Disasters_10%. Ví dụ: trong tập dữ liệu Mushroom, HUPEUMU-GARM không
418 W. Song và cộng sự.
thể tìm thấy bất kỳ kết quả nào khi ngưỡng tối thiểu là 15% và 16%, và điều tương tự
cũng xảy ra với
Hình 2.Số lượng HUI được phát hiện cho bốn bộ dữ liệu.
HUIM-BPSOsig khi ngưỡng tối thiểu là 15,5%. Sự vượt trội của HUIMAF còn được
thể hiện trên Tai nạn_10% khi ngưỡng là 12,6%. Nhân vật1cho thấy HUIM-BPSOsig
nhanh hơn HUIM-AF; tuy nhiên, chúng ta có thể quan sát từ Hình.2rằng HUIM-
BPSOsig không thể tìm thấy bất kỳ kết quả nào cho ngưỡng này.
Các thử nghiệm này cho thấy AFSA có thể vượt qua mức tối ưu cục bộ một cách
hiệu quả nên phù hợp hơn với bài toán HUIM vì có nhiều mục tiêu cần tối ưu hóa.
7 Kết luận
Trong bài báo này, chúng tôi đề xuất thuật toán HUIM theo mô hình AFSA. Chúng
tôi chính thức mô hình hóa vấn đề trong đó AF có ba hành vi và mô tả chi tiết thuật
toán kèm theo một ví dụ. Kết quả thử nghiệm của chúng tôi cho thấy AFSA có thể
khám phá nhiều HUI hơn hai phương pháp chẩn đoán khác. Công việc trong tương lai
của chúng tôi bao gồm việc thiết kế các chiến lược cắt tỉa hiệu quả để làm cho loại
thuật toán này hiệu quả hơn.
Sự nhìn nhận.Công trình này được hỗ trợ một phần bởi Quỹ khoa học tự nhiên quốc gia Trung
Quốc (61977001), Chương trình học giả Vạn Lý Trường Thành (CIT&TCD20190305).