초록
K-최근접 이웃 연결(KNN 연결) 알고리즘은 기계학습에서 매우 효과적인 방법으로, 작은 데이터군에 대해서 널리 사용되어 왔다. 데이터의 수가 증가함에 따라, 단일 컴퓨터에서는 메모리와 수행시간의 제약으로 실제적인 응용프로그램에서는 실행하기에 적합하지 못하였다. 최근에는 대규모 데이터 처리를 위해서, 많은 수의 컴퓨터로 이루어진 클러스터에서 실행될 수 있는 맵리듀스 (MapReduce)로 알려진 알고리즘이 널리 사용되고 있다. 하둡은 맵리듀스 알고리즘을 구현한 프레임워크이지만 스파크라고 하는 새로운 프레임워크에 의하여 그 성능이 월등히 개선되었다. 본 논문에서는, 스파크에 기반하여 구현된 KNN 연결 알고리즘을 제안하였으며, 이는 인메모리(In-Memory) 연산 기능의 장점으로 하둡보다 빠르고 보다 효율적일 것으로 기대한다. 실험을 통하여, 수행시간에 영향을 주는 요소들에 관하여 조사하였으며, 제안한 접근 방식의 우수성과 효율성을 확인하였다.
K Nearest Neighbor Join (KNN Join) is a simple yet effective method in machine learning. It is widely used in small dataset of the past time. As the number of data increases, it is infeasible to run this model on an actual application by a single machine due to memory and time restrictions. Nowadays a popular batch process model called MapReduce which can run on a cluster with a large number of computers is widely used for large-scale data processing. Hadoop is a framework to implement MapReduce, but its performance can be further improved by a new framework named Spark. In the present study, we will provide a KNN Join implement based on Spark. With the advantage of its in-memory calculation capability, it will be faster and more effective than Hadoop. In our experiments, we study the influence of different factors on running time and demonstrate robustness and efficiency of our approach.