THUẬT TOÁN APRIORI (by Agrawal and Srikant 1994)

Một phần của tài liệu Ứng dụng khai phá dữ liệu xây dựng hệ thống trợ giúp phòng, chống và giảm nhẹ rủi ro thiên tai tại trường học (Trang 41 - 46)

6. Kết cấu luận văn

2.6. THUẬT TOÁN APRIORI (by Agrawal and Srikant 1994)

Tư tưởng chính của thuật toán Apriori là: - Tìm tất cả frequent itemsets:

k-itemset (itemsets gồm k items) được dùng để tìm (k+1)- itemset.

Đầu tiên tìm 1-itemset (ký hiệu L1). L1 được dùng để tìm L2 (2-itemsets). L2 được dùng để tìm L3 (3-itemset) và tiếp tục cho đến khi không có k-itemset được tìm thấy.

- Từ frequent itemsets sinh ra các luật kết hợp mạnh (các luật kết hợp thỏa mãn 2 tham số min_sup và min_conf)

Thuật toán Apriori thực hiện qua các bước chính sau:

1. Duyệt (Scan) toàn bộ transaction database để có được support S của 1- itemset, so sánh S với min_sup, để có được 1-itemset (L1)

2. Sử dụng Lk-1 nối (join) Lk-1 để sinh ra candidate k-itemset. Loại bỏ các itemsets không phải là frequent itemsets thu được k-itemset

3. Scan transaction database để có được support của mỗi candidate k- itemset, so sánh S với min_sup để thu được frequent k –itemset (Lk)

4. Lặp lại từ bước 2 cho đến khi Candidate set (C) trống (không tìm thấy frequent itemsets)

5. Với mỗi frequent itemset I, sinh tất cả các tập con s không rỗng của I

6. Với mỗi tập con s không rỗng của I, sinh ra các luật s => (I-s) nếu độ tin cậy (Confidence) của nó > =min_conf

Thuật toán Apriori được mô tả như sau:

Input:

- Tập các giao dịch D, ngưỡng support tối thiểu minsup

Output: - L- tập mục phổ biến trong D L1=Large_1_ItemSets() for (k=2; Lk-1 ; k++) do Begin Ck=apriori-gen(Lk-1);

for (mỗi một giao dịch TD) do

Begin

CT = subset(Ck, T);

for (mỗi một ứng cử viên c CT) do

End;

Lk = {c  Ck| c.count  minsup}

End;

return kLk

– Hàm Large_1_ItemSets() trả về các Item có số support lớn hơn hay bằng minsup.

for all transaction t  D do for all item i  t do

i.count ++;

L1=i | i.count minsup;

– Hàm apriori_gen (Lk-1) thực hiện việc kết các cặp (k-1) ItemSet để phát sinh các tập k_ItemSet mới. Tham số của hàm là Lk-1 – tập tất cả các (k-1)-ItemSet

và kết quả trả về của hàm là tập các k-ItemSet.

Join Lk-1with Lk-1;

Insert into Ck

select p.item1,p.item2, . . .p.itemk-1, q.itemk-1

from Lk-1as p, Lk-1as q;

where (p.item1= q.item1)...(p.itemk-2 = q.item k-2)(p.item k-1<q.item k-1); Điều kiện (p.item k-1<q.item k-1) sẽ bảo đảm không phát sinh các bộ trùng nhau.

Chẳn hạn với I= {A1,A2,A5},các tập con của I: {A1}, {A2}, {A5}, {A1,A2},{A1,A5},{A2,A5} sẽ có các luật sau

{A1}  {A2,A5},{A2} {A1,A5},{A5} {A1,A2} {A1,A2} {A5},{A1,A5} {A2},{A2,A5}  {A1}

Minh họa thuật toán Apriori:

Giả sử ta có có sở dữ liệu giao dịch (Transaction Database -TDB) như sau : Tid items

1 A, C, D 2 B, C, E 3 A, B, C,E 4 B, E

