Abstract
Clustering is a technique which is used to measure similarities between data in big data analysis and data mining field. Among various clustering methods, k-Modes algorithm is representatively used for categorical data. To increase the performance of iterative-centric tasks such as k-Modes, a distributed and concurrent framework Spark has been received great attention recently because it overcomes the limitation of Hadoop. Spark provides an environment that can process large amount of data in main memory using the concept of abstract objects called RDD. Spark provides Mllib, a dedicated library for machine learning, but Mllib only includes k-means that can process only continuous data, so there is a limitation that categorical data processing is impossible. In this paper, we design RDD for k-Modes algorithm for categorical data clustering in spark environment and implement an algorithm that can operate effectively. Experiments show that the proposed algorithm increases linearly in the spark environment.
클러스터링은 빅데이터 분석 및 데이터 마이닝 분야에서 데이터 간 유사성을 파악하기 위해 사용하는 기법으로 다양한 클러스터링 기법 중 범주적 데이터를 위해 k-Modes 알고리즘이 대표적으로 사용된다. k-Modes와 같이 반복적 연산이 집중된 작업의 속도를 향상시키기 위해 많은 관심을 받고 있는 분산 병행 프레임워크 스파크는 하둡과 달리 RDD라는 추상화 객체 개념을 사용하여 대용량의 데이터를 메모리 상에서 처리 가능한 환경을 제공한다. 스파크는 다양한 기계학습을 위한 라이브러리인 Mllib을 제공하고 있으나 연속적 데이터만 처리 가능한 k-means만 포함되어 있어 범주적 데이터 처리가 불가능한 한계가 있다. 따라서 본 논문에서는 스파크 환경에서 범주적 데이터 클러스터링을 위한 k-Modes 알고리즘을 위한 RDD 설계하고 효과적으로 동작할 수 있는 알고리즘을 구현하였다. 실험을 통해 제안한 알고리즘이 스파크 환경에서 선형적으로 증가한다는 것을 보였다.