Thuật toán song song Fp-Growth

Một phần của tài liệu KHAI PHÁ DỮ LIỆU VÀ THUẬT TOÁN KHAI PHÁ LUẬT KẾT HỢP SONG SONG (Trang 89 - 98)

, x ik }→ {x ik

3.3.4.Thuật toán song song Fp-Growth

MỘT SỐ PHƯƠNG PHÁP KHAI PHÁ LUẬT KẾT HỢP SONG SONG VÀ PH ÂN T ÍCH Đ ÁNH GI Á CÁC THUẬT TOÁN

3.3.4.Thuật toán song song Fp-Growth

này, ta xây dựng một số Fp -tree cục bộ trong môi trường bộ nhớ phân tán và sử dụng mô hình “Chủ - Tớ”. Dựa trên chiến lược lập lịch làm việc động trong giai

đoạn hợp nhất các mẫu điều kiện cơ sở và giai đoạn khai phá để cân bằng khối lượng công việc trong quá trình thực thi.

Khai phá tập mục song song

Thu ật toán khai phá mẫu phổ biến song song gồm hai nhiệm vụ chính sau:

(1) Xây dựng song song FP-Tree

Giai đo ạn đầu của thuật toán khai phá song song là xây dựng các FP-Tree đ ồng thời trên m ỗi bộ xử lý. Tương t ự như thuật toán CD, ta chia CSDL giao dịch D cho P bộ xử lý. Đảm bảo rằng mỗi bộ xử lý có N/P giao dịch (DN/P), N và P lần lượt là tổng số giao dịch trong CSDL và số các bộ xử lý. Việc phân hoạch CSDL D cho P bộ xử lý được thực hiện một cách ngẫu nhiên. Sau khi phân hoạch dữ liệu, công việc tiếp theo là xác định 1- itemset phổ biến ( F1-itemset) trước khi xây dựng một FP-Tree cục bộ, Mỗi bộ xử lý tính toán đếm 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ộ D N/P, tất cả các bộ xử lý đếm flocal(i) cục bộ đến bộ xử lý Chủ. Bộ xử lý Chủ tập hợp tất cả các mục và kết hợp chúng lại để

sinh số đếm hỗ trợ tổng thể ( fglocal(i)). Sau đó, các ụmc có hỗ trợ nhỏ hơn ngưỡng hỗ trợ minsup được lược bỏ. 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.

Bước tiếp theo là xây dựng các FP-Tree cục bộ, Mỗi bộ xử lý quét CSDL cục bộ DN/P của nó và chèn các mục phổ biến vào trong cây FP-Tree, Việc xây dựng FP-Tree bởi mỗi bộ xử lý với CSDL cục bộ của nó giống như trong thuật toán tuần tự [15].

Ví dụ: Cho một CSDL với 12 giao dịch và 10 mục (0, 1,…, 9) như trong

hình 3.3. CSDL Dđược phân hoạch cho 3 bộ xử lý P 0, P1, P2. Mỗi bộ xử lý có số giao dịch bằng nhau. Với ngưỡng hỗ trợ là 6, ta có thể xác định nhanh số đếm hỗ trợ cho các mục như sau {3:11, 8:9, 5:8, 6:7, 0:7, 7:7}. Hình 3.8 chỉ ra các FP-Tree cục bộ ban đầu được xây dựng bởi P0, P1, P2.

Bộ xử lý Các giao dịch P0 3, 7, 8, 9 0, 3, 6, 7 3, 5, 6, 8, 9 0, 3, 5, 6, 7, 8, 9 P1 0, 3, 4, 5, 9 5, 6, 7 3, 4, 5, 8, 9 0, 3, 5, 6, 7, 8, 9 P2 0, 3, 4, 8 3, 5, 6, 7, 8, 9 0, 3, 4, 7, 8, 9 0, 3, 5, 6, 8, 9

(2) Khai phá song song và sinh tập mục phổ biến

8:3 P0 P0 3:4 6:1 P1 3:3 9:1 8:2 5:1 6:1 P2 3:4 8:4 9:3 7:1 5:2 6:2 0:1 7:1 5:1 0:1 9:2 5:2 6:1 7:1 0:1 9:3 5:2 0:1 0:1 7:1 0:1 7:1 6:2 7:1 0:1 7:1

Hình 3.8: Các phân hoạch CSDL và các FP-Tree cục bộ ban đầu

Phương pháp khai phá bao ồgm một số giai đoạn sau: Trong giai đoạn đầu, ta xét toàn bộ FP-Tree và tạo ra các mẫu điều kiện cơ sở. Trong giai đoạn tiếp theo, ta 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. Giai đoạ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.

Xây dựng các mẫu điều kiện cơ sở

Mỗi bộ xử lý thăm bảng tiêu đề (1-itemset phổ biến cục bộ) của nó theo hướng từ trên xuống và tạo ra các mẫu điều kiện cơ sở cho mỗi mục phổ biến. Việc thiết lập các mẫu điều kiện cơ sở bằng cách xét toàn bộ các nút trong FP- Tree cục bộ từ trên xuống như trong thuật toán được trình bày tr ong [15]. Quá trình xây dựng các mẫu điều kiện cơ sở được minh họa trong bảng 3.1.

Xây dựng FP-Tree điều kiện cơ sở

Khi tất cả các mẫu điều kiện cơ sở đã tìm được, các FP -Tree điều kiện được xây dựng bằng cách hợp nhất các mẫu điều kiện cơ sở. Phương pháp hợp nhất tương tự như đã đề cập trong [15] và [23]. Với mỗi mục phổ biến, các mẫu điều kiện cơ sở được hợp nhất sao cho các số đếm hỗ trợ của các mục giống nhau được tăng lên để tính số đếm hỗ trợ tổng thể. Nếu số đếm hỗ trợ tổng thể của một mục mà nhỏ hơn ngưỡng hỗ trợ tối thiểu, mục đó sẽ được lược bỏ khỏi FP-Tree điều kiện. Quá trình này được minh họa trong bảng 3.1 với ngưỡng hỗ trợ tối thiểu là 6.0.

Để sinh các FP-Tree điều kiện ta sử dụng mô hình Chủ - Tớ. Bộ xử lý

Chủ chuyển các mục cần được khai phá cho các bộ x ử lý Tớ. Các bộ xử lý

Tớ sinh các FP-Tree điều kiện cho các mục đó, khi bộ xử lý Tớ hoàn thành việc sinh FP-Tree điều kiện, nó chuyển một mã thông báo đến bộ xử lý Chủ

yêu cầu mục kế tiếp. Nhiệm vụ của bộ xử lý chủ là lắng nghe các yêu cầu đến từ bất kì bộ xử lý Tớ. Nó trả lời bằng cách chuyển mục kế tiếp đến bộ xử lý

Tớ đó. Khi mà bộ xử lý Tớ nhận mục kế tiếp từ bộ xử lý Chủ chuyển đến, nó sẽ bắt đầu sinh CFPT cho mục này. Chi phí truyền thông trong thuật toán này tương đối thấp vì mỗi bộ xử lý chỉ chuyển mã thông báo. Hơn nữa, khối lượng công việc là cân bằng giữa các bộ xử lý trong nhóm do mỗi khi một bộ xử lý

Tớ nào đó hoàn

thành nhiệm vụ nó nhận một nhiệm vụ khác ngay lập tức.

Items Các mẫu điều kiện cơ sở Các FP-Tree điều kiện

P0 P1 P2 Trước khi lượt bỏ Sau khi lượt bỏ

7 9 8 3 : 1 9 8 3 : 1 0 6 5 9 8 3 : 1 0 6 3 : 1 0 6 5 9 8 3 : 1 6 5 : 1 6 5 9 8 3 : 1 0 9 8 3 : 1 (3:6, 8:5, 9:5, 5:4, 6:5, 0:4) (3 : 6) 0 6 5 9 8 3 : 1 6 3 : 1 5 9 3 : 1 6 5 9 8 3 : 1 8 3 : 1 6 5 9 8 3 : 1 9 8 3 : 1 (3:7, 8:5, 9: 5, 5:4, 6:4 ) (3 : 7) 6 5 9 8 3 : 2 3 : 1 5 9 8 3 : 1 5 : 1 5 9 8 3 : 2 (3:6, 8:5, 9:5, 5:6) (3:6, 5:6) 5 9 8 3 : 2 9 3 : 1 9 8 3 : 2 9 8 3 : 2 (3:7, 8:6, 9:7) (3:7, 8:6, 9:7) 9 8 3 : 3 3 : 1 8 3 : 2 8 3 : 3 (3:9, 8:8) (3:9, 8:8) 8 3 : 3 3 : 2 3 : 4 (3 : 9) (3 : 9) 3 ∅ ∅ ∅ ∅ ∅

Bảng 3.1: Các mẫu điều kiện cơ sở và các FP-Tree điều kiện cơ sở

Sinh các tập mục phổ biến (adsbygoogle = window.adsbygoogle || []).push({});

Sinh các tập mục phổ biến bằng cách xây dựng lầm lượt các mẫu điều kiện cơ sở và các cây điều kiện FP-Tree bởi mỗi bộ xử lý. Khi một nh ánh của FP-Tree điều kiện được xây dựng, ta thu được các tập hợp các mục khả

Phương pháp:

63

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên htt p ://www.lr c - tnu. ed u. v n

Mô hình song songđược áp dụng là mô hình Chủ - Tớ. Bộ xử lý Chủ

chuyển các mục cơ sở cần được khai phá cho các mục này và sinh các tập mục phổ biến. Trong mô hình này, khi một bộ xử lý Tớ hoàn thành nh m vụ, nó nhận được nhiệm vụ khác ngay lập tức, điều này làm cho các bộ xử lý bận cho đến khi kết thúc quá trình khai phá. Ở đây, việc cân đối khối lượng công việc xảy ra trong thời gian thực thi (runtime). Mô hình Chủ - Tớ được duy trì cho đến khi tất cả các tập mục phổ biến được sinh ra ứng với mỗi mục phổ biến trong

F1-itemset. Sau đó tất cả các bộ xử lý Tớ này chuyển các tập mục phổ biến mà nó sinh ra đến bộ xử lý Chủ, giai đoạn khai phá kết thúc.

Tương ứng với mỗi mục i ∈ F1-itemset, các tập mục phổ biến được sinh đệ quy bởi các mẫu điều kiện cơ sở và các FP -Tree điều kiện được chỉ ra trong hình 3.9.

Ở đây, ta có 3 bộ xử lý và vì thế 2 bộ xử lý Tớ P1, P2 sinh tập mục phổ biến; Hình 3.9 cũng chỉ ra các tập mục phổ biến của CSDL D.

Bộ xử lý 1 Bộ xử lý 2

Item Các FP-Tree điều kiện mức 1

Các tập mục

phổ biến Item

Các FP-Tree điều kiện mức 1 Các tập mục phổ biến 7 P1 3:6 (3 7 : 6) 0 P2 3:7 (3 0 : 7) 6 P1 3:6 5:1 5:5

Mức đệ qui đầu tiên

(3 6 : 6) (5 6 : 6) 5 (5 6 : 6) 5 P2 3:7 9:1 8:6 9:6 (9 5 : 7) (3 5 : 7) (8 5 : 6) (3 9 5 : 7) (3 8 5 : 6) (8 9 5 : 6) (8 3 9 5 : 6) 8 P1 3:9 (3 8 : 9) 9 P2 3:9 8:8 (3 9 : 9) (8 9 : 8) (3 8 9 : 8)

Hình 3.9: Quá trình sinh tập phổ biến bởi 2 bộ xử lý P1 và P2

Nội dung thuật toán FP-Growth

Vào: Các phân hoạch CSDL DN/P và minsup.

1) Quét CSDL cục bộ DN/P;

