THUẬT TOÁN PHÂN LỚP DỮ LIỆU

Một phần của tài liệu Phát triển thuật toán khai phá luật kết hợp dựa vào sự phân lớp dữ liệu (Trang 42 - 45)

CHƯƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU

2.2 THUẬT TOÁN PHÂN LỚP DỮ LIỆU

2.2.1 Mơ tả bài tốn

Đầu vào: CSDL giao tác T = {t1, t2, …, tm} trên tập mục dữ liệu I = {x1, x2, …, xn}. Đầu ra: CSDL giao tác có trọng số được sắp rút gọn trên I: T = {t’1, t’2, …, t’k}.

2.2.2 Xử lý

Quá trình phân lớp bao gồm hai bước:

a. Bước 1: Duyệt CSDL giao tác T lần thứ nhất để tính độ hỗ trợ cho mỗi

mục dữ liệu.

Ta được: wj = Supp(xij) với j=1..n.

Sắp xếp wj thành một dãy có thứ tự giảm dần: w1 ≥ w2 ≥… ≥ wn

b. Bước 2: Duyệt CSDL giao tác T lần thứ hai, sắp xếp các mục dữ liệu

trong giao tác theo thứ tự giảm dần của độ hỗ trợ T’.

Với t = (xi1, xi2, …, xik) ∈ T’ , có Supp((xi1) ≥ Supp((xi2) ≥ … ≥Supp((xik)

c. Bước 3: Tạo cây trọng số W_Tree.

Hình 2.112Cây trọng số W_Tree

xi1 xi2 xin

t11 t12 t1r x11|w11 x21|w21 xk1|wk1 x12|w12 x22|w22 xs2|ws2 xr1|wr1 xr1|wr2 xp1|wrp Root

Cây W_Tree là một cây có nhiều thành phần.

Các nút cấp 1: Xâu các nút, mỗi nút chứa mục dữ liệu xij thỏa:

Supp((xi1) ≥ Supp((xi2) ≥ … ≥ Supp((xin) Pt_1=^Node_1; Node_1=Record Inf:Item; Right:Pt_1; Left:Pt_2; End;

Mỗi nút xij có con trỏ trỏ đến các nút cấp 2, là các lớp tương đương của giao tác bắt đầu là xij.

Các nút cấp 2: Xâu các nút, mỗi nút chứa một lớp tương đương [tij]≈. Tại một

nút cấp hai có một con trỏ trỏ đến một xâu các nút cấp 3, là các mục dữ liệu và trọng số của nó trong lớp tương đương.

Pt_2=^Node_2; Node_2=Record Inf:Transaction; Right:Pt_2; Left:Pt_3; End;

Node_3=Record

ItemName:Transaction; ItemCount:Integer; Next:Pt_3;

End;

Trong cây trên có nghĩa là:

t11= ((x11,w11), (x21,w21), …, (xk1,wk1)) thỏa w11 ≥ w21 ≥ … ≥ wk1

Để tạo cây, ta duyệt qua cơ sở dữ liệu T’, với mỗi t ∈ T’, gọi thủ tục

Insert_Tree(t,Root) chèn giao tác t vào cây.

Thủ tục Insert_Tree(t, Root) làm việc như sau:

- Lấy xij là mục dữ liệu đầu tiên của t, duyệt trên các nút cấp 1 của cây đến nút xij, - Nếu nút xij chưa có nút con cấp 2 thì tạo nút P, là nút con cấp 2 của nút xij, và gán P^.Inf:=t. Gọi thủ tục InsertItem_1(t, P)

- Ngược lại, nút xij có nút con P, gọi thủ tục InsertItem_2(t, P);.

Thủ tục InsertItem_1(t, P) thực hiện như sau: Tạo một xâu các nút Nk con

cấp 3 của P, theo thứ tự xuất hiện của các mục dữ liệu trong t, với xij ∈ t, gán

Nk.ItemName:=xij và Nk.ItemCount:=1.

Thủ tục InsertItem_2(t, P) thực hiện như sau:

- Nếu P^.Inf ⊆ t thì tăng các ItemCount trong các nút con cấp 3 của P có

ItemName là một mục dữ liệu của t lên 1 đơn vị. Tạo các nút Nk tiếp theo cho các mục dữ liệu xij ∈ t và xij∉P^.Inf, gán Nk.ItemName:=xij và Nk.ItemCount:=1.

- Nếu t ⊆ P^.Inf thì tăng các ItemCount trong các nút con cấp 3 của P có

ItemName là một mục dữ liệu của t lên 1 đơn vị.

- Nếu không thuộc hai trường hợp trên, duyệt trên các nút phải của P để tìm nút P1 có P1^.Inf ⊆ t hay t ⊆ P1^.Inf. Nếu có thì gọi InsertItem_2(t, P1),

ngược lại tạo tiếp nút P1 là nút con cấp 2 sau P, Gọi thủ tục InsertItem_1(t, P1).

d. Bước 4: Chuyển dữ liệu từ cây W_Tree ra tập dữ liệu: Duyệt qua cây, ứng

với mỗi tij, lưu tij ra file kết quả.

Một phần của tài liệu Phát triển thuật toán khai phá luật kết hợp dựa vào sự phân lớp dữ liệu (Trang 42 - 45)

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

(63 trang)