285 THUẬT TOÁN KHAI PHÁ TẬP MỤC THƯỜNG XUYÊN TRONG CƠ SỞ DỮ LIỆU LỚN THÔNG QUA MẪU ĐẠI DIỆN Nguyễn Hưng Long Khoa Hệ thống thông tin kinh tế và Thương mại điện tử, Đại học Thương mại Nguyễn Minh Hoàng[.]
THUẬT TOÁN KHAI PHÁ TẬP MỤC THƯỜNG XUYÊN TRONG CƠ SỞ DỮ LIỆU LỚN THÔNG QUA MẪU ĐẠI DIỆN Nguyễn Hưng Long Khoa Hệ thống thông tin kinh tế Thương mại điện tử, Đại học Thương mại Nguyễn Minh Hồng Khoa Tốn - Cơ - Tin học, Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội Tóm tắt Bài viết đề xuất thuật tốn RSFPGrowth khai phá tập mục thường xuyên sở liệu lớn thơng qua mẫu đại diện Thuật tốn RSFPGrowth cho phép thay tìm tập tất tập mục thường xuyên sở liệu lớn cách tìm tập chứa hầu hết tập tập mục thường xuyên từ tập mẫu đại diện giao tác Bởi cỡ mẫu n cần lấy cho tập mẫu tăng chậm so với cỡ tổng thể nên độ hiệu việc khai phá tập tập mục thường xuyên thông qua lấy mẫu đại diện giao tác cao kích thước sở liệu ban đầu lớn Từ khóa: Khai phá liệu, tập mục thường xuyên, sở liệu, mẫu đại diện, FPGrowth Mở đầu Trong năm gần đây, khai phá liệu (KPDL) trở thành đề tài thu hút quan tâm nhiều nhà nghiên cứu ứng dụng thành công mặt đời sống - xã hội Khai phá liệu định nghĩa q trình trích lọc khơng tầm thường thơng tin hữu ích chưa biết từ sở liệu (CSDL) lớn (có chứa đến hàng vạn, triệu giao tác) Khai phá tập mục thường xuyên (TMTX) biết đến toán toán khai phá liệu giới thiệu lần vào năm 1993 Agrawal R Srikant R [5, 6], thuộc Trung tâm nghiên cứu Almaden IBM (Mỹ), nhằm phân tích CSDL bán hàng siêu thị Qua q trình phân tích giúp cho nhà phân tích lựa chọn phương án tốt hoạt động kinh doanh siêu thị Để giải toán này, tác giả đề xuất thuật toán Apriori Tại hội nghị quốc tế khai phá liệu vào tháng 12 năm 2006 đánh giá thuật toán Apriori đứng top 10 thuật tốn khai phá liệu [9] Hiện có nhiều nghiên cứu, xây dựng thuật toán khai phá TMTX dựa thuật toán Apriori (gọi thuật toán kiểu Apriori) Thuật toán Apriori thuật tốn kiểu Apriori có hai nhược điểm lớn: Phải sinh khối lượng khổng lồ tập ứng viên duyệt CSDL giao tác nhiều lần TMTX công cụ hiệu để khai phá luật kết hợp (association rule), tập mục đóng (closed itemset), tập mục (sequential itemset), phụ thuộc hàm (functional dependencies), Để khắc phục hạn chế thuật toán Apriori, Han J cộng [7, 8] Trường Đại học Simon Fraser (Canada) đề xuất thuật toán FP-growth Thuật toán FP-growth khai phá TMTX xây dựng dựa kĩ thuật sau: (1) Nén toàn CSDL giao tác lên cấu trúc cây, gọi FP-tree, nhờ giảm chi phí cho số lần duyệt CSDL giao tác trình khai phá (2) Dùng phương pháp chia để trị (devide285 and-conquer), cách trình xây dựng khai phá liệu chia làm thành toán nhỏ hơn, theo nghĩa xây dựng FP-tree có điều kiện khai phá TMTX FP-tree có điều kiện tạo Do vậy, trình khai phá phát triển dần mẫu mà không sinh nhiều tập mục ứng viên làm giảm khối lượng thời gian tính tốn Q trình khai phá TMTX thực theo hai pha: Pha xây dựng FP-tree pha khai phá FP-tree thuật tốn FP-growth Mặc dù thuật tốn FP-growth có ưu điểm (về tổ chức liệu, nhớ, thời gian tính tốn) thuật tốn Apriori CSDL giao tác lớn cần khai phá không hiệu Để áp dụng thuật tốn FP-growth CSDL kích thước lớn, viết chúng tơi trình bày phương pháp tiếp cận xấp xỉ Thay tìm tập TMTX CSDL cần khai phá, ta tìm tập chứa hầu hết tập mục từ CSDL mẫu đại diện Độ hiệu việc khai phá thông qua lấy mẫu cao kích thước CSDL ban đầu lớn, cỡ mẫu n cần lấy tăng chậm so với cỡ tổng thể Nội dung viết sau: Mục giới thiệu mơ hình toán thuật toán FP-Growth khai phá TMTX CSDL giao tác; Mục trình bày phương pháp tiếp cận xấp xỉ: khai phá TMTX thông qua khai phá mẫu đại diện cuối kết luận Khai phá tập mục thường xuyên csdl giao tác thuật toán fp-growth 2.1 Bài toán khai phá tập mục thường xuyên CSDL giao tác [5, 6] Định nghĩa Cho I= {i , i , … , i } tập phần tử Mỗi phần tử I gọi mục (item) Một tập X ⊆ Iđược gọi tập mục (itemset) Số phần tử X kí hiệu Card(X) Nếu Card(X) = k, (k ∈ Z) X gọi k-tập mục Nếu Card(X)=1 X 1-tập mục hay gọi mục đơn Để đơn giản, thay viết k-tập mục {i , i , … , i } ta viết i i … i Chẳng hạn, tập mục {a, b, c} viết ngắn gọn abc Định nghĩa Một giao tác (transaction) T = 〈TID , X〉, với TID định danh giao tác (transaction identifier) X ⊆ Ilà tập mục Giao tác T gọi chứa tập mục Y Y ⊆ T Định nghĩa CSDL giao tác (transaction database) tập giao tác TDB = {T , T , … , T } Biểu diễn CSDL giao tác ngang : CSDL tập giao tác Trong đó, giao tác bao gồm định danh (thứ tự) TID danh sách mục Ví dụ Trong Bảng biểu diễn ngang CSDL giao tác Bảng Biểu diễn ngang CSDL giao tác TID T1 Tập mục abcdef T2 T3 bcefh acdefgh 286 Định nghĩa Cho I= {i , i , … , i } tập mục tập mục X ⊆ I Ta gọi độ hỗ trợ (support) X CSDL giao tác DT ký hiệu supp(X), tỷ lệ phần trăm giao tác DT chứa X, tức là: supp(X) = card({T ∈ DT|X ⊆ T}) card(DT) Với card(TDB) số giao tác DT Ta có: ≤ supp(X) ≤ 1, ∀X ⊆ I Định nghĩa Cho tập mục X ⊆ Ivà ngưỡng độ hỗ trợ tối thiểu minsupp (minimum support) xác định người dùng, < minsupp ≤ Nếu supp(X) ≥ minsupp X gọi TMTX (frequent itemset) với độ hỗ trợ tối thiểu minsupp, hay ta nói X thỏa minsupp, trường hợp ngược lại ta nói X tập khơng thường xun (infrequent itemset), hay ta nói X khơng thỏa minsupp 2.2 Thuật toán FP-growth Nội dung thuật toán FP-growth [7, 8] với ý tưởng sau: - Nén toàn giao tác lên cấu trúc cây, gọi FP-tree, nhờ giảm chi phí cho số lần duyệt CSDL giao tác Mỗi nút FP-tree có mục, nút chúng xếp để tiện cho việc chèn giao tác lên nút xuất thường xuyên dễ dàng chia sẻ với nút xuất hơn, đồng thời nút không thường xuyên bị sớm loại bỏ mà không làm ảnh hưởng kết khai phá Bước cần duyệt CSDL giao tác lần - Áp dụng phương pháp chia để trị (devide and conquer) Quá trình khai phá liệu chia làm thành phần việc nhỏ hơn, tiến hành xây dựng FPtree có điều kiện khai phá TMTX FP-tree có điều kiện tạo Do vậy, trình khai phá phát triển dần mẫu mà không sinh nhiều tập mục ứng viên đồng thời làm giảm khối lượng tính tốn Bước xây dựng FP-tree cần duyệt thêm lần CSDL giao tác - Quá trình khai phá thực theo hai pha chính: (1) Xây dựng cấu trúc FPtree; (2) Khai phá FP-tree thuật toán FP-growth Khai phá tập mục thường xuyên thông qua mẫu đại diện Thuật tốn FP-growth có ưu điểm thuật tốn Apriori [7], khai thác CSDL lớn thuật tốn FP-growth khơng hiệu Để áp dung thuật tốn FP-growth CSDL lớn chúng tơi đề nghị phương pháp tiếp cận xấp xỉ Thay tìm tập tất cácTMTX CSDL cần khai phá, ta tìm tập chứa hầu hết tập mục từ CSDL mẫu đại diện [1, 2, 3] Trên thực tế đối tượng loại mà nhà thống kê quan tâm nghiên cứu gọi tổng thể Tổng thể thường bao gồm số lượng lớn, có lớn đối tượng Nghiên cứu toàn đối tượng tổng thể việc làm khó khăn khơng thể thực được, chưa kể có khơng có nghĩa Vì người ta thường dùng phương pháp chọn mẫu, tức từ tổng thể có N đối tượng (N gọi kích thước tổng thể) rút n đối tượng (n gọi kích thước mẫu), tiến hành nghiên cứu mẫu vào kết thu mà suy rộng cho tổng thể Các kết suy rộng tránh khỏi sai lệch Độ lớn sai lệch phụ thuộc 287 vào hai yếu tố phương pháp chọn mẫu kích thước mẫu Vì vậy, vấn đề quan trọng đảm bảo cho mẫu phải phản ánh đắn cấu trúc tổng thể, tức mẫu phải mang tính đại diện sai lệch chọn mẫu nhỏ tốt Kích thước mẫu lớn, tính đại diện mẫu cao, nhiên chi phí lớn [1, 2, 3] Trong thực hành, tùy vào tình cụ thể, người ta áp dụng phương pháp chọn mẫu khác Mỗi phương pháp có ưu điểm nhược điểm riêng Có số phương pháp chon mẫu sau: Chọn mẫu ngẫu nhiên đơn giản (Simple Random Sampling); Chọn mẫu ngẫu nhiên phân vùng (Stratified Random Sampling); Chọn mẫu có hệ thống (Systematic Sampling); [1, 2, 3] Để chọn mẫu khai phá liệu, người ta thường sử dụng phương pháp chọn mẫu ngẫu nhiên đơn giản (khơng hồn lại), lý sau: (1) Dễ mô cài đặt (2) Việc chọn mẫu ngẫu nhiên đơn giản mơ thực cách sử dụng thuật toán (hàm) tạo số ngẫu nhiên (3) Ước lượng tỷ lệ dựa mẫu ngẫu nhiên đơn giản ước lượng không chệch (4) Khơng cần có thơng tin tiên nghiệm quần thể [1, 2, 3] 3.1 Xác định cỡ mẫu sở liệu giao tác Tư tưởng thuật tốn sau: Trước tiên, từ CSDL giao tác ban đầu, chọn mẫu ngẫu nhiên đơn giản giao tác Sau đó, áp dụng thuật toán FP-growth [7, 8] khai phá TMTX CSDL mẫu Trong [1, 4] phân tích, việc chọn mẫu ngẫu nhiên đơn giản đây: Xác định cỡ mẫu Giả sử CSDL DT bao gồm N giao tác, có SC(DT,X) giao tác chứa tập mục X Khi xác suất để giao tác chứa X p=sup(X)=SC(DT,X)/N Ký hiệu S mẫu gồm n giao tác chọn phương pháp chọn ngẫu nhiên khơng hồn lại từ DT Gọi SC(S,X) số giao tác S chứa tập mục X Khi SC(S,X) tuân theo luật phân phối siêu bội với hàm xác suất: Pr ( , ) = )= , = 0,1, … , (1) Giá trị kỳ vọng, phương sai SC(S,X) [1]: ( , ) = (2) ( , ) = 1− (1 − ) ≈ − (1 − ) (3) Với mẫu cỡ n, người ta thường lấy ̂ = ( , )/ làm giá trị ước lượng cho xác suất p (tức support(DT,X)) Từ (2) (3) suy ra: ( ̂) = ( ̂) = − (4) ( ) ≈ 1− ( ) (5) Vì E(p) = p, ̂ ước lượng không chệch p Trong [1] chứng minh rằng, n đủ lớn (n>=30), đại lượng ngẫu nhiên chuẩn hóa 288 = ( (6) ) có phân phối tiệm cận phân phối chuẩn chuẩn tắc ( )= (0,1) với hàm phân phối: ∫ √ (7) Giả sử với sai số tuyệt đối d xác suất rủi ro α cho trước, ta muốn ước lượng xác suất p p cho (| − ̂ | < ) = − (8) Ký hiệu z phân vị mức − α đại lượng Z có phân phối (3.7), nghĩa z giá trị thỏa mãn hệ thức: < =1− (9) Khi | |< =1− (10) Kết hợp hệ thức (6), (8) (9) suy ra, muốn ước lượng p với sai số tuyệt đối d xác suất rủi ro α cho trước cỡ mẫu n phải thỏa hệ thức: = = Hay 1− ( ( ( ) (11) ) (12) ) Trong công thức (11), p giá trị chưa biết, cần ước lượng Tuy vậy, tích p(1p) đạt cực đại 1/4 p=1/2, ta lấy = max ( ( ) ) = (13) Do cỡ mẫu số nguyên, nên lấy = (14) 3.2 Thuật toán khai phá TMTX CSDL giao tác thông qua mẫu đại diện 3.2.1 Ý tưởng Với cỡ mẫu n xác định theo (14), việc lấy mẫu S từ CSDL giao tác DT tiến hành sau: - Đánh số thứ tự tất giao tác DT - Tạo n số nguyên ngẫu nhiên khác khoảng [1, N], - Lấy CSDL mẫu S tập n giao tác có số thứ tự số nguyên ngẫu nhiên tạo Trong thực hành, sai số tuyệt đối d rủi ro 0.01 289 thường chọn tương ứng 0.05 3.2.2 Thuật toán RSFPGrowth Bảng Bảng kí hiệu thuật tốn RSFPGrowth Ký hiệu DT minsupp Ý nghĩa CSDL giao tác ban đầu Độ hỗ trợ tối thiểu Z Phân vị mức − /2 phân phối chuẩn chuẩn tắc (tức giá trị (0,1)) Độ rủi ro d Cận sai số N Tổng số giao tác CSDL ban đầu n Cỡ mẫu S Tập giao tác chọn vào mẫu Nội dung thuật toán RSFPGrowth khai phá TMTX CSDL mẫu sau: Input: CSDL DT, tổng số giao tác N CSDL giao tác, cỡ mẫu n, hai ngưỡng hỗ trợ minsupp, cận sai số d, độ rủi ro Output: Tập TMTX Method: Thuật toán RSFPGrowth 1) if n>=30 2) 3) { 4) z = Calculate(); 5) = 6) for (i = 1; i