2) Tính số đếm hỗ trợ cục bộ của mỗi mục i flocal(i); 3) if (Bộ xử lý chủ) then

4) for (mỗi Bộ xử lý Tớ) do

5) Nhận flocal(i);

6) Gán F1-itemset = {i| ∑flocal(i); ≥ minsup, ∀ i} và truyền F1-itemset đến các Bộ xử lý Tớ

7) else Chuy ển flocal(i), ∀ i đ ến Bộ xử lý chủ và Nhận 1-itemset ph ổ biến F1-

itemset;

8) Xây dựng FP-Tree cục bộ FPTlocal của các mục trong F1-itemset bằng cách quét DN/P cục

bộ.

9) Duyệt toàn bộ FPTlocal và sinh ra các mẫu điều kiện cơ sở và truyền đến tất cả các bộ xử lý;

10) if (Bộ xử lý chủ) then begin (adsbygoogle = window.adsbygoogle || []).push({});

11) for(mỗi mục phổ biến i ∈ F1-itemset) do // Lập lịch tạo ra các CFPTs

12) Nh ận yêu cầu Bộ xử lý Tớ và chuyển mục i;

13) for(mỗi mục phổ biến i ∈ F1-itemset) do // Lập lịch cho việc khai phá

14) Nh ận yêu cầu Bộ xử lý Tớ và chuyển mục i cần được khai phá;

