Ứng dụng phân cụm

Một phần của tài liệu phương pháp khai phá dữ liệu dạng đóng và ứng dụng (Trang 27 - 70)

Trong xử lý ảnh (phân đoạn ảnh, rút gọn độ phân giải của ảnh). Phân cụm các tài liệu liên quan để dễ tìm kiếm.

Khoa học kinh tế (đặc biệt nghiên cứu tiếp thị). Phân cụm các gene và protein có cùng chức năng. Phân cụm các vùng theo lƣợng mƣa

1.10.4. Ví dụ

Hình 1.4 Phân cụm các điểm trong không gian

CHIỀU VÀ KHAI PHÁ KHỐI ĐÓNG TRONG KHÔNG GIAN 3 CHIỀU 2.1. Tổng quan khai phá tập phổ biến đóng FCP trong không gian 2 chiều

Trong phần này chúng ta sẽ giải quyết vấn đề khai phá tập phổ biến đóng (FCPs) từ bảng dữ liệu kết hợp trong không gian 2 chiều. Bảng cơ sở dữ liệu microarray thực tế thƣờng có xấp xỉ 50% các ô nhận giá trị là “1”, các ô còn lại nhận giá trị “0”.

Chúng ta sử dụng Framework, nó cho phép chúng ta khai phá tập phổ biến đóng (FCPs) từ cơ sở dữ liệu đặc một cách hiệu quả. Frame work gồm 2 phần. Phần 1, không gian khai phá đƣợc chia thành các không gian con nhỏ hơn, và mỗi không gian con đều có thể khai phá độc lập. Trong phần 2, mỗi không gian con đƣợc khai phá độc lập để trả về các tập phổ biến đóng. Nhiệm vụ chủ yếu trong phần này là lƣợc bỏ các tập FCPs thừa (là những tập đóng có thể đƣợc tạo ra từ không gian con khác) và FCPs lỗi (là những tập phổ biến đóng trong không gian con nhƣng không là tập phổ biến đóng trong không gian gốc).

2.2. Mở đầu khai phá tập phổ biến đóng FCP trong không gian 2 chiều

Chúng ta sẽ định nghĩa một vài kí hiệu sử dụng trong bài.

Cho R={r1, r2,….., rn} là 1 tập các hàng, và C={c1, c2, …., cn} là 1 tập các cột. Trong bảng cơ sở dữ liệu, mỗi hàng ri chứa 1 tập các cột, và mỗi cột ci chứa 1 tập các hàng. Và chúng ta sẽ sẽ thể hiện cơ sở dữ liệu bởi 1 bảng ma trận nhị phân O = n x m, các ô Oi,j tƣơng ứng với mối quan hệ giữa hàng i và cột j; nếu Oi,j = 1 thì hàng i chứa cột j, và ngƣợc lại Oi,j = 0 thì hàng i không chứa cột j. Trong Bảng 2.1, r3 chứa c2 và c6, kí hiệu: C(r3) = {c2, c6}; và c7 chứa r5 và r6, kí hiệu: R(c7) = {r5, r6}.

Định nghĩa:

Column support set R(C’): cho 1 tập các cột C‟ C, tập lớn nhất các hàng chứa C‟ đƣợc gọi là column support set R(C‟)  R.

Ví dụ: trong bảng 2.1, cho C‟ = {c1, c4}, ta có R(C‟) = {r4, r5, r6}, r4, r5 và r6 cùng chứa c1 và c4, và không còn hàng nào cùng chứa cả c1 và c4 nữa.

Row support set C(R’): cho 1 tập các hàng R‟ R, tập lớn nhất các cột chứa R‟ đƣợc gọi là row support set C(R‟)  C.

Ví dụ: trong bảng 2.1, cho R‟ = {r1, r2}, ta có C(R‟) = {c1, c6}, c1 và c6 cùng chứa r1 và r2, và không tồn tại cột nào khác cùng chứa cả 2 hàng này.

Support |R(C’)|: cho 1 tập các cột C‟, tổng số hàng trong dataset chứa C‟

đƣợc gọi là support của C‟, kí hiệu |R(C‟)|.

Closed Patterns (CP): cho 1 tập các cột C‟C đƣợc gọi là khối đóng (CP) nếu không tồn tại C‟‟ thỏa mãn: C‟C‟‟ và |R(C‟)|=|R(C‟)|.

Frequent closed pattern (FCP): tập các cột C‟ C đƣợc gọi là tập phổ biến đóng nếu: (1) support của tập C‟ lớn hơn ngƣỡng support nhỏ nhất; và (2) C‟ là tập đóng.

