Quá trình chia không gian khai phá trong thuật toán C-Miner bao gồm 3 bƣớc:
Bƣớc 1, các hàng tƣơng tự nhau trong dataset gốc (matrix nhị phân O)
đƣợc nhóm lại cùng nhau bằng cách phân cụm. Thuật toán phân cụm có thể áp dụng ở đây. Thuật toán phân cụm sẽ thực hiện chia đôi k-1 lần. Mỗi lần lặp (hoặc đệ qui) sẽ có 1 ma trận đƣợc chia thành 2 nhóm, sau đó 1 trong những nhóm còn lại sẽ đƣợc lựa chọn và chia đôi tiếp. Quá trình sử lý tiếp tục cho đến khi tìm đủ số cụm mong muốn. Phƣơng pháp phân cụm dựa trên hàm lọc
1 ,
i u v Ri
, Ri là tập các hàng đƣợc gán cho cụm thứ i; v và u đại diện cho 2 hàng u, v; và sim(u,v) là các hàng tƣơng tự nhau. Cụm đƣợc lựa chọn để chia nhỏ hơn đƣợc kiểm soát bởi hàm lọc trên. (sim(u,v): đối tƣợng u và đối tƣợng v có tính chất tƣơng tự nhau).
Bƣớc 2, Các hàng trong cùng 1 cụm đƣợc kết hợp với nhau tạo thành 1 hàng
kết hợp mới, gọi là cluster-row. Cho G={r1,r2,…., rq} là tập các hàng nằm trong cụm tƣơng ứng D. Cụm này có thể đƣợc thể hiện bởi ma trận D = q x m. cluster- row của D: L = {l1, l2, …., lm}, đƣợc kết hợp theo luật lj = q1 ij
i d
, j=1, 2, 3,..
m. Giá trị của các ô trong cluster-row bằng “0” khi ô đó đƣợc kết hợp bởi tất cả các ô có giá trị bằng “0”; trƣờng hợp còn lại nó sẽ nhận giá trị bằng “1”. Sau khi phân cụm, từ ma trận O ban đầu ta tạo ra đƣợc ma trận mới O‟ = l x m, l là số các cụm và l n.
Ví dụ: từ ma trận O ban đầu, sau khi phân cụm ta đƣợc ma trận mới O‟ nhƣ sau:
Bảng 2.2 Ma trận rút gọn O’
Bƣớc 3, thuật toán C-Miner đƣợc áp dụng để liệt kê ra hàng đặc dựa vào
ma trận O‟ đặc để chia không gian O thành các không gian con. Trong thuật toán C-Miner, độ quan trọng (the weight) của mỗi cluster-row đƣợc đo bằng tổng số các hàng tạo nên nó. Vì vậy, trong suốt quá trình liệt kê cluster-row, hệ số support của không gian con đƣợc chỉ ra bởi tổng số weight của các cluster- rows tƣơng ứng. Chúng ta chỉ ra các không gian con đƣợc sinh ra trong bƣớc này (dựa trên O‟) gọi là compact subspace (CS). Trong khi thuật toán liệt kê các
hoặc các ô có giá trị “0” của hàng. Chúng ta sử dụng chiến lƣợc chia cây theo chiều sâu (depth-first tree splitting), nó làm việc hiệu quả trong bảng dữ liệu đặc.
Bảng 2.3 Lát cắt
Bảng 2.4 Kết quả các không gian rút gọn và không gian con (minsup=3, minlen=2)
Cách tạo ra các cutter: chúng ta nhóm tất cả các ô có giá trị “0” trong mỗi cluster-row lại, và định nghĩa mỗi group là 1 cutter C(X,Y) với XL và YC. Vì vậy, tổng số các cutter bằng tổng số hàng có chứa ít nhất 1 ô có giá trị “0”. Trong cutter C(X,Y), liX, và cjY, O‟i,j = 0 và ck(C\Y), O‟i,k= 1. Trong Bảng 2.3 là 3 cutter đƣợc tạo ra từ matrix O‟ trong Bảng 2.2.
Quá trình splitting cây có sử dụng ma trận O‟(X,Y) toàn vẹn (coi ma trận O‟ là gốc) và lặp để splitting O‟ sử dụng các cutter, và kết quả là tất cả các ô trong mỗi không gian con (CS) đều có giá trị bằng “1”. Một cutter C(X,Y) đƣợc sử dụng để cắt một node (L‟,C‟) nếu XL‟ . Chúng ta định nghĩa con bên trái của node là (L‟\X, C‟) và con bên phải của node là (L‟,C‟\Y). Kết quả tạo ra các CSs thể hiện đầy đủ các cluster-rows đáp ứng đƣợc các ràng buộc support và pattern length. Chỉ những node không đáp ứng đƣợc minsup và minlen bị loại bỏ. Vậy, những thông tin không có giá trị cho việc khai phá FCP sẽ bị loại
tổng các weight của các cluster-rows.
Cho minsup=3 và minlen=2. Ta sẽ có các CSs đƣợc tạo ra nhƣ sau:
Hình 2.2 Cây phân chia sử dụng lát cắt.
Để các cutter làm việc hiệu quả, thì chúng ta sẽ áp dụng các cutters có nhiều ô có giá trị “0” trƣớc. Nhƣ vậy kết quả sẽ tạo ra cây ngắn hơn (và quá trình xử lý sẽ hiệu quả hơn).
Cuối cùng, với mỗi không gian con (CS), từ các cluster-rows của nó chúng ta sẽ tìm ra các hàng gốc. Những hàng trong O gốc này có thể có ô chứa giá trị “0”. Bây giờ, mỗi không gian con có thể khai phá độc lập để tìm ra các FCPs của không gian gốc. Ví dụ: không gian con chúng ta tìm đƣợc trong Bảng 4 cột 2 đến cột 5.
Bổ đề 1:
Cho không gian gốc O. Các không gian con đƣợc tạo ra theo phần 1 của thuật toán C-Miner, giả sử là S1, S2, ……, Sn, t1. Thì
MineFCP(O) ( )
t
MineFCP Si
Chúng ta thấy mọi FCP có thể khai phá từ O thì cũng có thể khai phá từ không gian con. Một FCP bất kì thuộc O, đƣợc biểu diễn: A = {r1, r2, ……….., ru} x {c1, c2, ……., cv}, riR và cjC. Rõ ràng với i,j thì Oi,j = 1. Cho các cluster C1, C2, ……, Cq chứa các hàng r1, r2,…., ru; q<u. Cho l1, l2, …., lq là các cluster-rows thuộc cluster tƣơng ứng. Sau khi giản lƣợc các ô có giá trị “0” chúng ta đƣợc O‟(li,cj) =1. Do đó, bằng cách liệt kê các cluster-row trong O‟, không gian A‟ = { l1, l2, …., lq} x { c1, c2, ……., cv , cv+1, ……., cm } đƣợc tạo ra. Chúng ta liệt kê đầy đủ các cluster-rows sử dụng splitting-tree, và chỉ các không gian không thỏa mãn bị lƣợc bỏ. Sau đó từ A‟ ta tìm đƣợc A‟‟ = {r1, r1‟, r1‟‟, ….., ru, ru‟} x {c1, …., cv, cv+1, …., cm}, r1, r1‟, r1‟‟ là các hàng thuộc cluster 1. Rõ ràng AA‟‟, Vậy A = {r1, r2, ……….., ru} x {c1, c2, ……., cv} là FCP, nó sẽ đƣợc tìm ra bởi phần 2 của thuật toán C-Miner từ không gian A‟‟ = {r1, r1‟, r1‟‟, ….., ru, ru‟} x {c1, …., cv, cv+1, …., cm}. Vậy bổ đề 1 luôn đúng.