Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 82 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
82
Dung lượng
5,08 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA LÂM THỊ HẬU NGHIÊN CỨU MƠ HÌNH CẢI TIẾN KỸ TḤT PHÂN NHÓM K-MEANS LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC TS NGUYỄN VĂN HIỆU Đà Nẵng – Năm 2018 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA LÂM THỊ HẬU NGHIÊN CỨU MÔ HÌNH CẢI TIẾN KỸ TḤT PHÂN NHĨM K-MEANS Chun ngành: KHOA HỌC MÁY TÍNH Mã số: 60.48.01.01 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC TS NGUYỄN VĂN HIỆU Đà Nẵng – Năm 2018 ii LỜI CAM ĐOAN Tôi xin cam đoan: - Những nội dung luận văn thực hướng dẫn trực tiếp TS Nguyễn Văn Hiệu - Mọi tham khảo dùng luận văn trích dẫn rõ ràng trung thực tên tác giả, tên công trình, thời gian địa điểm cơng bố - Mọi chép không hợp lệ, vi phạm quy chế đào tạo tơi xin chịu hồn tồn trách nhiệm Tác giả luận văn Lâm Thị Hậu iii MỤC LỤC DANH MỤC CÁC KÍ HIỆU, CÁC TỪ VIẾT TẮT vi DANH MỤC CÁC BẢNG BIỂU vii DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ viii MỞ ĐẦU 1 Lý chọn đề tài Mục tiêu nhiệm vụ nghiên cứu Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Ý nghĩa khoa học thực tiễn Cấu trúc của luận văn CHƯƠNG 1: TỔNG QUAN VỀ KỸ THUẬT PHÂN NHÓM Giới thiệu khai phá liệu Phân nhóm liệu gì? Kiểu liệu đối tượng phân nhóm 1.3.1 Các kiểu thuộc tính 1.3.2 Phép đo độ tương tự độ không tương tự kiểu liệu 1.4 Q trình phân nhóm liệu 17 1.5 Các phương pháp phân nhóm liệu phổ biến 18 1.5.1 Phương pháp phân hoạch (Partitioning Methods) 18 1.5.2 Phương pháp phân cấp (Hierarchical Methods) 19 1.5.3 Phương pháp dựa mật độ (Density-Based Methods) 20 1.5.4 Phương pháp dựa lưới (Gird-Based Methods) 22 1.5.5 Phương pháp dựa mơ hình xác suất (Model-Based Methods) 24 1.6 Phương pháp đánh giá việc phân nhóm liệu 26 1.7 Một số ứng dụng của phương pháp phân nhóm liệu 27 1.8 Kết chương 28 CHƯƠNG 2: MÔ HÌNH ĐỀ XUẤT VỀ KỸ THUẬT PHÂN NHÓM 29 1.1 1.2 1.3 2.1 Mơ hình K-means truyền thống 29 2.1.1 Giới thiệu thuật toán K-means 29 2.1.2 Thuật toán K-means 31 2.1.3 Minh họa thuật toán 32 iv 2.1.4 Ưu nhược điểm của thuật toán K-means 36 2.2 Lập trình song song MapReduce 37 2.2.1 Giới thiệu lập trình MapReduce 37 2.2.2 Các mơ hình sử dụng MapReduce vào kỹ thuật phân nhóm 38 2.3 Mơ hình đề x́t 41 2.3.1 Mơ hình K-means cải tiến của Weizhong Zhao 41 2.3.2 Mơ hình K-means cải tiến sử dụng phương pháp lấy mẫu 42 2.4 Kết chương 49 CHƯƠNG 3: KẾT QUẢ THỬ NGHIỆM BÀI TOÁN THỰC TẾ VÀ ĐÁNH GIÁ 50 Môi trường công cụ thử nghiệm 50 3.1.1 Giới thiệu Anaconda Navigator 50 3.1.2 Ngôn ngữ lập trình Python 50 3.1.3 Công cụ Jupyter notebook 50 3.2 Dữ liệu đầu vào của toán thử nghiệm 51 3.2.1 Bộ liệu thử nghiệm 51 3.2.2 Phân chia liệu đầu vào ứng dụng K-means MapReduce 53 3.3 Kết thử nghiệm 53 3.3.1 Bộ liệu House 53 3.3.2 Bộ liệu Data_fake 54 3.4 Đánh giá chất lượng tốc độ 55 3.4.1 Đánh giá chất lượng 55 3.4.2 Đánh giá tốc độ 58 3.5 Kết chương 60 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 61 TÀI LIỆU THAM KHẢO 62 3.1 v NGHIÊN CỨU MÔ HÌNH CẢI TIẾN KỸ THUẬT PHÂN NHÓM K-MEANS Học viên: Lâm Thị Hậu Chuyên ngành: Khoa học máy tính Mã số: Khóa: K34, Trường Đại học Bách khoa - ĐHĐN Tóm tắt - Ngày nay, với gia tăng vượt bậc của nguồn liệu khổng lồ, nhu cầu cấp thiết làm để trích x́t thơng tin tri thức hữu ích nhằm đem lại lợi ích tốt nhất Để giải vấn đề, người tiến hành khai phá nguồn liệu nhằm đánh giá mẫu, rút trích thơng tin hữu ích, chưa biết, tiếm ẩn khối liệu lớn Quá trình khai phá liệu gờm nhiều bước, phân nhóm kỹ thuật quan trọng của trình khai phá liệu Có nhiều kỹ thuật phân nhóm liệu, K-means thuật tốn phân nhóm kinh điển, ứng dụng nhiều lĩnh vực như: y học, sinh học, tìm kiếm Web, chăm sóc khách hàng, … Tuy nhiên, tập liệu lớn, thuật toán K-means tốn nhiều thời gian hiệu phân nhóm tùy thuộc vào khởi tạo trọng tâm ban đầu, có rất nhiều phương pháp cải tiến thuật toán K-means nghiên cứu thực Trên sở thuật tốn K-means, tơi nghiên cứu mơ hình cải tiến kỹ thuật phân nhóm K-means sử dụng phương pháp lấy mẫu kết hợp với lập trình song song MapReduce Kết nghiên cứu của đề tài góp phần mở rộng lĩnh vực ứng dụng kỹ thuật phân nhóm việc khai phá ng̀n thơng tin khổng lồ để giải vấn đề thực tế Từ khóa – phân nhóm liệu, kỹ thuật phân nhóm, thuật tốn K-means, cải tiến K-means sử dụng phương pháp lấy mẫu, K-means MapReduce RESEARCH TECHNICAL IMPROVEMENT MODEL DIVISION OF K-MEANS GROUP Today, with the enormous increase in data availability, there is an urgent need to extract useful information and knowledge for the best benefit In order to solve the problem, people have exploited this data source to evaluate the samples, extract useful information, unknown and hidden in large data blocks Data mining involves many steps, where clustering is an important technique for data mining There are many data classification techniques in which K-means is a classic clustering algorithm that has been applied in many fields such as medicine, biology, web search, customer care, However, for large data sets, the K-means algorithm takes time and the clustering efficiency depends on initial initialization, so there are many methods for improving the K-means algorithm be studied and implemented Based on the K-means algorithm, the thesis studied the improved model of K-means division using the sampling method in combination with the parallel mapreduction program The research results of the thesis contribute to expanding the field of application of grouping techniques in exploring huge sources of information to solve problems in practice Keywords - Data clustering, clustering techniques, K-means algorithm, Improving K-means using the sampling method, K-means MapReduce vi DANH MỤC CÁC KÍ HIỆU, CÁC TỪ VIẾT TẮT STT Ký hiệu/ Viết tắt Diễn giải sf Tính độ lệch trung bình của thuộc tính mf Giá trị trung bình của thuộc tính f zif Độ đo chuẩn hóa d(i,j) Độ đo khoảng cách (không tương tự) đối tượng i j sim(i,j) Độ tương tự đối tượng i j xif Giá trị của thuộc tính f đối tượng thứ i rif Xếp hạng thuộc tính thứ f của đối tượng thứ i CSDL Cơ sở liệu HDFS Hệ thống tập tin phân toán 10 DBI chỉ số Davies-Bouldin (DBI) của kỹ thuật đánh giá 11 EM Thuật toán tối ưu hóa kỳ vọng vii DANH MỤC CÁC BẢNG BIỂU Sớ hiệu bảng Tên bảng Trang 1.1 Ví dụ kiểu thuộc tính liệu 11 1.2 Bảng kiện ngẫu nghiên của thuộc tính nhị phân 13 1.3 Bảng thông tin bệnh nhân mô tả bởi thuộc tính nhị phân 14 2.1 Thơng tin học sinh cần phân nhóm 32 2.2 Kết minh họa q trình phân nhóm liệu 36 2.3 CSDL1 tọa độ trọng tâm ban đầu của CSDL1 44 2.4 CSDL2 tọa độ trọng tâm ban đầu của CSDL2 44 2.5 CSDL3 tọa độ trọng tâm ban đầu của CSDL3 45 2.6 Phân nhóm đối tượng của CSDL1 tính lại tọa độ tâm 45 2.7 Phân nhóm đối tượng của CSDL2 tính lại tọa độ tâm 46 2.8 Phân nhóm đối tượng của CSDL3 tính lại tọa độ tâm 47 2.9 Tập đối tượng của CSDL mẫu 47 2.10 Tọa độ trọng tâm ban đầu của CSDL mẫu 48 2.11 Phân nhóm đối tượng của CSDL mẫu vào k=3 nhóm 48 2.12 Phân nhóm đối tượng của CSDL D 49 3.1 Thơng tin thuộc tính liệu House 51 3.2 3.3 3.4 3.5 Chỉ số DB của K-means SK-meansMR liệu House Chỉ số DB của K-means SK-meansMR liệu Data_fake Thời gian chạy của K-means SK-meansMR liệu House Thời gian chạy của K-means SK-meansMR liệu Data_fake 56 57 58 59 viii DANH MỤC CÁC HÌNH VẼ, ĐỜ THỊ Sớ hiệu hình vẽ 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 Tên hình vẽ Trang Quy trình khai phá liệu Mơ hình phân nhóm liệu Cách biểu diễn nhóm CSDL Mơ tả khoảng cách Euclidean Mahata Q trình phân nhóm của R XU, D Wunsch II Survey Mơ hình thuật tốn phân cấp (thuật tốn AGNES DIANA) Mơ hình tiếp cận mật độ kết nối mật độ Mơ hình phân nhóm dựa lưới (thuật tốn STING) Sơ đờ thuật tốn phân nhóm K-means Khởi tạo trọng tâm cho thuật tốn K-means Tính lại tọa độ trọng tâm lần Tính lại tọa độ trọng tâm lần Mơ hình lập trình MapReduce Mơ hình MapReduce cho thuật tốn DBSCAN Sơ đờ thuật tốn PK-means Q trình phân nhóm theo phương pháp SK-meansMR Sơ đờ thuật tốn SK-meansMR Giao diện Jupyter Notebook Thơng tin liệu House Thông tin liệu Data_fake Bộ liệu House phân chia làm đầu vào cho hàm Map Bộ liệu Data_fake phân chia làm đầu vào cho hàm Map Kết chạy thuật toán K-means với liệu House Kết chạy thuật toán SK-meansMR với liệu House Kết chạy thuật toán K-means với liệu Data_fake Kết chạy thuật toán SK-meansMR với liệu Data_fake Biểu đờ chất lượng phân nhóm K-means SK-meansMR liệu House Biểu đờ chất lượng phân nhóm K-means SK-meansMR liệu Data_fake Biểu đồ tốc độ của K-means SK-meansMR liệu House Biểu đồ tốc độ của K-means SK-meansMR liệu Data_fake 13 17 20 21 23 31 32 34 35 38 40 41 42 43 51 52 52 53 53 53 54 54 55 56 57 58 59 MỞ ĐẦU Lý chọn đề tài Những năm gần đây, tiến vượt bậc của công nghệ thông tin với phát triển kinh tế, xã hội Internet tạo nguồn liệu khổng lồ, đa dạng thể loại ngành nghề Bên cạnh đó, giới xu tồn cầu hóa, tổ chức phủ, y tế, giáo dục, thương mại, … phải đối mặt với nhiều khó khăn, thách thức, dẫn đến nhu cầu cấp thiết làm để trích xuất thơng tin, tri thức hữu ích từ ng̀n liệu này, để vận dụng cải thiện hiệu hoạt động của hệ thống thông tin ban đầu nhằm đem lại lợi ích mục đích tốt nhất Giải pháp hữu hiệu để người giải vấn đề nêu khai phá khối lượng liệu gia tăng chóng mặt Có nhiều kỹ thuật để khai phá liệu phân lớp, dự đoán, phân nhóm, luật kết hợp, Trong phân nhóm bước quan trọng khai phá liệu Kỹ thuật đã, có nhiều ứng dụng lĩnh vực thương mại điện tử, chăm sóc sức khỏe, ngân hàng, viễn thơng, v.v… Với mong muốn góp phần nghiên cứu ứng dụng kỹ thuật phân nhóm vào việc khai phá liệu để giải vấn đề thực tế, định chọn đề tài “Nghiên cứu mơ hình cải tiến kỹ thuật phân nhóm K-means” Mục tiêu và nhiệm vụ nghiên cứu Mục tiêu: - Xây dựng mơ hình cải tiến kỹ thuật phân nhóm sở phương pháp K-means; - Đánh giá hiệu của phương pháp cải tiến so với phương pháp phân nhóm truyền thống; - Xây dựng thử nghiệm thành công mô hình cải tiến liệu thử Nhiệm vụ: - Tìm hiểu kỹ thuật phân nhóm; - Tìm hiểu mơ hình lập trình song song MapReduce; - Tìm hiểu liệu thực tế (cụ thể tốn thực tế) Đới tượng và phạm vi nghiên cứu Đới tượng nghiên cứu - Kỹ thuật phân nhóm liệu tập trung vào kỹ thuật K-means; - Mô hình lập trình song song MapReduce Phạm vi nghiên cứu - Các thuật tốn của kỹ thuật phân nhóm liệu; - Mơ hình lập trình song song MapReduce 59 ❖ So sánh thời gian chạy của liệu Data_fake thuộc tính, 5.000.000 điểm với thuật tốn K-means SK-meansMR: Bảng 3.5 Thời gian chạy K-means SK-meansMR liệu Data_fake K K-means SK-meansMR 38.27 21.40 62.08 29.37 83.95 39.11 91.13 23.75 108.82 26.85 130.10 31.17 145.15 35.28 164.07 40.00 10 161.76 43.99 Hình 3.13 Biểu đồ tốc độ K-means SK-meansMR liệu Data_fake Qua thử nghiệm, ta thấy rằng tốc độ của thuật toán cải tiến sử dụng phương pháp lấy mẫu SK-meansMR nhanh rất nhiều so với thuật toán K-means, chứng tỏ thuật toán SK-meansMR tốt K-means truyền thống 60 3.5 Kết chương Chương tiến hành thử nghiệm thuật toán K-means SK-meansMR hai liệu House Data_fake Kết thử nghiệm cho thấy: chất lượng thuật tốn SK-meansMR có chất lượng phân nhóm tốt thuật tốn K-means; tốc độ SKmeansMR hiệu rất nhiều so với thuật tốn K-means truyền thống Điều chứng tỏ mơ hình K-means cải tiến sử dụng phương pháp lấy mẫu tốt mơ hình Kmeans truyền thống 61 KẾT ḶN VÀ HƯỚNG PHÁT TRIỂN Kết luận Thông qua việc nghiên cứu tìm hiểu kỹ thuật phân nhóm liệu K-means, luận văn nghiên cứu mơ hình cải tiến thuật toán K-means sử dụng phương pháp lấy mẫu kết hợp với lập trình song song Map Reduce nhằm mục đích mở rộng ứng dụng kỹ thuật phân nhóm vào giải toán với liệu lớn thực tế Về mặt lý thuyết, luận văn tìm hiểu nghiên cứu thuật tốn phân nhóm liệu, mơ hình K-means truyền thống mơ hình K-means cải tiến sử dụng phương pháp lấy mẫu SK-meansMR Lập trình song song Map Reduce Về mặt thực nghiệm, luận văn tiến hành thử nghiệm hai liệu đầu vào Kết trình thử nghiệm cho thấy thuật tốn cải tiến SK-meansMR có chất lượng phân nhóm tốt K-means tốc độ của mơ hình cải tiến SK-meansMR tốt rất nhiều so với mơ hình K-means truyền thống Hướng phát triển của đề tài Trong phạm vi luận văn, với mục đích nghiên cứu mơ hình cải tiến thuật tốn K-means sử dụng phương pháp lấy mẫu, chương trình thử nghiệm chỉ chạy máy đơn với liệu ở mức vừa Vì vậy, tương lai cần nghiên cứu, hồn thiện để xử lý phân nhóm với liệu lớn hệ thống máy chủ chạy song song, nhằm mở rộng ứng dụng kỹ thuật phân nhóm ở nhiều lĩnh vực, với mục tiêu đáp ứng nhu cầu trích x́t, tìm kiếm thơng tin hữu ích phục vụ sống người 62 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Trương Ngọc Châu, “Bài giảng Khai phá liệu”, khoa CNTT, Trường ĐHBK Đà Nẵng [2] Võ Thị Ngọc Châu, “Giáo trình Khai phá liệu”, Khoa khoa học kỹ thuật máy tính, Trường ĐHBK TP HCM [3] Trần Hoàng Việt, Nguyễn Thị Tuyết, Trần Thiên Thành, “Một cải tiến thuật toán K-means song song sử dụng phương pháp lấy mẫu”, Khoa Công nghệ thông tin, Đại học Quy Nhơn, Hội thảo quốc gia CITA 2017 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC” [4] Nguyễn Tấn Khôi, “Bài giảng xử lý phân tán Map Reduce”, khoa CNTT, Trường ĐHBK Đà Nẵng [5] Nguyễn Thị Huế (2011) Nghiên cứu kỹ thuật phân cụm liệu ứng dụng Luận văn thạc sĩ, Trường Đại học Công Nghệ, Đại học Quốc gia Hà Nội Tiếng nước ngoài [6] The-Morgan-Kaufmann-Series-in-Data-Management-Systems-Jiawei-HanMicheline-Kamber-Jian-Pei-Data-Mining.-Concepts-and-Techniques-3rdEdition-Morgan-Kaufmann-2011 [7] Weizhong Zhao, Huifang Ma, and Qing He, “Parallel K-Means Clustering Based on MapReduce”, 2009 [8] Survey of Clustering Algorithms Rui Xu, Student Member, IEEE and Donald Wunsch II, Fellow, IEEE IEEE TRANSACTIONS ON NEURAL NETWORKS, VOL 16, NO 3, MAY 2005 [9] MapReduce Design of K-Means Clustering Algorithm, Prajesh P Anchalia, Anjan K Koundinya, Srinath N K of Department of CSE, R V College of Engineering, Bangalore, India, 2014 UKSim-AMSS 16th International Conference on Computer Modelling and Simulation [10] Clustering Algorithms in MapReduce: A Review of Vinod S Bawane Student Mobile Technology GHRCE, Nagpur and Sandesha M Kale Asst Prof CSE Department JDIET, Yavatmal International Journal of Computer Applications 63 (0975 – 8887) National Conference on Recent Trends in Computer Science & Engineering (MEDHA 2015) Website [1] http://bis.net.vn [2] http://ungdung.khoa-hnvd.com [3] https://contanalytics.wordpress.com [4] http://vi.wikipedia.org [5] https://sites.google.com/site/dataclusteringalgorithms/home [6] https://cuongquach.com/tai-lieu-python-tieng-viet-co-ban-vo-duy-tuan.html [7] https://github.com/pymivn/math-stats-ml/blob/master/sklearn_tut1.ipynb [8] http://docs.anaconda.com/anaconda/navigator/ [9] https://www.dataquest.io/blog/jupyter-notebook-tutorial/ [10] https://slideplayer.com/slide/10052109/ Clustering GRID-based methods, Elsayed Hemayed, Data Mining Course [11] https://docs.python.org/3/library/ [12] https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.norm.html ... tượng nghiên cứu - Kỹ thuật phân nhóm liệu tập trung vào kỹ thuật K-means; - Mơ hình lập trình song song MapReduce Phạm vi nghiên cứu - Các thuật toán của kỹ thuật phân nhóm liệu; - Mơ hình lập... hiệu phân nhóm tùy thuộc vào khởi tạo trọng tâm ban đầu, có rất nhiều phương pháp cải tiến thuật toán K-means nghiên cứu thực Trên sở thuật tốn K-means, tơi nghiên cứu mơ hình cải tiến kỹ thuật. .. tiêu và nhiệm vụ nghiên cứu Mục tiêu: - Xây dựng mơ hình cải tiến kỹ thuật phân nhóm sở phương pháp K-means; - Đánh giá hiệu của phương pháp cải tiến so với phương pháp phân nhóm truyền thống;