Ví dụ: cho minsup=1, tập các cột { c1, c5, c6} sẽ là tập phổ biến đóng trong bảng 2.1 khi support lớn hơn ngƣỡng minsup. Tuy nhiên {c2, c3} không là

có |R({c1, c2, c3})| = |R({c2, c3})|.

Pattern length: cho một tập phổ biến đóng, số cột chứa tập đóng đƣợc gọi là pattern length, kí hiệu: len.

Ví dụ: cho tập phổ biến đóng FCP = {c1, c2, c3}, ta có len = 3.

FCP Mining: ta có 1 bảng dataset O, vấn đề của chúng ta là tìm các tập

phổ biến đóng FCPs với ngƣỡng minsup, minlen của ngƣời sử dụng.

2.3. Tiến hành khai phá tập phổ biến đóng FCP

2.3.1. Sơ lược về quá trình khai phá tập phổ biến đóng

Cho ma trận O là dataset gốc đƣợc khai phá. Chúng ta coi O nhƣ là không gian gốc. Cho MineFCP(M) là tập các tập phổ biến đóng (FCPs) đƣợc khai phá từ không gian M. Ý tƣởng cơ bản của framework gồm 2 phần là: tạo ra các không gian con, và khai phá các không gian con.

chia thành các ma trận con (không gian con) S1, S2, S3,….., St; t1

Kí hiệu: MineFCP(O) = 1 ( ) t i MineFCP Si  

Các không gian con đƣợc chia nhỏ từ không gian gốc ban đầu, giúp chúng ta khai phá FCPs độc lập một cách hiệu quả hơn. (adsbygoogle = window.adsbygoogle || []).push({});

Phần 2, là phần khai phá các không gian con, mỗi không gian con đƣợc khai

phá để tìm ra FCPs một cách độc lập. Tuy nhiên, các FCPs đƣợc khai phá từ không gian con có thể chứa các mẫu không thỏa mãn. Có 2 trƣờng hợp xảy ra: (1) FCPs đƣợc khai phá từ không gian con có thể chứa false drops – tức là mẫu là FCP của không gian con, nhƣng không phải là FCP của không gian gốc ban đầu; (2) FCPS đƣợc khai phá từ không gian con có thể bị thừa, tức là FCP tìm đƣợc trong không gian con đang xét có thể khai phá đƣợc từ không gian con khác. (MineFCP(Si)  Mine FCP(Sj)  ).

Kĩ thuật lƣợc bớt các mẫu không thỏa mãn phải đƣợc triển khai để lƣợc bỏ các mẫu không đóng trên toàn bộ không gian gốc, và mẫu thừa (redundant FCPs). Vậy các kết quả trả về sẽ là câu trả lời chính xác.

2.3.2. Thuật toán C-Miner

Trong phần này, chúng ta sẽ tìm hiểu thuật toán C-Miner dựa vào liệt kê các hàng kết hợp (dựa vào các giá trị “1” của từng hàng).

2.3.2.1. Thuật toán phân cụm (thuật toán increamental k-mean)

Nhƣ chúng ta biết, thuật toán k-mean bắt đầu bằng cách chọn k cụm và chọn ngẫu nhiên k điểm là trung tâm của cụm, hoặc chọn phân hoạch ngẫu nhiên k cụm và tính trọng tâm của từng cụm này. Việc chọn ngẫu nhiên k điểm làm trung tâm của cụm nhƣ đã nói ở trên có thể cho ra k kết quả khác nhau tùy vào cách chọn k điểm ban đầu. Thuật toán increamental k-mean về cơ bản vẫn dựa trên thuật toán k-mean nhƣng sẽ không chọn k điểm làm trọng tâm cho k cụm,

độ méo dạng lớn nhất và tính lại trọng tâm các cụm.

Thuật toán đƣợc trình bày nhƣ sau:

Gán k=1;

Phase 1:

Bƣớc 1: Nếu k=1 chọn bất kì một điểm làm trung tâm cụm.

Nếu k>1 thêm trung tâm của cụm mới vào cụm có độ méo dạng lớn nhất

Bƣớc 2: Gán từng điểm vào cụm có trung tâm gần điểm đang xét nhất và cập nhật lại trung tâm của cụm.

Bƣớc 3: Nếu trung tâm cụm không thay đổi, thực hiện tiếp phase-2. Nếu không, thực hiện phase 1 bƣớc 2.

Phase 2: (Tăng số cụm)

Nếu k<=giá trị ấn định số cụm (do ngƣời dùng nhập vào), thực hiện phase 1 bƣớc 1.

Nếu không, Dừng lại.

Các bƣớc của thuật toán gần giống nhƣ thuật toán k-means, tuy nhiên có điểm khác biệt đó là thuật toán cần phải tính độ biến dạng của các cụm. Dựa trên độ biến dạng để chia cụm.

