Khai phá luật kết hợp trọng số 4.2.2.1 Luật kết hợp trọng số nhị phân

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 50 - 57)

, x ik }→ {x ik

2.4.2.Khai phá luật kết hợp trọng số 4.2.2.1 Luật kết hợp trọng số nhị phân

4.2.2.1. Luật kết hợp trọng số nhị phân

Định nghĩa 2.5: Trọng số của một tập mục w(0 ≤ w ≤ 1) biểu thị cho mức độ quan trọng của tập mục đó.

Chẳng hạn: Nếu tập mục X có trọng số w = 0.95 thì ta nói rằng nó quan trọng hơn khi X có trọng số là w = 0.10 trên cùng cơ sở dữ liệu giao dịch D.

Định nghĩa 2.6: Luật kết hợp trọng số nhị phân (Binary weighted Association Rule): Là luật có dạng X ⇒ Y với tập các mục I = {i1, i2, ..., in} trên cơ sở dữ liệu giao dịch D, X ⊂ I, Y⊂ I và X ∩ Y = ∅.

Định nghĩa 2.7: Độ hỗ trợ trọng số (không chuẩn hóa) của luật kết hợp trọng số nhị phân X ⇒ Y được định nghĩa.

w sup port (

XY ) = ∑ w j * sup(X

Y ) (2.4)

i j ∈( X Y )

Trong đó, {w1, w2, …, wn} là trọng số tương ứng của các mục {i1, i2, ..., in}. Tương tự như trong luật kết hợp Boolean, việc tìm các luật kết hợp đáng quan tâm dựa vào hai ngưỡng cho trước: độ hỗ trợ trọng số tối thiểu (

TID Giao dịch 1 1 2 4 5 2 1 4 5 3 2 4 5 4 1 2 4 5 5 1 3 5 6 2 4 5 7 2 3 4 5

Định nghĩa 2.8: Một k-itemset X được gọi là tập mục trọng số không phổ biến nếu độ hỗ trợ trọng số của X nhỏ hơn độ hỗ trợ trọng số tối thiểu hay

w j * sup(X ) <w min sup . Ngược lại X là tập mục phổ biến [8].

i j

X

Định nghĩa 2.9: Một luật kết hợp trọng số nhị phân X ⇒ Y được gọi là luật đáng quan tâm nếu độ tin cậy của luật X ⇒ Y lớn hơn hoặc bằng độ tin cậy trọng số tối thiểu và tập mục ( X ∪ Y) là tập mục trọng số phổ biến.

Ví dụ: Cho dữ liệu giao dịch D như sau:

Mã vạch Items Tổng lợinhuận Các trọngsố

1 Nho 100 0.1

2 Cam 300 0.3

3 Sữa 400 0.4

4 Đường 800 0.8

5 Thịt 900 0.9

Bảng 2.1.a. Thông tin của một cửa hàng bán lẻ Bảng 2.1.b. Tập giao dịch D của cửa hàng

Khi đó, nếu wminsup = 0.4 thì tập mục {2, 5} sẽ là tập mục trọng số phổ biến vì (0.3 + 0.9)* 5/7 = 0.86 > 0.4. Tương tự, các tập mục {4, 5}, {2, 4, 5}, cũng là các tập mục trọng số phổ biến.

Khái niệm biên k-support (k-support bound)

Hàm apriori_gen() được kế thừa trong khai phá luật kết hợp trọng số.

Tuy nhiên, ý nghĩa cả độ hỗ trợ trong trường hợp này bị thay đổi. Với độ hỗ trợ trọng số được định nghĩa như trên thì tính chất 2.3 có thể không được bảo toàn, nghĩa là nếu một tập mục X là một tập mục trọng số phổ biến thì các tập con của X chưa hẳn đã là các tập mục trọng số phổ biến.

Giả sử X1, X2, …, Xn là n tập con của X, khi đó ta có:

wsuppprt(X) > min(wsupport(X1),…, wsupport(Xn)) (2.5) Cho một CSDL giao dịch với các giao dịch T, số đếm hỗ trợ (gọi tắt là số đếm) của tập mục X, ký hiệu SC(X) là

ốs các giao dịch chứa X và thỏa mãn (adsbygoogle = window.adsbygoogle || []).push({});

j j SC ( X ) =min sup* Tw j i jX (2.6)

Bổ đề 2.1. Gọi I là tập tất cả các mục. Giả sử Y là một q-itemset, q< k. Trong tập các mục còn lại (I-Y), đặt các mục này với (k-q) các trọng số lớn nhất là ir1, ir2,…, irk-p. Khi đó, trọng số tối đa của bất kỳ k-itemset chứa Y là:

W (Y , k ) = ∑ w j +k −∑q wr (2.7) i j Y j =1 Trong đó ∑ w j i jY k q là tổng các trọng số của q-itemset Y và ∑ wr j =1 là tổng

của (k-q) các trọng số tối đa của các mục còn lại.

Từ bất đẳng thức (2.6), số đếm tối thiểu của k-itemset phổ biến chứa Y cho bởi:

B(Y , k ) = w min sup*

T (2.8)

W (Y , k )

Ta gọi B(Y, k) là hàm xác định biên k-support của Y, ta sử dụng kí hiệu để lấy cận trên củaw min sup*

T W (Y ,

k )

vì hàm B(Y, k) trả về giá trị nguyên [ 8].

Thuật toán khai phá luật kết hợp trọng số (không chuẩn hóa)

Thuật toán khai phá luật kết hợp trọng số kế thừa thuật toán của hàm

apriori_gen(). Do tính chất của trọng số của các tập mục nên trong một số bước

có thể có sự khác biệt. Trước tiên, ta cũng sinh ra các tập mục trọng số phổ biến với kích thước tăng dần nhưng do các tập con của các tập mục phổ biến có thể không phải là các tập mục phổ biến nên ta không t hể sinh ra các k-itemset ứng cử một cách dễ dàng từ tập các (k-1)-itemset phổ biến như trong thuật toán Apriori. Chính vì vậy ta phải tìm cách lưu giữ các k -itemset mà chúng có

thể sinh ra các j-itemset phổ biến (j ≤ k) trong các giai đoạn sau. Để trích chọ n các k-itemset từ CSDL, ta s ử dụng các giá trị biên j-support. Trong quá trình thực hiện, các biên j-support sẽ được tính toán cho tất cả các k -itemset ứng cử, j là một số bất kỳ giữa k và kích thước lớn nhất có thể của tập mục phổ biến. Nếu số

đếm của k-itemset nào đó mà nhỏ hơn tất cả các biên j -support thì ta có thể nói rằng nó không thể là tập con của bất kỳ tập mục trọng số phổ biến nào trong giai đoạn tiếp theo. Vì thế, nó có thể được cắt tỉa đi, k-itemset nào có th ể sử dụng để tạo ra các tập mục trọng số phổ biến trong giai đoạn kế tiếp sẽ được lưu giữ vào Ck.

Thuật toán khai phá luật kết hợp trọng số (nhị phân không chuẩn hóa) (MINVAL(O))

Các ký hiệu trong thuật toán:

D: Cơ sở dữ liệu giao dịch; w: Tập các trọng số của các mục Lk: Tập các k-itemset phổ biến

Ck: Tập các k-itemset trọng số ứng cử SC(X): Số lượng giao dịch chứa tập mục X

wminsup: Ngưỡng hỗ trợ trọng số; minconf – Ngưỡng tin cậy

size: Kích thư ớc tối đa của các tập mục trọng số phổ biến tiềm năng trong D.

Nội dung thuật toán MINVAL(O)

Vào: D, wminsup, minconf, wi (trọng số của các mục) đã được sắp xếp theo thứ tự tăng dần, tổng số các giao dịch và tổng số các mục.

Ra: Một danh sách của các luật đáng quan tâm

Thuật toán chính (wminsup, minconf, D, w) L = ;

for(i=1; i<= size; i++) do Ci = Li = ; for(mỗi giao dịch) do (SC, C1, size) = Counting(D,w); k=1; while (|Ck|>= k) do begin k++; Ck = Join(Ck-1); Ck=Prune(Ck);

(Ck, Lk)=Checking(Ck, D); L = L ∪ Lk; (adsbygoogle = window.adsbygoogle || []).push({});

end;

Rule(SC, L);

end;

Giải thích thuật toán

(1) Ở giai đoạn 1, tất cả các tập mục ứng cử kích thước tối đa của các tập mục trọng số phổ biến tiềm năng và số đếm hỗ trợ của các 1-itemset được sinh ra bởi thủ tục Counting(D, w) và được gán cho C1, size, SC(X). Hàm này được thực hiện bằng cách quét cơ sở dữ liệu D, cập nhật số đếm hỗ trợ của các mục và kiểm tra cận trên của size. Hơn nữa, biên k-support sẽ được tính toán trong giai đoạn này và đẩy các tập mục ứng cử vào C1.

(2) Sinh các tập mục trọng số phổ biến và các tập mục trọng số ứng cử: i- Sinh ra Ck từ Ck-1 bởi thủ tục Join(Ck-1). Thủ tục này thực hiện nối hai (k-1)-itemset nào đó thuộc C k-1 với nhau để tạo thành một k-itemset rồi đẩy vào Ck (tương tự bước nối trong hàm apriori_gen()).

ii- Một tập mục sẽ được cắt tỉa bởi hàm Prune(Ck) nếu nó thỏa mãn một trong các trường hợp sau:

- Một tập con của tập mục ứng cử Ck không có mặt trong Ck-1.

- Ước lượng một cận trên số đếm hỗ trợ (SC) của tập mục X (X đã được nối), đó là SC tối thiểu trong số k các (k-1)-subset khác nhau của X trong Ck-1.

Nếu cận trên ước lượng SC chỉ ra tập mục X không phải là một tập con của bất kỳ một tập mục phổ biến nào trong giai đoạn kế tiếp (bằng việc tính toán các biên k-support cho tất cả các itemset) thì tập mục X sẽ được cắt tỉa.

iii- Thủ tục tiếp theo sẽ quyết CSDL giao dịch, cập nhật số đếm của tất cả các tập mục ứng cử trong Ck. Sau đó, thực hiện việc cắt tỉa các tập mục ứng cử không thỏa mãn các biên SC của tất cả các tập mục trọng số phổ biến tiềm năng. Các tập mục ứng cử còn lại sẽ được lưu giữ vào Ck. Lúc này Lk sẽ được sinh ta từ Ck bằng cách kiểm tra độ hỗ trợ trọng số thực tế của các tập mục. Bước này được thực hiện bởi các thủ tục Checking(Ck, D)

(3) Thủ tục Rule(SC, L) tìm tất cả các luật kết hợp từ các tập mục phổ biến L đã được tìm thấy ở trên với độ tin cậy tối thiểu minconft.

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 50 - 57)