15) for(mỗi Bộ xử lý Tớ) do

16) Tập hợp các tập mục phổ biến và xuất tất cả các tập mục phổ biến; 17) end

18) else do //hợp nhất các mẫu điều kiện cơ sở

19) Yêu c ầu mục i tiếp theo và sinh FP-Tree đi ều kiện CFPTi cho mục ;i

20) until (hết các mục phổ biến);

21) Truy ền CFPTs đến tất cả các Bộ xử lý (từ Bộ xử lý Chủ) và nhận tất cả các CFPTs;

22) do

24) until (hết các mục phổ biến);

25) Chuyển các tập mục phổ biến đến Bộ xử lý Chủ;

65

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên htt p ://www.lr c - tnu. ed u. v n

1) if(Tree chứa đường dẫn đơn) and (i ≠ null) then

2) Sinh tập mục có độ hỗ trợ ≥ minsup đối với mỗi tổ hợp các nút trong đường dẫn

3) else if(i ≠ null) then

4) Sinh tập mục  = i ∪〈 và Xây dựng các mẫu điều kiện cơ sở của  và CFPT

5) else for mỗi i trong bảng tiêu đề của Cây

6) Sinh tập mục  = i ∪〈 và Xây dựng các mẫu điều kiện cơ sở của  và CFPT

7) if CFPT≠ ∅ then FP-Growth-OneItem(CFPT, , null);

Một phần của tài liệu KHAI PHÁ DỮ LIỆU VÀ THUẬT TOÁN KHAI PHÁ LUẬT KẾT HỢP SONG SONG (Trang 89 - 98)