Trong phần này, chúng ta nghiên cứu thuật toán RSM (Representative Slice Mining) để khai phá FCCs. Thuật toán dựa trên ý tƣởng không gian 3 chiều O = H x R x C có thể đƣợc đại diện nhƣ O = H x SliceRxC. Do vậy, một chiều nào đó nhƣ tập H có thể đƣợc liệt kê đầu tiên, và liệt kê các slice tƣơng ứng với các tập con của H. Sau đó trong mỗi slice, thuật toán khai phá FCP trong không gian 2 chiều có thể đƣợc áp dụng trên 2 chiều còn lại nhƣ R và C. Cuối cùng, chúng ta tiến hành lƣợc bỏ các khối không đóng dựa vào chiều H đƣợc liệt kê và các FCP tìm qua thuật toán khai phá tập phổ biến đóng trong không gian 2 chiều. Dựa trên ý tƣởng này thuật toán RSM đƣợc chia thành 3 phần (trình bày ở bảng “Algorithm 1”).
Phần 1: Các dàn đại diện đƣợc tạo ra dựa trên sự liệt kê theo 1 chiều và sự kết hợp của các slices.
khám phá ra FCPs của mỗi dàn đại diện.
Phần 3: chiến lƣợc post-pruning đƣợc áp dụng để loại bỏ các FCCs không đóng theo chiều liệt kê.
Algorithm 1: RSM algorithm
(1): Biến toàn cục: H tập các chiều cao, R tập các hàng, C tập các cột, minH, minR, minC. là tập con các chiều cao, là tập con các slices đại diện, là
tập phổ biến đóng FCPs trong không gian 2 chiều.
(2): Input: Ma trận O trong không gian 3 chiều với l chiều cao, n hàng, m cột. (3): Output: là tập các khối đóng.
(4): Bƣớc 1: tạo ra các slice đại diện. (5): ;
(6): While |EnumerateSubset(H)| minH do (7): EnumerateSubset(H);
(8): end while
(9): SliceCombine( );
(10): Phase 2: tạo ra tập phổ biến đóng trong không gian 2 chiều (11): MineFCP( );
(12): Phase 3: Post-pruning (13): PostPruning( )
Chú thích:
EnumerateSubset(H) là hàm liệt kê các tập con của chiều H. (đầu vào: tập các chiều cao H. Đầu ra: các tập con của H thỏa mãn minH gọi là H‟).
PostPruning(): là hàm loại bỏ những FCCs bị lỗi (Đầu vào: các FCPs tìm đƣợc từ thuật toán C-Miner, và các tập H‟ tƣơng ứng. Đầu ra: các FCCs thỏa mãn minH, minR, minC).
Bƣớc 1, đầu tiên chúng ta xét tới chiều cao H, chúng ta sẽ liệt kê tất cả các tập con của tập H (gọi là H‟) với điều kiện |H‟|minH. Cho bảng cơ sở dữ liệu Bảng6 làm ví dụ, cho minH = 2, chúng ta sẽ có đƣợc các tập con {h1, h2}, {h1, h2, h3}, {h1, h3}, và {h2, h3}.
Tiếp theo, các slices thuộc cùng 1 tập con của H sẽ kết hợp với nhau để tạo thành dàn đại diện (RS). Cho bảng dữ liệu trong không gian 3 chiều O = H x R x C = {Ok,i,j} với k[1, l], i[1, n] và j[1, m], và cho H‟ = {h1, ……., hx} là tập con. Cho dàn đại diện (RS) thuộc H‟ có thể đƣợc biểu diễn dƣới dạng ma trận n x m với O‟ijRS, O‟i,j =
x
k 1Ok,i,j với i[1, n] và j[1, m]. Giá trị của các ô trong dàn đại diện là “1” khi tất cả các ô tạo nên nó có giá trị là “1”; ngƣợc lại, các ô còn lại có giá trị là “0”. Và chúng ta nói rằng các chiều cao trong H‟ thuộc về slice đại diện (RS) của H‟. Cột 2 trong Bảng 2.7 thể hiện các slices đại diện cho ví dụ trên.
Bƣớc 2: thuật toán khai phá tập phổ biến đóng FCP trong không gian 2 chiều sẽ đƣợc áp dụng trên mỗi slice đại diện để khai phá tập đóng dựa trên 2 chiều R và C. Sau khi áp dụng vào ví dụ trong Bảng 2.6 chúng ta sẽ thu đƣợc kết quả là FCPs nhƣ trong cột 3 của Bảng 2.7.
2.6.3. 3D FCC generation by post-pruning (Chiến lược lược bỏ các khối được sinh ra không thỏa mãn)
Bƣớc 3, tập thƣờng xuyên đƣợc tạo ra bằng việc kết hợp tập phổ biến đóng trong không gian 2 chiều với tập chiều cao thuộc về dàn đại diện đó. Tuy nhiên, không phải tất cả các khối phổ biến trong không gian 3 chiều này đều là khối phổ biến đóng FCCs. Một số khối đó không đóng trong tập chiều cao và cần phải đƣợc lƣợc bỏ. Ví dụ, trong Bảng 2.7, sau khi kết hợp tập phổ biến đóng FCP “r1r2:c1c2c3, 2:3” với tập các chiều cao thuộc về slice đó “h2, h3”, sẽ tạo ra tập phổ biến trong không gian 3 chiều “h2h3:r1r3:c1c2c3, 2:2:3”. Tập phổ biến trong không gian 3 chiều này không phải là một khối phổ biến đóng FCC, vì nó không đóng trong tập chiều cao và có tập đóng superset “h1h2h3:r1r3:c1c2c3, 3:2:3”. Khối đóng này ko chỉ chứa mặt cắt h2 và mặt cắt h3 mà nó còn chứa mặt cắt h1.
Để xóa tất cả nhƣng tập phổ thông không đóng trong không gian 3 chiều, chúng ta sử dụng chiến lƣợc post-pruning. Nếu tập phổ biến đóng FCP trong không gian 2 chiều đƣợc chứa trong 1 mặt cắt chiều cao khác ngoài dàn chiều cao thuộc tập con H‟ xét ở trên, thì nó sẽ không phải là tập đóng, vì vậy nó sẽ bị lƣợc bỏ.
Bổ đề: chiến lƣợc Post-pruning: Cho O‟ = H‟ x R‟ x C‟ là tập phổ biến
trong không gian 3 chiều và H là tập chiều cao đầy đủ. Nếu H‟‟(H\H‟) với
hkH‟‟, riR‟, cjC‟, Ok,i,j = 1, O‟ không đóng đối với tập chiều cao có thể bị loại bỏ; trƣờng hợp còn lại O‟ là thỏa mãn.
Vì vậy, ở đây sẽ tồn tại Os = ((H‟‟H‟)x R‟ x C‟) mà riR‟, cjC‟, Ok,i,j = 1, vậy O‟ = {H‟ x R‟ x C‟) không đóng theo tập chiều cao. Vậy O‟ nên đƣợc lƣợc bỏ.
Thuật toán RSM Post Pruning:
(1) Input: 3D pattern Set
(2) Output: 3D FCC Set (3) For a =1 upto | | do (4) (H‟, R‟, C‟) [a]; (5) flag1 1; (6) for k = 1 upto |H| do (7) If hk(H\H‟) then (8) flag2 1;
(9) for i=1 upto |R| do
(10) if riR‟ then (11) for j = 1 upto |C| do (12) if cjC‟ và Ok,i,j = 0 then (13) flag2 0; (14) break; (15) end if (16) end for (17) end if (18) if flag2 = 0 then
(20) end if (21) end for (22) if flag1 = 1 then (23) flag1 0 (24) break; (25) end if (26) end if (27) end for (28) if flag1 = 0 then (29) \ [a] (30) end if (31) end for (32) return ; 2.6.4. Tính đúng đắn
Định lý: Cho FCCs là tập các khối phổ biến đóng trong bảng cơ sở dữ
liệu 3 chiều. Cho là khối phổ biến đóng có đƣợc sau khi chạy thuật toán RSM trong cơ sở dữ liệu. Vậy FCCs = . Mặt khác, RSM khi chạy chỉ tạo ra tất cả các FCCs đúng.
Chứng minh: Sử dụng thuật toán MineFCP(RS) để tìm ra các FCP trên
các dàn đại diện (slice RS).
Trƣớc hết, chúng ta sẽ chứng minh FCCs . Cho là tập thƣờng xuyên không đóng trong không gian 3 chiều bị lƣợc bỏ bởi chiến lƣợc post- pruning. Cho FCC O‟ = H‟ x R‟ x C‟, trong trƣờng hợp này sẽ tồn tại slice đại
trong H‟, (R‟ x C‟) MineFCP(RSH ‟). Vì vậy, O‟( ) . Nhƣ đã chứng minh ở bổ đề về chiến lƣợc Post-Pruning, chiến lƣợc này lƣợc bỏ các tập không đóng trong không gian 3 chiều, vì vậy O‟ , mà O‟ . Suy ra FCCs .
Tiếp theo, chúng ta sẽ chứng minh FCCs bằng phƣơng pháp phản chứng. Giả sử trong không gian 3 chiều tồn tại tập O‟ nhƣng O‟FCCs. Vậy O‟ phải không thỏa mãn “ngƣỡng support” hoặc O‟ không đóng. Giả sử O‟ = H‟ x R‟ x C‟ không thỏa mãn ngƣỡng minH, suy ra RSH ‟ sẽ bị lƣợc bỏ trong suốt quá trình liệt kê tập con, và O‟ sẽ đƣợc tạo ra. Giả sử O‟ không thỏa mãn ngƣỡng minR và minC, suy ra (R‟ x C‟) của O‟ sẽ bị lƣợc bỏ trong suốt quá trình tạo ra tập phổ biến đóng FCP trong không gian 2 chiều, và O‟ sẽ bị lƣợc bỏ. Trái với điều giả sử ở trên. Vậy, O‟ thỏa rằng buộc ngƣỡng support nhƣng không đóng.
Giả sử rằng O‟ không đóng trong tập H, suy ra sẽ tồn tại tập đóng FCC O‟‟ = (H‟ x Ha) x R‟ x C‟ với hkHa, cjC‟, Ok,i,j = 1, Ha(H\H‟). Quá trình xử lý post-pruning sẽ đƣợc thực hiện ở đây, nên O‟ sẽ bị loại bỏ, trái với điều giả sử (O‟ ). Kết luận: O‟ đóng trong tập chiều cao H.
Giả sử rằng O‟ không đóng trong tập R, suy ra sẽ tồn tại FCC đóng O‟‟ = H‟ x (R‟Ra) x C‟ với hkH‟, ri(R‟Ra), cjC‟, Ok,i,j = 1, Ra(R\Ra). Suy ra ((R‟Ra) x C‟) RSH ‟. Vậy (R‟Ra) x C‟) MineFCP(RSH‟) và R‟ x C‟ đƣợc lƣợc bỏ bởi thuật toán FCP_Mining trong không gian 2 chiều, vì nó không đóng trong tập các hàng. Suy ra O‟ không đƣợc tạo ra, trái với giải thiết O‟ . Kết luận, O‟ đóng trong tập R. Tƣơng tự ta chứng minh đƣợc O‟ cũng đóng trong tập các cột C.
Kết luận cuối cùng, O‟ là tập đóng và thỏa mãn ràng buộc “ngƣỡng support”. Vậy O‟FCCs.
3.1. Cài đặt thuật toán trong không gian 2 chiều
Chƣơng trình demo C-Miner có 4 class tƣơng ứng với 4 bƣớc của giải thuật C-Miner.
Ví dụ: cho không gian gốc O(n x m)
Bƣớc 1: (class first.java)
Class này sẽ chia không gian gốc O thành các cluster (số cluster do
ngƣời dùng nhập, và các hàng trong cluster có số ô nhận giá trị “1” là tƣơng tự nhau).
Kết quả sau khi thực hiện class first.java:
Bƣớc 2: (class second.java)
Các hàng trong cùng cụm đƣợc kết hợp với nhau (theo phép hợp) để tạo thành hàng mới đặc trƣng cho cụm.
Kết quả sau khi class second.java thực hiện:
Nhiệm vụ chính của Class third.java là tạo ra các không gian con (sub_spaces).
Kết quả sau khi class third.java thực hiện:
Sau khi dùng cutter loại bỏ các cell có giá trị “0” trong không gian O‟
Từ các cluster-row set ta kết hợp với không gian gốc O để tìm ra các không gian con:
Bƣớc 4 là bƣớc cuối cùng của thuật toán C-Miner, Bƣớc này chúng ta sẽ thực hiện 2 nhiệm vụ: (1) tạo các cutter và dùng các cutter để loại bỏ các ô có giá trị “0” trong không gian con; (2) chúng ta loại bỏ các lá tạo ra từ bƣớc 1 không thỏa mãn để tìm ra các lá thỏa mãn là tập phổ biến đóng (FCPs).
Kết quả sau khi class _finally.java thực hiện:
Dùng các cutter để loại bỏ các ô có giá trị “0” trong không gian con:
Các FCPs tìm đƣợc sau khi loại bỏ các các node không thỏa mãn (có 2 trƣờng hợp bị loại bỏ: (a) redundancy và (b) false drops):
3.2. Cài đặt ứng dụng trong không gian 2 chiều
Mô phỏng bài toán: 1 cửa hàng nƣớc giả khát sau 1 thời gian bán hàng, muốn cải tiến phƣơng thức bán hàng để nâng cao thị yếu cho khách, và các mặt hàng có thể bán chạy hơn. Chúng ta sẽ đƣa ra giải pháp: tìm những mặt hàng hay đƣợc bán cùng nhau nhất để nhập hàng; khi bày hàng, hoặc ghi danh sách các món trong hóa đơn thì những mặt hàng hay đƣợc tiêu dùng cùng nhau sẽ đƣợc xếp gần nhau nhằm gợi ý cho khách mua. (nhằm thay thế cho cách gợi ý thông qua giao tiếp truyền thống làm cho khách hàng cảm thấy không thoải mái).
Bảng Item: lƣu lại các món ăn của 1 nhà hàng. Order: lƣu lại các đơn hàng
Order_Item: lƣu lại các món ăn đƣợc gọi theo từng đơn hàng.
3.2.2. Các bước thực hiện
Bƣớc 1: Đƣa cơ sở dữ liệu thực về dạng ma trận nhị phân O(n x m)
Với các hàng tƣơng ứng là các món ăn, các cột là các hóa đơn tƣơng ứng. Nếu hóa đơn j chứa món ăn i thì Oi,j = 1.
Bƣớc 2: Dùng thuật toán C-Miner để tìm ra các tập phổ biến đóng
ngƣời dùng.
Ta so sánh giá trị các hàng và các cột trong tập phổ biến đóng (ở bƣớc 3) với giá trị tƣơng ứng trong mảng item[] và mảng order[] (mảng lƣu lại các giá trị món ăn, và hóa đơn tƣơng ứng với các hàng và các cột) để tìm ra kết quả trả về cho ngƣời dùng.
Từ kết quả này nhà hàng có thể quyết có định hƣớng tốt hơn trong kinh doanh, ví dụ khi ghi thực đơn, gợi ý cho khách khi mua hàng, hoặc xếp trên quầy giới thiệu sản phẩm những mặt hàng hay mua cùng nhau thì xếp gần nhau
Cài đặt thuật toán trong không gian 3 chiều gồm 3 phần:
1, Chia không gian gốc thành các lát cắt. (lấy 1 chiều làm chiều cơ sở để chia, liệt kê tất cả các tập con các phần tử của chiều cơ sở có thể xảy ra, tạo ra các lát cắt đại diện cho các tập con).
2, Dùng thuật toán C-Miner để khai phá các tập phổ biến đóng FCPs trong không gian 2 chiều (lát cắt).
3, Kết hợp giữa các FCP và tập con các phần tử của chiều cơ sở tƣơng ứng ta đƣợc khối có thể là FCC. Dùng bƣớc loại bỏ cuối cùng (Post-pruning) để tìm ra các khối thỏa mãn là khối phổ biến đóng.
Ví dụ: cho cơ sở dữ liệu nhƣ sau. Chúng ta sẽ xem các class trong chƣơng trình cài đặt sẽ cho ra kết quả nhƣ thế nào?
sub_Set có nhiệm vụ liệt các tập con có thể xảy ra thỏa mãn minH, để phục vụ cho việc tạo các dàn.
Kết quả sau khi lớp sub_Set thực hiện:
Bƣớc 2: Kết quả của bƣớc 1 thu đƣợc 4 tập con, suy ra ta có thể tạo ra
4 mặt cắt tƣơng ứng (class Representative_slice_generation.java thực hiện). 4 mặt cắt sẽ lần lƣợt đƣợc tạo ra; các dàn lần lƣợt đƣợc áp dụng thuật toán C- Miner để khai phá tập đóng FCPs. Kết quả FCPs đƣợc lƣu tổng hợp lại, chờ đến bƣớc loại bỏ cuối cùng (post-pruning).
từ 4 mặt cắt, chúng ta có đƣợc 9 FCPs. Tại đây lớp Post_pruning đƣợc thực hiện để loại bỏ những khối không phải là khối đóng. Ta sẽ thu đƣợc các khối FCCs thỏa mãn minH, minR, và minC.
Mô phỏng bài toán: Có 1 chuỗi các cửa hàng bán lẻ, giám đốc cần xác định những mặt hàng đƣợc bán cùng nhau trong các cửa hàng, theo các mùa để đầu tƣ cho phù hợp. Thuật toán tìm khối đóng trong không gian 3 chiều sẽ giúp chúng ta tìm ra lời giải cho bài toán này.
3.4.1. Cơ sở dữ liệu
Item: bảng lƣu các sản phẩm
Address: bảng lƣu địa chỉ các cửa hàng Season: bảng lƣu các mùa trong năm
Address_Item_Season: lƣu các sản phẩm đƣợc bán trong các hóa đơn theo mùa
3.4.2. Các bước thực hiện
Bƣớc 1: Chúng ta phải mã hóa dữ liệu để phù hợp với đầu vào của thuật toán khai phá tập đóng trong không gian 3 chiều RSM. Đấy chính là bƣớc tích hợp dữ liệu, làm sạch dữ liệu, và chuyển đổi dữ liệu cho phù hợp với bộ máy khai phá.
Kết quả sau khi mã hóa cơ sở dữ liệu:
Ma trận sau khi mã hóa cơ sở dữ liệu:
Chúng ta sẽ lấy chiều cao H chính là chiều các mùa làm chiều cơ sở để liệt kê các tập con để tạo ra các lát cắt.
Trong cơ sở dữ liệu thử nghiệm có 11 lát cắt, nhƣng chỉ có 1 lát cắt của subSet chứa h0 và h1 (mùa xuân và mùa hè) tìm đƣợc tập phổ biến đóng.
Sau khi dùng lƣợc bỏ các khối không thỏa mãn là khối đóng (bằng class post-pruning) ta thu đƣợc khối đóng FCC thỏa mãn minH, minR, và minC.
Từ khối khối phổ biến đóng thu đƣợc từ thuật toán khai thác khối phổ biến đóng trong không gian 3 chiều, ta mã hóa ngƣợc trở lại để trả về kết quả có thể hiểu đƣợc cho ngƣời dùng:
Từ kết quả thu đƣợc, các nhà quản lý sẽ có những kế hoạch, chiến lƣợc để tác động lại quá trình kinh doanh. Ví dụ: biết đƣợc thị hiếu khách hàng, nhà kinh doanh sẽ có hƣớng đầu tƣ tốt hơn cho kế hoạch kinh doanh của mình, ngoài ra nhà kinh doanh còn có thể sắp xếp hàng hóa theo 1 thứ tự nào đó, nhằm mục đích gợi ý khéo cho khách hàng mà không cần phải nói bằng lời. Vấn đề này ứng dụng rất tốt trong siêu thị.
Luận văn đã giới thiệu tổng quát về khai phá tri thức và khai phá dữ liệu, các hƣớng tiếp cận chính trong khai phá tri thức. Ngoài ra luận văn còn đề cập đến một số phƣơng pháp khai phá dữ liệu dạng đóng đƣợc ứng dụng trong nhiều lĩnh vực thực tế hiện nay. Cụ thể là thuật toán C-Miner trong khai phá bộ dữ liệu 2 chiều, và Representative Slice Mining (RSM) trong khai phá bộ dữ liệu 3 chiều. Kết quả thực nghiệm cho thấy các thuật toán trên đều mang lại kết quả chính xác và đã tối ƣu đƣợc độ phức tạp thời gian so với các