Thuật toán khai thác CSDLPT dọc với phép kết ngoại hai chiều

Một phần của tài liệu khai thác dữ liệu phân tán bảo toàn tính riêng tư (Trang 68 - 70)

2.2. Khai thác trên cơ sở dữ liệu phân tán dọc

2.2.3. Thuật toán khai thác CSDLPT dọc với phép kết ngoại hai chiều

Do yêu cầu khai thác dữ liệu khác nhau, nhiều khi chúng ta cần khai thác trên CSDL đƣợc tổng hợp từ DB1 và DB2 nhƣ sau: DB=((DB1[TID]  DB2[TID]) LEFT JOIN DB1 ON TID) LEFT JOIN DB2 ON TID) Nghĩa là, chúng ta cần khai thác cơ sở dữ liệu từ cơ sở dữ liệu đƣợc tổng hợp từ hai cơ sở dữ liệu (bảng 2.4) trong ví dụ 2.2 ở trên nhƣ sau:

TID A B C D E F G 1 1 1 1 1 2 1 1 1 1 3 1 1 1 1 1 4 1 1 1 1 1 5 1 1 1 1 6 1 1 1 1 1 7 1 1 1 8 1 1 1 9 1 1 1

Hình 2.6. Thuật tốn ECLAT_DISTRIBUTE_FULL_JOIN

Điểm khác nhau chính giữa thuật tốn ECLAT_DISTRIBUTE_LEFT_JOIN (2.2.2) so với thuật toán ECLAT_DISTRIBUTE_FULL_JOIN (2.2.3) ở chỗ việc tính tốn các TID của các item đơn thuộc DB2 không cần phải giao với TID của DB1. Điều này nhằm lấy hết những TID có chứa item đơn trong DB2 (do phép kết là phép kết ngoại hai chiều). Nhƣ vậy số lƣợng các item đơn thỏa minsup sẽ tăng lên đáng kể (cụ thể trong ví dụ này là: A,B,C,D,E,F,G so với thuật toán trƣớc là: A,B,C,F,G ), điều này cũng hiển nhiên do yêu cầu khai thác của chúng ta trong thuật toán này ở một CSDL nhiều hơn khi thực hiện phép kết ngoại hai chiều nhằm lấy hết các CSDL có trong DB1 và DB2. Kết quả của thuật toán khi chọn minsup=30% đƣợc thể hiện trong hình 2.7.

ECLAT_DISTRIBUTE_FULL_OUTERJOIN() [] = {i  I1: |TID(i)| minSup}

 {j  I2: |TID(j)| minSup}

ENUMERATE_FREQUENT([]) ENUMERATE_FREQUENT([P])

for all li  [P] do [Pi] = 

for all lj  [P] with j > i do I = li  lj

T = t( li )  t( lj ) if |T|  minSup then

[Pi] = [Pi]  {IT}

Hình 2.7 Kết quả khai thác tập phổ biến trên CSDL phân tán dọc với phép kết ngoại hai chiều

Một phần của tài liệu khai thác dữ liệu phân tán bảo toàn tính riêng tư (Trang 68 - 70)

Tải bản đầy đủ (PDF)

(127 trang)