Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 57 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
57
Dung lượng
0,96 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC QUY NHƠN NGUYỄN THỊ LÝ PHƢƠNG SỬ DỤNG THUẬT TOÁN KNN KẾT HỢP VỚI BÀI TOÁN ĐIỂM BIÊN CHO KHAI PHÁ DỮ LIỆU LỚN TRONG SPARK Chuyên ngành: Khoa học máy tính Mã số: 8480101 Ngƣời hƣớng dẫn: TS Hồ Văn Lâm LỜI CAM ĐOAN Tôi xin cam đoan luận văn cơng trình nghiên cứu tơi, khơng chép cơng trình khoa học trƣớc Các kết nêu luận văn có nguồn gốc rõ ràng đƣợc trích dẫn đầy đủ Luận văn đƣợc hồn thành thời gian tơi làm Học viên Cao học Khoa Công nghệ Thông tin, Trƣờng Đại học Quy Nhơn Tơi xin chịu hồn tồn trách nhiệm luận văn Quy Nhơn, ngày tháng năm 2021 Học viên Nguyễn Thị Lý Phƣơng LỜI CẢM ƠN Tôi xin chân thành cảm ơn thầy cô giáo Khoa Công nghệ thông tin Trƣờng Đại học Quy Nhơn truyền đạt kiến thức bổ ích, đồng thời xin cảm ơn Phòng Đào Tạo Sau đại học Trƣờng Đại học Quy Nhơn tạo điều kiện thuận lợi trình học tập thực luận văn tốt nghiệp Tôi xin gửi lời biết ơn chân thành đến TS Hồ Văn Lâm, ngƣời tận tình hƣớng dẫn góp ý cho tơi suốt q trình nghiên cứu, cho tơi nhiều lời động viên nhƣ hƣớng dẫn q báu để tơi thực tốt đƣợc đề tài Trong trình thực đề tài, khơng thể khơng kể đến giúp đỡ, đóng góp ý kiến lời động viên từ phía gia đình, ngƣời thân, đồng nghiệp bạn bè xung quanh, điều thật động lực lớn giúp tơi hồn thành tốt đề tài nghiên cứu Xin chân thành cảm ơn! Học viên Nguyễn Thị Lý Phƣơng MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN DANH MỤC CÁC CHỮ VIẾT TẮT DANH MỤC HÌNH ẢNH MỞ ĐẦU CHƢƠNG TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU VÀ THUẬT TOÁN KNN TRONG SPARK 1.1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 1.1.1 Khái niệm 1.1.2 Quá trình khai phá liệu 1.1.3 Các bƣớc trình khai phá liệu 1.1.4 Khái quát kỹ thuật KPDL 1.1.5 Ứng dụng KPDL .10 1.1.6 Những thách thức nghiên cứu ứng dụng KPDL .12 1.2 THUẬT TOÁN KNN TRONG KHAI PHÁ DỮ LIỆU 13 1.2.1 Giới thiệu chung KNN .13 1.2.2 Cơ sở toán học thuật toán KNN cho toán phân lớp 14 1.2.3 Thuật toán KNN cho toán phân lớp 15 1.2.4 Ứng dụng KNN 15 1.2.5 Thách thức ƣu điểm KNN 16 1.3 TỔNG QUAN VỀ SPARK 16 1.3.1 Giới thiệu Apache Spark 17 1.3.2 Thành phần Spark 18 1.3.3 Những điểm bật Spark mục tiêu sử dụng 19 1.4 TIỂU KẾT CHƢƠNG 20 CHƢƠNG THUẬT TOÁN KNN KẾT HỢP VỚI BÀI TOÁN ĐIỂM BIÊN TRONG SPARK CHO BÀI TOÁN DỮ LIỆU LỚN 21 2.1 GIỚI THIỆU CHUNG VÀ PHÁT BIỂU BÀI TOÁN 21 2.1.1 Giới thiệu .21 2.1.2 Phát biểu toán 22 2.2 THUẬN TOÁN KNN VÀ BÀI TOÁN ĐIỂM BIÊN CHO DỮ LIỆU LỚN 23 2.2.1 Ý tƣởng KNN 24 2.2.2 Thuật toán phân lớp KNN .24 2.2.3 Điểm biên bà ứng dụng xử lý liệu lớn 25 2.3 THUẬT TOÁN KNN KẾT HỢP BÀI TOÁN ĐIỂM BIÊN CHO DỮ LIỆU LỚN 30 2.3.1 Thuật toán KNN cho liệu lớn .30 2.3.2 Kết hợp KNN toán điểm biên cho liệu lớn .31 2.3.3 Ý tƣởng kết hợp KNN toán điểm biên cho liệu lớn 31 2.3.4 Phƣơng pháp kết hợp KNN toán điểm biên cho liệu lớn 32 2.3.5 Thuật toán kết hợp KNN toán điểm biên cho liệu lớn 33 2.4 TRIỂN KHAI THUẬT TOÁN KNN KẾT HỢP BÀI TOÁN ĐIỂM BIÊN CHO DỮ LIỆU LỚN TRONG SPARK 36 2.4.1 Giới thiệu .37 2.4.2 Tổng quan KNN Tham gia MapReduce dựa Hadoop 38 2.4.3 Triển khai KNN kết hợp với toán điểm biên dựa Spark 39 2.5 TIỂU KẾT CHƢƠNG 41 CHƢƠNG CÀI ĐẶT MÔ PHỎNG THỰC NGHIỆM 42 3.1 MÔI TRƢỜNG VÀ CÔNG CỤ 42 3.1.1 Phát biểu toàn 42 3.1.2 Môi trƣờng ngôn ngữ lập trình 42 3.1.3 Công cụ thƣ viện 43 3.1.4 Bộ liệu 43 3.2 CÀI ĐẶT MÔ PHỎNG 43 3.2.1 Cài đặt .43 3.2.2 Các tham số kết đạt đƣợc 45 3.2.3 So sánh đánh giá kết đạt đƣợc .46 KẾT LUẬN 48 TÀI LIỆU THAM KHẢO 49 DANH MỤC CÁC CHỮ VIẾT TẮT Chữ viết tắt Tên đầy đủ Nghĩa tiếng Việt KPDL Data minining Khái phá liệu KDD Knowledge Discovery in Phát tri thức sở Database liệu CSDL Database Cơ sở liệu KNN K-nearest neighbors K-Hàng xóm gần RDD Resilient Distributed Cấu trúc liệu Datasets Spark Principal Component Thuật tốn phân tích thành Analysis phần PCA DANH MỤC HÌNH ẢNH Hình 1.1 Q trình KPDL Hình 1.2 Các bƣớc KPDL Hình 1.3 Một ví dụ cách tính khoảng cách d hai điểm liệu không gian hai chiều .14 Hình 1.4 Các mốc thời gian phát triển Spark 17 Hình 1.5 Các thành phần Spark 18 Hình 2.1 Ví dụ điểm ranh giới điểm liệu nằm lề (hoặc cụm) liệu đƣợc phân phối dày đặc 26 Hình 2.2 Khơng thể vẽ đƣờng thẳng để phân tách lớp khơng gian đặc trƣng cách hồn hảo Ba dịng đƣợc vẽ, nhƣng dịng dẫn đến số phân loại sai 27 Hình 2.3 Quyết định ranh giới theo 1-NN cho điểm liệu lớp khác biệt với 28 Hình 2.4 Các vùng lân cận gần cho tập liệu huấn luyện gồm hai lớp, mẫu huấn luyện lớp đƣợc hiển thị với dấu „*‟ màu đỏ, vùng lớp đƣợc hiển thị „◦‟ màu xanh lam 28 Hình 2.5 Ranh giới định vùng định cho phân 1-NN cho hai lớp 29 Hình 2.6 Các vùng lân cận gần cho tập liệu huấn luyện gồm ba lớp .29 Hình 2.7 Ranh giới định vùng định cho phân loại hàng xóm 1-NN cho ba lớp 30 Hình 2.8 Tính khơng hiệu thƣớc đo khoảng cách đến trung tâm cụm nhƣ tiêu chí để chọn cụm thích hợp .31 Hình 2.9 Ảnh hƣởng mật độ cụm đến hiệu suất thuật tốn KNN .33 Hình 2.10 KNN kết hợp với toán điểm biên Spark .41 MỞ ĐẦU Ngày nay, Big Data – liệu lớn trở thành thuật ngữ phổ biến thịnh hành nhiều lĩnh vực cơng nghiệp học thuật Nó đƣợc sử dụng để mô tả loạt khái niệm từ khả công nghệ để lƣu trữ, tổng hợp xử lý liệu Việc xử lý lƣợng lớn liệu trở thành nhiệm vụ cần thiết số lƣợng lớn ứng dụng giới thực Khi nói đến việc đối phó với liệu lớn, tiêu chuẩn kỹ thuật khai thác liệu thƣờng không giải đƣợc khối lƣợng nhƣ thuật tốn trở nên hiệu KNN phƣơng pháp học có giám sát khai thác liệu đơn giản đƣợc sử dụng rộng rãi lĩnh vực học máy tính đơn giản nhƣng hiệu tiếng rộng rãi khai thác liệu Khi huấn luyện, thuật toán khơng học điều từ liệu huấn luyện, lý thuật toán đƣợc xếp vào loại lazy learning – máy lƣời học, tính tốn đƣợc thực cần dự đốn kết liệu Một cách ngắn gọn, KNN thuật tốn tìm đầu điểm liệu cách dựa thông tin K điểm liệu tập liệu huấn luyện gần (K-lân cận), khơng quan tâm đến việc có vài điểm liệu điểm gần nhiễu Có điều đáng lƣu ý KNN phải nhớ tất điểm liệu huấn luyện, việc không đƣợc lợi nhớ thời gian tính tốn liệu lớn Ứng dụng thực tế mơ hình miền liệu lớn không khả thi hạn chế thời gian nhớ Một số giải pháp thay phân tán đƣợc đề xuất phép phƣơng pháp xử lý liệu quy mô lớn Tuy nhiên, hiệu suất chúng đƣợc cải thiện với thiết kế phù hợp với công nghệ phát sinh Ngoài ra, thời gian tác giả hoàn thành luận văn này, đại dịch COVID-19 diễn biến phức tạp, nhà khoa học công bố cơng trình nghiên cứu khai thác liệu đƣợc phát triển có mơ số cơng trình có sử dụng mơ hình KNN để đƣa giải pháp nhằm dự báo điều trị góp phần giúp giới ngăn chặn đại dịch Với tầm quan trọng toán nghiên cứu nhƣ ứng dụng, tơi chọn “Sử dụng thuật tốn KNN kết hợp với toán điểm biên cho khai phá liệu lớn Spark” làm đề tài nghiên cứu cho luận văn Luận văn đƣợc kiến trúc thành 03 chƣơng Chƣơng Tổng quan khai phá liệu thuật toán KNN Spark Chƣơng Thuật toán KNN kết hợp với toán điểm biên Spark cho toán liệu lớn Chƣơng Cài đặt mô thực nghiệm Cuối chƣơng có phần Tiểu kết để tổng kết lại nội dung chƣơng Ngồi chƣơng nêu trên, luận văn kết thúc với phần Kết luận hƣớng phát triển để tóm tắt kết đạt đƣợc, vấn đề tồn dự kiến hƣớng phát triển luận văn 35 luyện đƣợc gom lại thành m phần riêng biệt Sau cụm đƣợc xác định, kích thƣớc chúng trải rộng chúng trục khác khơng gian liệu ( ) đƣợc tính tốn cho cụm Sử dụng Thuật tốn 1, chọn nhóm liệu thích hợp nhất.Vì đầu trình KNN phụ thuộc vào liệu huấn luyện đƣợc sử dụng, việc chọn nhóm liệu tốt có ảnh hƣởng đáng kể đến q trình phân loại cuối Do đó, thuật tốn KNN đƣợc áp dụng phần chọn liệu huấn luyện để tìm k lân cận gần đó, để ƣớc tính lớp mẫu thử nghiệm Mã giả Thuật toán đƣợc đề xuất đƣợc hiển thị bên dƣới đây: Thuật toán KNN kết hợp với toán điểm biên cho liệu lớn Đầu vào: lượng lớn liệu tập hợp mẫu thử nghiệm cần phân loại (không gian liệu có n chiều) Đầu ra: loại ước tính mẫu thử nghiệm Begin Chia lượng lớn liệu thành m cụm riêng biệt thuật toán k-mean For each cluster i = 1… m Tính tốn kích thước cụm (số lượng mẫu liệu) Tính (j=1…n) Đối với mẫu thử nghiệm Chọn nhóm liệu thích hợp cách sử dụng Thuật toán Sử dụng thuật tốn KNN cụm chọn để tìm lớp ước tính mẫu thử nghiệm End Các tham số lần lƣợt thể khoảng cách trung bình mẫu thử nghiệm đƣờng viền trung tâm cụm Hơn nữa, α β hai tham số điều chỉnh (trong phạm vi từ đến 1) đƣợc đề xuất 36 tƣơng ứng 0,5 0,7, dựa kết thực nghiệm Giá trị cao tham số α có nghĩa có tầm quan trọng khoảng cách đến số trung tâm cụm để chọn cụm thích hợp Ngoài ra, giá trị thấp tham số β có tầm quan trọng mật độ số liệu cụm 2.4 TRIỂN KHAI THUẬT TOÁN KNN KẾT HỢP BÀI TOÁN ĐIỂM BIÊN CHO DỮ LIỆU LỚN TRONG SPARK Khi khối lƣợng kích thƣớc liệu tăng lên, có phƣơng pháp tiếp cận phân tán thực hoạt động lớn thời gian định Các cơng trình gần đƣợc thực việc thực giải pháp hiệu cách sử dụng mơ hình lập trình giảm đồ đƣợc sử dụng để phân phối xử lý liệu quy mơ lớn Mặc dù cơng trình cung cấp giải pháp khác cho vấn đề, nhƣng cơng trình có ràng buộc tính chất cụ thể Khi số lƣợng liệu tăng lên, khơng thể chạy mơ hình ứng dụng thực tế máy đơn hạn chế nhớ thời gian Ngày nay, mô hình quy trình hàng loạt phổ biến đƣợc gọi MapReduce chạy cụm với số lƣợng lớn máy tính đƣợc sử dụng rộng rãi để xử lý liệu quy mô lớn Hadoop làmột khuôn khổ để triển khai MapReduce, nhƣng hiệu suất đƣợc cải thiện khuôn khổ có tên Spark Khai thác luồng liệu lớn tốc độ cao số thách thức đại học máy Để giải điều này, luận văn trình bày phân loại dựa thuật toán láng giềng kết hợp với toán điểm biên đƣợc giới thiệu phần trƣớc đƣợc triển khai Apache Spark Trong luận văn này, triển khai KNN dựa Spark Với lợi khả tính tốn nhớ, nhanh hiệu Hadoop 37 2.4.1 Giới thiệu K hàng xóm gần (KNN) loại thuật toán học máy Ý tƣởng cốt lõi thuật toán đƣa tập liệu kiểm tra R tập liệu huấn luyện S, với liệu r R, tìm k lân cận gần liệu S Trƣớc đây, thƣờng đƣợc sử dụng tập liệu Khi khối lƣợng liệu tăng lên, cách xử lý với liệu kích thƣớc lớn KNN gặp nhiều khó khăn nhƣ giới thiệu phần trƣớc Các cách tiếp cận triển khai chung dành cho r R, bắt buộc để quét toàn tập liệu S, tính tốn khoảng cách r s S Do đó, độ phức tạp KNN O (| R | × | S | × | d |), d chiều liệu Có nhiều cơng trình liên quan để giải vấn đề này, nhƣng quy mô liệu tăng lên, việc chạy bị hạn chế đáng kể thuật toán máy Phƣơng pháp hiệu phân phối song song cụm MapReduce mơ hình lập trình để dễ dàng viết ứng dụng xử lý lƣợng lớn liệu (tập liệu nhiều terabyte) song song cụm lớn (hàng nghìn nút) phần cứng theo cách thức đáng tin cậy, có khả chịu lỗi Nó lần đƣợc đề xuất Google đƣợc thực Hadoop, khung phần mềm mã nguồn mở Các chƣơng trình MapReduce đọc liệu đầu vào từ đĩa, ánh xạ chức toàn liệu, thu nhỏ kết đồ lƣu trữ kết thu nhỏ đĩa Vì vậy, Hadoop MapReduce mơ hình tính tốn hàng loạt khơng thể thích ứng với tính tốn thời gian thực Đƣợc phát triển ban đầu Đại học California, AMPLab Berkeley, Spark hệ thống tính tốn cụm đa nhanh chóng Spark cung cấp cho lập trình viên giao diện lập trình ứng dụng tập trung vào cấu trúc liệu đƣợc gọi tập liệu phân tán có khả phục hồi (RDD) Các RDD Spark hoạt động nhƣ tập hợp làm việc cho chƣơng trình 38 phân tán cung cấp dạng nhớ đƣợc chia sẻ phân tán bị hạn chế (có chủ ý) Vì vậy, dựa tính tốn nhớ chạy chƣơng trình nhanh tới 100 lần so với hadoop MapReduce nhớ nhanh 10 lần đĩa xử lý yêu cầu thời gian thực Spark hỗ trợ công cụ cấp cao phong phú bao gồm Spark SQL cho SQL xử lý liệu có cấu trúc, MLlib cho máy học, GraphX để xử lý đồ thị Spark Streaming Trong phần này, chúng tơi trình bày phƣơng pháp dựa MapReduce phƣơng pháp tiếp cận cho KNN tham gia chạy Spark Chúng chia tập liệu R cho nhiều phân vùng S cho nhiều khối nhớ cache để thích ứng với liệu lớn Với r R, tính khoảng cách với khối nhớ cache S, sau kết hợp với tốn điểm biên trình bày để để tìm k hàng xóm gần 2.4.2 Tổng quan KNN Tham gia MapReduce dựa Hadoop Giải pháp KNN tham gia đƣợc chia thành hai loại: Giải pháp xác Giải pháp gần Trong tài liệu, nhà nghiên cứu cung cấp giải pháp xác đƣợc gọi H-BNLJ (Hadoop Block Nested Loop Join) Ý tƣởng phân vùng R S thành tập { {{ , ,,…, , ,,…, } }, cặp tập (một giá trị từ R giá trị khác từ S) đƣợc phân vùng thành nhóm (mỗi nhóm bao gồm cặp nhƣ ( , )) pha đồ Trong nhóm, khoảng cách r s đƣợc tính tốn, sau thứ tự ghi theo khoảng cách nhƣ (r_id,s_id,distance(r,s)) đƣợc lƣu trữ pha reduce Trong thủ tục MapReduce này, nhóm đƣợc ghi vào tệp đƣợc tạo Trong giai đoạn MapReduce thứ hai, đọc tất tệp mà MapReduce cuối tạo Đối với r_id, lấy khoảng cách tối thiểu top-k xác định phân loại Tổng chi phí CPUlà O (| R || S | + | R | 39 nklogk) Để cải thiện hiệu suất, nghiên cứu cung cấp phƣơng pháp khác gọi H_BRJ (Hadoop Block R-tree Join) sử dụng Cây R 2.4.3 Triển khai KNN kết hợp với toán điểm biên dựa Spark Trong tập liệu S, ghi định dạng dƣới dạng nhƣ (s_id, c, , phân loại ,…, , ), s_id số nhận dạng ghi, c ,…, thuộc tính Trong tập liệu R, ghi định dạng dƣới dạng nhƣ(r_id, ghi, , …, , …, ), r_id định danh thuộc tính Bởi tập huấn luyện tập thử nghiệm có kích thƣớc cao tập liệu lớn, làm để phân vùng chúng để KNN chạy Spark hiệu nhiệm vụ đầy thách thức Có nhiều điểm khác cần đƣợc xem xét nhƣ số lƣợng đồ số lƣợng khối nhớ cache S Chúng tơi trình bày ý tƣởng đƣa thuật toán cốt lõi (1) Đọc tập liệu thử nghiệm lớn (R) thành m phân vùng Nó đƣợc triển khai đơn giản Spark api Điều có nghĩa có m nhiệm vụ bắt đầu độ song song m (2) Đọc tập liệu huấn luyện (S) vào biến quảng bá Spark Giá trị biến quảng bá đƣợc phân phối cho nhớ nút phụ Vì vậy, nhớ chứa tất liệu, nên chia S thành n tập (đƣợc biểu diễn biến s_subset Thuật toán 1) Đầu tiên lấy tập hợp (tính tốn dịng thuật tốn 2.4.1) vào biến quảng bá để sử dụng, sau lặp lại tất tập hợp đƣợc sử dụng Thuật toán 2.4.1: Tách S thành biến Broadcast 1: val s_RDD = textFile (SPath) 2: val sTotalNum = S.count () // tổng ghi lưu trữ tập liệu 40 3: val s_subset = sTotalNum / sCacheBlockNum // số ghi khối nhớ cache 4: val s_broadcast = broadcast (lấy ghi s_subset từ S) 5: for (i = to sCacheBlockNum) { 6: hoạt động khác sử dụng s_broadcast 7: s_broadcast = broadcast (lấy ghi s_subset khác từ S) 8: } (3) Minh họa hoạt động dịng thuật tốn Hàm ánh xạ R đƣợc sử dụng để tính khoảng cách với tập i S cho ghi Đối với khóa r_id, giá trị tạo thành đồ phân loại khoảng cách (khoảng cách khóa đồ phân loại giá trị đồ) Sau đó, cặp khóa-giá trị đƣợc xuất dƣới dạng (r_id, map ) Để xếp phần tử đồ theo khoảng cách, sử dụng TreeMap làm thực đồ Thuật toán 2.4.2 cung cấp chi tiết q trình Thuật tốn 2.4.2 : Ánh xạ R cặp khóa-giá trị đầu 1: R.map {r => 2: var map = new TreeMap (khoảng cách, phân loại) 3: foreach (s tập S) { 4: tính khoảng cách r s 5: sau đưa vào đồ (khoảng cách, phân loại) 6:} 7: return (r_id, đồ (khoảng cách, phân loại)) 8: } (4) Một RDD đƣợc tạo cho lần lặp kết hợp tất 41 RDD để tạo thành RDD cuối Khóa RDD cuối r_id giá trị danh sách đồ đƣợc biểu diễn dƣới dạng Danh sách (5) Chức Reduce đƣợc sử dụng RDD cuối cùng, hợp tất đồ danh sách, Bản đồ TreeMap tất phần tử đƣợc xếp theo khoảng cách Sau đó, chúng tơi lấy k giá trị từ đồ xác định phân loại Đầu cặp khóa-giá trị nhƣ (r_id, phân loại) Các bƣớc đƣợc minh họa hình 2.10 Hình 2.10 KNN kết hợp với toán điểm biên Spark 2.5 TIỂU KẾT CHƢƠNG Nội dung chƣơng này, luận văn trình bày chi tiết từ ý tƣởng đến cách thức hoạt động thuật toán KNN truyền thống Đồng thời điểm hạn chế thuật toán KNN đối diện với liệu lớn Qua chúng tơi trình bày ý tƣởng hợp thuật tốn KNN toán điểm biên để giải cho toán liệu lớn chạy Spark nhằm phát huy sức mạnh KNN 42 CHƢƠNG CÀI ĐẶT MÔ PHỎNG THỰC NGHIỆM Trong nội dung chƣơng cuối này, sở lý thuyết đƣợc trình bày chƣơng chƣơng Dựa tìm hiểu nghiên cứu công cụ, thƣ viện mã nguồn mở tích hợp sẳn có nhằm rút ngắn q trình lập trình Cũng nhƣ tìm kiếm liệu nhằm mục tiêu cài đặt giải thuật KNN kết hợp với tốn điểm biên đƣợc trình bày chƣơng để tiến hanh cài đặt thơng qua cơng cụ mã nguồn mở đƣợc trình bày giới thiệu 3.1 MÔI TRƢỜNG VÀ CÔNG CỤ 3.1.1 Phát biểu tồn Bài tốn mơ chƣơng xem xét liệu MNIST (Modified National Institute of Standards and Technology database) nhƣ liệu lớn, chúng tơi xem xét xử lý dƣới góc độ liệu có số lƣợng lớn mật độ phân bố hay lân cân điểm liệu liệu dày đặc để tiến hành cài đặt thuật toán KNN kết hợp với toán điểm biên nhƣ trình bày chƣơng hai Cụ thể, luận văn tiến hành xử lý liệu toán phân điểm biên liệu sau tiến hành thuật tốn KNN cục cụm liệu thay áp dụng KNN cho tồn q trình tính tốn tất điểm liệu phân lớp điểm liệu liệu Spark Từ rút nhận xét đánh giá cho việc vận dụng giải tốn thực tế 3.1.2 Mơi trƣờng ngơn ngữ lập trình Để tiến hành cài đặt mô luận văn sử dụng hệ điều hành Windows 10, 64 bit ngơn ngữ lập trình Python 3.7 chạy tảng Anacoda Anaconda tảng phân phối miễn phí ngơn ngữ lập trình Python R cho tính tốn khoa học (khai phá liệu, khoa học liệu, học máy, xử 43 lý liệu lớn, phân tích dự đốn, v.v.), nhằm mục đích đơn giản hóa việc quản lý triển khai Nó chạy Windows, MacOS Linux 3.1.3 Công cụ thƣ viện Luận văn sử dụng gói thƣ viện Pyspark, PySpark đƣợc phát hành để hỗ trợ hợp tác Apache Spark Spark tên cơng cụ để thực tính tốn cụm PySpark thƣ viện Python để sử dụng Spark PySpark giao diện cho Apache Spark Python Nó khơng cho phép bạn viết ứng dụng Spark cách sử dụng API Python mà cịn cung cấp để phân tích tƣơng tác liệu môi trƣờng phân tán PySpark hỗ trợ hầu hết tính Spark nhƣ Spark SQL, DataFrame, Streaming, MLlib (Machine Learning) Spark Core 3.1.4 Bộ liệu Trong phần cài đạt sử dụng liệu MNIST (Modified National Institute of Standards and Technology database) Là sở liệu lớn chứa chữ số viết tay thƣờng đƣợc dùng việc huấn luyện hệ thống xử lý hình ảnh Cơ sở liệu đƣợc sử dụng rộng rãi để huấn luyện kiểm thử lĩnh vực học máy 3.2 CÀI ĐẶT MÔ PHỎNG 3.2.1 Cài đặt Trong phần này, tính tốn chủ yếu dựa khung liệu spark RDD Dự liệu đầu vào Csv đƣợc đọc qua trình đọc spark csv tạo Dataframe với nhãn 784 cột đặc trƣng 44 Hình 3.1 Đƣa liệu vào chƣơng trình Sau đó, khung liệu qua VectorAssember để tự định dạng Hình 3.2 Định dạng khung liệu Bƣớc tiếp theo, kích thƣớc đặc trƣng đƣợc giảm bớt với trợ giúp thuật tốn PCA để đẩy nhanh q trình chạy Trƣớc sử dụng KNN kết hợp với thuật toán điểm biêm nhƣ giới thiệu chƣơng 2, chúng tơi trích xuất pca_feature nhãn liệu huấn luyện tính tốn chúng thành mảng quảng bá đến nút 45 Hình 3.3 Trích xuất đặc trƣng quảng bá đến nút Tiếp theo tính tốn KNN Sau đó, xếp ma trận theo hàng trả nhãn K Nhãn xuất nhiều nhãn dự đoán điểm liệu kiểm tra Hình 3.4 Tiến hành tính tốn KNN 3.2.2 Các tham số kết đạt đƣợc Với cấu hình thơng số nhƣ sau: trình thực thi, lõi, PCA = 50, D = Kết đạt đƣợc chƣơng trình mơ phịng đƣợc thể hình 3.4 Để đánh giá đƣợc giá trị này, sử dụng ma trận đƣợc gọi confusion matrix 46 Hình 3.5 Kết đạt đƣợc Cách tính sử dụng độ xác (accuracy) nhƣ cho biết đƣợc phần trăm lƣợng liệu đƣợc phân loại mà không đƣợc cụ thể loại đƣợc phân loại nhƣ nào, lớp đƣợc phân loại nhiều nhất, liệu thuộc lớp thƣờng bị phân loại nhầm vào lớp khác 3.2.3 So sánh đánh giá kết đạt đƣợc Ở lần chạy đầu tiên, sƣ dụng thuật toán KNN cổ điển để tiến hành phân lớp điểm liệu, tính tốn chúng hàng Trong trƣờng hợp này, nhiều thời gian để hồn thành tất bƣớc thƣờng khơng hiệu Cụ thể thời gian chạy với thông số nêu khoảng để hoàn thành 47 Ở lần chạy chúng tơi tiến hành sử dụng thuật tốn KNN kết hợp với tốn điểm biên để tính tốn dƣờng nhƣ tiết kiệm nhiều thời gian cần ánh xạ 10000 lần thay 600 triệu Nó giúp tơi cắt giảm thời gian hồn thành xuống cịn phút Sắp xếp ln cơng đoạn nhiều thời gian Tôi sử dụng để xếp mảng hai chiều với nhãn cột khoảng cách cột khác Với trợ giúp Argsort, cần xếp danh sách khoảng cách trả mục danh sách theo thứ tự tăng dần Sau đó, cần sử dụng mục để ánh xạ danh sách nhãn trả nhãn theo thứ tự khoảng cách tăng dần Theo cách này, trƣớc tốn 0,02 giây cho đầu tốn 0,0075 giây cho đầu ra, nhanh lần Broadcast - chức tích hợp ngữ cảnh Sparkđể truyền giá trị đến nút khác Trong trƣờng hợp này, nút tiết kiệm thời gian thu thập ngữ cảnh lần từ nút Tuy nhiên, trƣờng hợp khác nhau, kết ngƣợc lại Khi chạy chƣơng trình với K = PCA = 50, chƣơng trình có phát chậm chƣơng trình khơng có sóng 20 giây Đối với chƣơng trình có K = 10 PCA = 100, với trợ giúp việc phát sóng, cắt giảm tổng thể 70s Do đó, phụ thuộc vào tần suất hỏi ngữ cảnh từ nút Nếu tần số đủ cao việc phát sóng giúp giảm tần suất Ngƣợc lại, tần số thấp, thời lƣợng phát sóng lấn át thời gian hỏi tổng thể Do đó, với đầu vào lớn hơn, việc sử dụng phát sóng trở nên cần thiết 48 KẾT LUẬN Luận văn tìm hiểu, nghiên cứu kết hợp thuật toán KNN toán điểm biên Spark để giải vấn đề liệu Sau đó, chúng tơi tiến hình chƣơng trình cài đặt mơ cho KNN kết hợp với toan điểm biên dựa Spark Kết cài đặt bƣớc đầu tƣơng đối khả quan liệu thu thập đƣợc Một số hƣớng phát triển đề tài: Trong nghiên cứu tƣơng lai, đánh giá cách tiếp cận liệu lớn với liệu thông số đƣợc sử dụng luận văn Và dự định tiếp tục nghiên cứu, cải tiến để triển khai cài đạt nhiều liệu hơn, tạo nhiều kết có giá trị hơn, hỗ trợ truy vấn phức tạp Chúng tơi có kế hoạch thực thử nghiệm mở rộng nhƣ sử dụng công nghệ nhƣ Spark để làm cho q trình tính tốn nhanh 49 TÀI LIỆU THAM KHẢO [1].Usama Fayyad, Gregory Piatetsky-Shapiro, and Padhraic Smyth; From data mining to knowledge discovery in databases [2] Hastie, Trevor; Tibshirani, Robert; Friedman, Jerome (2009) “The Elements of Statistical Learning: Data Mining, Inference, and Prediction” [3] Hoàng Kiếm; Giáo trình nhập mơn trí tuệ nhân tạo; NXB ĐHQGTPHCM 2000 [4].Mehmed Kantardzic; Data mining concepts, models, methods, and algorithms; John Wiley & Sons, 2003 [5] Đỗ Phúc; Giáo trình khai thác liệu; NXB ĐHQG TPHCM 2008 [6] Anchalia, P.P.; Roy, K The k-Nearest Neighbor Algorithm Using MapReduce Paradigm In Proceedings of the 2014 5th International Conference on Intelligent Systems, Modelling and Simulation, Langkawi, Malaysia, 27–29 January 2014; pp 513–518 [7] Deng, Z.; Zhu, X.; Cheng, D.; Zong, M.; Zhang, S Efficient kNN classification algorithm for big data Neurocomputing 2016, 195, 143–148 [8] Neeb, H.; Kurrus, C Distributed K-Nearest Neighbors; Stanford University Publishing: Stanford, CA, USA, 2016 [9] Yong, Z.; Youwen, L.; Shixiong, X An improved KNN text classification algorithm based on clustering.J Comput 2009, 4, 230–237 [10] Deng, Z.; Zhu, X.; Cheng, D.; Zong, M.; Zhang, S Efficient kNN classification algorithm for big data.Neurocomputing 2016, 195, 143–148 ... hợp KNN toán điểm biên cho liệu lớn 31 2.3.4 Phƣơng pháp kết hợp KNN toán điểm biên cho liệu lớn 32 2.3.5 Thuật toán kết hợp KNN toán điểm biên cho liệu lớn 33 2.4 TRIỂN KHAI THUẬT TOÁN KNN. .. 2.3 THUẬT TOÁN KNN KẾT HỢP BÀI TOÁN ĐIỂM BIÊN CHO DỮ LIỆU LỚN 30 2.3.1 Thuật toán KNN cho liệu lớn .30 2.3.2 Kết hợp KNN toán điểm biên cho liệu lớn .31 2.3.3 Ý tƣởng kết. .. quan khai phá liệu thuật toán KNN Spark Chƣơng Thuật toán KNN kết hợp với toán điểm biên Spark cho toán liệu lớn Chƣơng Cài đặt mơ thực nghiệm Cuối chƣơng có phần Tiểu kết để tổng kết lại nội