Khai phá luật kết hợp trọng số không chuẩn hóa

Một phần của tài liệu khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng (Trang 58 - 61)

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ố thƣờng xuyê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 thƣờng xuyên có thể không phải là các tập mục thƣờng xuyên nên ta không thể sinh ra các k-itemset ứng cử một cách dễ dàng từ tập các (k-1)- itemset thƣờng xuyê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 thƣờng xuyê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 t hự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 thƣờng xuyên.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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ố thƣờng xuyê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ố thƣờng xuyê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:

DB: Cơ sở dữ liệu giao tác; w: Tập các trọng số của các mục Lk: Tập các k-itemset thƣờng xuyên

Ck: Tập các k-itemset là tập con chứa k mục của j-itemset với j>=k. SC(X): Số lƣợng giao tác 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ố thƣờng xuyên tiềm năng

trong DB.

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

Vào: DB, 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 tác 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, DB, w)

L = Ø;

for(i=1; i<= size; i++) do

Ci = Li =Ø ;

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn (SC, C1, size) = Counting(DB,w); k=1; while (|Ck|>= k) do begin k++; Ck = Join(Ck-1); Ck=Prune(Ck); (Ck, Lk)=Checking(Ck, DB); L = L Lk; 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ử và kích thước tối đa của các tập mục trọng số thƣờng xuyê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(DB, w) và đƣợc gán cho Cl, size, SC(X). Hàm này đƣợc thực hiện bằng cách quét cơ sở dữ liệu DB, 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 Cl.

(2) Sinh các tập mục trọng số thƣờng xuyê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 Ck-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:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- 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 thƣờng xuyê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ẽ duyệt CSDL giao tác, 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ố thƣờng xuyê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, DB).

(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á luật kết hợp trong cơ sở dữ liệu và ứng dụng (Trang 58 - 61)