KR101770265B1 - 고속 클러스터링 시스템 및 방법 - Google Patents

고속 클러스터링 시스템 및 방법 Download PDF

Info

Publication number
KR101770265B1
KR101770265B1 KR1020150138465A KR20150138465A KR101770265B1 KR 101770265 B1 KR101770265 B1 KR 101770265B1 KR 1020150138465 A KR1020150138465 A KR 1020150138465A KR 20150138465 A KR20150138465 A KR 20150138465A KR 101770265 B1 KR101770265 B1 KR 101770265B1
Authority
KR
South Korea
Prior art keywords
data
cluster
candidate
center point
clustering
Prior art date
Application number
KR1020150138465A
Other languages
English (en)
Other versions
KR20170039397A (ko
Inventor
이재길
송환준
이진우
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020150138465A priority Critical patent/KR101770265B1/ko
Publication of KR20170039397A publication Critical patent/KR20170039397A/ko
Application granted granted Critical
Publication of KR101770265B1 publication Critical patent/KR101770265B1/ko

Links

Images

Classifications

    • G06F17/30598
    • G06F17/30318

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

클러스터링 시스템이 빅 데이터를 고속 클러스터링하기 위하여, 외부로부터 입력되는 빅 데이터를 분산처리하여 복수의 분산 데이터를 생성하고, 생성된 복수의 분산 데이터 중 어느 하나의 분산 데이터를 복수의 분할 데이터로 생성한다. 복수의 분할 데이터를 샘플링하고 클러스터링하여 클러스터 수만큼의 복수의 후보점을 선택하고, 분산 데이터와 복수의 후보점을 토대로 클러스터를 할당한 후 클러스터 중심점을 재탐색한다. 재탐색한 클러스터 중심점을 이용하여 빅 데이터를 고속 클러스터링한다.

Description

고속 클러스터링 시스템 및 방법{System and method for high-speed clustering}
본 발명은 대규모 데이터에서의 고속 클러스터링 시스템 및 방법에 관한 것이다.
소셜 네트워크와 인터넷의 활성화, 디지털 경제 등의 확산으로, 대규모의 데이터들 즉, 빅데이터들이 생산되고 있다. 빅데이터로부터 유용한 정보를 얻기 위해서는 클러스터링과 같은 방법을 이용하여 정보를 얻는데, 실시간 데이터 처리에 대한 요구가 늘어남에 따라 고속 클러스터링 방법이 필요해지고 있다. 그러나, 기존에 존재하는 클러스터링 방법으로는 빅데이터의 고속 처리가 불가능하다.
이러한 문제점을 해결하기 위해, 빅데이터를 샘플링하여 데이터 사이즈를 실시간 처리가 가능하도록 줄이거나, 인-메모리(In-Memory) 방식의 접근으로 연산 속도를 빠르게 한다. 또는, 하둡(Hadoop)과 같은 분산처리 프레임워크를 사용하여 클러스터링을 고속으로 처리하고자 하는 시도가 있었다.
그러나, 이러한 방식들로 클러스터링을 수행할 경우, 클러스터링의 정확도가 떨어지게 되거나 전체 데이터의 정확한 클러스터를 찾지 못하는 문제점이 있다. 또한, 초기 대표점들의 지역 최적점으로 수렴되는 등의 문제가 존재하기 때문에, 빅 데이터에서의 클러스터링 결과의 정확성을 유지한 고속처리는 여전히 해결해야 할 문제로 남아있다.
따라서, 본 발명은 대규모 데이터에서의 고속 클러스터링 시스템 및 방법을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 클러스터링 시스템은,
외부로부터 입력되는 빅 데이터를 분산 처리하여, 복수의 분산된 데이터를 생성하는 데이터 입력부; 상기 복수의 분산된 데이터 중 어느 하나의 분산된 데이터를 복수의 분할 데이터로 분할하는 데이터 분할부; 상기 복수의 분할 데이터를 각각 샘플링하고 클러스터링하여, 초기점 후보군을 추출하는 제1 분산 처리부; 상기 제1 분산 처리부가 추출한 초기점 후보군으로부터 복수의 후보점을 추출하고, 중심점 후보군을 수신하여 복수의 클러스터 중심점을 추출하는 결과 취합부; 및 상기 데이터 입력부가 생성한 분산된 데이터와 상기 결과 취합부가 추출한 후보점을 이용하여 클러스터를 구성한 후 복수의 중심점 후보군을 생성하고, 생성한 중심점 후보군을 상기 결과 취합부로 전달하는 제2 분산 처리부를 포함한다.
상기 제1 분산 처리부는, 상기 복수의 분할 데이터를 각각 수신하고 분할 데이터에서 미리 설정된 수의 샘플 데이터를 선택하여 샘플링을 각각 수행하여, 복수의 샘플링된 데이터를 각각 생성하는 복수의 샘플링부; 및 상기 복수의 샘플링된 데이터를 클러스터링하여 복수의 초기점 후보를 각각 생성하고, 생성한 복수의 초기점 후보를 상기 초기점 후보군으로 결과 취합부로 전달하는 상기 복수의 후보점 탐색부를 포함할 수 있다.
상기 제2 분산 처리부는, 상기 복수의 후보점을 상기 분산된 데이터에 할당하여 클러스터를 각각 형성하는 복수의 클러스터 할당부; 및 상기 클러스터 할당부에서 형성한 클러스터 내에서 중심점을 재 탐색하여 중심점 후보를 각각 생성한 후 상기 결과 탐색부로 중심점 후보군으로 전달하는 복수의 중심점 탐색부를 포함할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 클러스터링 시스템이 빅 데이터를 클러스터링하는 방법은,
외부로부터 입력되는 빅 데이터를 분산처리하여 복수의 분산 데이터를 생성하고, 생성된 복수의 분산 데이터 중 어느 하나의 분산 데이터를 복수의 분할 데이터로 생성하는 단계; 상기 복수의 분할 데이터 중 선택한 샘플 데이터를 샘플링하고 클러스터링하여, 클러스터 수만큼의 복수의 후보점을 선택하는 단계; 상기 어느 하나의 분산 데이터를 상기 복수의 후보점 중 어느 하나의 후보점에 할당하여 클러스터를 구성하고, 상기 클러스터 수만큼의 클러스터 중심점을 재탐색하는 단계; 및 상기 재탐색한 클러스터 중심점을 이용하여 상기 빅 데이터를 클러스터링하는 단계를 포함한다.
상기 복수의 후보점을 선택하는 단계는, 상기 복수의 분할 데이터에서 미리 설정된 수만큼의 샘플 데이터를 선택하고, 선택한 샘플 데이터를 샘플링하여 샘플링 데이터를 생성하는 단계; 상기 샘플링 데이터를 클러스터링하여 초기점 후보군을 추출하는 단계; 및 상기 추출한 초기점 후보군에서 상기 클러스터 수만큼의 후보점을 선택하는 단계를 포함할 수 있다.
상기 클러스터 중심점을 재탐색하는 단계는, 상기 어느 하나의 분산 데이터를 수신하고, 복수의 상기 후보점 중 어느 하나의 후보점에 분산 데이터를 할당하여 클러스터를 구성하는 단계; 상기 구성된 클러스터를 토대로, 어떤 후보점이 어떤 클러스터에 할당되었는지를 나타내는 클러스터 데이터를 생성하는 단계; 상기 생성한 클러스터 데이터와 구성된 상기 클러스터를 이용하여, 상기 클러스터에 대한 중심점을 재탐색하여 중심점 후보군을 생성하는 단계; 및 상기 생성한 중심점 후보군에서 상기 클러스터 중심점을 재탐색하는 단계를 포함할 수 있다.
본 발명에 따르면 대규모 데이터에서 지역 최적점으로 수렴하지 않으면서 높은 정확도를 유지한 채 고속으로 클러스터링을 처리하여, 실시간으로 머신러닝, 데이터마이닝, 패턴 인식 등의 응용 서비스를 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 고속 클러스터링 시스템의 구조도이다.
도 2는 본 발명의 실시예에 따른 제1 분산 처리부의 구조도이다.
도 3은 본 발명의 실시예에 따른 제2 분산 처리부의 구조도이다.
도 4는 본 발명의 실시예에 따른 고속 클러스터링 방법에 대한 흐름도이다.
도 5는 본 발명의 실시예에 따른 클러스터 후보점을 나타낸 예시도이다.
도 6은 본 발명의 실시예에 따른 클러스터 중심점 탐색에 대한 예시도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 도면을 참조로 하여 본 발명의 실시예에 따른 고속 클러스터링 시스템 및 방법에 대해 설명한다.
도 1은 본 발명의 실시예에 따른 고속 클러스터링 시스템의 구조도이다.
도 1에 도시된 바와 같이, 클러스터링 시스템(100)은 데이터 입력부(110), 데이터 분할부(120), 제1 분산 처리부(130), 제2 분산 처리부(140) 및 결과 취합부(150)를 포함한다.
데이터 입력부(110)는 외부로부터 입력되는 빅 데이터를 수신하여 복수의 분산 데이터로 분산 처리한다. 본 발명의 실시예에서는 빅 데이터의 형태나 빅 데이터를 입력하는 입력 수단은 어느 하나로 한정하여 설명하지 않는다. 데이터 입력부(110)는 복수의 분산 데이터 중 어느 하나의 분산 데이터를 데이터 분할부(120)와 제2 분산 처리부(140)로 전달한다.
빅 데이터가 분산되어 전달되는 과정에서, 데이터 입력부(110)가 분산 파일 시스템(Distributed File System)을 이용하여 여러 대의 시스템으로 분산하여 전송할 수 있으며, 이를 위해 데이터 입력부(110)를 포함하는 고속 클러스터링 시스템(100)은 복수의 시스템 중 어느 하나의 시스템에 해당하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다. 또한, 본 발명의 실시예에서는 설명의 편의를 위하여 데이터 입력부(110)가 고속 클러스터링 시스템(100) 내에 포함되는 것을 예로 하여 설명하나, 하나의 데이터 입력부가 복수의 고속 클러스터링 시스템에 연결되어 있는 형태로 구현될 수도 있다.
데이터 분할부(120)는 데이터 입력부(110)로부터 전달된 분산된 데이터를 분리 분할(disjoint partition)하여, 분할된 데이터를 생성한다. 여기서 빅 데이터를 데이터 사이즈가 고르게 분할하여 나눌 때, 데이터 분할부(120)가 이후 설명할 제1 분산 처리부(130)에 포함된 샘플링부(131)의 수만큼 분할하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다. 또한, 데이터 분할부(120)는 분산된 데이터를 분리 분할하기 위하여 제1 매퍼(mapper)의 기능을 수행하도록 하는 것을 예로 하여 설명한다. 여기서 매퍼를 통해 분산된 데이터를 분할하는 방법은 이미 알려진 사항으로, 본 발명의 실시예에서는 상세한 설명을 생략한다.
제1 분산 처리부(130)는 데이터 분할부(120)에서 생성된 분할된 데이터를 수신하고, 분할된 데이터를 샘플링한다. 그리고 샘플링된 데이터를 클러스터링하여 초기점 후보군을 추출한다. 여기서 제1 분산 처리부(130)의 구조에 대해 도 2를 참조로 먼저 설명한다.
도 2는 본 발명의 실시예에 따른 제1 분산 처리부의 구조도이다.
도 2에 도시된 바와 같이, 제1 분산 처리부(130)는 복수개의 샘플링부(131)와 복수개의 후보점 탐색부(132)를 포함한다. 본 발명의 실시예에서는 n개의 샘플링부(131)와 후보점 탐색부(132)를 도시하였으나, 반드시 이와 같이 한정되는 것은 아니다.
복수개의 샘플링부(131)는 각각 분할된 데이터를 수신하고, 분할된 데이터에서 샘플 데이터를 선택하여 샘플링을 수행한다. 본 발명의 실시예에서는 분할된 데이터가 순차적으로 샘플링부(131)로 입력되고, 분할된 데이터에서 미리 설정된 수의 샘플 데이터를 선택하여 샘플링하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
이때, 샘플링부(131)는 샘플 데이터를 샘플링하기 위하여 제1 리듀서(reducer)의 기능이 포함되도록 구현되는 것을 예로 하여 설명한다. 또한, 샘플링부(131)가 분할된 데이터에서 선택한 샘플 데이터의 수는 어느 하나의 데이터군에 치우치지 않고 전역적인 데이터의 특성을 유지할 수 있도록 결정된다.
후보점 탐색부(132)는 샘플링부(131)에서 각각 샘플링된 데이터를 클러스터링을 수행하고, 클러스터링한 결과로 초기점 후보군을 추출한다. 여기서 후보점은 클러스터 수만큼 생성되고, 초기점 후보군은 후보점에 후보점 탐색부(132)의 수를 곱한 수만큼의 후보점들이 포함되어 있다. 샘플링된 데이터를 클러스터링하고 이를 토대로 초기점 후보군을 추출하는 방법에 대해서는 이후 설명한다.
한편, 상기 도 1의 결과 취합부(150)는 제1 분산 처리부(130)에서 샘플링 데이터를 클러스터링하여 추출한 복수의 클러스터링 결과 즉, 초기점 후보군들을 수신하여 취합하고, 취합한 초기점 후보군들에서 복수의 후보점을 선택한다. 여기서 후보점은 취합한 초기점 후보군들로부터 클러스터의 중심점이 될 가능성이 가장 큰 점을 후보점으로 지정하며, 클러스터 수만큼 선택될 후보점을 지정하는 방법은 이후 상세히 설명한다.
또한, 결과 취합부(150)는 이후 설명할 제2 분산 처리부(140)에서 중심점이 재 탐색된 복수의 중심점 후보군을 수신하여 취합하고, 취합한 중심점 후보군에서 복수의 클러스터 중심점을 선택한다. 클러스터 중심점 수는 클러스터의 수와 동일하며, 클러스터의 수는 외부로부터 입력받는 것을 예로 하여 설명한다. 그리고 클러스터 중심점을 선택하는 방법은 후보점을 지정하는 방법과 동일하게 수행되는 것을 예로 하여 설명하며, 이에 대해서는 이후 설명한다.
제2 분산 처리부(140)는 데이터 입력부(110)로부터 분산 데이터를 수신하고, 수신한 분산 데이터를 결과 취합부(150)가 지정한 복수의 후보점을 이용하여 클러스터를 생성하고, 복수의 중심점 후보군을 재 탐색한다. 그리고 분산 처리 결과 중심점 후보군을 생성하여 결과 취합부(150)로 전달하여 클러스터 중심점을 탐색하도록 한다. 이러한 제2 분산 처리부(140)의 구조에 대해 도 3을 참조로 설명한다.
도 3은 본 발명의 실시예에 따른 제2 분산 처리부의 구조도이다.
도 3에 도시된 바와 같이, 복수개의 클러스터 할당부(141)와 복수개의 중심점 탐색부(142)를 포함한다. 본 발명의 실시예에서는 n개의 클러스터 할당부(141)와 중심점 탐색부(142)를 도시하였으나, 반드시 이와 같이 한정되는 것은 아니다.
클러스터 할당부(141)는 결과 취합부(150)에서 지정한 후보점을 데이터 입력부(110)로부터 수신한 분산된 데이터에 할당하여 클러스터를 형성한다. 그리고 형성된 클러스터에 대한 클러스터 데이터를 생성한다. 여기서 클러스터 데이터는 어떤 후보점이 어떤 클러스터에 할당되었는지를 나타내는 정보를 의미한다.
클러스터 할당부(141)가 분산된 데이터에 대해 가장 가까운 중심점 후보를 찾기 위해, 거리 계산 알고리즘(예를 들어, 유클리디안 거리)을 이용하여 수행하며, 거리 계산 알고리즘은 이미 알려진 사항으로 본 발명의 실시예에서는 상세한 설명을 생략한다. 클러스터 할당부(141)는 클러스터를 형성하기 위하여 제2 매퍼의 기능을 포함하여 구현되는 것을 예로 한다.
중심점 탐색부(142)는 클러스터 할당부(141)가 생성한 클러스터 내에서 중심점을 재 탐색하여 복수의 중심점 후보가 포함된 중심점 후보군을 생성하고, 생성한 중심점 후보군을 결과 취합부(150)로 전달한다. 여기서 중심점 후보는 클러스터 수만큼 생성하고, 중심점 후보군은 중심점 후보에 중심점 탐색부(142)의 수를 곱한 수만큼의 중심점 후보가 포함되어 있다. 중심점 탐색부(142)는 클러스터 내에서 중심점을 탐색하기 위하여 제2 리듀서의 기능을 포함하여 구현되는 것을 예로 하며, 클러스터 내에서 중심점을 탐색하는 방법은 제1 분산 처리부(130)에서 초기점 후보군을 추출하는 방법과 동일한 것을 예로 하여 설명한다.
본 발명의 실시예에서는 고속 클러스터링 시스템(100)이 빅 데이터의 고속 클러스터링을 위하여, 제1 분산 처리부(130)에서 수행하는 반복적 작업인 전역적 탐색 절차와, 제2 분산 처리부(150)에서 수행하는 비 반복 작업인 지역적 정제 절차를 수행하기 위해 2개의 맵리듀스(MapReduce) 작업이 포함된다. 따라서, 데이터 분할 모듈(120)은 제1 매퍼 기능, 제1 분산 처리부(130)는 제1 리듀서 기능과 제2 매퍼 기능, 그리고 제2 분산 처리부(150) 제2 매퍼 기능을 포함하는 것을 예로 하여 설명하며, 매퍼와 리듀서의 기능은 이미 알려진 사항으로 본 발명의 실시예에서는 상세한 설명은 생략한다.
이상에서 설명한 고속 클러스터링 시스템(100)을 이용하여 클러스터링을 수행하는 방법에 대해 도 4를 참조로 설명한다.
도 4는 본 발명의 실시예에 따른 고속 클러스터링 방법에 대한 흐름도이다.
도 4에 도시된 바와 같이, 데이터 입력부(110)가 외부로부터 입력되는 빅 데이터를 분산 파일 시스템을 이용하여 분산한 후 데이터 분할부(120)로 전달한다(S100). 데이터 분할부(120)는 데이터 입력부(110)로부터 빅 데이터의 일부인 분산된 데이터를 수신하여 저장한다.
그리고 데이터 분할부(120)는 분산된 데이터들이 고른 데이터 사이즈를 나타내도록 분할하여 제1 분산 처리부(130)로 전송한다(S101, S102). 이때, 데이터 분할부(120)는 매퍼의 기능을 통해 분산된 데이터를 분할하는데, 리듀서의 수만큼 분할한다. 여기서 리듀서는 제1 분산 처리부(130)를 구성하고 있는 복수의 샘플링부 내에 그 기능이 각각 포함되어 있다. 따라서, 본 발명의 실시예에서는 샘플링부(131)의 수에 맞춰 데이터를 분할하며, 샘플링부(131)가 5개 포함되어 있는 것을 예로 하면 분산된 데이터는 5개의 분할 데이터로 생성된다.
분할된 데이터를 수신한 제1 분산 처리부(130)는 전역적 탐색을 수행한다. 즉, 제1 분산 처리부(130)에 포함되어 있는 5개의 샘플링부(131)는 각각 분할 데이터를 수신한다. 각각의 샘플링부(131)는 수신한 분할 데이터들 중 샘플 데이터를 선택하여 샘플링한다(S103). 여기서 각각의 샘플링부(131)가 분할 데이터에서 선택하는 샘플 데이터의 수는 전역적인 데이터의 특성을 유지할 수 있도록 샘플 데이터를 선택하며, 본 발명의 실시예에서는 샘플링부(131)가 40+2K개의 샘플 데이터를 선택하는 것을 예로 하여 설명한다. 이때, K는 클러스터의 수를 의미한다.
제1 분산 처리부(130)의 후보점 탐색부(132)는 샘플링부(131)에서 각각 샘플링된 40+2K개의 데이터를 클러스터링하여, 샘플링된 데이터에서 K개의 클러스터 중심점을 초기점 후보로 탐색한다(S104). 탐색된 클러스터 중심점들은 빅 데이터에 대한 클러스터링 알고리즘을 수행할 때 후보점으로 사용된다.
이러한 후보점은 샘플링부(131)의 수가 많을수록 그 수가 늘어난다. 여기서, 샘플링된 데이터에서 초기점 후보를 찾기 위해, 후보점 탐색부(132)는 각각 샘플링된 데이터를 PAM(Partitioning Around Medoids) 알고리즘을 사용하여 초기점 후보를 찾아내며, PAM 알고리즘을 통해 초기점 후보를 찾아내는 방법은 이미 알려진 사항으로, 본 발명의 실시예에서는 상세한 설명을 생략한다. 하나의 후보점 탐색부(132)에서는 K개의 초기점 후보가 탐색되고, 제1 분산 처리부(130)에 n개의 후보점 탐색부(132)가 존재하는 경우 제1 분산 처리부(130)에서 추출된 초기점 후보군에 속한 초기점 후보는 n*K개가 된다.
제1 분산 처리부(130)가 S104 단계에서 클러스터링한 결과 즉, 초기점 후보군들은 결과 취합부(150)로 전달되고(S105), 결과 취합부(150)는 S105 단계에서 수신한 초기점 후보군들을 집계하여 K개의 후보점을 선택한다(S106). S106 단계에서 초기점 후보군들로부터 후보점을 선택하기 위하여, 결과 취합부(150)는 각 초기점 후보군에 대하여 클러스터에 대한 제곱 오차 합(sum of the square error)과 같이 클러스터의 정확성을 검증할 수 있는 방법을 사용하여 후보점을 선택한다.
즉, 결과 취합부(150)는 각각의 초기점 후보군들의 제곱 오차 합을 계산하고, 제곱 오차 합이 가장 작은 후보를 후보점으로 선택한다. 이에 대해 도 5를 예로 하여 먼저 설명한다.
도 5는 본 발명의 실시예에 따른 클러스터 후보점을 나타낸 예시도이다.
도 5에 도시된 바와 같이, 클러스터가 3개라고 가정하면, 도 5의 (a) 내지 (c)에 나타낸 바와 같이 후보점이 3개로 구성된 초기점 후보군을 얻을 수 있다. 그리고 초기점 후보군을 다음 수학식 1의 제곱 오차 합을 이용하여 계산된 값이 가장 낮은 후보를 초기점 후보로 선택한다.
Figure 112015095143653-pat00001
여기서 p는 클러스터 Ci의 내부 점에 대한 좌표 벡터이고, mi는 클러스터 Ci의 중심점에 대한 좌표 벡터을 의미한다.
도 5의 (a) 내지 (c)에 나타낸 각각의 초기점 후보군들 중 제곱 오차 값이 도 5의 (b)에 나타낸 후보군이 가장 작고 클러스터 중심점에 가까우므로, 도 5의 (b)가 후보점으로 선택된다.
한편, 상기 도 4에서 S106 단계에서 결과 취합부(150)가 후보점을 선택하면, 결과 취합부(150)는 후보점을 제2 분산 처리부(140)로 전달한다. 제2 분산 처리부(140)는 데이터 입력부(110)로부터 분산된 데이터를 수신하는데(S108), 이때 제2 분산 처리부(140)가 수신한 분산된 데이터는 S100 단계에서 수신한 분산된 데이터와 동일한 데이터이다.
그리고 제2 분산 처리부(140)는 S107 단계에서 결과 취합부(150)로부터 수신한 후보점을 클러스터의 초기점으로 이용하여, S108 단계에서 수신한 분산된 데이터를 가장 가까운 후보점에 할당하여 클러스터를 할당한다(S109). 이때, 각 분산된 데이터에 대해 가장 가까운 후보점을 찾기 위해, 클러스터 할당부(141)는 거리 계산 알고리즘(예를 들어, 유클리디안 거리)을 이용하여 수행한다.
그리고, S109 단계에서 할당된 클러스터를 토대로 생성된 클러스터 데이터는 각각 다른 중심점 탐색부(142)로 전달된다. 중심점 탐색부(142)는 수신한 클러스터 데이터를 이용하여 클러스터에 대한 복수의 중심점을 재탐색 한다(S110). 중심점 탐색부(142)가 중심점을 재탐색하는 방법은 여러 방법을 통해 수행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다. 이때, 본 발명의 실시예에 따라 클러스터의 중심점을 탐색한 예에 대해 도 6을 참조로 먼저 설명한다.
도 6은 본 발명의 실시예에 따른 클러스터 중심점 탐색에 대한 예시도이다.
도 6의 (a)는 초기점이 랜덤하게 선택된 경우의 예이고, 도 6의 (b)는 일반적인 맵 리듀스 K-Medoid 방법론을 통한 중심점 탐색의 예시도이다. 그리고 도 6의 (c)는 본 발명의 실시예에 따른 클러스터 중심점을 탐색한 예시도이다.
도 6에 나타낸 바와 같이, 본 발명의 실시예에 따르면 클러스터의 중심점을 올바르게 탐색하였으나, 초기점을 랜덤하게 선택하는 경우나 일반적인 맵 리듀스 K-Medoid 방법론을 이용하면 지역 최적점 수렴 문제가 발생하여 클러스터의 중심점을 제대로 탐색하지 못함을 알 수 있다.
상기 도 4에서 S110 단계에서 재탐색된 복수의 중심점은 결과 취합부(150)로 전달되고(S111), 결과 취합부(150)는 복수의 중심점을 수신하여 정제된 전체 데이터에 대한 클러스터 중심점을 집계하여 클러스터 중심점을 생성한다(S112). S112 단계 이후에는 상기에서 설명한 절차를 통해 추출한 클러스터 중심점을 이용하여, 빅 데이터를 클러스터링한다. 이를 토대로 빅 데이터에 대한 고속 처리가 가능하다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (9)

  1. 클러스터링 시스템에 있어서,
    외부로부터 입력되는 빅 데이터를 분산 처리하여, 복수의 분산된 데이터를 생성하는 데이터 입력부;
    상기 복수의 분산된 데이터 중 어느 하나의 분산된 데이터를 복수의 분할 데이터로 분할하는 데이터 분할부;
    상기 복수의 분할 데이터를 각각 샘플링하여 복수의 샘플링된 데이터를 생성하고, 상기 샘플링된 데이터를 클러스터링하여 복수의 초기점 후보를 생성하며, 생성한 초기점 후보를 초기점 후보군으로 추출하는 제1 분산 처리부;
    상기 제1 분산 처리부가 추출한 초기점 후보군으로부터 복수의 후보점을 추출하고, 중심점 후보군을 수신하여 복수의 클러스터 중심점을 추출하는 결과 취합부; 및
    상기 데이터 입력부가 생성한 분산된 데이터와 상기 결과 취합부가 추출한 복수의 후보점을 이용하여 클러스터를 구성하고, 상기 구성한 클러스터를 토대로 생성된 복수의 중심점 후보군을 상기 결과 취합부로 전달하는 제2 분산 처리부
    를 포함하는 클러스터링 시스템.
  2. 제1항에 있어서,
    상기 제1 분산 처리부는,
    상기 복수의 분할 데이터를 각각 수신하고 분할 데이터에서 미리 설정된 수의 샘플 데이터를 선택하여 샘플링을 각각 수행하여, 복수의 샘플링된 데이터를 각각 생성하는 복수의 샘플링부; 및
    상기 복수의 샘플링된 데이터를 클러스터링하여 복수의 초기점 후보를 각각 생성하고, 생성한 복수의 초기점 후보를 상기 초기점 후보군으로 결과 취합부로 전달하는 복수의 후보점 탐색부
    를 포함하는 클러스터링 시스템.
  3. 제2항에 있어서,
    상기 복수의 샘플링부는 각각 상기 분할 데이터로부터 외부로부터 입력된 클러스터의 수를 토대로 계산된 수만큼의 샘플 데이터를 선택하며,
    상기 복수의 초기점 후보는 상기 클러스터의 수만큼 생성되고, 상기 초기점 후보군은 복수의 초기점 후보에 상기 후보점 탐색부의 수를 곱한 만큼의 후보점을 포함하며,
    상기 결과 취합부는 상기 클러스터의 수만큼의 후보점과 클러스터 중심점을 추출하는 클러스터링 시스템.
  4. 제1항에 있어서,
    상기 제2 분산 처리부는,
    상기 복수의 후보점을 상기 분산된 데이터에 할당하여 클러스터를 각각 형성하는 복수의 클러스터 할당부; 및
    상기 클러스터 할당부에서 형성한 클러스터 내에서 중심점을 재 탐색하여 중심점 후보를 각각 생성한 후 결과 탐색부로 중심점 후보군으로 전달하는 복수의 중심점 탐색부
    를 포함하는 클러스터링 시스템.
  5. 제1항에 있어서,
    상기 데이터 분할부는 상기 분산된 데이터를 분할하기 위하여 제1 매퍼(mapper) 기능을 포함하고, 상기 제1 분산 처리부는 제1 리듀서(reducer) 기능을 포함하며, 상기 제2 분산 처리부는 제2 매퍼 기능과 제2 리듀서 기능을 포함하는 클러스터링 시스템.
  6. 클러스터링 시스템이 빅 데이터를 클러스터링하는 방법에 있어서,
    외부로부터 입력되는 빅 데이터를 분산처리하여 복수의 분산 데이터를 생성하고, 생성된 복수의 분산 데이터 중 어느 하나의 분산 데이터를 복수의 분할 데이터로 생성하는 단계;
    상기 복수의 분할 데이터에서 미리 설정된 수만큼의 샘플 데이터를 선택하고, 선택한 샘플 데이터를 샘플링하여 샘플링 데이터를 생성하는 단계;
    상기 샘플링 데이터를 클러스터링하여 초기점 후보군을 추출하는 단계;
    상기 추출한 초기점 후보군에서 클러스터 수만큼의 후보점을 선택하는 단계;
    상기 어느 하나의 분산 데이터를 상기 복수의 후보점 중 어느 하나의 후보점에 할당하여 클러스터를 구성하고, 구성된 클러스터 수만큼의 클러스터 중심점을 재탐색하는 단계; 및
    상기 재탐색한 클러스터 중심점을 이용하여 상기 빅 데이터를 클러스터링하는 단계
    를 포함하는 클러스터링 방법.
  7. 삭제
  8. 제6항에 있어서,
    상기 초기점 후보군은 상기 샘플링 데이터에 PAM(Partitioning Around Medoids) 알고리즘을 사용하여 찾아내고,
    상기 초기점 후보군에 대하여 클러스터의 내부 점에 대한 좌표 벡터와 클러스터의 중심점에 대한 좌표 벡터를 이용하여 제곱 오차 합(sum of the square error)을 각각 계산하고, 계산한 제곱 오차 합이 가장 작은 후보를 후보점으로 선택하는 클러스터링 방법.
  9. 제6항에 있어서,
    상기 클러스터 중심점을 재탐색하는 단계는,
    상기 어느 하나의 분산 데이터를 수신하고, 복수의 상기 후보점 중 어느 하나의 후보점에 분산 데이터를 할당하여 클러스터를 구성하는 단계;
    상기 구성된 클러스터를 토대로, 어떤 후보점이 어떤 클러스터에 할당되었는지를 나타내는 클러스터 데이터를 생성하는 단계;
    상기 생성한 클러스터 데이터와 구성된 상기 클러스터를 이용하여, 상기 클러스터에 대한 중심점을 재탐색하여 중심점 후보군을 생성하는 단계; 및
    상기 생성한 중심점 후보군에서 상기 클러스터 중심점을 재탐색하는 단계
    를 포함하는 클러스터링 방법.
KR1020150138465A 2015-10-01 2015-10-01 고속 클러스터링 시스템 및 방법 KR101770265B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150138465A KR101770265B1 (ko) 2015-10-01 2015-10-01 고속 클러스터링 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150138465A KR101770265B1 (ko) 2015-10-01 2015-10-01 고속 클러스터링 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20170039397A KR20170039397A (ko) 2017-04-11
KR101770265B1 true KR101770265B1 (ko) 2017-09-05

Family

ID=58580822

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150138465A KR101770265B1 (ko) 2015-10-01 2015-10-01 고속 클러스터링 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101770265B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4926958B2 (ja) * 2004-07-15 2012-05-09 レイセオン カンパニー 複数の分散エレメントによる自動探索システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4926958B2 (ja) * 2004-07-15 2012-05-09 レイセオン カンパニー 複数の分散エレメントによる自動探索システム

Also Published As

Publication number Publication date
KR20170039397A (ko) 2017-04-11

Similar Documents

Publication Publication Date Title
Rahimian et al. Ja-be-ja: A distributed algorithm for balanced graph partitioning
CN111460311A (zh) 基于字典树的搜索处理方法、装置、设备和存储介质
US8861506B2 (en) Shortest path determination for large graphs
CN106709024A (zh) 基于血缘分析进行数据表溯源的方法及装置
WO2016206578A1 (en) Region guided and change tolerant fast shortest path algorithm and graph preprocessing framework
CN105471670B (zh) 流量数据分类方法及装置
EP2923459A2 (en) Multi-objective server placement determination
Raghuvira et al. An efficient density based improved k-medoids clustering algorithm
JP2011170774A (ja) 決定木生成装置、決定木生成方法、及びプログラム
KR20170086353A (ko) 대화형 정보 제공 서비스 방법 및 이를 위한 장치
CN107870781B (zh) 一种数据并行聚类方法及装置
CN109495565B (zh) 基于分布式泛在计算的高并发服务请求处理方法和设备
WO2016112618A1 (zh) 一种基于距离的求解二维空间中代表性节点集的算法
KR101770265B1 (ko) 고속 클러스터링 시스템 및 방법
CN113761017A (zh) 相似性搜索方法和装置
Li et al. GAP: Genetic algorithm based large-scale graph partition in heterogeneous cluster
Bae et al. Label propagation-based parallel graph partitioning for large-scale graph data
Montori et al. A metadata-assisted cascading ensemble classification framework for automatic annotation of open IoT data
KR20160100224A (ko) 오디오 핑거프린트 데이터베이스 구축 및 오디오 핑거프린트 검색 방법 및 장치
Belcastro et al. A parallel library for social media analytics
CN109685051A (zh) 一种基于电网系统的红外图像故障诊断系统
KR101638739B1 (ko) 비정형 텍스트 데이터 처리방법
Peng et al. VColor*: a practical approach for coloring large graphs
CN103533101A (zh) Ip数据源的处理方法和装置
CN111522941A (zh) 文本聚类方法、装置、电子设备及计算机存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant