Luật kết hợp nhị phân

Một phần của tài liệu Khai phá luật kết hợp mờ và ứng dụng trong cơ sở dữ liệu cước điện thoại (Trang 35)

Luật kết hợp nhị phân là hướng nghiên cứu đầu tiên của luật kết hợp. Hầu hết các nghiên cứu ở thời kỳ đầu về luật kết hợp đều liên quan đến luật kết hợp nhị phân. Trong dạng luật kết hợp này, các mục chỉ được quan tâm là có hay không xuất hiện trong giao dịch của CSDL chứ không quan tâm về “mức độ” xuất hiện. Thuật toán tiêu biểu nhất khai phá dạng luật này là thuật toán Apriori và các biến thể của nó [28].

Cho I = {i1, i2, ... , in} là một tập các thuộc tính nhị phân, được gọi là các mục. T là một CSDL giao dịch. Mỗi giao dịch t được biểu diễn như là một vector nhị phân, với t[k] = 1 nếu t chứa ik, và t[k] = 0 nếu ngược lại. Cho X là một tập của một số thuộc tính trong I. Ta nói rằng một giao dịch t thỏa mãn X nếu tất cả các ik∈ X, t[k] = 1.

Thuật toán Apriori

Thuật toán Apriori là một thuật toán điển hình tìm luật kết hợp. Thuật toán dựa theo tính chất Apriori phát biểu rằng: “tập con bất kỳ của một tập phổ biến cũng là một tập phổ biến”, tính chất này hiển nhiên đúng. Nội dung quan trọng nhất của thuật toán Apriori là tìm ra được tất cả các tập phổ biến trong T. Trong thuật toán, các tên mục i1, i2, …, in (n=|T|) được sắp xếp theo một thứ tự nhất định (thường được đánh chỉ số 1, 2, … , n). Thuật toán hoạt động theo quy tắc quy hoạch động, nghĩa là từ các tập Fi = {ci|ci tập phổ biến,|ci| = i} gồm mọi tập mục phổ biến có độ dài i với 1 ≤ i ≤ k, đi tìm tập Fk+1 gồm mọi tập mục phổ biến có độ dài k+1.

Đầu tiên Apriori duyệt CSDL và tìm kiếm các tập phổ biến kích thước là 1 bằng cách tính toán cho mỗi thuộc tính và lựa chọn những thuộc tính thoả mãn yêu cầu về độ hỗ trợ tối thiểu. Sau đó lặp lại ba bước sau đây và đưa ra tất cả các tập phổ biến.

1. Tạo Ck+1 - các ứng viên của các tập phổ biến có kích thước k+1 từ các tập phổ biến kích thước k.

2. Duyệt CSDL và tính độ hỗ trợ của mỗi ứng viên của các tập phổ biến. 3. Thêm các tập phổ biến thỏa mãn yêu cầu về độ hỗ trợ tối thiểu vào Fk+1.

Mô tả thuật toán như sau:

Input: - CSDL giao dịch T = {t|t giao dịch} - Độ hỗ trợ tối thiểu minsup >0 Output: Tập tất cả các tập phổ biến Thuật toán:

0. mincount = minsup * |T|;

1. F1 = {các tập phổ biến có độ dài là 1}; 2. for (k=1; Fk≠ ∅; k++ ) do begin

3. Ck+1 = apriori-gen(Fk); //sinh mọi ứng viên độ dài k+1 4. for t∈ D do begin

5. Ct = {c ∈ Ck+1 | c ⊆ t}; //mọi ứng viên chứa trong t 6. for c ∈ Ct do 7. c.count ++; 8. end 9. Fk+1 = {c ∈ Ck+1 | c.count ≥ mincount}; 10. end 11. Answer ∪k Fk;

Thủ tục con apriori-gen có nhiệm vụ sinh ra các tập mục ứng viên có độ dài k+1 từ Fk (các tập phổ biến có độ dài k) được thi hành qua 2 bước chính như sau:

• Bước nối: Sinh các tập mục Rk+1 là ứng viên tập phổ biến có độ dài k+1 bằng cách kết hợp hai tập phổ biến Pk và Qk có độ dài k và trùng nhau ở k-1 mục đầu tiên:

Rk+1 = Pk ∪ Qk = {i1, i2, …, ik-1, ik, ik’ } với

Pk = {i1, i2, …, ik-1, ik} và Qk = {i1, i2, …, ik-1, ik’} Trong đó i1 ≤ i2 ≤ …≤ ik-1 ≤ ik ≤ ik’ .

• Bước tỉa: Giữ lại tất cả các Rk+1 thỏa mãn tính chất Apriori (∀X ⊆ Rk+1

và |X| = k → X ∈ Fk ), nghĩa là đã loại (tỉa) bớt đi mọi ứng viên Rk+1

Trong mỗi bước k, thuật toán Apriori đều phải duyệt CSDL T. Khởi động, duyệt T để có được F1. Các bước k sau đó, duyệt T để tính số lượng giao dịch t thoả mãn từng ứng viên c của Ck+1 (mỗi giao dịch t chỉ xem xét một lần cho mọi ứng viên c)

Kết quả của thuật toán Apriori là tập F = F1 ∪ F2 ∪ … ∪ Fk, trong đó k là số được xác định qua vòng lặp từ 2 đến 10 của thuật toán.

Sau đó, ∀c ∈ F đóng vai trò như X ∪ Y của luật kết hợp X → Y thực hiện việc tách c thành 2 tập mục con rời nhau X và Y (c = X+Y) và tính độ tin cậy conf(X → Y) = supp(c)/supp(X) = c.count/X.count.

Từ khi bài toán phát hiện luật kết hợp được giới thiệu, nhiều thuật toán đã được đề xuất để tìm luật kết hợp trong các CSDL lớn với các thuộc tính nhị phân. Tuy nhiên, luật kết hợp nhị phân hạn chế miền ứng dụng, bởi nó chỉ áp dụng cho thuộc tính nhị phân, trong khi đó dữ liệu thực tế thường chứa dữ liệu số, loại dữ liệu không thể xử lý được trực tiếp bằng thuật toán khai phá nhị phân cổ điển [35].

Một phần của tài liệu Khai phá luật kết hợp mờ và ứng dụng trong cơ sở dữ liệu cước điện thoại (Trang 35)