Thuật toán Apriori khai phá luật kết hợp được mô tả qua các bước sau

Tid items 1 A, C, D 2 .B, C, E 3 A, B, C,E 4 B, E

Ta có frequent itemsets I ={B,C,E}, với min_conf =80% ta có 2 luật kết hợp là {B,C}  {E} và {C,E}  {B} itemsets items {A} 2 {B} 3 {C} 3 {D} 1 {E} 3 itemsets items {A} 2 {B} 3 {C} 3 {E} 3 itemsets {AB} {AC} {AE} {BC} {BE} {CE} items sup {A,B} 1 {A,C} 2 {A,E} 1 {B,C} 2 {B,E} 3 {C,E} 2 items sup {A,C} 2 {B,C} 2 {B,E} 3 {C,E} 2 items sup {B,C,E} 2 items {A,B,C} {A,B,E} {A,C,E} {B,C,E} itemsets Sup {A,B,C} 1 {A,B,E} 1 {A,C,E} 1 {B,C,E} 2 min-sup=2 1st scan L1 C2 2nd scan C2 C1 TDB 2nd scan 2nd scan C3 L3

min-conf=80% Association Rule Confidence {B}=>{C,E} 67% {C}=>{B,E} 67% {E}=>{B,C} 67% {B,C}=>{E} 100% {B,E}=>{C} 67% {C,E}=>{B} 100%

Thuật toán Apriori được dùng để phát hiện các luật kết hợp dạng khẳng định (Positive Rule XY) nhị phân (Binary Association Rules) chứ không thể phát hiện các luật kết hợp ở dạng phủ định (Negative Association Rule) chẳn hạn như các kết hợp dạng “Khách hàng mua mặt hàng A thường KHÔNG mua mặt hàng B” hoặc “Nếu ủng hộ quan điểm A thường KHÔNG ủng hộ quan điểm B”. Khai phá các luật kết hợp dạng phủ định (Mining Negative Association Rules) có phạm vi ứng dụng rất rộng.

2.7. KẾT LUẬN

Phân cụm dữ liệu là qui trình tìm cách nhóm các đối tượng đã cho vào các cụm (clusters), sao cho các đối tượng trong cùng 1 cụm càng giống nhau càng tốt và các đối tượng khác cụm thì càng khác nhau càng tốt.

Mục đích của phân cụm là tìm ra bản chất bên trong các nhóm của dữ liệu. Có rất nhiều kỹ thuật phân cụm như phân cụm phân hoạch, phân cụm phân cấp, phân dựa trên mật độ…Tuy nhiên không có tiêu chí nào được xem là tốt nhất để đánh giá hiệu quả của phân tích phân cụm, điều này phụ thuộc vào mục đích của bài toán phân cụm.

Trong lĩnh vực khai phá dữ liệu, mục đích của luật kết hợp là tìm ra các mối quan hệ giữa các đối tượng trong khối lượng lớn dữ liệu.

Để có thể áp dụng luật kết hợp trước tiên ta phải tiến hành tiền xử lí dữ liệu hiện có, đây là bước quan trọng, quyết định có thể sinh luật kết hợp tốt hay không. Thuật toán Apriori tìm tập mục phổ biến theo hướng sinh ứng cử. Trên cơ sở tập phổ biến tìm được ta áp dụng thuật toán khai phá luật kết hợp để sinh ra các tập luật kết hợp đáng tin.

CHƯƠNG 3

ỨNG DỤNG KHAI PHÁ DỮ LIỆU XÂY DỰNG HỆ THỐNG TRỢ GIÚP PHÒNG, CHỐNG VÀ GIẢM NHẸ RỦI RO

THIÊN TAI TẠI TRƯỜNG HỌC

Một phần của tài liệu Ứng dụng khai phá dữ liệu xây dựng hệ thống trợ giúp phòng, chống và giảm nhẹ rủi ro thiên tai tại trường học (Trang 41 - 46)