Tính độ biến dạng:

I=S – N(d(d(w,x)) W: trung tâm của cụm N: số objects trong cụm.

D(w,x): khoảng cách giữa trung tâm w của cụm và trung tâm của không gian euclidean x.

Một cụm có độ biến dạng lớn có nghĩa là trung tâm cụm có trị trí không thích hợp. Việc xác định các cụm đồng nghĩa với việc xác định trung tâm của cụm. Thuật toán chủ yếu tìm trung tâm cụm chính xác và xác định lại các đối tƣợng trong cụm.

Phase 1 của thuật toán k-means chỉ khác thuật toán increament k-mean ở chỗ: không xác định trƣớc k điểm mà tăng k từ 1 lên.

Điểm khác biệt thứ 2 là chọn cụm có độ biến dạng lớn để phân thành 2 cụm.

Khi ta phân 1 cụm có độ biến dạng lớn thành 2 cụm thì độ biến dạng của 2 cụm sẽ giảm. Tính lại các đối tƣợng objects cho các cụm và cập nhật lại trung tâm cụm. Sau khi trung tâm các cụm không đổi, ta qua phase và tăng k lên 1 và quay lại phase 1. Tìm cụm có độ biến dạng lớn nhất trong các cụm và tiếp tục tách cụm thành 2 cụm mới.

Thuật toán ngừng khi k bằng số cụm cần tìm.

2.3.2.2 Quá trình chia không gian khai phá

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) (adsbygoogle = window.adsbygoogle || []).push({});

đƣợ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 ,

iu 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 XL và YC. 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), liX, và cjY, 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 XL‟ . 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, t1. 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}, riR và cjC. 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 AA‟‟, 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.

2.3.2.3. Khai phá không gian con để tìm ra tập phổ biến đóng FCPs (adsbygoogle = window.adsbygoogle || []).push({});

Để tạo ra FCPs thực sự, mỗi không gian con đƣợc khai phá độc lập. Chúng ta sử dụng D-Miner (hay splitting tree) để loại đi các ô có giá trị “0” trong cơ sở dữ liệu.

Trong phần này chúng ta cần khai phá FCP f từ không gian con Si, và loại bỏ FCP lỗi và FCP thừa. Dƣới đây là 3 trƣờng hợp FCP thừa và lỗi có thể xảy ra

tập đóng toàn cục. Trƣờng hợp này xảy ra khi tồn tại 1 hàng rxR nằm ngoài không gian Si nhƣng chứa Cf (tập các cột của f). Do vậy, ở đây phải tồn tại f‟MineFCP(Sj) và ff‟. Ví dụ, f=aa‟bb‟ đƣợc tìm ra từ không gian Si=ABCD không phải là tập đóng toàn cục. và f‟=aa‟cc‟ đƣợc tìm thấy từ Sj=GBEF là tập đóng đầy đủ. Vậy chúng ta kết luận: cho f=(Rf x Cf) MineFCP(Si), Nếu tồn tại hàng rxR và rxRi (tập các hàng của Si) và cyCf, Ox,y=1, thì f sẽ bị cắt bỏ.

Trƣờng hợp 2: tập các cột của f = (Rf x Cf)  MineFCP(Si) không là tập đóng toàn cục. Cho Si = {li1, li2,….. , liu} x Ci, ở đây Ci là tập các cột và liu là các cluster-row thuộc về Si. Cho Li1, Li2, …., Liu là tập các hàng trong dataset gốc tƣơng ứng với các cluster. Giả sử lix{ li1, li2,….. , liu} sao cho Rf  Lix = , nghĩa là tồn tại cluster-row không thuộc f. Trong trƣờng hợp này sẽ tồn tại không gian con không có cluster-row đó: Sj = ({ li1, li2,….. , liu}\lix) x Cj, CiCj. Qua đó, f‟ = (R‟ x Cf‟)  MineFCP(Sj) khi Rf=Rf‟ và Cf=Cf‟. Trƣờng hợp Cf=Cf‟ sẽ đƣợc xét trong trƣờng hợp 3 bên dƣới. Nếu Cf=Cf‟ nên đƣợc cắt giảm khi nó không đóng toàn cục trong tập các cột.

Ví dụ: f=aa‟bb‟ đƣợc tìm từ Si = ABCD không phải là tập đóng toàn cục, nếu tồn tại f‟=aa‟cc‟ có thể khai phá đƣợc từ Sj = EFGH.

Trƣờng hợp 3: fMineFCP(Si) là thừa, và fMineFCP(Sj). Theo điều

Một phần của tài liệu phương pháp khai phá dữ liệu dạng đóng và ứng dụng (Trang 27 - 70)