Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 96 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
96
Dung lượng
3,4 MB
Nội dung
i ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CNTT VÀ TRUYỀN THÔNG ĐÀO THỊ THÚY QUỲNH NGHIÊN CỨU PHƯƠNG PHÁP TÌM TẬP THƯỜNG XUYÊN SỬ DỤNG CÂY TIỀN TỐ NÉN THÁI NGUYÊN 2015 ii LỜI CẢM ƠN Luận văn hồn thành với hướng dẫn tận tình PGS.TS Ngô Quốc Tạo – Viên Công nghệ thông tin - Viện Hàn Lâm Khoa học Việt Nam Trước tiên tơi xin chân thành bày tỏ lòng biết ơn sâu sắc tới PGS.TS Ngơ Quốc Tạo người tận tình hướng dẫn, động viên giúp đỡ suốt thời gian thực luận văn Tôi xin chân thành cảm ơn thầy cô trường Công Nghệ thông tin Truyền thông – Đại học Thái Nguyên, tạo điều kiện thuận lợi cho tơi hồn thành tốt khóa học Xin chân thành cảm ơn anh, chị bạn học viên lớp Cao học CHK12A ln động viên, giúp đỡ nhiệt tình chia sẻ với kinh nghiệm học tập, công tác suốt khố học Cuối cùng, tơi xin gửi lời cảm ơn sâu sắc đến gia đình, người thân, bạn bè động viên, khuyến khích hỗ trợ cần thiết để tơi hồn thành luận văn Mặc dù cố gắng, song luận văn tránh khỏi thiếu sót, kính mong dẫn quý thầy cô bạn Thái Nguyên, ngày 16 tháng 05 năm 2015 Người viết Đào Thị Thúy Quỳnh LỜI CAM ĐOAN cảm ơn thông tin trích dẫn luận văn rõ nguồn gốc Thái Nguyên, ngày 16 tháng 05 năm 2015 Người cam đoan Đào Thị Thúy Quỳnh BẢNG KÝ HIỆU CHỮ VIẾT TẮT TT Ký hiệu viết tắt Giải thích CNTT Công nghệ thông tin KPDL Khai phá liệu CSDL Cơ sở liệu KDD ITL Item - TransLink CT-ITL Compressed Tree - Item TransLink CFP Compressed FP - Tree FP - Tree Frequent pattern Tree D = {T1, T2,…, Tn} Tập hợp n giao dịch 10 I= {i1, i2,…,im} Tập hợp m phầntử CSDL 11 Minsup Ngưỡng độ hỗ trợ 12 Minconf Ngưỡng độ tin cậy tối thiểu 13 Conditional pattern - base Cơ sở mẫu có điều kiện 14 Conditional FP-Tree Cây FP có điều kiện Khám phá tri thức sở liệu (Knowledge Discovery in Databases) DANH MỤC CÁC BẢNG Bảng 2.1 Biểu diễn sở liệu giao dịch ngang 18 Bảng 2.2 Biểu diễn sở liệu giao dịch dọc 19 Bảng 2.3 Biểu diễn sở liệu giao dịch ma trận 19 Bảng 2.4 Một số hóa đơn bán hàng siêu thị 24 Bảng 3.1 Sắp xếp ánh xạ khoản mục đối tượng thường xuyên 45 DANH MỤC CÁC HÌNH Hình 1.1 Quy trình khám phá tri thức từ sở liệu Hình 1.2 Kiến trúc hệ thống khai phá liệu Hình 2.1: So sánh thời gian thực thi với số lượng giao dịch khác 36 Hình 3.1 Cơ sở liệu mẫu .38 Hình 3.2a Cây tiền tố hồnh chỉnh đối tượng 1-4 .39 Hình 3.2b Cây giao dịch 39 Hình 3.3 Cấu trúc liệu Item-TransLink (ITL) 40 Hình 3.4a Những giống hệt tiền tố 41 Hình 3.4b Cây tiền tố nén 41 Hình 3.5 Cây giao dịch nén 46 Hình 3.6 Cấu trúc Item - TransLink cải tiến 47 Hình 3.7.Khai phá đệ quy tập khoản mục thường xuyên 48 Hình 3.8 Ví dụ minh họa xây dựng CFP-Tree 53 Hình 3.9 Khai phá CFP-Tree 57 Hình 3.10 Biên dịch CFP_Tree VC6 68 Hình 3.11 Sử dụng CFP-Tree qua tham số dòng lệnh .69 Hình 3.12 Gọi CFP-Tree qua giao diện Window Form 70 Hình 3.13 Xem kết xử lý 71 Hình 3.14 Tổ chức file để khai phá liệu .71 vii MỤC LỤC LỜI CẢM ƠN…………………………………………………………………… …I LỜI CAM ĐOAN……………………………………………………………… …III BẢNG KÝ HIỆU CHỮ VIẾT TẮT …………………………………………… IV DANH MỤC CÁC BẢNG……………………………………………………… IV DANH MỤC CÁC HÌNH………………………………………………………… V MỞ ĐẦU .1 CHƯƠNG 1: TỔNG QUAN VỀ KHÁI PHÁ DỮ LIỆU 1.1 Giới thiệu tổng quan 1.2 Kiến trúc hệ khai phá liệu thống khai phá liệu 1.2.1.Một số khái niệm khai phá liệu 1.2.2 Nhiệm vụ khai phá liệu 1.3 Một số phương pháp liệu 10 khai phá 1.3.1.Phương pháp suy diễn / quy nạp 10 1.3.2.Phương pháp ứng dụng K-láng giềng gần 11 1.3.3.Phương pháp sử dụng định luật 12 1.3.4.Phương pháp phát luật kết hợp 12 1.4 Những khó khăn liệu 14 1.5 Một số ứng dụng .17 khai khai phá phá dữ liệu CHƯƠNG 2: KHAI PHÁ TẬP THƯỜNG XUYÊN 18 2.1 Bài toán khai phá xuyên 18 tập mục thường 2.1.1 Khái niệm Tập mục thường xuyên 18 2.1.2 Tập mục thường xuyên luật kết hợp .20 .21 2.1.4 Một số tnh chất tập mục thường xuyên .21 vii 2.1.5 Hướng tiếp cận khai phá tập mục thường xuyên 21 2.2 Một số thuật toán 22 khai phá tập mục thường xuyên viii 2.2.1 Thuật toán Apriori .22 2.2.2 Thuật toán FP-Growth .27 CHƯƠNG 3: THUẬT TOÁN KHAI PHÁ TẬP THƯỜNG XUYÊN SỬ DỤNG CÂY TIỀN TỐ NÉN .38 3.1 Thuật toán khai phá tập thường xuyên sử dụng cấu trúc liệu thuật toán CT-ITL 38 3.1.1 Cấu trúc liệu Item - TransLink .38 3.1.2.Cấu trúc liệu thuật toán CT-ITL .40 3.1.3 Thực bước thuật toán khai phá tập thường xuyên sử dụng cấu trúc CT-ITL 45 3.2 Thuật toán khai phá tập thường xuyên sử dụng CFP – Tree .49 3.2.1 Cấu trúc CFP – Tree .49 3.2.2 Thuật toán khai phá tập thường xuyên CFP – Tree .54 3.3 Thực bước thuật toán 59 3.4 Thực nghiệm 68 3.4.1 Đặt vấn đề 68 3.4.2 Cài đặt chương trình khai phá tập thường xuyên Compressed FP – Tree (CFP) .68 3.4.3 So sánh kết với thuật toán khác: 72 KẾT LUẬN .73 TÀI LIỆU THAM KHẢO .74 MỞ ĐẦU Ngày nay, với phát triển công nghệ thông tin (CNTT) khả thu thập lưu trữ thông tin hệ thống thông tin tăng cách chóng mặt Bên cạnh đó, việc tin học hóa nhanh chóng nhiều lĩnh vực đời sống văn hóa xã hội, quản lý kinh tế, khoa học kỹ thuật nhiều lĩnh vực khác tạo cho lượng liệu khổng lồ cần lưu trữ Sự bùng nổ dẫn tới yêu cầu cấp thiết cần có kỹ thuật công cụ để tự động chuyển đổi lượng liệu khổng lồ thành tri thức có ích Từ đó, bên cạnh phương pháp khai thác thơng tin truyền thống xuất khuynh hướng kỹ thuật đời Khai phá liệu (Datamining) lĩnh vực quan trọng ngành CNTT Khai phá liệu (KPDL) áp dụng cách rộng rãi nhiều lĩnh vực đời sống : marketing, tài – ngân hàng, bảo hiểm, khoa học, y tế, an ninh, internet…Rất nhiều tổ chức công ty lớn giới áp dụng kỹ thuật KPDL vào hoạt động sản xuất kinh doanh thu lợi ích to lớn Khai phá tập thường xun đóng vai trò thiết yếu KPDL, tảng cho nhiệm vụ KPDL khác khai phá luật kết hợp, phân lớp, phân cụm liệu, tìm kiếm mối tương quan, mối quan hệ sở liệu Do vậy, khai phá tập thường xuyên trở thành nhiệm vụ quan trọng KPDL.Có nhiều thuật tốn đề xuất với mục đích khai phá tập thường xuyên nhanh xác Tuy nhiên với sở liệu lớn cần cấu trúc liệu nhỏ gọn lưu trữ nhớ hiệu khai phá tập thường xuyên.Từ nhận định gợi ý giáo viên hướng dẫn, định chọn đề tài: “Nghiên cứu phương pháp tìm tập thường xuyên sử dụng tiền tố nén” Nhiệm vụ luận văn nắm vững kiến thức tổng quan lĩnh vực KPDL, nghiên cứu số thuật toán khai phá tập thường xuyên, nghiên cứu thuật toán khai phá tập thường xuyên tiền tố nén lấy điển hình cấu trúc CFP (Compressed FP-Tree) cấu trúc CT-ITL (Compressed Tree - Item TransLink) sau cài đặt chương trình thử nghiệm, đánh giá, so sánh hiệu thuật toán khai 62 Xét giao dịch với MappedTrans = Xét giao dịch với MappedTrans = 63 Xét giao dịch với MappedTrans = Cuối ta thu CFP đầy đủ sau 64 Bước 3: Khai phá tập thường xuyên - Độ hỗ trợ =2 giao dịch (40%) - Thuật toán CT-PRO item có tần số nhỏ nhất: (Từ lên bảng GlobalItemTable) Chỉ mục 5: (index: 5, item: 7, tần số: 2) GlobalItemTable - Item khoản mục thường xuyên gốc LocalFrequentPatternTree - Sau đó, CT-PRO tạo phép chiếu tất transaction kết thúc với index Projection biểu diễn LocalCFP-Tree chứa locallyfrequentitems Có transaction kết thúc index 5: Tid Items 1245 1345 - Thăm node-link mục GlobalCFP-Tree xác định item thường xuyên địa phương màxảy liền với Có ba node mục đường dẫn tới gốc cho nút duyệt đếm số khác xảy với index Xác định tần số item địa phương giao dịch kết thúc index 5: (2), (1), (1) (2) Với minsup = mục 1,4 (item id: 4, 5) locally frequent, chúng ghi vào LocalItemTable gán số id LocalItemTable Tid Item Count 2 Chúng trở thành gốc LocalFrequentPatternTree gốc hình thành tập item thường xuyên với chiều dài hai 65 Tất tập thường xuyên chứa item đưa cách duyệt LocalFrequentPatternTree: (2), 74 (2), 75 (2), 754 (2) Chỉ mục 4: (index: 4, item: 5, tần số: 3) GlobalItemTable Có giao dịch kết thúc index 4: Tid Items 1245 2 34 1345 Xác định tần số item local giao dịch kết thúc index 4: (3), (2) (2) Với minsup = số 1,2,3 (item id: 4, 3, 1) locally frequent, chúng ghi vào LocalItemTable gán số id LocalItemTable Tid Item Count 4 3 Chúng trở thành gốc LocalFrequentPatternTree 66 Tất tập thường xuyên chứa item đưa cách duyệt LocalFrequentPatternTree: (3), 54 (3), 53 (2), 534 (2), 51 (2), 514 (2) Chỉ mục 3: (index: 3, item: 1, tần số: 4) GlobalItemTable Có giao dịch kết thúc index 3: Tid Items 1234 1345 123 123 Xác định tần số item local giao dịch kết thúc index 3: (4), (3) Với minsup = số 1,2 (item id: 4, 3) locally frequent, chúng ghi vào LocalItemTable gán số id LocalItemTable Tid Item Count 4 3 Chúng trở thành gốc LocalFrequentPatternTree 67 Tất tập thường xuyên chứa item đưa cách duyệt LocalFrequentPatternTree: (4), 14 (4), 13 (3), 134 (3) Chỉ mục 2: (index: 2, item: 3, tần số: 4) GlobalItemTable + Có transaction kết thúc index 2: Tid Items 1245 1234 123 123 Xác định tần số item local transaction kết thúc index 2: (4) ới minsup = số (item id: 4) locally frequent, chúng ghi V vào LocalItemTable gán số id LocalItemTable Tid Item Count 4 Chúng trở thành gốc LocalFrequentPatternTree 68 Tất tập thường xuyên chứa item đưa cách duyệt LocalFrequentPatternTree: (4), 34 (4) 5.Chỉ mục 1:Cuối trình khai phá đạt đến gốc cây, kết là: (5) 3.4 Thực nghiệm 3.4.1 Đặt vấn đề Như luận văn trình bày phần trên, có nhiều thuật tốn đề xuất với mục đích khai phá tập thườngxuyên nhanh xác Tuy nhiên với CSDL lớn cần cấu trúc liệu nhỏ gọn lưu trữ nhớ hiệu khai phá tập thường xuyên Do vậy, Luận văn tiến hành cài đặt thử nghiệm, đánh giá tốc độ ba thuật toán Apriori, FP-Growth thuật toán CT-PRO khai phá tập thường xuyên FP nén sử dụng CSDL giao dịch T40I10D100K chứa 100.000 giao dịch, Mushroom chứa 8.124 giao dịch tải từ trang [https://archive.ics.uci.edu/ml/machine-learning-databases/00238/] CSDL bán hàng chứa 300 giao dịch mua hàng siêu thị 3.4.2 Cài đặt chương trình khai phá tập thường xuyên Compressed FP – Tree (CFP) Chương trình viết C++ biên dịch VC6 (Visual C++ 6.0, gói phần mềm Visual Studio 6.0) Hình 3.10 Biên dịch CFP_Tree VC6 69 Biên dịch Visual C++ 6.0 tạo file CFP_Tree.exe Hoạt động dạng console: Đầu vào: tham số dòng lệnh - Tham số file sở liệu nguồn - Tham số thứ hai ngưỡng độ hỗ trợ tối thiểu, tnh theo % - Tham số cuối file chứa kết xử lý Sau nhận tham số: - Chương trình kiểm tra tnh hợp lệ tham số - Đọc liệu từ file nguồn - Tính độ hỗ trợ tuyệt đối từ % độ hỗ trợ tối thiểu - Dựng CFP - Khai phá tập thường xuyên - Xuất kết file Minh họa chạy chương trình với tham số dòng lệnh: - Đầu vào: Mushroom.inp - Độ hộ trợ tối thiểu: 10% - Đầu ra: Mushroom.out Hình 3.11 Sử dụng CFP-Tree qua tham số dòng lệnh 70 Để thuận lợi cho việc giao tiếp với người dùng, Project CFP viết C# tạo với giao diện window form, biên dịch Visual Studio 2013 Giao diện chương trình chạy CFP.exe: Hình 3.12 Gọi CFP-Tree qua giao diện Window Form Cho phép chọn file đầu vào (có phần mở rộng inp) nằm thư mụcvà tự động tạo file đầu (cùng tên với file đầu vào, có phần mở rộng out) Sau nhập mức độ % hỗ trợ tối thiểu, người dùng click nút “xử lý liệu” để bắt đầu tnh tốn Chương trình gọi CFP_Tree, truyền tham số dòng lệnh để xử đưa kết lên giao diện Ngồi chương trình cho phép người dùng xem file đầu vào file kết xử lý (sử dụng cơng cụ EmEditor) 71 Hình 3.13 Xem kết xử lý File CFP.exe, CFP_Tree.exe Wait.exe phải đặt thư mục Hình 3.14 Tổ chức file để khai phá liệu 72 3.4.3 So sánh kết với thuật toán khác Luận văn tiến hành cài đặt thử nghiệm, đánh giá tốc độ ba thuật toán Apriori, FP-Growth thuật toán CT-PRO khai phá tập thường xuyên FP nén sử dụng CSDL giao dịch T40I10D100K chứa 100.000 giao dịch, Mushroom chứa 8.124 giao dịch tải từ trang [https://archive.ics.uci.edu/ml/machinelearningdatabases/00238/] CSDL bán hàng chứa 300 giao dịch mua hàng siêu thị Số lượng Cơ sở liệu Minsup Thuật toán tập Thời gian Thời gian thường dựng khai phá xuyên Bán hàng Mushroom 3% (9/300) 0.5% (40/8.124) 5% (5000/100.000) QtyT40I10D100K 1% (1000/100.000) -6 CT-PRO 64 0.063(s)