Chương 3. Thuật toán khai phá luật kết hợp dựa trên lý thuyết đại số gia tử
3.3. Thuật toán khai phá luật kết hợp dựa trên lý thuyết đại số gia tử
n: Tổng số giao dịch trong cơ sở dư liệu(được sinh ra sau quá trình chuyển dữ liệu thô(n’) thành nhãn gia tử tương ứng)
m: Tổng số các thuộc tính(số thuộc tính của dữ liệu thô(m’)* số nhãn gia tử)
A j : Thuộc tính thứ j, 1 ≤ j ≤ m, A j
D(i) dữ liệu giao dịch thứ i, 1 ≤ i ≤ n v j (i): Giá trị định lượng của Aj trong D(i);
f jk (i) giá trị độ thuộc của v j (i) với nhãn gia tử R jk , 1 ≤ f jk (i) ≤ m;
Sup(A jk ): Độ hỗ trợ của A jk
Sup: Giá trị hỗ trợ của mỗi tập mục lớn;
Conf: độ tin cậy của mỗi tập mục lớn
Minsup: Giá trị hỗ trợ tối thiểu cho trước Minconf: Giá trị tin cậy cho trước
C r : Tập các tập mục có khả năng với r thuộc tính (tập mục), 1 ≤ r ≤ m;
L r : Tập các tập mục lớn thỏa mãn với r nhãn gia tử (tập mục) 1 ≤ r
≤ m;
Thuật toán khai phá dữ liệu dựa trên đại số gia tử cho các giá trị định lượng được thực hiện như sau:
Input: m’,n’, theta(tỉ lệ giữa 2 phần tử sinh), minsup và minconf
Output: luật kết hợp
Bước 1: Chuyển các giá trị định lượng v j (i) của mỗi giao dịch D(i), i từ 1 tới n, với mỗi thuộc tính A j , nếu A j nằm ở ngoài 1 trong 2 đầu mút ( 2 nhãn gia tử cực đại và cực tiểu) thì A j chỉ có 1 nhãn gia tử ứng với đầu mút đó, nếu không thì A j được biểu diễn bởi 2 nhãn gia tử liên tiếp có đoạn giá trị nhỏ nhất trên trường
28
giá trị của A j , mỗi nhãn ứng với 1 giá trị biểu diễn độ thuộc f jk (i)(j=1,2) của A j
với nhãn gia tử đó. Độ thuộc này được tính là khoảng cách của A j tới giá trị biểu diễn cho nhãn gia tử tương ứng.
Bước 2 : Tính giá trị hỗ trợ ,
𝑆𝑢𝑝 𝑅 𝑗𝑘 = 𝑛 𝑗 =1 𝑓 𝑗𝑘 𝑛
Bước 3 : Nếu Sup(R jk ) ≥ minsup thì đưa R jk vào L 1
Bước 4 : Nếu L 1 không rỗng, tiếp tục bước sau, nếu rỗng thoát chương trình.
Bước 5 : Thuật toán xây dựng tập mục lớn mức r từ các tập mục lớn mức r-1 bằng cách chọn 2 tập mục lớn mức r-1 chỉ khác nhau duy nhất một mục, hợp 2 tập mục này ta được tập mục ứng viên Cr, nếu tập mục này xuất hiện trong cơ sở dữ liệu và có giá trị hỗ trợ thỏa mãn thì nó được đưa vào danh sách các tập mục lớn mức r.
Bước 6: Thực hiện theo các bước con sau đây lặp lại cho các tập mục lớn mức lớn hơn được sinh ra tiếp theo dạng (r+1) tập mục lớn S với mục (s 1 ,s 2 , …, s t ,
…, sr+1 ) trong C r+1 , 1≤ t ≤ r+1
Tính giá trị hỗ trợ sup(S) của S trong giao dịch
𝑆𝑢𝑝 𝑆 = 𝑘 𝑖=1 𝑓 𝑗𝑘 (𝑠 𝑖 ) 𝑛
Nếu Sup(S) ≥ minsup, thì đưa S vào L r+1 .
Bước 7 : Nếu Lr+1 là rỗng, thì thực hiện bước tiếp theo, ngược lại, đặt r=r+1, thực hiện lại bước 5 và 6.
Bước 8 : Thu thập các tập mục lớn mức lớn hơn nếu có
Bước 9 : Đưa ra các luật kết hợp từ các tập mục lớn vừa thu thập theo cách sau:
Với mỗi luật kết hợp khả thi sau đây: s 1 ∩…∩s x ∩s y ∩…∩s q → s k (k=1 tới q, x=k-1, y= k+1)
Tính độ tin cậy của luật :
Conf s 1 ∩ … ∩ s x ∩ s y ∩ … ∩ s q → s k = 𝑆𝑢𝑝(𝑆/𝑠 𝑘 ) 𝑆𝑢𝑝(𝑆)
29
Để minh họa thuật toán, ta xét tập dữ liệu ví dụ sau:
Bảng 3 Dữ liệu ví dụ STT Tuổi Thu nhập
1 25 10.000.000
2 10 0
3 60 20.000.000
Giả sử khai phá luật kết hợp cho tập dữ liệu trên với 2 gia tử là rất và khá. Các nhãn ngôn ngữ tương ứng của từng trường dữ liệu sẽ là:
Bảng 4 Nhãn ngôn ngữ tương ứng Trường Phần tử sinh Nhãn ngôn ngữ
Tuổi c Trẻ
Tuổi c + Già
Tuổi Trung niên
Thu nhập c + Cao
Thu nhập c Thấp
Thu nhập Trung bình
Minh họa thuật toán theo lần lượt các bước, với đầu vào của minsup = 0.2 và minconf = 50%, tỉ lệ gia tử à = 0.5
Bước 1: Chuyển các giá trị định lượng của mỗi bản ghi thành nhãn gia tử tương ứng, ta có bảng dữ liệu được chuyển theo cách xác định của thuật toán như sau:
STT Tuổi Thu nhập
1 Rất trẻ<0.14> Trung bình<1.0>
2 Khá trẻ<0.86> Trung bình<1.0>
3 Rất trẻ<1.0> Rất thấp<1.0>
4 Rất già<1.0> Rất cao<1.0>
30
Bước 2: Tính độ hỗ trợ của dữ liệu vừa được gán nhãn:
STT Dữ liệu đã gán nhãn Sup 1 Tuổi_rất_trẻ 0.285 2 Tuổi_khá_trẻ 0.215
3 Tuổi_rất_già 0.25
4 Thunhap_trungbinh 0.5 5 Thunhap_rất_cao 0.25 6 Thunhap_rất_thấp 0.25
Bước 3: Đưa các nhãn ngôn ngữ có độ hỗ trợ lớn hơn minsup vào tập L 1
Bước 48: Xây dựng tập C 2 từ L 1 , ta có C 2 bao gồm:
STT Tập mục được gán nhãn thỏa mãn Sup 1 Tuổi_khá_trẻ, Thunhap_Trungbinh 0.638 2 Tuổi_ rất_trẻ, Thunhap_rất_thấp 0.535 3 Tuổi_rất_già, Thunhap_rất_cao 0.25
Bước 9: Sinh luật và tính giá trị độ tin cậy của các luật
STT Luật kết hợp Độ tin cậy(%)
1 Tuổi_khá_trẻ Thunhap_Trungbinh 45.3 2 Thunhap_Trungbinh Tuổi_khá_trẻ 78.3 3 Tuổi_rất_trẻ Thunhap_Rất_thấp 53.27
…
31