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

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 31 - 70)

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.

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

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)

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

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

Để 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 kiện tiên quyết trong trƣờng hợp 2 bên trên, nếu Cf=Cf‟, thì f=f‟. Vì vậy, f là thừa và chúng ta có thể cắt bỏ. Ví dụ, f=aa‟bb‟ có thể đƣợc tìm ra trong cả 2 không gian con Si = ABCD và Sj = EFGH.

Qua 3 trƣờng hợp bên trên, chúng ta có thể đảm bảo rằng kết quả chứa tất cả các câu trả lời đúng.

Định nghĩa Compact Row Set (tập các cột liên kết với nhau): Cho 1

các không gian con liên kết với nhau Si = {li1, li2, ….., liu} x Ci, ở đây Ci là tập các cột và lix là cluster-row thuộc về Si, chúng ta định nghĩa Li1, Li2, ….., Liu là

tìm ra từ không gian con Si, chúng ta sẽ lƣợc bỏ FCPs thừa hoặc FCPs lỗi: dựa vào bổ đề 2 (bên dƣới).

Bổ đề 2: Cho ma trận O là không gian gốc. Cho S1, S2, …., St là các không gian con đƣợc sinh ra trong phần 1 của thuật toán C-Miner. Cho Si = Ri x Ci và cho f = (Rf x Cf)MineFCP(Si). Vậy f có thể cắt bỏ nếu (a) Lix Ri và RfLix=; hoặc (b) ry(R\Ri) và czCf, Oy, z = 1.

Chứng minh: Cho fMineFCP(Si). Nếu (a) Rf  (Ri\Lix). Trƣờng hợp này sẽ tồn tại không gian con khác Sj = (Ri\Lix) x Cj điều kiện CiCj, fSj. Suy ra f ‟ = Rf x Cf‟ = MineFCP(Sj). Nếu Cf=Cf‟, f=f ‟, thì f có thể đƣợc cắt bỏ (trƣờng hợp thừa); nếu Cf Cf‟, f có thể đƣợc cắt bỏ bởi vì tập các cột không đóng. Nếu (b) f‟ = R(Cf) x Cf điều kiện ryR(Cf). Từ đó ta có f = Rf x Cf 

MineFCP(Si), RfR(Cf), do vậy f có thể cắt bỏ bởi vì tập các hàng không đóng.

Bổ đề 3: Cho ma trận O là không gian gốc. Cho S1, S2, …., St là các không gian con đƣợc sinh ra trong phần 1 của thuật toán C-Miner. Cho P1, P2, …., Pt là tập các FCPs đƣợc cắt bỏ trong phần 2 của thuật toán C-Miner. Suy ra, MineFCP(Si) – Pi  MineFCP(O).

Chứng minh: giả sử fMineFCP(Si) – Pi và fMineFCP(O). Vậy fMineFCP(O), ở đây sẽ tồn tại không gian con Sj và tồn tại f ‟ = Rf‟ x Cf‟MineFCP(Sj) và f ‟MineFCP(O), và có thể tồn tại các trƣờng hợp: (1) Rf = Rf‟ và CfCf‟, hoặc (2) RfRf‟ và Cf=Cf‟. Suy ra f không bị cắt bỏ khi cả 2 điều kiện (a), (b) trong bổ đề 2 ở trên đều vi phạm. Vi phạm điều kiện (a): chỉ ra rằng LixRi, RfLix , và LjxRj, Rf‟Ljx . Vi phạm điều kiện (b) chỉ ra rằng Rf = R(Cf) và Rf‟ = R(Cf‟). Giả sử (1) Rf = Rf‟ và Cf Cf‟ là thỏa mãn. Từ Rf = Rf‟, chúng ta biết rằng Si = Sj (vi phạm điều kiện (a)). Vì Cf Cf‟, f ‟ thay thế cho f sẽ đƣợc tìm thấy trong không gian Si, mâu thuẫn với giả thiết là fMineFCP(Si) – Pi. Giả sử (2) Rf Rf‟ và Cf = Cf‟ là thỏa mãn. Từ Cf = ‟, chúng ta biết rằng R ‟) = R‟ (vi phạm điều kiện (b)), mâu

MineFCP(Si) – Pi  MineFCP(O).

Định lý: Cho ma trận O là không gian gốc. Cho S1, S2, …., St là các không gian con đƣợc sinh ra trong phần 1 của thuật toán C-Miner. Cho P1, P2, …., Pt là tập các FCPs đƣợc cắt bỏ trong phần 2 của thuật toán C-Miner. Vậy MineFCP(O) = ti1(MineFCP Si( )Pi).

Trong ví dụ của chúng ta, sau khi thực hiện xong cả 2 phần của thuật toán C-Miner ta đƣợc kết quả FCPs nhƣ bảng Bảng 2.5 bên dƣới:

Bảng 2.5 FCP (minsup=3, minle=2)

2.4. Tổng quan khai phá khối phổ biến đóng FCC trong không gian 3 chiều

Thuật toán khai phá tập phổ biến đóng FCP chỉ giới hạn trong không gian 2 chiều. Nhƣng việc khai phá các mối quan hệ của các mẫu gene theo thời gian lại có giá trị hơn. Thậm trí ngay cả trong việc phân tích thị trƣờng kinh doanh, chúng ta không chỉ có thông tin về khách hàng theo 1 chiều; mà bảng dữ liệu về các mặt hàng kinh doanh đƣợc lƣu trữ theo các vùng miền qua các thời điểm (các mùa) khác nhau. Xu hƣớng này thúc đẩy chúng ta phải mở rộng việc khai phá tập thƣờng xuyên đóng trong không gian 2 chiều thành khai phá tập thƣờng xuyên đóng trong không gian 3 chiều. Chúng ta coi tập thƣờng xuyên đóng trong không gian 3 chiều là khối đóng. Trong phần này chúng ta sẽ thiết kế thuật

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 31 - 70)