Ở lần chạy đầu tiên, chúng tôi sƣ dụng thuật toán KNN cổ điển để tiến hành phân lớp các điểm dữ liệu, đã tính toán chúng từng hàng một. Trong trƣờng hợp này, sẽ mất rất nhiều thời gian để hoàn thành tất cả các bƣớc thƣờng không hiệu quả. Cụ thể thời gian chạy với các thông số đã nêu là mất khoảng hơn 1 giờ để hoàn thành.
Ở các lần chạy tiếp theo chúng tôi tiến hành sử dụng thuật toán KNN kết hợp với bài toán điểm biên để tính toán dƣờng nhƣ tiết kiệm rất nhiều thời gian vì nó sẽ chỉ cần ánh xạ 10000 lần thay vì 600 triệu. Nó giúp tôi cắt giảm thời gian hoàn thành xuống chỉ còn 3 phút.
Sắp xếp luôn là công đoạn mất nhiều thời gian. Tôi đã sử dụng để sắp xếp một mảng hai chiều với nhãn trong một cột và khoảng cách trong các cột khác. Với sự trợ giúp của Argsort, tôi chỉ cần sắp xếp danh sách khoảng cách và nó sẽ trả về chỉ mục của danh sách theo thứ tự tăng dần. Sau đó, chúng ta chỉ cần sử dụng chỉ mục để ánh xạ danh sách nhãn và nó sẽ trả về nhãn theo thứ tự khoảng cách tăng dần. Theo cách này, trƣớc đây nó tốn 0,02 giây cho mỗi đầu ra và bây giờ nó tốn 0,0075 giây cho mỗi đầu ra, nhanh hơn 3 lần.
Broadcast - nó là một chức năng tích hợp của ngữ cảnh Sparkđể truyền các giá trị đến các nút khác nhau. Trong trƣờng hợp này, nút sẽ tiết kiệm thời gian thu thập ngữ cảnh mỗi lần từ nút chính. Tuy nhiên, trong những trƣờng hợp khác nhau, kết quả sẽ ngƣợc lại. Khi tôi chạy chƣơng trình với K = 5 và PCA = 50, chƣơng trình có phát chậm hơn chƣơng trình không có sóng 20 giây. Đối với chƣơng trình có K = 10 và PCA = 100, với sự trợ giúp của việc phát sóng, nó cắt giảm tổng thể hơn 70s. Do đó, nó có thể phụ thuộc vào tần suất hỏi ngữ cảnh từ nút chính. Nếu tần số đủ cao và việc phát sóng có thể giúp giảm tần suất. Ngƣợc lại, nếu tần số thấp, thời lƣợng phát sóng có thể 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 sẽ trở nên cần thiết.
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 và bài toán điểm biên trong Spark để giải quyết vấn đề dữ liệu hơn. Sau đó, chúng tôi tiến hình một chƣơng trình cài đặt mô phỏng cho KNN kết hợp với bài toan điểm biên dựa trên Spark. Kết quả cài đặt bƣớc đầu tƣơng đối khả quan đối với bộ dữ liệu thu thập đƣợc.
Một số hƣớng phát triển của đề tài:
Trong nghiên cứu tƣơng lai, chúng tôi sẽ đánh giá cách tiếp cận của chúng tôi trên các bộ dữ liệu lớn hơn với cùng dữ liệu và thông số đƣợc sử dụng trong luận văn này. Và chúng ta dự định tiếp tục nghiên cứu, cải tiến để triển khai cài đạt trên nhiều bộ dữ liệu hơn, tạo ra nhiều kết quả có giá trị hơn, hỗ trợ các truy vấn phức tạp hơn.
Chúng tôi có kế hoạch thực hiện các thử nghiệm mở rộng hơn cũng nhƣ sử dụng các công nghệ mới hơn nhƣ Spark để làm cho quá trình tính toán thậm nhanh.
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 dữ 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.