Một số thuật toán cổ điển xây dựng cây phân lớp dựa trên luật kết hợp

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số phương pháp tìm các luật kết hợp phân lớp trên tập mẫu học và ứng dụng (Trang 41 - 44)

Các thuật toán xây dựng cây phân lớp dựa trên luật kết hợp phân lớp CBA- RG và CBA-CB được Liu, Hsu and Ma giới thiệu vào năm 1998 [7] cũng gần giống với phương pháp xây dựng cây phân lớp dựa trên phụ thuộc hàm lớp (CFD) xấp xỉ được Kwok-Wa Lam, Victor C. S. Lee giới thiệu vào năm 2004 [8]Các phương pháp mới này khác với các phương pháp truyền thống ở chỗ sẽ đi tìm các “thuộc tính hợp”, cho các nút của cây quyết định (một nút có nhiều hơn một thuộc tính) dẫn đến việc làm cho cây nhỏ hơn và dễ hiểu hơn và không ngăn cản hiệu quả của độ chính xác. Với các thuộc tính hợp cho các nút của cây, có thể vượt qua các hạn chế của việc xây dựng cây quyết định.

Thuật toán phân lớp sử dụng luật kết hợp và cây quyết định nêu trên dựa trên nền tảng thuật toán của luật phổ biến trong bảng quan hệ. Độ phức tạp tính toán của các thuật toán này là O(m2 .n) (với m là số phần tử của tập dữ liệu, n – là số thuộc tính). Công đoạn tính toán chủ yếu tập trung vào việc phát hiện các luật kết hợp phân lớp phổ biến.

Thuật toán bao gồm 2 bước chính với hai thuật toán tương ứng: 1- Thuật toán CBA-RG

2- Thuật toán CBA-CB

2.2.1. Thuật toán CBA-RG

Thuật toán dùng để tìm tập đầy đủ các luật CAR thoản mãn ràng buộc độ hỗ trợ tối thiểu do người dùng đặt ra (gọi là minsup) và thỏa mãn ràng buộc độ chắc chắn tối thiểu (gọi là minconf).

Thuật toán CBA-RG tạo ra tất cả các luật phổ biến bằng việc duyệt nhiều lần trên dữ liệu. Ở lần duyệt thứ nhất, nó tính số hỗ trợ của các mục luật riêng và quyết định liệu nó là phổ biến không. Trong mỗi một chu trình con duyệt, nó bắt đầu với tập hạt giống của các mục luật là phổ biến trong mục duyệt trước. Nó sử dụng tập hạt giống này để tạo ra các mục luật có khả năng phổ biến, gọi chúng là các mục luật dự tuyển. Thực tế, các số hỗ trợ cho các mục luật dự

tuyển này được tính trong quá trình duyệt dữ liệu. Tại cuối giai đoạn duyệt nó quyết định mục luật dự tuyển nào là thực sự phổ biến. Từ tập hợp các mục luật phổ biến này nó tạo ra các luật phổ biến phân lớp (CAR).

Ký hiệu k- mục luật là mục luật mà condset của nó có k mục. Đặt F là tập của các k- mục luật phổ biến. Mỗi phần tử của tập này là có dạng sau:

< (condset, condsupcount), (y, rulesupcount) >.

Đặt Ck là tập của các k- mục luật dự tuyển, thuật toán CBA-RG được đưa ra như sau:

* Thuật toán CBA-RG

1 F1 = {large 1-ruleitems}; 2 CAR1 = genRules(F1);

3 prCAR1 = pruneRules(CAR1); 4 For (k = 2; Fk-1 # ∅ ; K++) do

5 Ck = candidateGen(Fk-1); 6 For each data case d ∈ D do

7 Cd = ruleSubset(Ck,d); 8 For each candidate c ∈ Cd do

9 c.condsupCount++;

10 If d.class = c.class then c.rulesupcount++ 11 end 12 end 13 Fk = {c ∈ Ck | c.rulesupCount ≥ minsup}; 14 CARk = genRules(CARk); 16 end 17 CAR = ∪k CARk; 18 PrCAR = ∪k prCARk;

lớp có trong tập dữ liệu để xác định các (1-ruleitems) phổ biến (dòng 1). Từ tập hợp của các 1- ruleitems, một tập các CAR (gọi CAR1) được tạo ra bằng thủ tục genRules (dòng 2) (xem phần trước). CAR1 được thực hiện việc cắt tỉa (dòng 3) (cũng có thể là tùy chọn). Việc cắt tỉa cũng được làm với CARk của mỗi chu trình duyệt (dòng 15). Hàm pruneRules sử dụng phương pháp cắt tỉa dựa trên tỉ lệ sai sót bi quan trong C4.5. Nó tỉa một luật như sau: nếu tỉ lệ sai sót bi quan của luật r là lớn hơn tỉ lệ sai sót bi quan của luật r (nhận được bằng việc xóa một điều kiện của r), thì luật r bị tỉa. Việc cắt tỉa này có thể cắt bỏ một số các luật được tạo ra (xem mục đánh giá).

Mỗi một chu trình duyệt bước k, thuật toán thực hiện 4 thao tác chính. Đầu tiên tập luật phổ biến Fk1-1 tìm trong (bước thứ (k-1) được sử dụng để tạo ra các tập luật dự tuyển Ck có sử dụng hàm candidateGen (dòng 5)). Sau đó nó quét CSDL và cập nhật hệ số hỗ trợ của các mục luật dự tuyển trong Ck (dòng 6-12). Sau ki các mục luật phổ biến này được xác định tới dạng Fk (dòng 13), thuật toán xây dựng tập luật CARk bằng việc sử dụng hàm genRules (dòng 14). Cuối cùng việc cắt tỉa luật được thực hiện (dòng 15) trên những luật này.

Hàm dự tuyển CandidateGen giống với hàm Apriori – gen trong thuật toán Apriori. Hàm ruleSubset lấy một tập các mục luật dự tuyển Ck và một tập các trường hợp d để tìm ra tất cả các mục luật trong Ck mà condset của nó được hỗ trợ bởi d. Việc thực hiện này và các thao tác từ dòng 8-10 cũng tương tự như trong thuật toán Apriori. Tập hợp cuối của các luật kết hợp phân lớp trong CAR (dòng 17). Những luật còn lại sau khi cắt tỉa sẽ được giữ trong prCAR (dòng 18)

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số phương pháp tìm các luật kết hợp phân lớp trên tập mẫu học và ứng dụng (Trang 41 - 44)

Tải bản đầy đủ (PDF)

(74 trang)