Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
820,68 KB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - PHÙNG QUANG TIẾN KHAI PHÁ LUẬT KẾT HỢP CHO CƠ SỞ DỮ LIỆU GIA TĂNG CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH MÃ SỐ 60.48.01 : TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI - 2013 Luận văn hoàn thành tại: HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG Người hướng dẫn khoa học: GS.TS VŨ ĐỨCTHI Phản biện 1: ………………………………………………………………………… Phản biện 2: ………………………………………………………………………… Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Cơng nghệ Bưu Viễn thơng Vào lúc: ngày tháng năm Có thể tìm hiểu luận văn tại: - Thư viện Học viện Cơng nghệ Bưu Viễn thơng MỞ ĐẦU Trong năm gần đây, phát triển mạnh mẽ công nghệ thông tin làm cho khả thu thập lưu trữ thông tin hệ thống thông tin tăng lên cách nhanh chóng Bên cạnh đó, việc tin học hóa cách ạt nhanh chóng hoạt động sản xuất, kinh doanh nhiều lĩnh vực khác tạo cho lượng liệu cần lưu trữ khổng lồ Hàng triệu sở liệu sử dụng hoạt động sản xuất, kinh doanh, quản lý, , có nhiều sở liệu cực lớn cỡ Gigabyte, chí Terabyte Trong lĩnh vực kinh doanh đời sống như: marketing, tài chính, ngân hàng, bảo hiểm, khoa học, y tế, giáo dục, an ninh, internet tập liệu luôn bổ sung gia tăng theo thời gian, tập thường xuyên luật kết hợp tính tốn khơng cịn giá trị tập liệu Ngoài ra, với sở liệu ổn định, cần tìm tập liệu thường xuyên với độ hỗ trợ khác, công việc phải tính lại từ đầu mật thơi gian tốn Để cố gắng tìm phương pháp để làm giảm độ phực tạp đỡ tốn thời gian, chi phí cho trình khai phá liệu hệ sở liệu lơn, thường xuyên thay đổi nên chọn đề tài “Khai phá luật kết hợp cho sở liệu gia tăng” Luận văn gồm chương, với nội dung: Chương 1: Trình bày tổng quan khám phá tri thức khai phá liệu, có đề cập đến khái niệm tri thức, liệu, trình khám phá tri thức, nhiệm vụ kỹ thuật khám phá tri thức Chương 2: Trình bày luật kết hợp, trình bày khái niệm, định nghĩa, tính chất luật kết hợp, số kỹ thuật khai thác luật kết hợp Chương 3: Khai phá luật kết hợp sở liệu gia tăng Luật văn hồn thành khoảng thời gian khơng dài Tuy nhiên, đạt số kết tốt, nghiên cứu để hồn thiện đưa chương trình luận văn vào ứng dụng thực tế Tôi xin bày tỏ biết ơn sâu sắc tới GS.TS Vũ Đức Thi người trực tiếp hướng dẫn, bảo tận tình, cung cấp tài liệu phương pháp luận nghiên cứu khoa học để tơi hồn thành luận văn Tôi xin gửi lời cảm ơn tới thầy giáo dạy dỗ q trình tơi theo học Học viện Trong suốt q trình nghiên cứu, cố gắng chắn luận văn khơng tránh khỏi thiếu sót, mong nhận góp ý quý thầy cô, đống nghiệp bạn bè để luận văn hoàn chỉnh CHƯƠNG TỔNG QUAN VỀ KHÁM PHÁ TRI THỨC VÀ KHAI PHÁ DỮ LIỆU 1.1 Giơi thiệu khám phá tri thức khai phá liệu Trong thời đại bùng nổ thông tin, công nghệ lưu trữ liệu phát triển tạo điều kiện cho đơn vị thu thập thông tin liệu tốt Đặc biệt lĩnh vực kinh doanh, giáo dục, y tế, ngân hàng,… khối lượng lưu trữ thông tin liệu lên tới hàng Gigabyte thập chí hàng Terabayte Với khối lượng thông tin liệu lớn ngày cang tăng phương pháp quản trị khai thác sở liệu truyền thống khơng cịn đáp ứng với nhu cầu tình hình nhanh, xác nữa; khuynh hướng kỹ thuật đời Kỹ thuật phát tri thức khai phá liệu (KDD- knowledge Discovery and Data Mining) Chúng ta xem tri thức thơng tin tích hợp, bao gồm kiện mối quan hệ chúng Các mối quan hệ hiểu ra, phát hiện, học Nói cách khác, tri thức coi liệu có độ trừu tượng tổ chức cao Phát tri thức sở liệu qui trình nhận biết mẫu mơ hình liệu với tính năng: hợp thức, mới, khả ích, hiểu Cịn khai thác liệu bước qui trình phát tri thức gồm có thuật tốn khai thác liệu chuyên dùng số qui định hiệu tính tốn chấp nhận để tìm mẫu mơ hình liệu Nói cách khác, mục đích phát tri thức khai phá liệu tìm mẫu mơ hình tồn sở liệu bị che khuất hàng “núi” liệu Nhiều người coi khai phá liệu khai phá tri thức sở liệu Tuy nhiên thực tế, khai phá liệu bước thiết yếu trình phát tri thức sở liệu 1.2 Quá trình phát tri thức từ sở liệu Quá trình khai phá liệu tiến hành qua giai đoạn sau: Envalution of Rule Data Mining Transformat ion Cleansing Preprocessing Knowledg e Preparation Selection Transforme d Data Gatherin g Internet, Target Data Data Cleansed Preprocesse d Preparated Pattern Discover y Hình 1.1 Quá trình khám phá tri thức từ sở liệu - Gom liệu ( Gathering) - Trích lọc liệu ( Selection) - Làm sạch, tiền xử lý chuẩn bị trước liệu ( cleansing, Pre-processing and Preparation) - Chuyển đổi liệu (Transformation) - Phát trích mẫu liệu ( Pattern Extraction and Discovery) - Đánh giá kết mẫu (Evaluation of Result) 1.2.1 Xác định vấn đề 1.2.2 Thu thập tiền xử lý liệu 1.2.3 Khai thác liệu 1.2.4 Minh họa đánh giá 1.2.5 Đưa kết vào thực tế 1.3 Khai phá liệu 1.3.1 Các quan niệm khai phá liệu Sau số quan niệm khai phá liệu: Khai phá liệu tập hợp thuật toán nhằm chiết xuất thơng tin có ích từ kho liệu khổng lồ Khai phá liệu giống q trình tìm mơ tả mẫu liệu Dữ liệu tập hợp vật hay kiện, cịn đầu q trình khai phá liệu dự báo vật hay kiện Như vậy, mục đích khám phá tri thức khai phá liệu tìm mẫu mơ hình tồn sở liệu bị khuất số lượng liệu khổng lồ 1.3.2 Nhiệm vụ khai phá liệu - Phân cụm, phân loại, phân nhóm, phân lớp - Khai phá liệu kết hợp - Lập mơ hình dự báo, bao gồm hai nhiệm vụ - Phân tích đối tượng ngồi - Phân tích tiến hóa 1.3.3 Triển khai việc khai phá liệu Nhóm tác giả CABENA ET AL đề nghị triển khai trình khai phá liệu theo bước : Bước 1: Xác định rõ mục tiêu thương mại cần khai phá Bước 2: Chuẩn bị liệu (Thu thập, tiền xử lý, chuyển đổi khuôn dạng liệu thấy cần thiết) Bước 3: Khai phá liệu (Chọn thuật tốn thích hợp) Bước 4: Phân tích kết thu (Xem có thú vị khơng?) Bước 5: Tiêu hóa tri thức thu lượm (Nhằm đề kế hoạch khai thác thông tin mới) 1.3.4 Một số ứng dụng khai phá liệu Hiện nay, kỹ thuật khai phá liệu áp dụng cách rộng rãi nhiều lĩnh vực kinh doanh đời sống khác (thương mại, thông tin sản xuất, thông tin khoa học, Giáo dục, y tế, marketing, ngân hàng, viễn thơng, du lịch, internet… Và thu thật đáng giá Điều chứng minh thực tế: Chẩn đoán bệnh y tế dựa kết xét nghiệm giúp cho bảo hiểm y tế phát nhiều trường hợp xét nghiệm không hợp lý, tiết kiệm nhiều kinh phí năm; Trong dịch vụ viễn thông phát nhóm người thường xuyên gọi cho mobile thu lợi hàng triệu USD; IBM Suft-Aid áp dụng khai phá liệu vào phân tích lần đăng nhập Web vào trang liên quan đến thị trường để phát sở thích khách hàng, từ đánh giá hiệu việc tiếp thị qua Web cải thiện hoạt động Website; Trang Web mua bán qua mạng Amazon tăng doanh thu nhờ áp dụng khai phá liệu việc phân tích sở thích mua bán khách hàng 1.3.5 Các kỹ thuật khai phá liệu Thường chia thành hai nhóm chính: - Kỹ thuật khai phá liệu mơ tả: gồm có Phân cụm (clustering), tóm tắt (summarization), trực quan hóa (visualiztation), phân tích phát triển độ lệch (evolution and deviation analyst), phân tích luật kết hợp (association rules)… - Kỹ thuật khai phá liệu dự đoán: gồm có Phân lớp (classification), hồi quy (regession)… Tuy nhiên, có số phương pháp thơng dụng là: Phân cụm liệu, phân lớp liệu, phương pháp hồi quy khai phá luật kết hợp 1.3.6 Kiến thức hệ thống khai phá liệu Như trình bày trên, khai phá liệu giai đoạn trình phát tri thức từ số lượng lớn liệu lưu trữ sở liệu, kho liệu nơi lưu trữ khác Bước tương tác lẫn người sử dụng sở tri thức, mẫu đáng quan tâm đưa cho người dùng lưu trữ tri thức sở tri thức Giao diện người dùng Đánh giá mẫu Cơ sở tri thức Mô tả khai phá liệu CSDL hay kho liệu phục vụ Cơ sở liệu Kho liệu Hình 1.2 kiến trúc hệ thống khai phá liệu Kiến trúc hệ thống khai phá liệu (hình 1.2) có thành phần sau: - Cơ sở liệu, kho liệu: Đó tuyển tập sở liệu, kho liệu… Các kỹ thuật làm liệu, tích hợp, lọc liệu thực liệu - Cơ sở liệu kho liệu phục vụ: Là kết lấy liệu có liên quan sở khai phá liệu người dùng - Cơ sở tri thức: Đó lĩnh vực tri thức sử dụng để hướng dẫn việc tìm đánh giá mẫu kết thu - Mô tả khai phá liệu: Bao gồm tập modul chức để thực nhiệm vụ mô tả đặc điểm, kết hợp, phân lớp, phân cụm liệu… - Đánh giá mẫu: Thành phần sử dụng độ đo tương tác với modul khai phá liệu để tập trung vào tìm mẫu quan tâm - Giao diện người dùng: Đây modul người dùng hệ thống khai phá liệu Cho phép người dùng tương tác với hệ thống sở truy vấn hay tác vụ, cung cấp thơng tin cho việc tìm kiếm 1.3.7 Quá trình khai phá liệu Quá trình khai phá liệu (Hình 1.3) bắt đầu cách xác định xác vấn đề giải Tiếp đến xác định liệu liên quan dùng để xây dựng giải pháp Bước thu thập liệu liên quan xử lý chúng thành dạng cho thuật tốn khai phá hiểu Xác định nhiệm vụ Xác đinh liệu liên quan Thu thập tiền xử lý liệu Thuật toán khai phá liệu Dữ liệu trực tiếp Hình 1.3 Q trình khai phá liệu Sau thuật tốn khai phá liệu thích hợp thực việc khai phá liệu để tìm mẫu có ý nghĩa dạng biểu diễn tương ứng (luật kết hợp, định…) Kết thu mẫu phải có đặc điểm Độ đối sánh tương ứng với độ thay đổi liệu bảng tri thức Với thuật toán nhiệm vụ khai phá liệu khác dạng mẫu chiết xuất đa dạng 1.3.8 Những khó khăn khai phá liệu - Dữ liệu lớn: - Kích thước lớn: - Dữ liệu động: - Các trường liệu không phù hợp - Các giá trị bị thiếu - Các trường hợp liệu bị thiếu - Quá phù hợp - Khả biểu đạt mẫu - Sự tương tác với người sử dụng tri thức sẵn có CHƯƠNG LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU 2.1 Bài toán kinh điển dẫn đến việc khai phá luật kết hợp Bài toán mua hàng siêu thị: giả định có nhiều mặt hàng, ví dụ “bánh mì”, “sữa”,… ( coi tính chất trường) Khách hàng siêu thị bỏ vào giỏ mua hàng họ số mặt hàng đó, muốn tìm hiểu khách hàng thường mua mặt hàng đồng thời, chí khơng cần biết khách hàng cụ thể Nhà quản lý dùng thông tin để điều chỉnh việc nhập hàng siêu thị, hay đơn giản để bố trí xếp mặt hàng gần nhau, bán mặt hàng theo gói hàng, giúp cho khách hàng đỡ cơng tìm kiếm Bài tốn hồn tồn áp dụng lĩnh vực khác Ví dụ: - Giỏ hàng= văn bản.Mặt hàng= Từ Khi đó, văn có nhiều câu giống chóng tìm lối diễn đạt hay khái niệm có mặt văn - Giỏ hàng= văn bản.Mặt hàng= Câu Khi đó, văn có nhiều câu giống giúp phát đạo văn, “website đúp” (mirror website) Khai phá luật kết hợp cho phép tạo luật mô tả kiện xẩy đồng thời ( cách thường xuyên) Các thuật toán trải qua pha: pha đầu tìm kiện xẩy thường xuyên, pha tìm luật 2.2 Các khái niệm 2.2.1 Cơ sở liệu giao tác Cho I={x1,x2, ,xn} tập hợp mục liệu Một tập t={ xi1,xi2,…,xik} i gọi giao tác I Một bảng gồm m giao tác T={ t1,t2,…,tm} gọi sở liệu giao tác I Mỗi tập X ⊆ I gọi tập mục liệu ( itemset), tập S⊆T gọi tập giao tác ( tidset) Để thuận tiện ký hiệu, ta viết X= ABC thay cho X={ A, B, C}, viết S=123 thay cho S={1,2,3} 2.2.2 Biểu diễn sở liệu giao tác Có hai cách biểu diễn tập sở liệu giao tác sau: - Biểu diễn ngang Một csdl danh sách giao tác Mỗi giao tác có định danh giao tác (tid) danh sách mục liệu giao tác Ví dụ 1.2: Giao tác t1 t2 t3 t4 t5 t6 t7 t8 Mục liệu A,B,C B,D B,C A,B,D A,C B,C A,C A,B,C,E t9 t10 A,B,C A,B,E,G Bảng: 2.1 Biểu diễn ngang sở liệu giao tác - Biểu diễn dọc: Một sở liệu danh sách mục liệu, với mục liệu có danh sách tất định danh giao tác chứa mục liệu Định danh giao tác Mục liệu A B C D E G t1,t4,t5,t7,t8,t9,t10 t1,t2,t3,t4,t6,t8,t9,t10 t3,t5,t6,t7,t8,t9 t2,t4 t1,t8,t10 t10 Bảng 2.2: Biểu diễn dọc sở liệu giao tác Ma trận giao tác: cho sở liệu giao tác T={t1,t2,…,tm} I={ x1,x2,…,xn} Ma trận giao tác T ma trận m=(mij) m*n định nghĩa 1 xj ti mij 0 xj ti ví dụ: 1.3: với sở liệu giao tác 1.1 ta có ma trận giao tác là: t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 A 0 1 1 1 B 1 1 1 1 C 1 1 1 D 1 0 0 0 E 0 0 0 1 G 0 0 0 0 2.2.3 Định nghĩa luật kết hợp - Định nghĩa luật kết hợp: Cho I={ I1,I2,…,Im} tập hợp m tính chất riêng biệt Giả sử D csdl, với ghi chứa tập T tính chất ( coi T ⊆ I), ghi có số 20 { S=Su; } Else { U=Pi1; For (j=2; j ≤ k; j++) { 10 U= U ∩ Pij; 11 } 12 S=||U||; 13 SC:=SC ∪ {(X,S)}; 14 } 3.3.4 Khai phá tập thường xuyên Khi lần tìm tập thường xuyên theo ngưỡng S0 ta phải tính tồn bộ: SC= {(X,Sup) | ∃ t ∈ T, X ⊆ t, Sup=Supp(X)} Và thu được: FS0 ={X | (X, Sup) ∈ SC Sup ≥ S0} Sau đó, cần tìm tập thường xun theo ngưỡng S1, có hai khả xẩy ra: - Nếu S1 ≥ S0 FS1 ⊆ FS0 ⇒ FS1={X | (X,Sup) ∈SC, Sup ≥ S1}: ta cần lọc SC (X,Sup) thỏa Sup ≥ S1 khơng cần tính tốn - Nếu S0 ≥ S1 FS0 ⊆ FS1 ⇒ FS1={X | (X,Sup) ∈SC, Sup ≥ S1}∪ {X ⊆ I | (X,Sup) SC, Supp (X) ≥ S1 } Do ta cần tính độ hỗ trợ tập ứng viên khơng có SC * Thủ tục Find_All-Frequent tìm tập thường xuyên theo ngưỡng S0 T: Thủ tục Find_All_Frequent (P,SC,Fsup,S0, FS0) Input: P= {P1,…,Pn} biểu diễn dọc P; SC={(X,Sup) | ∃ t ∈ T, X ⊆ t, Sup=Supp(X)}; Fsup={Si | Si ngưỡng tối thiểu khai phá}; Ngưỡng tối thiểu S0; Output: FS0 ={X | (X, Sup) ∈ SC Sup ≥ S0}; SC ={(X,Sup) | ∃ t ∈ T, X ⊆ t, Sup=Supp(X)}; Fsup={Si | Si ngưỡng tối thiểu khai phá}; Method: If ( ∃ Si ∈ Fsup) and Si ≤ S0 ) { FS0 = Ø; Foreach ( (X,Sup) ∈ SC) { If ( Sup ≥ S0) { FS0 = FS0 ∪{X}; } 10 } 11 } 12 Else 21 13 { 14 Fsup= Fsup ∪ {S0}; 15 L1={({xi}| ||Pi|| ) ≥ S0}; 16 FS0=L1; 17 If (SC=Ø) 18 { 19 SC={{xi}, ||Pi|| ) | Pi ∈ P}; 20 } 21 K=1; 22 Repeat 22 Candidate(Lk, Ck+1); 23 Lk+1=Ø; 24 Foreach ( X in Ck+1) 25 { 26 If ( !∃ (X,Sup) ∈ SC) 27 { 28 Support ( P,X,SC,Sup); 29 } 30 If ( Sup ≥ S0) 31 { 32 Lk+1= Lk+1 ∪ {X}; 33 } 34 FS0= FS0 ∪Lk+1; 35 K=k+1; 36 Until Lk=Ø 37 } 3.3.5 Xử lý liệu gia tăng * Phân lớp liệu gia tăng Khi liệu gia tăng thêm với sở liệu giao tác T’= {t’1,…,t’m} tập thuộc tính I Chuyển đổi T’ thành biểu diễn dọc: p’={P’1,…,P’n} với P’i= {t’id ∈ PT’ | xi ∈ t’} cách gọi thủ tục Vertical(T’,P’) Thủ tục tính độ hỗ trợ tập mục liệu thường xuyên sở liệu gia tăng khai phá tập mục liệu thường xuyên, thủ tục Find_All_Frequent dựa vào tập SC tính Pi, liệu gia tăng thêm tập T’, ta phải tính lại độ hỗ trợ cua X (X,Sup) ∈ SC Với (X,Sup) ∈ SC, Sup1 độ hỗ trợ X T’, độ hỗ trợ X T ∪ T’ Sup + Sup1 thủ tục Support_Increment tính độ hỗ trợ X T’ * Thủ tục Support_Increment( P’,X,Sup) Input: p’={P’1,…,P’n} biểu diễn dọc T’; X={xi1,xi2,…,xik}; Output: Sup= || {t’id | t’ ∈ T’ X ⊆ t’}||; Method: U= P’i1; For (j=2; j ≤ k; j++) { U= U ∩ P’ij; } 22 Sup=||U||; } * Thủ tục Increment Thủ thục Increment tính lại độ hỗ trợ tất tập mục liệu SC Thủ tục Increment(T,T’,P,P’,SC) Input: T={t1,…,tm}; T’= {t’1,…,t’m’}; P={P1,…,Pn}; P’={P’1,…,P’n’}; SC= {(X,Sup) | Sup = Supp (X) T} ; Output: SC= {(X,Sup) | Sup = Supp (X) T ∪ T’}; T= T∪T’; P={P1 ∪ P’1,…, Pn ∪ P’n’} Method: SC’= Ø; Foreach (( X, Sup) ∈ SC) { Support_Increment(P’,X,Su); Sup=Sup+Su; SC’=SC’ ∪ {(X,Sup)}; } For (i=1; i ≤n; i++) { 10 Foreach (j ∈ P’i) 11 { 12 Pi=Pi ∪ {j+m}; 13 } 14 } 15 SC= SC’; 16 T= T ∪ T’; 17 } 3.4 Thuật toán xử lý liệu gia tăng theo chiều ngang * Thuật toán tăng trưởng chia thành bước: Bước 1: Xây dựng tăng trưởng (ID-Tree: Increment Database Tree) Bước 2: Khai phá tập mục thường xuyên theo ngưỡng S0 Bước 3: Lưu trữ nhớ ngồi khơi phục nhớ 3.4.1 Xây dựng tăng trưởng (ID-Tree: Increment Database Tree) Cấu trúc tăng trưởng tổng quát nhiều nhánh Cấu trúc liệu nút record gồm ba thành phần: ItemSet: Là tập mục liệu; Count: Số lần xuất ItemSet giao tác xét ListPointer: Một xâu trỏ, trỏ đến nút Nút gốc nút có thành phần ItemSet tập tất mục liệu xuất giao tác xét 23 Root (I, 0) (X1, C1) (X21, C21) (X2, C2) (X22, C22) … … (Xj1, Cj1) (Xj2, Cj2) Hình 3.1: Cấu trúc tăng trưởng (ID-Tree) tổng quát Sau tạo nút rỗng, Root trỏ trỏ đến nút rỗng Thủ tục làm tăng trưởng giao tác xuất * Thủ tục Increment_Tree(t) t x i1 , x i , ,x i k Input: : Một giao tác; Output: Cây vừa tăng trưởng; Method: If ( t Root^.ItemSet) { Root^.ItemSet := Root^.ItemSet t; Add_node(t, Root, 0); } 10 11 12 13 If ( t = Root^.ItemSet) { Tăng số đếm tất nút lên đơn vị } Else { Insert(t, Root, ); } * Thủ tục thêm nút vào Thủ tục Add_node(t, Pt, C); Input: t x i1 , x i , ,x i k : Một giao tác; Pt: Con trỏ đến nút cây; C: Interger; Output: Một nút Pt^; Method: Tạo nút N Pt^; N.ItemSet := t; N.Count := C; N.ListPointer := Null; 24 * Thuật toán thêm giao tác vào Khi chèn X I vào nhánh Pts, ta có khả xảy ra: a) Có nút N Pts^.ListPointer thỏa N.ItemSet = X; b) Có nút N Pts^.ListPointer thỏa X N.ItemSet ; c) Với nút N Pts^.ListPointer thỏa N.ItemSet X ; d) Với nút N Pts^.ListPointer có N.ItemSet X = ; Trường hợp a: Tăng số đếm nút N tất nút nhánh gốc N lên Trường hợp b: Nếu nút Ni thỏa X Ni.ItemSet tồn nút N có nút thỏa X N.ItemSet chèn X vào nhánh có gốc N, ngược lại, thêm nút (X, C+1, Null) với C = Max {N.Count} vào Pts^ X N.ItemSet Trường hợp c: Trong nút Ni thỏa Ni.ItemSet X ; đặt Yi = Ni.ItemSet X Nếu tồn nút Ni có nút Nij thỏa Yi Nij.ItemSet chèn X vào nhánh có gốc Nij, ngược lại ta tìm nút Nj chứa Yi thỏa có Nj.Count lớn nhất, thêm nút (Yi, Nj.Count+1, Null) nút Nj Trường hợp d: Thêm nút (X, 1, Null) nút Pts^ * Thủ tục Insert(t, Pts); Input: t x i , x i , ,x i I: Một giao tác; Pts: Con trỏ đến nút cây; Output: Cây vừa tăng trưởng; Method: k // Trường hợp a If ((Pt Pts^.ListPointer) and (Pt^.ItemSet = X)) { Tăng số đếm tất nút nhánh Pt lên đơn vị } Else { // Trường hợp b1 If ((Pt Pts^.ListPointer) and (X Pt^.ItemSet) and (P’t Pt^.ListPointer) and (X P’t^.ItemSet)) { Insert(X, P’t); 10 } 11 Else 25 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 } { // Trường hợp b2 If ((Pt Pts^.ListPointer) and (X Pt^.ItemSet)) { C:= Max{Pt^.Count | X Pt^.ItemSet}; Add_Node(X, Pts, C + 1); } Else { // Trường hợp C1 If (Pt Pts^.ListPointer) and (Pt^.ItemSet X ) then { P := {Pt Pts^.ListPointer | Pt^.ItemSet X }; For each ( Pt in P ) { Y := Pt^.ItemSet X; If ((Pt P) and (P’t Pt^.ListPointer) and (Y P’t^.ItemSet)) { Insert(Y, P’t); } Else { //Trường hợp c2 C:= Max{Pt^.Count | Y Pt^.ItemSet}; Add_Node(Y, Pt, C + 1); } } Else { // Trường hợp d Add_Node(X, Pts, 1); } } } } 3.4.2 Khai phá tập mục thường xuyên Để khai phá tập mục thường xuyên theo ngưỡng S0, ta thực công việc sau: - Duyệt qua lọc tập mục liệu X = N.ItemSet nút N có N.Count S0: F0 = {(N.ItemSet, N.Count) | N ID-Tree, N.Count S0} - Ững với (X, C) F0 thay {(X’, C) với X’ X} - Sau thay, F0 có nhiều phần tử có thành phần thứ giống nhau, ta giữ lại phần tử có thành phần thứ hai lớn Để làm công việc này, ta xếp F0 tăng dần theo thứ tự ≼I định nghĩa 8, phần tử F0 có thành phần thứ giống nhóm lại, độ hỗ trợ tập mục liệu số đếm lớn phần tử nhóm * Thủ tục Find_All_Frequent(Root, S0) Input: Root: Pointer; S0: Ngưỡng tối thiểu; 26 Output: Fr = {(N.ItemSet, N.Count) | N ID-Tree, N.Count S0}; Method: F := ; Find_Node(Root, F, S0); Frequent(F, Fr); * Thủ tục Find_Node(Pt,F,S0) Input: Pt: Pointer; S0: Ngưỡng tối thiểu; Output: F = {(N.ItemSet, N.Count) | N ID-Tree, N.Count S0}; Method: If (Pt^.Count S0) ) { F := F {(Pt^.ItemSet, Pt^.Count)}; } Foreach ( P in Pt^.ListPointer) { Find_Node(P, F, S0); } * Thủ tục Frequent(F,Fr) Input: F = {(X, C) | X I, C = Supp(X)}; Output: Fr = {(X, C) | X I, C = Supp(X)}; Method: F1 := ; Fr := ; Foreach ( (X, C) in F) { Foreach ((X' X) and (X' )) { F1 := F1 {(X', C)}; } } 11 Sort_A(F1); // Sắp xếp F1 tăng dần theo thứ tự ≼I 12 Foreach ( group G = (X, *) in F1 ) 13 { 14 Cm := Max({C | (X, C) G}; 15 Fr := Fr {(X, Cm)}; 16 } 3.4.3 Lưu nhớ ngồi khơi phục vào nhớ Khi liệu tăng trưởng đủ lớn, với cách duyệt (LNR, NLR, …) ta lưu nhớ ngồi tập tin F, record có cấu trúc (X, C) với X tập mục liệu C số đếm X nút Vì cây, tập mục liệu nút tập tập mục liệu nút cha nó, nên số mục liệu tập mục liệu nút giảm dần theo độ sâu thay đổi vị trí nút không làm thay đổi kết Do đó, để thực việc khơi phục cây, ta thực bước: 27 - Phân phần tử (X, C) F thành k nhóm Gi, với i [1 k], nhóm thứ i gồm phần tử mà X có i mục liệu - Sắp xếp phần tử Gi tăng dần theo thứ tự ≼I - Tạo nút gốc (I, 0, Null) - Chèn nhóm Gk vào nút nút gốc - Tiềp tục chèn nhóm Gi, i [1 k-1] vào cách: Ứng với phần tử (X, C) nhóm Gi, duyệt nút nhóm Gi+1, tìm nút N nút thỏa X N.ItemSet thêm nút (X, C) nút N, ngược lại, nghĩa X không tập nút nhóm Gi+1, ta duyệt lại từ gốc xét nút N bậc i N.Count k-i+1 phần tử, có nút N thỏa X N.ItemSet thêm nút (X, C, Null) nút N, ngược lại, thêm (X, C, Null) nút nút gốc * Thủ tục chuyển sang tập tin ( Tree_To_File) Input: Root: Pointer; Output: I : Tập mục liệu; F: File Of (X, C), với X I C = Supp(X); Method: F := ; I := Root^.ItemSet; Find_All_Node(Root, F); * Thủ tục tìm tất nút (Find_All_Node) Input: Pt: Pointer; Output: F: File Of (N.ItemSet, N.Count), N ID-Tree; Method: For each ( P in Pt^.ListPointer) { Write(F, (P^.ItemSet, P^.Count)); Find_All_Node(P, F, S0); } Sort_D(F); // Sắp xếp F giảm dần theo thứ tự ≼I Foreach ( group G = (X, *) in F ) { Cm := Max({C | (X, C) G}; 10 Write(Fr, (X, Cm)); 11 } * Thủ tục chuyển tập tin sang (File_To_Tree) Input: I : Tập mục liệu F: File Of (X, C), với X I C = Supp(X); Output: Root: ID-Tree; Method: New(Root); Root^.ItemSet := I; Root^.Count := 0; k := Max(‖X‖ | (X, C) F}; For ( i:= 1; i=1; i - -) 21 { 22 Insert_G(Gi); 23 } Procedure Insert_G(Gi); Input: Gi: Tập tập mục liệu có i phần tử; Output: Root: ID-Tree; Method: For each ((X,C) in Gi ) { Tìm nút N có X N.ItemSet thêm (X, C, Null) nút N } 3.4.4 Ví dụ thuật tốn tăng trưởng Để dễ dàng theo dõi thuật tốn, ta xét ví dụ: Các thuộc tính ký tự A, B, C… Đầu tiên có tên Root rỗng: Root := Null Xuất t1 = ADE, ta được: I = ADE Chèn t1 vào cây, ta nút đầu tiên: (ADE,1) Xuất t2 = BCE, t2 I I = I t2 = ABCDE, chèn t2 vào ta được: (ADE,1) (ABCDE,0) (ADE,1) (BCE,1) (E,2) Xuất t3 = ABD, t3 I I = ABCDE, chèn t3 vào ta được: (ABCDE,0) (ABCDE,0) (ADE,1) (E,2) (BCE,1) (ABD,1) (ADE,1) (AD,2) (E,2) (BCE,1) (B,2) 29 Xuất t4 = ACD, t4 I I = ABCDE, chèn t4 vào ta được: (ABCDE,0) (ABD,1) (AD,2) (BCE,1) (ADE,1) (E,2) (ABCDE,0) (ABD,1) (B,2) (BCE,1) (ACD,1) (ADE,1) (AD,3) (E,2) (B,2) (C,2) Xuất t5 = CEH, t5 I I = I t5 = ABCDEH, chèn t5 vào ta được: (ABCDE,0) (ABD,1) (ADE,1) (BCE,1) (ACD,1) (AD,3) (E,2) (B,2) (C,2) (ABCDEH,0) (ABD,1) (ADE,1) (BCE,1) (ACD,1) (CHE,1) (AD,3) (E,3) (B,2) (CE,2) (C,3) SC = {(ABD,1), (ADE,1), (BCE,1), (ACD,1), (CEH,1), (AD,3), (E,3), (B,2), (CE,2), (C,3)}: Là tập tất tập mục liệu xuất giao tác độ hỗ trợ Từ SC, ta tìm tập mục liệu thường xuyên với ngưỡng S0 tùy ý: * Với S0 = 2, ta có: FS0 = {(AD,3), (A, 3), (D, 3), (E,3), (B,2), (CE,2), (C,3)} 3.5 Một số kết cài đặt thuật toán 3.5.1 Về phương diện kỹ thuật Thuật toán cài đặt để giải phương diện kỹ thuật cho kết theo lý thuyết giải thuật thuật toán tăng trưởng theo chiều ngang đưa Chương trình cài đặt ngơn ngữ lập trình Visual Studio 2008 sử dụng cấu trúc ngơn ngữ lập trình C#, cho kết theo ví dụ thuật tốn tăng trưởng mục 3.4.4 sau: 30 3.5.2 Về ứng dụng Xây dựng ứng dụng dựa lý thuyết giải thuật toán cho sở liệu gia tăng áp dụng cho toán hệ sở liệu thống kê dân số sau: 3.4.2.1 Bảng liệu * Bảng thành viên (Thanhvien) Tên trường Stt MaTV HoVaTenTV Kiểu Động rộng Text Text 128 Chi tiết Mã thành viên Họ tên thành viên * Bảng Danh mục nghề nghiệp(DM_nghenghiep) Stt Tên trường Kiểu Động rộng MaNN TenNgheNghiep Text Text 128 Chi tiết Mã nghề nghiệp Tên nghề nghiệp * Biến động nghề nghiệp (BiendongNN) Stt Tên trường Kiểu Động rộng Chi tiết Mã biến động nghề nghiệp ID Number MaTV Text Mã Thành viên MaNN Text Mã Nghề nghiệp 3.4.2.2 Thống kê biến động nghề nghiệp a) Dữ liệu cần thống kế Chúng ta cần thống kế biến động nghề nghiệp lần điều tra dân số quận huyện năm ta bảng liệu sau: Mã ký hiệu Mã thành viên Tên nghề nghiệp(2010) Tên nghề nghiệp (2011) Tên nghề nghiệp (2012) A TV001 Bảo Vệ Làm ruộng Làm ruộng B TV002 Lái Xe Lái Xe Về hưu C TV003 Giáo Viên Nghỉ hưu Nghỉ hưu D TV004 Bác Sỹ Bác Sỹ Nội trợ E TV005 Y tá Y tá Y tá F TV006 Công An Lái xe Bảo vệ 31 G TV007 Nội trợ Nội trợ Nội trợ H TV008 Làm ruộng Làm ruộng Làm ruộng I TV009 Về hưu Về hưu Về hưu J TV010 Thất nghiệp Thất nghiệp Thất nghiệp Bảng 3.1: Thống kê biến động nghề nghiệp theo năm Lưu ý: - Năm 2010 Mã thành viên “TV001” làm nghề “Bảo vệ”, sang năm 2011 “Làm ruộng” - Năm 2010 Mã thành viên “TV002” làm nghề “Lái xe”, sang năm 2012 làm “Về hưu” - Năm 2010 Mã thành viên “TV003” làm nghề “Giáo viên”, sang năm 2011 “Nghỉ hưu” - Năm 2010 Mã thành viên “TV004” làm nghề “Bác sỹ”, sang năm 2012 làm “Nội trợ” - Năm 2010 Mã thành viên “TV006” làm nghề “Công an”, sang năm 2011 làm nghề “Lái xe”, sang năm 2012 làm nghề “Bảo vệ” b) Ứng dụng lý thuyết tăng trưởng * Theo định nghĩa ta xét ma trận gồm i hàng j cột: i số giao tác thể biến đổi nghề nghiệp theo năm điều tra ký hiều 123 j số nghề thay đổi theo giao tác ký hiệu theo ký tự ABC… * Ta có ma trận sau: ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ A 1 1 0 B 1 0 0 C 0 0 1 D 0 0 0 E 0 1 0 F 1 0 1 0 G 0 1 0 0 H 0 0 0 0 I 0 1 0 1 J 0 0 0 32 * Kết thực hiện: - Cây tăng trưởng sau: - Số tập mục thường xuyên theo ngưỡng S0=2 là: 18 tậm mục 33 KẾT LUẬN Đề tài tổng kết kiến thức phương pháp khai phá luật kết hợp ứng dụng hai thuật toán gia tăng để giải vấn đề: với liệu tăng trưởng theo chiều dọc chiều ngang, tức số mục liệu tăng q trình phát sinh liệu mới, thuật tốn làm tăng trưởng từ tìm tập thường xuyên Thuật toán giải toán xử lý trực tuyến, xử lý liệu tăng trưởng nghĩa nó, nghĩa liệu tăng trưởng ta xử lý liệu mới, không cần xét đến liệu cũ Điều làm giảm thời gian tính tốn liệu gia tăng theo thời gian đặc biệt liệu lớn Hướng phát triển đề tài là: Nghiên cứu sâu thuật toán khai phá liệu để minh hoạ thuật toán tốt áp dụng vào số toán khai phá liệu phù hợp với giai đoạn nay: dự báo dân số, bệnh dịch, thời tiết, định hướng kinh doanh … Tiếp tục hồn thiện mở rộng chương trình luận văn để áp dụng vào thực tế cách triệt để 34 DANH MỤC CÁC TÀI LIỆU THAM KHẢO [1] Lê Hoài Bắc (2002), Bài giảng khám phá tri thức khai thác liệu- tìm luật kết hợp theo mục đích người dùng, Đại học Quốc gia TP Hồ Chí Minh [2] Đỗ Phúc (2002), Nghiên cứu phát triển số thuật giải, mơ hình ứng dụng khai thác liệu (data mining) Luận án tiến sĩ toán học, Đại học Quốc gia TP Hồ Chí Minh [3] Nguyễn Hữu Trọng (2007), Thuật toán khai thác luật kết hợp sở liệu tăng trưởng theo chiều ngang Hội nghị nghiên cứu ứng dụng Công nghệ Thông tin lần thứ FAIR-3, Nha Trang [4] Nguyễn Xuân Huy, Đoàn Văn Ba, Nguyễn Hữu Trọng, Huỳnh Văn Đức (2007) “Thuật tốn khai thác liệu tăng trưởng”, Tạp chí Khoa học Công nghệ, Viện Khoa học Công nghệ Việt Nam, số 2, tập 45, trang 9-18 [5] Vũ Đức Thi (2012) " Một số vấn đề tính tóan liên quan đến sở liệu khai phá liệu", Tạp chí Khoa học Cơng nghệ, Viện Khoa học Công nghệ Việt Nam, số 6, tập 50, trang 679-703 Tiếng Anh [6] Chengung, D.W.-L., Han,J., Ng, V., and Wong, C.Y (1996),” Maintenance of discovered association rules in large databases: An incremental updating technique” In ICDE, pp 106-114 [7] Chengung, D.W.-L., Lee, S.D., and Kao, B (1997), “A general incremental technique for maintaining discovered association rules” In Database Systems for Advanced Applications, pp 185-194 [8] Zaki, M.j., Hsiao, C., (2002), “CHARM: An Efficient Algorithm for Closed Itemset Mining” 2nd SIAM Internation Conference on Data Mining (SDM’02), pp 457-473 ... THUẬT TOÁN KHAI PHÁ LUẬT KẾT HỢP TRÊN CƠ SỞ DỮ LIỆU GIA TĂNG 3.1 Mở đầu Chương giới thiệu nghiên cứu hai thuật toán khai phá luật kết hợp sở liệu gia tăng [4] Thuật toán xử lý liệu tăng trưởng... khám phá tri thức Chương 2: Trình bày luật kết hợp, trình bày khái niệm, định nghĩa, tính chất luật kết hợp, số kỹ thuật khai thác luật kết hợp Chương 3: Khai phá luật kết hợp sở liệu gia tăng Luật. .. sau: - Cơ sở liệu, kho liệu: Đó tuyển tập sở liệu, kho liệu? ?? Các kỹ thuật làm liệu, tích hợp, lọc liệu thực liệu - Cơ sở liệu kho liệu phục vụ: Là kết lấy liệu có liên quan sở khai phá liệu người