KR101003842B1 - 다차원 데이터 스트림을 위한 클러스터링 방법 및 시스템 - Google Patents

다차원 데이터 스트림을 위한 클러스터링 방법 및 시스템 Download PDF

Info

Publication number
KR101003842B1
KR101003842B1 KR1020080104741A KR20080104741A KR101003842B1 KR 101003842 B1 KR101003842 B1 KR 101003842B1 KR 1020080104741 A KR1020080104741 A KR 1020080104741A KR 20080104741 A KR20080104741 A KR 20080104741A KR 101003842 B1 KR101003842 B1 KR 101003842B1
Authority
KR
South Korea
Prior art keywords
dimensional
subcluster
node
subclusters
dimension
Prior art date
Application number
KR1020080104741A
Other languages
English (en)
Other versions
KR20100045682A (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 KR1020080104741A priority Critical patent/KR101003842B1/ko
Priority to US12/564,343 priority patent/US8762393B2/en
Publication of KR20100045682A publication Critical patent/KR20100045682A/ko
Application granted granted Critical
Publication of KR101003842B1 publication Critical patent/KR101003842B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/355Class or cluster creation or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

다차원 데이터 스트림을 위한 클러스터링 방법 및 시스템이 개시된다. 본 발명에 따른 다차원 데이터 스트림을 위한 클러스터링 방법은, 데이터 객체가 입력되면 일차원 서브클러스터를 결정하고 상기 결정된 일차원 서브클러스터에 식별자를 부여하는 단계; 상기 데이터 객체의 각 차원 값이 해당 차원의 일차원 서브클러스터의 범위 내에 속하게 되는 일차원 서브클러스터의 식별자의 집합인 매칭 셋을 생성하는 단계; 및 상기 생성된 매칭 셋에 속하는 일차원 서브클러스터의 집합 중 빈발하게 동시에 발생하는 일차원 서브클러스터의 집합을 찾음으로써 서브클러스터를 결정하는 단계를 포함하는 것을 특징으로 한다. 이러한 본 발명에 의하면 서브클러스터를 찾는데 요구되는 수행 시간과 메모리에 있어서 월등한 성능의 향상을 얻을 수 있다.
데이터 마이닝, 데이터 스트림, 클러스터링, 서브스페이스 클러스터링

Description

다차원 데이터 스트림을 위한 클러스터링 방법 및 시스템{Method and system of clustering for multi-dimensional data streams}
본 발명은 대량의 데이터 집합을 분석하여 특정 정보를 찾아내는 데이터 마이닝에 관련된 것으로, 특히 다차원 데이터 스트림으로부터 서브클러스터를 찾는 클러스터링 방법 및 시스템에 관한 것이다.
최근, 웹 서핑 로그나 통신 로그, 실시간 동영상 데이터, 실시간 주식 거래 등과 같이 방대한 실시간 데이터를 처리하는 응용 환경이 증가하고, 이러한 데이터 스트림 분석에 대한 수요가 증가함에 따라 데이터 스트림 분석을 위한 데이터 마이닝 연구들이 진행되어 왔다.
클러스터링은 데이터 마이닝 분석 방법 중 하나로서, 주어진 유사도 척도에 따라 다수의 데이터 객체들을 유사한 집단으로 구분하는 데이터 마이닝 기법으로서 위성 이미지 분석, 고객 분석을 통한 타겟 마케팅 및 침입 탐지를 위한 대용량 로그 분석 등의 다양한 응용분야에서 효율적인 방법으로 사용되어 왔다.
기존의 클러스터링 방법은 해당 데이터 객체의 모든 속성이 이루는 공간상에서 유사한 데이터 객체들이 클러스터를 이루는 경우만을 고려했으나, 서브스페이스 클러스터링은 전체 속성집합의 부분집합에 해당하는 속성들이 형성하는 공간의 클러스터들을 탐색한다.
실생활 데이터 집합은 종종 많은 차원을 포함하고, 데이터 객체의 어떤 차원 값은 손실될 수 있다. 그러한 다차원 데이터 집합에서 유사한 데이터 객체들의 그룹, 즉 클러스터는 데이터 집합의 모든 차원뿐만 아니라, 차원의 다른 부분집합과도 연관된다. 이러한 문제에 대해서 몇몇 서브스페이스 클러스터링 알고리즘들이 제안되었으나, 그들 대부분이 데이터 집합에 대한 다중 스캔 또는 산술적으로 막대한 단계를 요구하기 때문에 온라인 데이터 스트림에는 적합하지 않았다.
데이터 스트림에 적용 가능한 방법으로는 논문 [Nam Hun Park and Won Suk Lee. Grid-based subspace clustering over data streams. in: Proc. of the sixteenth ACM conference on Conference on information and knowledge management]에서 제시하고 있는 시블링 트리(sibling tree)에 의한 방법이 있다. 이 방법은 격자에 기반한 방법으로서 n차원의 클러스터가 발견되면 이로부터 확장 가능한 모든 (n+1)차원 공간을 탐색하는 방법으로서, 클러스터 탐색을 위하여 트리 구조체의 각 노드 상에 정밀격자(fine-grain grid)를 사용한 시블링 리스트(sibling list)를 유지한다. 따라서 데이터 스트림의 차원 수가 증가함에 따라 기하급수적으로 증가하는 격자셀(grid-cell)들을 유지 및 탐색하기 위해 많은 수행시간과 큰 크기의 메모리를 필요로 한다.
본 발명이 이루고자 하는 기술적 과제는 데이터 스트림에 적용 가능하며 수행 시간과 메모리를 적게 요구하는 서브스페이스 클러스터링 방법 및 시스템을 제공하는 데 있다.
상기 기술적 과제를 해결하기 위하여 본 발명에 따른 다차원 데이터 스트림을 위한 클러스터링 방법은, (a) 데이터 객체가 입력되면 일차원 서브클러스터를 결정하고 상기 결정된 일차원 서브클러스터에 식별자를 부여하는 단계; (b) 상기 데이터 객체의 각 차원 값이 해당 차원의 일차원 서브클러스터의 범위 내에 속하게 되는 일차원 서브클러스터의 식별자의 집합인 매칭 셋을 생성하는 단계; 및 (c) 상기 생성된 매칭 셋에 속하는 일차원 서브클러스터의 집합 중 빈발하게 동시에 발생하는 일차원 서브클러스터의 집합을 찾음으로써 서브클러스터를 결정하는 단계를 포함하는 것을 특징으로 한다.
여기서, 데이터 공간을 구성하는 각 차원 별로 이미 발생한 데이터 객체들의 통계적 분포 정보가 데이터 구간에 의해 정의되는 격자셀들을 이용하여 관리되며, 상기 (a) 단계는 각 차원 별로 격자셀에 속하는 데이터 객체의 발생 빈도를 소정의 지지도와 비교하여 그 결과에 따라 일차원 서브클러스터를 결정할 수 있다.
또한, 이미 생성된 매칭 셋에 속하는 일차원 서브클러스터들의 식별자가 전위트리를 이용하여 관리되고 상기 전위트리의 각 노드는 해당 노드에 대응하는 데이터 공간에 속하는 데이터 객체의 출현빈도수 정보를 가지며, 상기 생성된 매칭 셋에 포함된 일차원 서브클러스터에 따라서 상기 전위트리를 갱신하는 단계를 더 포함할 수 있다.
또한, 상기 (c) 단계는 상기 전위트리의 각 노드에 해당하는 데이터 공간의 지지도를 소정의 지지도와 비교함으로써 빈발하게 동시에 발생하는 일차원 서브클러스터의 집합을 찾을 수 있다.
또한, d-차원 데이터 공간에서 데이터 객체
Figure 112008073963819-pat00001
의 매칭 셋은 다음 수학식과 같이 정의될 수 있다.
Figure 112008073963819-pat00002
여기서,
Figure 112008073963819-pat00003
는 j번째 차원에서의 일차원 서브클러스터들의 집합을 나타낸다.
또한, d-차원 데이터 공간
Figure 112008073963819-pat00004
의 현재 데이터 스트림 Dt에 대한 차원들의 순서를 N1→N2→...→Nd라고 할 때, 상기 전위트리는, "null" 값을 갖는 루트 노드 nroot를 가지며, 루트 노드를 제외하고, k(1≤k≤d)번째 깊이에서 각각의 노드는 대응하는 차원의 도메인 내에서 서브클러스터의 구간이
Figure 112008073963819-pat00005
인 일차원 서브클러스터의 식별자 c 와 관련될 수 있다.
또한, 일차원 서브클러스터 ck와 관련되어 있는 k-깊이 노드 v가 주어질 때,
Figure 112008073963819-pat00006
를 루트로부터 노드 v까지의 경로 내의 노드들과 관련된 일차원 서브클러스터들의 순서라 하고 일차원 서브클러스터 cj의 차원을 Nj' (1≤j≤k)이라고 할때 노드 v는 k-차원 서브스페이스
Figure 112008073963819-pat00007
내 에서 범위가
Figure 112008073963819-pat00008
에 의해 정의되는 k-차원 직각면체 공간에 대응될 수 있다.
또한, 루트 노드를 제외하고 상기 전위트리의 각 노드는, 노드 v와 관련된 일차원 서브클러스터의 클러스터 식별자, range(v) 내의 데이터 객체들의 개수, range(v)의 직각면체 공간의 정보를 가질 수 있다.
또한, 상기 전위트리를 갱신하는 단계는, 상기 생성된 매칭 셋의 부분집합들에 대응하는 노드들을 깊이 우선 방식으로 순회하면서 상기 출현빈도수 정보를 갱신하는 단계를 포함할 수 있다.
또한, 상기 전위트리를 갱신하는 단계는, 노드의 갱신된 지지도를 소정의 중요 지지도와 비교하여 그 결과에 따라 상기 노드 및 그 자손 노드를 상기 전위트리로부터 제거하는 단계를 더 포함할 수 있다.
또한, 상기 전위트리를 갱신하는 단계는, 상기 전위트리를 순회하면서 상기 생성된 매칭 셋에 따른 새로운 노드를 상기 전위트리에 삽입하는 단계를 더 포함할 수 있다.
또한, 상기 새로운 노드를 상기 전위트리에 삽입하는 단계는, 상기 생성된 매칭 셋이 상기 전위트리 내에 유지되지 않는 일차원 서브클러스터를 포함할 때 상기 일차원 서브클러스터에 대응되는 노드를 상기 전위트리의 첫째 깊이에 삽입하는 단계; 및 상기 생성된 매칭 셋에 따른 다차원 직각면체 공간에 대응하는 새로운 노드를 삽입하는 단계를 포함할 수 있다.
또한, 상기 다차원 직각면체 공간에 대응하는 새로운 노드를 삽입하는 단계는, 상기 생성된 매칭 셋 내의 비중요 일차원 서브클러스터를 걸러내어 필터링하고, k-차원 직각면체 공간 R(v)에 대응하는 k-깊이 노드 v를 방문할 때 상기 필터링된 매칭 셋의 일차원 서브클러스터들 중에서 차원이 상기 노드 v와 관련된 일차원 서브클러스터의 차원 이후의 일차원 서브클러스터에 의해 (k+1)-차원 직각면체 공간에 대응하는 새로운 노드를 삽입할 수 있다.
또한, 상기 (k+1)-차원 직각면체 공간에 대응하는 새로운 노드를 삽입함에 있어서, 상기 새로운 노드의 지지도를 추정하고 상기 추정된 지지도를 소정의 중요 지지도와 비교하여 그 결과에 따라 상기 새로운 노드를 삽입할 수 있다.
또한, 상기 range(v)의 직각면체 공간의 정보는 상기 직각면체 공간에 속하는 데이터 객체들의 각 차원 값들 각각의 평균 및 표준편차를 포함할 수 있다.
또한, 상기 결정된 서브클러스터로부터 서브클러스터의 범위를 개선하는 단계로서, 상기 각 차원 값의 평균을 중심으로 하는 소정 구간을 상기 서브클러스터의 범위로 결정하는 단계를 더 포함할 수 있다.
또한, i 번째 차원의 상기 평균 및 표준편차를 μi 및 σi라 할 때, i 번째 차원에 대한 상기 소정 구간은 사용자 정의값 δ를 이용하여 μi+δσi 에서 μi-δσi 사이로 결정될 수 있다.
상기 기술적 과제를 해결하기 위하여 본 발명에 따른 다차원 데이터 스트림을 위한 클러스터링 시스템은, 데이터 객체가 입력되면 일차원 서브클러스터를 결 정하고 상기 결정된 일차원 서브클러스터에 식별자를 부여하는 일차원 서브클러스터 결정부; 상기 데이터 객체의 각 차원 값이 해당 차원의 일차원 서브클러스터의 범위 내에 속하게 되는 일차원 서브클러스터의 식별자의 집합인 매칭 셋을 생성하는 매칭 셋 생성부; 및 상기 생성된 매칭 셋에 속하는 일차원 서브클러스터의 집합 중 빈발하게 동시에 발생하는 일차원 서브클러스터의 집합을 찾음으로써 서브클러스터를 결정하는 서브클러스터 결정부를 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위하여 상기된 본 발명에 따른, 다차원 데이터 스트림을 위한 클러스터링 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
본 발명에 의하면, 데이터 스트림의 각 차원에 존재하는 일차원 서브클러스터를 먼저 결정하고, 일차원 서브클러스터의 집합 중 빈발하게 동시에 발생하는 일차원 서브클러스터의 집합을 찾아 2차원 이상의 서브클러스터를 결정하므로, 서브클러스터를 찾는데 요구되는 수행 시간과 메모리에 있어서 월등한 성능의 향상을 얻을 수 있다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
다차원 데이터 스트림에 대해 모든 서브클러스터들의 현재 집합을 효과적으로 추적하기 위해, 두 개의 주요한 작업이 이하 설명되는 실시예에서 적용된다. 한 작업은 각각의 단일 차원의 모든 1차원 서브클러스터들을 연속적으로 추적하는 것이다. 이를 위해, 논문 [Nam Hun Park and Won Suk Lee. Cell trees: An Adaptive Synopsis structure for clustering multi-dimensional on-line data streams. J. Data & Knowledge Engineering]에 제시된 방법의 일차원 버전을 이용한다. 다른 작업은 빈발하게 동시에 발생하는 1차원 서브클러스터들의 집합을 찾는 것이다. 각각의 1차원 서브클러스터를 차별되는 항목(item)으로서 간주함으로써, 이 작업은 온라인 데이터 스트림에 대해 빈발한 항목집합들(frequent itemsets)을 발견하는 문제가 된다.
직관적으로, d-차원 데이터 스트림이 주어질 때, k-차원 서브스페이스(k≤d) 내에 k-차원 서브클러스터가 존재할 경우, 각각이 k-차원 서브클러스터의 차별되는 일차원 사영(projection)을 포함하는 k개의 1차원 서브클러스터들 역시 존재해야만 한다. 다시 말해, k-차원 서브클러스터의 모든 데이터 객체는 대응하는 차원 값에 따라 각각의 1차원 서브클러스터들 내에 포함되어야 한다. 각 1차원 서브클러스터의 범위는 k-차원 클러스터로부터 그 1차원 서브클러스터의 차원으로 사영된 범위를 포함하여야만 한다. 이러한 관찰을 통해 k-차원 서브클러스터의 존재가 추론될 수 있다. 각각이 구별되는 차원 내에 존재하는 k개의 1차원 서브클러스터들의 집합이 주어질 때, 만약 그들의 교차된 k-차원 직각면체 공간(rectangular space)이 비어 있지 않다면, 이 공간 내에 k-차원 서브클러스터가 존재할 가능성이 매우 크다. 서브클러스터가 정말로 존재하는지 여부를 알아내기 위해, 공간 내의 데이터 객체들의 밀도를 좀 더 정확하게 모니터링할 필요가 있다.
개별 차원 내에서 각각의 1차원 서브클러스터의 범위는 더 높은 차원 서브클러스터들을 발견하는 그래뉼(granule)이 된다. 새롭게 생성된 데이터 객체에 대하여, 후술할 매칭 셋이라고 불리는 트랜잭션이 데이터 객체의 차원 값들의 그래뉼을 변환하기 위해 생성된다. 각 차원에 대해, 만약 새로운 데이터 객체의 대응하는 차원 값이 그 차원의 1차원 서브클러스터의 범위 내에 있으면, 그 값은 1차원 서브클러스터의 식별자에 의해 대체되고, 그렇지 않으면 그 값은 무시된다. 이전까지 생성된 매칭 셋들 내에서 빈발하게 동시에 발생하는 k개의 1차원 서브클러스터들의 집합은 k-차원 서브클러스터를 위한 후보 k-차원 직각면체 공간을 형성할 수 있다.
후술할, 매칭 셋에 속하는 일차원 클러스터들의 식별자를 관리하기 위한 전위트리(이하, 서브스페이스 트리라 한다)는 모든 후보 직각면체 공간들을 모니터링하게 된다. 서브스페이스 트리의 구조는 온라인 데이터 스트림에 대해 빈발한 항목집합들을 발견하는 estDec 방법[Joong Hyuk Chang, Won Suk Lee. Finding recent frequent itemsets adaptively over online data streams. in: Proc. of the ninth ACM SIGKDD international conference on Knowledge discovery and data mining, 2003, pp. 487-492]에서 사용되었던 사전편찬식 전위 트리(lexicographic prefix tree)의 구조를 응용한다. 사용자에 의해 정의된 최소 지지도 Smin가 주어졌을 때, 동시에 발생하는 k개의 1차원 서브클러스터들의 집합에 의해 형성되는 k-차원 직각면체 공간의 현재 지지도는 현재까지 생성된 매칭 셋들의 총 숫자에 대한 1차원 서브클러스터들을 함께 포함하는 매칭 셋들의 숫자의 비율이다. 그 지지도가 Smin보다 크거나 같으면, k-차원 직각면체 공간은 빈발한 공간이고, k-차원 서브클러스터를 포함한다. 고정된 크기의 조밀한 격자셀이 주어졌을 때, 본 실시예에 의하면, 시블링 트리에 의한 방법만큼 정확하게 각각의 차원의 1차원 서브클러스터들을 추적할 수 있다. 식별된 1차원 서브클러스터들은 다차원 서브클러스터들을 식별하기 위해 가변 크기의 보다 성근 격자셀을 정의한다. 따라서 본 실시예는 식별된 다차원 서브클러스터의 범위의 정확도를 희생하나, 더 적은 메모리 공간을 요구하고 더 적은 처리 시간이 걸린다.
도 1은 본 발명의 일 실시예에 따른, 다차원 데이터 스트림을 위한 클러스터링 방법의 흐름도이다.
도 1을 참조하면, 먼저, 다차원 데이터 스트림에서 새로 발생한 데이터 객체가 입력되면(110단계), 일차원 클러스터를 결정하고 결정된 일차원 클러스터에 식별자(identifier)를 부여한다(120단계). 일차원 클러스터를 결정하는 과정과 결정 된 일차원 클러스터에 식별자를 부여하는 과정은 뒤에 자세히 설명될 것이다.
그리고 데이터 객체의 각 차원 값이 해당 차원의 일차원 클러스터의 범위 내에 속하게 되는 일차원 클러스터의 집합인 매칭 셋을 생성한다(130단계). 그리고 이미 생성된 매칭 셋에 속하는 일차원 클러스터들의 식별자는 서브스페이스 트리를 이용하여 관리되는데 이 서브스페이스 트리의 각 노드는 해당 노드에 대응하는 데이터 공간의 출현빈도수 정보를 가진다. 140단계에서는 생성된 매칭 셋에 포함된 일차원 클러스터에 따라서 서브스페이스 트리를 갱신한다. 서브스페이스 트리의 구조와 서브스페이스 트리를 갱신하는 과정 역시 뒤에 자세히 설명될 것이다.
상기 110단계 내지 140단계는 도시된 바와 같이 매 데이터 객체가 입력될 때마다 반복된다.
150단계는 생성된 매칭 셋에 속하는 일차원 클러스터의 집합 중 빈발하게 동시에 발생하는 일차원 클러스터의 집합을 찾는 과정으로서, 서브스페이스 트리의 각 노드에 해당하는 데이터 공간의 지지도를 최소 지지도와 비교하여 서브클러스터를 결정한다. 본 단계는 매 데이터 객체가 입력될 때마다 수행될 수 있으며, 한편 사용자가 서브클러스터를 찾고자 할 때 사용자의 요청에 따라 수행될 수도 있다. 본 단계 역시 뒤에서 보다 자세히 설명될 것이다.
본 실시예를 설명함에 있어 사용될 기호에 대해 정의하면 다음과 같다.
ⅰ) d 차원 데이터 공간
Figure 112008073963819-pat00009
에서 주어진 데이터 스트림 D 내의 j 번째 생성된 데이터 객체는 e j =< e 1 j , e 2 j ,…, e d j >, e i j N i , 1≤i≤d로 나타낸다.
ⅱ) t 번째 차례에 e t 가 생성된 경우 최근 데이터 스트림 D t는 t 번째까지 생성된 데이터 객체들의 집합 D t ={e 1 ,e2,…,et}으로 정의하며, 최근 데이터 스트림 D t내의 데이터 객체의 수는 |D t|으로 표기한다.
상기 120단계에서 일차원 클러스터를 결정하는 과정을 설명하면 다음과 같다. 일차원 클러스터를 결정하기 위하여, 이미 발생한 데이터 객체들의 통계적 분포 정보가, 데이터 공간의 범위에 따라 분할되고 해당 범위 내에 존재하는 데이터 객체의 통계적 분포 정보를 가지는 격자셀들을 이용하여 관리된다. 나아가, 데이터 객체의 통계적 분포 정보는 이러한 격자셀들과, 격자셀들을 포함하는 격자노드와, 격자노드가 연결된 구조인 격자셀 리스트, 그리고 격자셀 리스트가 레벨 별로 형성된 구조인 격자셀 트리 구조를 이용하여 관리된다.
이하에서, 먼저 1차원 데이터 공간에서의 격자셀 리스트의 생성 및 관리에 관해 설명한다.
본 실시예에 따르면, 격자셀 리스트를 이용하여 1차원 데이터 공간에서 데이터 스트림을 대상으로 1차원 클러스터를 찾는다. 구체적으로, 격자셀 리스트를 이용하여 데이터 객체의 분포에 따라 동적으로 분할된 격자셀들이 각각 해당 범위의 데이터 객체 분포의 통계정보만을 관리하여, 종래의 클러스터링 기법들에 비해 데이터 객체를 저장하거나 탐색하는 과정 없이 효율적으로 클러스터를 찾을 수 있다. 우선, 주어진 1차원 데이터 공간 N의 범위 range(N)을 미리 주어진 분할변수 h에 따라 동일한 크기의 h개의 초기 격자셀 G={g 1 ,g 2 ,…,g h }(여기서,
Figure 112008073963819-pat00010
, g i .I∩ g j .I=Φ, i≠j, 그리고, 1≤i,j≤h)를 생성한다. 격자셀 g i 는 자신의 범위 gi.I 내에 발생한 데이터 객체들의 통계적 분포 정보를 관리하며, 이는 다음과 같이 정의된다.
<격자셀 g(I,c,μ,σ)의 정의>
데이터 스트림 Dt에 대해 g( I ,c t , μ t , σ t )는 격자셀 g의 공간g. I 내에 존재하는 데이터 객체에 대한 통계적 분포 정보를 나타낸다. D g t를 데이터 스트림 D t 중 격자셀g의 범위 RS 내에 존재하는 데이터 객체들의 집합, 즉 D g t={ e | e D t and e R(g) }라 할 때, 격자셀 g의 통계적 분포 정보는 다음과 같이 정의될 수 있다.
i) g.ct : D g t 내에 존재하는 데이터 객체들의 수
ii) g. μt : D g t 내의 데이터 객체들의 평균
Figure 712010004787108-pat00082
iii) g. σ t : D g t 내의 데이터 객체들의 표준편차
Figure 712010004787108-pat00083
격자셀의 지지도, 즉 데이터 스트림에서 발생한 전체 데이터 객체 수 대비 해당 격자셀에 발생한 데이터 객체의 비율 g.ct /| Dt |가 소정 값인 분할지지도 Spar 이상인 경우, 해당 격자셀을 h개의 동일한 크기의 작은 격자셀로 다시 분할한다. 이러한 분할 과정은 데이터 객체의 발생 빈도가 높은 범위의 격자셀에 대해서 반복적으로 수행된다. 격자셀들 간에는 각 격자셀의 범위에 따른 순서가 존재한다. 데이터공간 N 내의 격자셀 G ={g1 ,g2 ,…,gv }에 대해 'gi.I 내의 데이터 객체 < gj .I 내의 데이터 객체'의 경우 gi (I,c,μ,σ)
Figure 712010004787108-pat00084
gj (I,c,μ,σ)로 격자셀의 순서를 정의한다. 동적으로 생성되는 격자셀들을 효율적으로 관리하기 위해 격자셀 리스트를 다음과 같이 정의할 수 있다.
<격자셀 리스트 S의 정의>
1차원 공간 N에서 발생하는 데이터 스트림 D t 에 차수 m의 격자셀 리스트 S 는 다음과 같이 정의된다.
1) 격자셀 리스트 S =<E 1 ,E 2 ,E 3 ,…,E p >는 격자노드 E 1 ,E 2 ,…,E p 로 구성된 단일 연결 리스트(single linked list)의 구조를 가진다.
2) 격자노드 E i (min,max,G[1,…,m],next_ptr)는 다음과 같은 항목들을 관리 한다.
ⅰ) G[1,…,m]의 최대 m개의 격자셀들을 저장하는 공간
ⅱ) v(<m)개의 격자셀이 격자노드에 저장된 경우, 격자노드의 범위 range(E)는 range(E)=
Figure 112008073963819-pat00015
로 정의된다([min,max), min=G[1].I.s, max=G[v].I.f). 또한, 격자노드 내의 격자셀들은 G[i].I
Figure 112008073963819-pat00016
G[j].I 1≤i<jv이 만족되도록 정렬된다.
ⅲ) next_ptr : 다음 격자노드를 가리키는 포인터.
3) 격자셀 리스트 S의 범위는 모든 격자노드들의 범위의 연결로 정의되며, 이는 주어진 1차원 데이터 공간 N의 범위와 일치한다. 즉, range ( S )=
Figure 112008073963819-pat00017
.
4) 맨 앞의 격자노드를 제외한 모든 격자노드는 항상 최소
Figure 112008073963819-pat00018
의 격자셀을 가진다.
새로 발생한 데이터 객체 et 에 대해서 격자셀 리스트 내의 e t 값을 포함하는해당 범위의 격자셀을 탐색한 후, 이 격자셀 g의 데이터 객체들에 대한 통계적 분포 정보를 갱신한다. 최근 v(v<t) 번째 데이터 객체에 대해 이격자셀 g의 통계적 분포 정보가 갱신되었다면 통계적 분포 정보는 e t 에 의해 다음 수학식에 따라 갱신될 수 있다.
g.c t =g.c v +1
g.μ t =
Figure 112008073963819-pat00019
g.σ t =
Figure 112008073963819-pat00020
.
만약 이 격자셀에 속하는 데이터 객체의 발생 빈도, 즉 지지도, g.c t /|D t |가 소정 값인 분할 지지도 S par 미만이었다가 S par 이상이 되었다면, 이 격자셀 gh개의 동일한 크기의 작은 격자셀 g 1 ,…,g h 로 분할하고, 분할된 각 격자셀의 해당 범위 내의 통계적 분포 정보를 추정한다. 이때, g 1 ,…,g h 로 분할된 격자셀 중에 j번째 격자셀 g j (1≤j≤h)의 분포 정도는 g의 정규분포함수
Figure 112008073963819-pat00021
로부터 다음 수학식에 따라 추정할 수 있다.
Figure 112008073963819-pat00022
g j .c t =g.c t
g j t =
Figure 112008073963819-pat00023
g j t =
Figure 112008073963819-pat00024
.
도 2a 및 도 2b는 본 발명의 일 실시예에 따라 차수 m=5, h=4인 격자셀 리스트가 동적으로 생성되는 과정을 나타낸다. 도 2a는 데이터 스트림 Dt에서의 격자셀 리스트를 나타내며, 도 2b는 데이터 스트림 Dt+1에서의 격자셀 리스트를 나타낸다.
도 2b를 참조하면, 격자셀 g 2 가 4개의 격자셀 g 21 , g 22 , g 23, 그리고 g 24 로 분할되었으며, 이때 g 22 의 통계적 분포 정보는 다음 수학식에 따라 구할 수 있다.
Figure 112010033586943-pat00080
Figure 112010033586943-pat00081
g 22 t =
Figure 112008073963819-pat00027
.
이러한 분할 과정은 분할된 격자셀의 크기가 미리 정해진 최소 크기 λ의 단위 격자셀이 될 때까지 반복적으로 수행된다.
j(1≤j≤d)번째 차원의 데이터 공간의 범위(Nj)가 주어졌을 때, 일차원 단위 격자셀을 생성하기 위해 필요한 분할 작업의 총 횟수는 logh(range(Nj)/λ)이다. Nj 내의 1차원 서브클러스터는 현재 지지도가 각각 Smin보다 크거나 같은 인접한 밀집 단위 격자셀들의 그룹이다. 데이터 스트림 내의 데이터 객체들의 분포 통계가 시간이 경과함에 따라 변화할 수 있기 때문에, 특정 격자셀은 비록 그것이 과거에 밀집해 있었다 할지라도 성글게 될 수 있다. 격자 셀에 대해, 격자셀의 현재 지지도가 소정의 병합 문턱값 Smer(<Spar<Smin)보다 작거나 같으면, 가까운 미래에 밀집한 격자셀이 될 가능성이 무시해도 될 정도로 낮다고 간주된다. 그러므로, 격자 노드 E 내의 그러한 격자셀 g는 구간이 연속적인 다른 성근 격자셀들의 집합과 병합된다. 그러나, 격자 노드 E 내의 모든 연속 격자셀들이 합병을 위한 적절한 후보는 아니다. 모든 단위 격자셀의 구간 크기를 λ로 유지하기 위해, 동일한 격자 노드 E 내의 격자셀들 중에서 성근 격자셀 g로 함께 분할된 격자 셀들이 후보가 되어야 한다. 특별한 격자셀 g에 대해서, 그러한 후보 격자 셀들은 그들의 병합 범위 내에서 발견된다. 최초에 격자 셀 g 와 함께 분할된 모든 격자 셀들은 격자 셀 g의 병합 범위 내에 있다.
도 3은 본 발명의 일 실시예에 따른 1차원 클러스터를 찾는 방법의 흐름도로서, 본 실시예에 따른 방법은 이미 설명한 바와 같은 격자셀과 격자셀 리스트를 기반으로 1차원 클러스터를 찾는 방법이다.
310단계에서, 발생한 데이터 객체에 해당하는 격자셀을 탐색한다.
320단계에서, 상기 탐색된 격자셀의 통계적 분포 정보를 갱신한다. 이때, 상기된 수학식 1에 따라서 격자셀의 통계적 분포를 갱신할 수 있다.
330단계에서 해당 격자셀에 속하는 데이터 객체의 지지도가 분할 지지도 S par 보다 크거나 같은지 검사하고, 그렇다면 345단계로 진행하고, 그렇지 않다면 335단계로 진행한다.
345단계에서 해당 격자셀을 복수의 격자셀로 분할하고, 분할된 격자셀의 통계적 분포 정보를 추정한다. 이때 상기된 수학식 2에 따라서 통계적 분포를 추정할 수 있다. 다만, 345단계에서 해당 격자셀이 이미 크기 λ의 단위 격자셀이라면, 격자셀을 분할하지 않는다.
335단계에서는 해당 격자셀에 속하는 데이터 객체의 지지도가 미리 정해진 소정 값인 병합 지지도 S mer 보다 작거나 같은지 검사하고, 그렇다면 340단계로 진행하고, 그렇지 않다면 350단계로 진행한다.
340단계에서, 해당 격자셀을 역시 병합 지지도 S mer 보다 작거나 같은 지지도를 가지는 이웃하는 격자셀과 병합한다. 격자셀의 지지도가 병합 지지도 S mer 보다 작거나 같다면(c t /| D t |≤S mer ,), 해당 격자셀의 범위 내에 클러스터가 존재할 확률은 매우 낮은 것으로 간주할 수 있다. 따라서 335단계 및 340단계에서와 같이 이러한 격자셀들을 병합함으로써 클러스터와 무관한 불필요한 격자셀의 수를 줄일 수 있고, 따라서 메모리 사용량을 감소시킬 수 있다.
350단계에서, 크기 λ의 단위 격자셀이 존재하는지 및 단위 격자셀에 속하는 데이터 객체의 발생 빈도, 즉 지지도, g.c t /|D t |가 소정 값인 최소 지지도 Smin보다 크거나 같은지 모니터링한다.
360단계에서는, 상기 350단계에서 모니터링된 결과 얻어진 인접한 단위 격자셀의 집합을 클러스터로 결정한다.
1차원 서브클러스터가 결정되면, 결정된 1차원 서브클러스터에 식별자를 부여하는데, 구체적으로 다음과 같이 부여할 수 있다.
w 개의 연속 격자 셀들 [g1,g2, …, gw]의 집합에 의해 형성된 1차원 서브클러스터 c가 주어질 때, 그것의 밀도는 다음 수학식과 같이 격자셀 당 데이터 객체들의 평균 개수에 의해 정의된다.
Figure 112008073963819-pat00028
데이터 스트림의 1차원 서브클러스터들은 연속적으로 발달한다. 다시 말해, 두 개의 인접한 1차원 서브클러스터들이 한 개의 1차원 서브클러스터로 병합되거나, 또는 1차원 서브클러스터가 다수의 더 작은 1차원 서브클러스터들로 분할될 수 있다. 데이터 스트림에 대한 1차원 서브클러스터들의 발달을 효과적으로 반영하기 위해, 1차원 서브클러스터의 식별자가 다음의 규칙에 의해 부여된다.
i) 1차원 서브클러스터 c가 다수의 더 작은 1차원 서브클러스터들로 분할될 때, 가장 큰 평균 밀도를 갖는 서브클러스터가 1차원 서브클러스터 c의 식별자를 가지며, 새로운 식별자들이 다른 1차원 서브클러스터들에 고유하게 부여된다.
ii) 두 개의 1차원 서브클러스터들이 하나로 병합될 때, 더 높은 평균 밀도를 가지는 1차원 서브클러스터의 식별자가 병합된 서브클러스터의 식별자에 할당된다.
상기된 규칙들에 기초하여, 모든 1차원 서브클러스터들의 식별자들은 고유하게 유지될 수 있으며, 더 밀도가 높은 구간이 동일한 1차원 서브클러스터 식별자에 더 오랫동안 부여된다.
이제, 상기 130단계에서 생성되는 매칭 셋에 관하여 자세히 설명한다.
d-차원 공간
Figure 112008073963819-pat00029
의 현재 데이터 스트림 Dt가 주어졌을 때, Dom(Nj)가 j번째 차원 NjN(1≤j≤d) 의 도메인을 표시한다고 하자. Nj 내의 i번째 1차원 서브클러스터의 범위는 구간
Figure 112008073963819-pat00030
에 의해 표현될 수 있다. 차원 Nj 의 1차원 서브클러스터들은 상기 기술된 격자셀 리스트 Sj에 의해 연속적으로 추적된다. 새로운 데이터 객체 et가 발생할 때마다, 그것의 j번째 차원 값이 격자 셀 리스트 Sj 내의 et의 발생을 반영하기 위해 사용된다. 더욱이, et의 모든 차원 값은 다음에 정의된 매칭 셋을 산출함으로써 변환된다.
<매칭 셋의 정의>
차원들의 순서를 ρ=N1→N2→...→Nd라고 할 때, S1,S2, …,Sd 가 d-차원 데이 터 공간
Figure 112008073963819-pat00031
의 현재 데이터 스트림 Dt를 위한 격자 셀 리스트를 나타낸다고 하고,
Figure 112008073963819-pat00032
가 j번째 차원 NjN 에 대해 격자 셀 리스트 Sj(1≤j≤d) 내에서 발견된 1차원 서브클러스터들의 집합을 나타낸다고 하자. 새롭게 생성된 데이터 객체
Figure 112008073963819-pat00033
의 매칭 셋 MS(et)은 다음 수학식과 같이 정의된다.
Figure 112008073963819-pat00034
예를 들어, 차원 순서가 N1→N2→...→Nd라고 주어질 때, 새로운 데이터 객체
Figure 112008073963819-pat00035
의 각각 최초의 두 개 및 최후의 두 개 차원의 값들이 대응하는 차원, 즉 각각 c1, c2, cd-1 및 cd 내의 1차원 서브클러스터의 범위 내에 있다고 가정하자. 데이터 객체 et에 대한 매칭 셋 결과는 MS(et)=<c1,c2,cd-1,cd>가 된다.
빈발하게 동시에 발생하는 1차원 서브클러스터들의 집합을 발견하기 위해, 현재 d-차원 데이터 스트림 Dt 는 다음과 같이 연속적으로 생성되는 매칭 셋의 무한한 집합으로 보여질 수 있다.
i)
Figure 112008073963819-pat00036
를 d개의 차원들 내에서 현재 식별된 모든 1차원 서브클러스터들의 집합이라고 하자.
ii) t 번째 순서에서 생성된 데이터 객체를 위한 매칭 셋은 MS(et)에 의해 표시된다. 매칭 셋 MS(et)은 Lt의 부분집합이며(MS(et)⊂Lt), 정보의 최소 단위로서 간주된다.
iii) 현재 데이터 스트림 Dt는 지금까지 생성된 모든 매칭 셋들로 구성된다. 즉, Dt = <MS(e1), MS(e2), … , MS(et)>이고, Dt 내의 매칭 셋들의 총 수는 |Dt|로 표시된다.
iv) 동시에 발생된 1차원 서브클러스터들의 집합 a 는 현재 데이터 스트림 Dt 내에서 발생한 적어도 하나의 매칭 셋 b 의 서브셋이다. 즉,
Figure 112008073963819-pat00037
.
이제, 상기된 매칭 셋을 이용하여 다차원 서브클스터를 추적하는 과정, 즉 도 1의 140단계 내지 150단계에 관하여 설명한다. 서브클러스터는, 이미 생성된 매칭 셋에 속하는 일차원 클러스터들의 식별자를 관리하고 각 노드가 해당 노드에 대응하는 데이터 공간에 속하는 데이터 객체의 출현빈도수 정보를 가지는 전위트리를 이용하여 추적된다.
데이터 스트림 내의 다차원 서브클러스터들은 데이터 스트림에서 발생된 매칭 셋 내에서 빈발하게 동시에 발생한 1차원 서브클러스터들의 모든 집합들을 모니터링함으로써 추적될 수 있다. 이 절차는 온라인 데이터 스트림의 트랜잭션 내에서 모든 빈발한 항목집합들을 발견하는 estDec 방법을 응용한다. 트랜잭션은 동시에 발생한 항목들의 집합이며, 항목집합(itemset)은 항목들의 집합이다. 최소 지지도 임계값 Smin이 주어질 때, 항목집합의 지지도는 이전까지 발생된 트랜잭션의 총 수에 대한 아이템셋을 포함하는 트랜잭션의 수의 비율이다.
estDec 방법에서, 만약 항목집합의 현재 지지도가 사용자에 의해 정의된 중요(significant) 지지도 문턱값 Ssig(<Smin)보다 크거나 같으면, 그 항목집합은 중요 항목집합이다. 이 방법은 데이터 스트림 내에서 발생된 각각의 트랜잭션을 어떠한 후보를 생성하지 않고 하나씩 검사한다. 그것은 전위트리(prefix tree) 구조를 갖는 모니터링 트리에 의해 이전까지 발생된 트랜잭션 내에서 모든 중요 항목집합의 발생 횟수의 기록을 보유한다. 각각의 중요 항목집합은 전위 트리의 노드로서 표현되는데, 전위트리 내에서 현재의 모든 중요 항목집합들이 유지되고 있다는 것을 보장하기 위한, 2 개의 주요 동작은 지연-삽입(delayed-insertion) 및 전지(pruning)이다. 항목집합의 현재 개수를 추정함으로써, 항목집합의 실제 개수를 모니터링하는 것은 항목집합이 중요 항목집합이 될 때까지 지연될 수 있다. 반면에, 비록 항목집합이 과거에는 모니터링될 만큼 충분히 중요하였으나, 만약 현재 지지도가 Ssig보다 낮다면, 항목집합의 실제 개수는 더 이상 모니터링되지 않는다.
본 실시예에서, 서브스페이스 트리는 다차원 서브스페이스의 직각면체 공간 내에 포함되는 데이터 객체의 분포 통계를 유지하기 위해 다음에 정의되는 직각면체 공간 시놉시스를 유지한다.
<직각면체 공간 시놉시스의 정의>
d-차원 데이터 공간
Figure 112008073963819-pat00038
의 데이터 스트림에 대해 k-차 원 서브스페이스
Figure 112008073963819-pat00039
(SkN) 내에 k-차원 직각면체 공간 v가 주어졌을 때, R(v)를, 서브스페이스 Sk 내의 차원 값들이 직각면체 공간 v 내에 포함되는 차원 값들을 갖는 데이터 객체들의 집합으로 나타내자. k-차원 직각면체 공간의 데이터 분포는 직각면체 공간 시놉시스 RSSk(v)=(μ, σ, ssum)에 의해 다음과 같이 표현된다.
μ=(μ1, μ2, ..., μk), σ=(σ1, σ2, ..., σk), ssum=(ssum1, ssum2, ..., ssumk). 여기서, 기호 μi 및 σi는 R(v)내의 데이터 객체들의 i번째 차원 값들의 평균 및 표준 편차를 나타낸다. 그리고 기호 ssumi는 i번째 차원 값들의 제곱 합(squared sum)을 나타낸다.
서브스페이스 트리의 구조는 다음과 같이 정의된다.
<서브스페이스 트리의 정의>
d-차원 데이터 공간 N=N1×N2×...×Nd의 현재 데이터 스트림 Dt에 대한 차원들의 순서를 N1→N2→...→Nd라고 할 때, 서브스페이스 트리 Qt는 다음과 같이 정의된다.
i) 서브스페이스 트리 Qt 는 "null" 값을 갖는 루트 노드 nroot를 갖는다. 루트 노드를 제외하고, k(1≤k≤d)번째 깊이에서 각각의 노드는 대응하는 차원의 도 메인 내에서 서브클러스터의 구간이
Figure 112008073963819-pat00040
라고 표시되는 1차원 서브클러스터 c∈Lt 와 관련된다.
ii) 1차원 서브클러스터 ck와 관련되어 있는 k-깊이 노드 v가 주어질 때,
Figure 112008073963819-pat00041
를 루트로부터 노드 v까지의 경로 내의 노드들과 관련된 1차원 서브클러스터들의 순서라고 하자. 1차원 서브클러스터들의 차원들이 서로 구별되기 때문에, 1차원 서브클러스터 cj의 차원을 Nj' (1≤j≤k)이라고 하자. 노드 v는 k-차원 서브스페이스
Figure 112008073963819-pat00042
내에서 범위가
Figure 112008073963819-pat00043
에 의해 정의되는 k-차원 직각면체 공간에 대응된다.
iii) 루트 노드를 제외하고, 모든 노드 v는 튜플(tuple) (c, countt, child[], RSSt(v))을 보유한다. 여기서 각 요소는 다음과 같다.
- c∈Lt : 노드 v와 관련된 1차원 서브클러스터의 클러스터 식별자
- countt : range(v) 내의 데이터 객체들의 개수
- RSSt(v) : range(v)의 직각면체 공간 시놉시스
- child[]: 자식 포인터들의 리스트
도 4는 3-차원 데이터 스트림을 모델링하기 위한 서브스페이스 트리의 예를 나타낸다. 도 4에서 보여지듯이, 서브스페이스 트리의 각각의 노드는 직각면체 공 간에 대응된다. 서브스페이스 트리의 깊이는 직각면체 공간의 차원을 결정한다. 그것의 카운트는 직각면체 공간 내에 있는 데이터 객체들의 개수, 즉, 직각면체 공간의 밀도를 추적하고, 직각면체 공간 시놉시스는 어떻게 데이터 객체들이 직각면체 공간에 분포되어 있는지를 모니터링한다.
서브스페이스 트리 Qt-1에 대한 차원들의 소정의 순서를 ρ=N1→N2→..→Nd라고 할 때, 새로운 데이터 객체 et가 도착할 때마다, 상기에 기술된 바와 같이 매칭 셋 MS(et)가 생성된다. MS(et)의 모든 부분집합들의 발생 횟수를 갱신하기 위해, 서브스페이스 트리 내의 대응하는 노드들이 깊이 우선 방식으로 순회된다. 한 노드를 방문했을 때, 만일 매칭 셋의 다음 1차원 서브클러스터 식별자가 그 노드와 관련된 1차원 서브클러스터 식별자와 매칭되지 않으면, 그것의 부모 노드로 되돌아간다. 그렇지 않으면, 노드의 카운트는 하나 증가한다. p번째 매칭 셋 MS(ep)(p<t)에 의해 노드가 최종적으로 갱신되었을 때, 그 대응하는 직각면체 공간 시놉시스가 다음 수학식과 같이 갱신된다.
Figure 112008073963819-pat00044
노드의 갱신된 지지도가 Ssig보다 작아질 때, 그 노드 및 모든 자손 노드들은 트리로부터 제거된다.
현재 매칭 셋 MS(et)에 의해 유도된 모든 노드들의 지지도가 갱신된 후에, 서브스페이스 트리는 새로운 노드가 MS(et)에 의해 삽입될 수 있는지 여부를 찾기 위해 다시 한번 순회된다. 현재 매칭 셋 MS(et)가 현재 서브스페이스 트리 내에 유지되고 있지 않은 새로운 1차원 서브클러스터를 포함할 때, 그 1차원 서브클러스터는 즉시 트리의 첫째 깊이에 삽입된다.
다차원 직각면체 공간에 대응하는 새로운 노드를 삽입하기 위해, 그 공간의 지지도는 다음과 같이 추정된다. 첫째, 현재 매칭 셋 내의 비중요(insignificant) 1차원 서브클러스터를 걸러낸다. 이것은 비중요 1차원 서브클러스터가 중요하게 동시에 발생하는 1차원 서브클러스터들의 집합의 일부가 될 수 없기 때문이다. 이 때 필터링된 매칭 셋이 서브스페이스 트리를 순회하기 위해 사용된다. k-차원 직각면체 공간 R(v)에 대응하는 k-깊이 노드 v를 방문할 때, 새로운 자식 노드를 생성하는 가능성이 검사된다. 이러한 목적을 위해, 필터링된 매칭 셋의 1차원 서브클러스터들 중에서, P를 1차원 서브클러스터들-그들의 차원이 노드 v와 관련된 1차원 서브클러스터의 차원 이후의 차원인-의 집합 이라 하자. k-차원 직각면체 공간 R(v)는 후보 (k+1)-차원 직각면체 공간를 형성하기 위해 P 내의 1차원 서브클러스터들 각각에 의해 확장될 수 있다. 후보의 추정된 지지도가 Ssig보다 크거나 같을 때, 후보에 대응하는 새로운 노드가 삽입된다. 새롭게 삽입된 (k+1)-차원 직각면체 공간의 count는 서브스페이스 트리 내에 유지되는 k-차원 사영된 직각면체 공간들의 count에 의해 추정된다. 이러한 k 직각면체 공간들의 count들 중에서, 가장 작은 값이 추정된 카운트로 할당된다. 그것이 새로운 (k+1)-차원 직각면체 공간의 범위 내에 존재할 수 있는 데이터 객체들의 최대 가능한 개수이기 때문이다. 이 때문에 초기화된 count는 위양성 오류(false positive error) count를 가질 수 있다. 이러한 오류 count의 효과는 데이터 객체들의 총 개수 |Dt|가 증가함에 따라 감소한다.
도 5는 Ssig=0.15에 대하여 새로운 노드가 어떻게 서브스페이스 트리 Q99에 삽입되는지를 도시하고 있다. 기호 cji는 j번째 차원 Nj의 i 번째 1차원 서브클러스터를 나타낸다. 다음 데이터 객체 e100의 매칭 셋이 MS(e100)={c12,c21,c31,c41}이라고 가정하자. MS(e100)에 의해 방문된 모든 노드들은 도 5-(b)에서 음영 처리된 노드로 표시되었다. 이러한 노드들을 깊이-우선 방식으로 방문할 때, 각 노드들의 count가 하나씩 증가한다. 다음으로, 서브스페이스 트리는 트리를 확장하기 위해 다시 한번 순회된다. MS(e100)의 1차원 서브클러스터들 중에서, 오직 중요(significant) 항목들만이 고려된다. MS(e100) 내의 1차원 서브클러스터 c31의 지지도가 비중요(insignificant)이기 때문에(
Figure 112008073963819-pat00045
), 필터링된 매칭 셋
Figure 112008073963819-pat00046
은 이전의 갱신 단계 동안에 획득된다. 경로 null→c12→c21에 서 노드 c21을 방문할 때, 직각면체 공간들
Figure 112008073963819-pat00047
Figure 112008073963819-pat00048
의 지지도들이 서브스페이스 트리를 확장하기 위해 추정된다. 도 3-(b)에서 보여지는 바와 같이,
Figure 112008073963819-pat00049
의 2-차원 사영들에 대응하는 모든 노드들의 지지도 뿐만 아니라, 추정된 지지도(
Figure 112008073963819-pat00050
)가 Ssig보다 크기 때문에, 노드 c41는 c21의 자식으로서 새롭게 생성된다.
상기된 150단계, 즉 서브스페이스 트리의 각 노드에 해당하는 데이터 공간의 지지도를 최소 지지도와 비교하여 서브클러스터를 결정하는 과정은 서브스페이스 트리의 모든 현재 서브클러스터들은 깊이-우선 방식으로 트리를 순회함으로써 구해질 수 있다. k-깊이 노드 v를 방문했을 때, 만약 현재 지지도(v.countt/|Dt|)가 최조 지지도 Smin보다 크거나 같다면, 그 노드에 대응하는 직각면체 공간은 k-차원 서브클러스터를 포함하므로 그 직각면체 공간을 서브클러스터로 결정할 수 있다.
반면에, 서브스페이스 트리 내의 모든 비중요 k-차원 직각면체 공간들은 서브스페이스 트리 내의 모든 노드의 현재 지지도를 검사함으로써 함께 제거될 수 있다. 이러한 메커니즘은 강제-전지(force-pruning) 연산이라고 불리운다. 이때 서브스페이스 트리 내의 모든 경로들이 순회되어야만 하므로, 강제-전지 연산을 수행하는 시간이 상대적으로 길다. 따라서 이는 주기적으로 수행되거나, 또는 서브스페이스 트리의 현재 크기가 소정의 문턱값에 도달했을 때 수행될 수 있다.
도 6 및 도 7은 상술한 실시예에 따른 다차원 서브스페이스 클러스터링 방법 을 알고리즘으로 나타낸 것으로서, 도 6은 일차원 클러스터를 찾아 매칭 셋을 생성하는 과정을, 도 7은 매칭 셋으로부터 서브클러스터를 찾는 과정을 나타낸다.
한편, 두 개의 다차원 서브클러스터들이 주어질 때, 만약 동일 차원에 대한 그들의 사영 범위가 겹쳐진다면, 사영된 범위들의 조합에 해당하는 오직 하나의 1차원 서브클러스터가 식별된다. 그러므로 사영된 차원과 관련된 두 개의 서브클러스터들의 범위를 다르게 하는 것은 불가능하다. 이 현상은 식별된 서브클러스터들의 정확도를 떨어뜨릴 수 있는 현상으로서, 엄폐(occultation)라고 불린다. d-차원 데이터 공간 N1×N2×...×Nd에 대해서, Oi를 두 개의 서브클러스터들의 i번째 차원(1≤i≤d)에서 발생하는 엄폐 이벤트라고 하자. 두 개의 서브클러스터들에 대해 모든 차원에서 엄폐가 발생할 확률을 P(O1∩…∩Od)라고 표시하자. 문헌 [Triola, M.F.,Goodman, W.M.,Law,R.Elementary Statistics First Canadian Edition, Addison-Wesley, Don Mills, Ontario, 1999]에서의 연구에 따라, 이 확률 값은 다음 수학식과 같이 획득된다.
Figure 112008073963819-pat00051
여기서 r1 및 r2는 두 개의 서브클러스터들의 반지름이고, 용어 ||x1-x2||는 두 개의 서브클러스터들의 중심들 간의 거리를 나타낸다. 따라서 두 개의 서브클러스터들에 대해 엄폐가 발생할 확률은 직각면체 공간의 차원 뿐만 아니라 거리 ||x1-x2||-(r1+r2)에도 비례한다. 두 개의 중요(significant) k-차원 직각면체 공간들이 주어질 때, 공간들의 k 차원 상에 사영된 구간들 사이에서, 만약 적어도 하나의 구간이 겹쳐지지 않는다면, 이러한 두개의 공간들은 서브스페이스 트리 내의 두 개의 식별되는 k-깊이 노드에 대응한다. 결과적으로 이러한 공간들의 카운트 및 직각면체 공간 시놉시스는 독립적으로 추적된다.
파티셔닝 클러스터링 알고리즘에서, 유사한 데이터 객체들의 그룹에 대한 서브클러스터는 데이터 객체들의 중심(centroid)으로 표현될 수 있기 때문에, 중심은 직각면체 서브스페이스 시놉시스의 평균 μt 이다. k-깊이 노드 v에 대해서, 루트로부터 노드 v까지의 경로를 c1→c2→...→ck 라 하자. 여기서, ci 들 (1≤i≤k) 는 1차원 서브클러스터들과 연관된다. 만약 노드의 현재 지지도가 Smin보다 크거나 같다면, 즉, v.countt/|Dt|≥Smin이면, 직각면체 공간은 k-차원 서브클러스터 m을 포함한다. 이러한 k-차원 서브클러스터 m의 가장 큰 가능한 범위는 k-차원 직각면체 공간
Figure 112008073963819-pat00052
이다. 여기서,
Figure 112008073963819-pat00053
는 i번째 차원 Ni(1≤i≤k) 내의 대응하는 1차원 서브클러스터 ci 의 구간이다. 다차원 서브클러스터에 대해, 통계적인 속성과 관련된 범위, 즉, 직각면체 공간 시놉시스의 평균 및 표준편차를 개선하는 것이 가능하다. 문헌 [Triola, M.F.,Goodman, W.M.,Law,R.Elementary Statistics First Canadian Edition, Addison-Wesley, Don Mills, Ontario, 1999] 에 개시된 Chebyshev's Inequality Theorem에 따라, 만약 μx 및 σx 가 어떠한 양의 상수 δ에 대해 임의의 변수 X의 평균 및 정규 분포이면, 다음의 부등식이 만족해야만 한다.
Figure 112008073963819-pat00054
사용자가 신뢰 확률(confidence probability) q를 정의하기 위해, 각 차원에서 적어도 데이터 객체들의 q%를 포함하는 구간의 상한/하한 뿐만 아니라 δ의 값을 결정하는 것이 가능하다. 상한은 μx+δσx이며, 하한은 μx-δσx 로 할 수 있다. δ의 값이 더 커질수록, 서브클러스터의 직각면체 공간 내의 더 많은 데이터 객체들이 경계 안에 포함될 수 있다.
따라서, 본 실시예에서는 150단계에 의해 서브클러스터가 결정된 후에, 서브클러스터의 범위를 개선하는 단계를 더 포함할 수 있다. 이 단계에서는 직각면체 공간 시놉시스의 각 차원 값의 평균을 중심으로 소정 구간을 서브클러스터의 범위로 결정한다. 예를 들어, i 번째 차원의 평균 및 표준편차를 μi 및 σi라 할 때, 서브클러스터의 i 번째 차원에 대한 소정 구간은 사용자 정의값 δ를 이용하여 μi+δσi 에서 μi-δσi 로 결정할 수 있다.
도 8은 이러한 실시예에 따라 개선된 2차원 서브클러스터의 범위가 어떻게 결정될 수 있는지를 도시하고 있다. 두 개의 1차원 서브클러스터들 cx 및 cy의 직각면체 공간 시놉시스들은 각각 직각면체 공간 cxㅧcy 내에 포함되어 있지 않은 데이터 객체들에 의해 영향을 받는다. 따라서, 2차원 서브클러스터 cxㅧcy 내에 있는 데이터 객체들의 데이터 분포는 도 8-(a)에서 보여지는 바와 같이 독립적으로 유지된다. 도 8-(b)에서 보여지는 바와 같이, 2차원 서브클러스터의 범위는 그 범위 내의 데이터 객체들의 실제 분포에 따라 좀 더 정확하게 개선될 수 있다.
도 9는 본 발명의 일 실시예에 따른 다차원 데이터 스트림을 위한 클러스터링 시스템의 블록도이다. 본 실시예에 따른 다차원 데이터 스트림을 위한 클러스터링 시스템은 도시된 바와 같이, 격자셀 처리부(910), 일차원 서브클러스터 결정부(920), 매칭 셋 생성부(930), 전위트리 갱신부(940), 서브클러스터 결정부(950) 및 메모리(960)를 포함하여 이루어진다.
메모리(960)는, 데이터 공간을 구성하는 각 차원 별로 이미 발생한 데이터 객체들의 통계적 분포 정보가 데이터 구간에 의해 정의되는 격자셀들을 이용하여 관리되도록, 상기 격자셀들을 저장한다. 또한, 메모리(960)에는 이러한 격자셀들을 포함하는 격자노드와, 격자노드가 연결된 구조인 격자셀 리스트를 저장하며, 데이터 객체들의 통계적 분포 정보는 이들 격자노드와 격자셀 리스트를 더불어 이용하여 관리된다. 메모리(960)에 관리되는 격자셀, 격자노드, 격자셀 리스트의 구조는 이미 설명한 바에 따른 구조와 동일하므로 구체적인 설명은 생략한다.
격자셀 처리부(910)는 외부의 데이터 스트림으로부터 데이터 객체를 입력받 고, 메모리(960)에 저장된 격자셀들 중 현재 발생한 데이터 객체에 해당하는 격자셀의 통계적 분포를 갱신하고, 그 결과 해당 격자셀에 속하는 데이터 객체의 발생 빈도를 소정 값인 분할 지지도와 비교하여 그 결과에 따라 격자셀을 복수의 격자셀로 분할하고, 분할된 격자셀의 통계적 분포를 추정하는 등 메모리(960)에 저장된 격자셀들을 처리한다. 격자셀 처리부(910)의 동작은 도 3에 도시된 310단계 내지 345단계에 관하여 설명된 바와 동일하므로, 구체적인 설명은 생략한다.
일차원 서브클러스터 결정부(920)는 메모리(960)에 저장된 격자셀들을 이용하여 일차원 서브클러스터를 결정하고 상기 결정된 일차원 서브클러스터에 식별자를 부여한다. 일차원 서브클러스터의 결정을 위하여, 일차원 서브클러스터 결정부(920)는 각 차원 별로 격자셀에 속하는 데이터 객체의 발생 빈도를 소정의 지지도 Smin과 비교하고, 그 결과에 따라 일차원 서브클러스터를 결정한다. 예컨대, 지지도가 Smin보다 크거나 같은 단위 격자셀 또는 인접한 단위 격자셀들의 그룹을 일차원 서브클러스터로 결정한다. 일차원 서브클러스터 결정부(920)의 동작은 도 1에 도시된 120단계에 관하여 설명된 바와 동일하므로, 구체적인 설명은 생략한다.
매칭 셋 생성부(930)는 일차원 서브클러스터 결정부(920)에서 결정된 일차원 클러스터의 식별자를 입력받고, 데이터 객체의 각 차원 값이 해당 차원의 일차원 서브클러스터의 범위 내에 속하게 되는 일차원 서브클러스터의 식별자의 집합인 매칭 셋을 생성한다. 매칭 셋 생성부(930)의 동작은 도 1에 도시된 130단계에 관하여 설명된 바와 동일하므로, 구체적인 설명은 생략한다.
메모리(960)에는 또한, 매칭 셋 생성부(930)에 의해 이미 생성된 매칭 셋에 속하는 일차원 서브클러스터들의 식별자가 전위트리를 이용하여 관리되고 전위트리의 각 노드는 해당 노드에 대응하는 데이터 공간에 속하는 데이터 객체의 출현빈도수 정보를 가지도록 전위트리가 저장된다. 메모리(960)에 저장되는 전위트리의 구조는 상기된 <서브스페이스 트리의 정의>에서 설명된 바와 동일하므로 구체적인 설명은 생략한다.
전위트리 갱신부(940)는 매칭 셋 생성부(930)에 의해 생성된 매칭 셋에 포함된 일차원 서브클러스터에 따라서 메모리(960)에 저장된 전위트리를 갱신한다. 전위트리 갱신부(940)의 동작은 도 1에 도시된 140단계에 관하여 설명된 바와 동일하므로 구체적인 설명은 생략한다.
서브클러스터 결정부(950)는, 매칭 셋 생성부(930)에 의해 생성된 매칭 셋에 속하는 일차원 서브클러스터의 집합 중 빈발하게 동시에 발생하는 일차원 서브클러스터의 집합을 찾음으로써 서브클러스터를 결정한다. 이때 서브클러스터 결정부(950)는 메모리(960)에 저장된 전위트리의 각 노드에 해당하는 데이터 공간의 지지도를 소정의 지지도와 비교함으로써 빈발하게 동시에 발생하는 일차원 서브클러스터의 집합을 찾는다. 나아가, 서브클러스터 결정부(950)는 서브클러스터가 결정되면, 서브클러스터의 범위를 개선하는데, 직각면체 공간 시놉시스의 각 차원 값의 평균을 중심으로 소정 구간을 서브클러스터의 범위로 결정한다.
서브클러스터 결정부(950)의 동작은 도 1에 도시된 150단계 및 이미 설명된 서브클러스터의 범위를 개선하는 단계에 관하여 설명된 바와 동일하므로 구체적인 설명은 생략한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른, 다차원 데이터 스트림을 위한 클러스터링 방법의 흐름도이다.
도 2a 및 도 2b는 본 발명의 일 실시예에 따라 격자셀 리스트가 동적으로 생성되는 과정을 나타낸다.
도 3은 본 발명의 일 실시예에 따른 1차원 클러스터를 찾는 방법의 흐름도로이다.
도 4는 3-차원 데이터 스트림을 모델링하기 위한 서브스페이스 트리의 예를 나타낸다.
도 5는 본 발명의 일 실시예에 따라 새로운 노드가 어떻게 서브스페이스 트리에 삽입되는지를 도시하고 있다.
도 6 및 도 7은 본 발명의 일 실시예에 따른 다차원 서브스페이스 클러스터링 방법의 알고리즘을 나타낸다.
도 8은 본 발명의 일 실시예에 따라 개선된 2차원 서브클러스터의 범위가 어떻게 결정될 수 있는지를 도시하고 있다.
도 9는 본 발명의 일 실시예에 따른 다차원 데이터 스트림을 위한 클러스터링 시스템의 블록도이다.

Claims (26)

  1. 다차원 데이터 스트림을 위한 클러스터링 방법에 있어서,
    (a) 데이터 객체가 입력되면 일차원 서브클러스터를 결정하고 상기 결정된 일차원 서브클러스터에 식별자를 부여하는 단계;
    (b) 상기 데이터 객체의 각 차원 값이 해당 차원의 일차원 서브클러스터의 범위 내에 속하게 되는 일차원 서브클러스터의 식별자의 집합인 매칭 셋을 생성하는 단계; 및
    (c) 상기 생성된 매칭 셋에 속하는 일차원 서브클러스터의 집합 중 빈발하게 동시에 발생하는 일차원 서브클러스터의 집합을 찾음으로써 서브클러스터를 결정하는 단계를 포함하고,
    이미 생성된 매칭 셋에 속하는 일차원 서브클러스터들의 식별자가 전위트리를 이용하여 관리되고 상기 전위트리의 각 노드는 해당 노드에 대응하는 데이터 공간에 속하는 데이터 객체의 출현빈도수 정보를 가지며,
    상기 생성된 매칭 셋에 포함된 일차원 서브클러스터에 따라서 상기 전위트리를 갱신하는 단계를 더 포함하고,
    상기 전위트리를 갱신하는 단계는, 상기 전위트리를 순회하면서 상기 생성된 매칭 셋에 따른 새로운 노드를 상기 전위트리에 삽입하는 단계를 포함하고,
    상기 새로운 노드를 상기 전위트리에 삽입하는 단계는,
    상기 생성된 매칭 셋이 상기 전위트리 내에 유지되지 않는 일차원 서브클러스터를 포함할 때 상기 일차원 서브클러스터에 대응되는 노드를 상기 전위트리의 첫째 깊이에 삽입하는 단계; 및
    상기 생성된 매칭 셋에 따른 다차원 직각면체 공간에 대응하는 새로운 노드를 삽입하는 단계를 포함하며,
    상기 다차원 직각면체 공간에 대응하는 새로운 노드를 삽입하는 단계는, 상기 생성된 매칭 셋 내에서 미리 정의된 중요 지지도 문턱값보다 낮은 지지도를 가지는 일차원 서브클러스터를 걸러내어 필터링하고, k-차원 직각면체 공간 R(v)에 대응하는 k-깊이 노드 v를 방문할 때 상기 필터링된 매칭 셋의 일차원 서브클러스터들 중에서 차원이 상기 노드 v와 관련된 일차원 서브클러스터의 차원 이후의 일차원 서브클러스터에 의해 (k+1)-차원 직각면체 공간에 대응하는 새로운 노드를 삽입하는 것을 특징으로 하는 클러스터링 방법.
  2. 제1항에 있어서,
    데이터 공간을 구성하는 각 차원 별로 이미 발생한 데이터 객체들의 통계적 분포 정보가 데이터 구간에 의해 정의되는 격자셀들을 이용하여 관리되며,
    상기 (a) 단계는 각 차원 별로 격자셀에 속하는 데이터 객체의 발생 빈도를 소정의 지지도와 비교하여 그 결과에 따라 일차원 서브클러스터를 결정하는 것을 특징으로 하는 클러스터링 방법.
  3. 제1항에 있어서,
    상기 (c) 단계는 상기 전위트리의 각 노드에 해당하는 데이터 공간의 지지도를 소정의 지지도와 비교함으로써 빈발하게 동시에 발생하는 일차원 서브클러스터의 집합을 찾는 것을 특징으로 하는 클러스터링 방법.
  4. 제1항에 있어서,
    d-차원 데이터 공간에서 데이터 객체
    Figure 112008073963819-pat00055
    의 매칭 셋은 다음 수학식과 같이 정의되는 것을 특징으로 하는 클러스터링 방법.
    Figure 112008073963819-pat00056
    여기서,
    Figure 112008073963819-pat00057
    는 j번째 차원에서의 일차원 서브클러스터들의 집합을 나타낸다.
  5. 제3항에 있어서,
    d-차원 데이터 공간
    Figure 112008073963819-pat00058
    의 현재 데이터 스트림 Dt에 대한 차원들의 순서를 N1→N2→...→Nd라고 할 때, 상기 전위트리는,
    "null" 값을 갖는 루트 노드 nroot를 가지며, 루트 노드를 제외하고, k(1≤k≤d)번째 깊이에서 각각의 노드는 대응하는 차원의 도메인 내에서 서브클러스터의 구간이
    Figure 112008073963819-pat00059
    인 일차원 서브클러스터의 식별자 c 와 관련되는 것을 특징으로 하는 클러스터링 방법.
  6. 제5항에 있어서,
    일차원 서브클러스터 ck와 관련되어 있는 k-깊이 노드 v가 주어질 때,
    Figure 112008073963819-pat00060
    를 루트로부터 노드 v까지의 경로 내의 노드들과 관련된 일차원 서브클러스터들의 순서라 하고 일차원 서브클러스터 cj의 차원을 Nj' (1≤j≤k)이라고 할때 노드 v는 k-차원 서브스페이스
    Figure 112008073963819-pat00061
    내에서 범위가
    Figure 112008073963819-pat00062
    에 의해 정의되는 k-차원 직각면체 공간에 대응되는 것을 특징으로 하는 클러스터링 방법.
  7. 제5항에 있어서,
    루트 노드를 제외하고 상기 전위트리의 각 노드는, 노드 v와 관련된 일차원 서브클러스터의 클러스터 식별자, range(v) 내의 데이터 객체들의 개수, range(v)의 직각면체 공간의 정보를 가지는 것을 특징으로 하는 클러스터링 방법.
  8. 제3항에 있어서,
    상기 전위트리를 갱신하는 단계는,
    상기 생성된 매칭 셋의 부분집합들에 대응하는 노드들을 깊이 우선 방식으로 순회하면서 상기 출현빈도수 정보를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 클러스터링 방법.
  9. 제8항에 있어서,
    상기 전위트리를 갱신하는 단계는,
    노드의 갱신된 지지도를 소정의 중요 지지도와 비교하여 그 결과에 따라 상기 노드 및 그 자손 노드를 상기 전위트리로부터 제거하는 단계를 더 포함하는 것을 특징으로 하는 클러스터링 방법.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 제1항에 있어서,
    상기 (k+1)-차원 직각면체 공간에 대응하는 새로운 노드를 삽입함에 있어서, 상기 새로운 노드의 지지도를 추정하고 상기 추정된 지지도를 소정의 중요 지지도와 비교하여 그 결과에 따라 상기 새로운 노드를 삽입하는 것을 특징으로 하는 클러스터링 방법.
  14. 제7항에 있어서,
    상기 range(v)의 직각면체 공간의 정보는 상기 직각면체 공간에 속하는 데이터 객체들의 각 차원 값들 각각의 평균 및 표준편차를 포함하는 것을 특징으로 하는 클러스터링 방법.
  15. 제14항에 있어서,
    상기 결정된 서브클러스터로부터 서브클러스터의 범위를 개선하는 단계로서, 상기 각 차원 값의 평균을 중심으로 하는 소정 구간을 상기 서브클러스터의 범위로 결정하는 단계를 더 포함하는 것을 특징으로 하는 클러스터링 방법.
  16. 제15항에 있어서,
    i 번째 차원의 상기 평균 및 표준편차를 μi 및 σi라 할 때, i 번째 차원에 대한 상기 소정 구간은 사용자 정의값 δ를 이용하여 μi+δσi 에서 μi-δσi 사이로 결정되는 것을 특징으로 하는 클러스터링 방법.
  17. 제1항 내지 제9항, 제13항 내지 제16항 중 어느 한 항에 기재된, 다차원 데이터 스트림을 위한 클러스터링 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  18. 다차원 데이터 스트림을 위한 클러스터링 시스템에 있어서,
    데이터 객체가 입력되면 일차원 서브클러스터를 결정하고 상기 결정된 일차원 서브클러스터에 식별자를 부여하는 일차원 서브클러스터 결정부;
    상기 데이터 객체의 각 차원 값이 해당 차원의 일차원 서브클러스터의 범위 내에 속하게 되는 일차원 서브클러스터의 식별자의 집합인 매칭 셋을 생성하는 매칭 셋 생성부; 및
    상기 생성된 매칭 셋에 속하는 일차원 서브클러스터의 집합 중 빈발하게 동시에 발생하는 일차원 서브클러스터의 집합을 찾음으로써 서브클러스터를 결정하는 서브클러스터 결정부를 포함하고,
    이미 생성된 매칭 셋에 속하는 일차원 서브클러스터들의 식별자가 전위트리를 이용하여 관리되고 상기 전위트리의 각 노드는 해당 노드에 대응하는 데이터 공간에 속하는 데이터 객체의 출현빈도수 정보를 가지도록 상기 전위트리를 저장하기 위한 메모리; 및
    상기 생성된 매칭 셋에 포함된 일차원 서브클러스터에 따라서 상기 전위트리를 갱신하는 전위트리 갱신부를 더 포함하고,
    상기 전위트리 갱신부는, 상기 전위트리를 순회하면서 상기 생성된 매칭 셋에 따른 새로운 노드를 상기 전위트리에 삽입하고,
    상기 새로운 노드의 상기 전위트리에의 삽입은, 상기 생성된 매칭 셋이 상기 전위트리 내에 유지되지 않는 일차원 서브클러스터를 포함할 때 상기 일차원 서브클러스터에 대응되는 노드를 상기 전위트리의 첫째 깊이에 삽입하고, 상기 생성된 매칭 셋에 따른 다차원 직각면체 공간에 대응하는 새로운 노드를 삽입하며,
    상기 다차원 직각면체 공간에 대응하는 새로운 노드의 삽입은, 상기 생성된 매칭 셋 내에서 미리 정의된 중요 지지도 문턱값보다 낮은 지지도를 가지는 일차원 서브클러스터를 걸러내어 필터링하고, k-차원 직각면체 공간 R(v)에 대응하는 k-깊이 노드 v를 방문할 때 상기 필터링된 매칭 셋의 일차원 서브클러스터들 중에서 차원이 상기 노드 v와 관련된 일차원 서브클러스터의 차원 이후의 일차원 서브클러스터에 의해 (k+1)-차원 직각면체 공간에 대응하는 새로운 노드를 삽입하는 것을 특징으로 하는 클러스터링 시스템.
  19. 제18항에 있어서,
    데이터 공간을 구성하는 각 차원 별로 이미 발생한 데이터 객체들의 통계적 분포 정보가 데이터 구간에 의해 정의되는 격자셀들을 이용하여 관리되도록 상기 격자셀들을 저장하기 위한 메모리를 더 포함하고,
    상기 일차원 서브클러스터 결정부는 각 차원 별로 격자셀에 속하는 데이터 객체의 발생 빈도를 소정의 지지도와 비교하여 그 결과에 따라 일차원 서브클러스터를 결정하는 것을 특징으로 하는 클러스터링 시스템.
  20. 제18항에 있어서,
    상기 서브클러스터 결정부는 상기 전위트리의 각 노드에 해당하는 데이터 공간의 지지도를 소정의 지지도와 비교함으로써 빈발하게 동시에 발생하는 일차원 서브클러스터의 집합을 찾는 것을 특징으로 하는 클러스터링 시스템.
  21. 제20항에 있어서,
    d-차원 데이터 공간
    Figure 112008073963819-pat00063
    의 현재 데이터 스트림 Dt에 대한 차원들의 순서를 N1→N2→...→Nd라고 할 때, 상기 전위트리는,
    "null" 값을 갖는 루트 노드 nroot를 가지며, 루트 노드를 제외하고, k(1≤k≤d)번째 깊이에서 각각의 노드는 대응하는 차원의 도메인 내에서 서브클러스터의 구간이
    Figure 112008073963819-pat00064
    인 일차원 서브클러스터의 식별자 c 와 관련되는 것을 특징으로 하는 클러스터링 시스템.
  22. 제21항에 있어서,
    일차원 서브클러스터 ck와 관련되어 있는 k-깊이 노드 v가 주어질 때,
    Figure 112008073963819-pat00065
    를 루트로부터 노드 v까지의 경로 내의 노드들과 관련된 일차원 서브클러스터들의 순서라 하고 일차원 서브클러스터 cj의 차원을 Nj' (1≤j≤k)이라고 할때 노드 v는 k-차원 서브스페이스
    Figure 112008073963819-pat00066
    내에서 범위가
    Figure 112008073963819-pat00067
    에 의해 정의되는 k-차원 직각면체 공간에 대응되는 것을 특징으로 하는 클러스터링 시스템.
  23. 제22항에 있어서,
    루트 노드를 제외하고 상기 전위트리의 각 노드는, 노드 v와 관련된 일차원 서브클러스터의 클러스터 식별자, range(v) 내의 데이터 객체들의 개수, range(v)의 직각면체 공간의 정보를 가지는 것을 특징으로 하는 클러스터링 시스템.
  24. 제23항에 있어서,
    상기 range(v)의 직각면체 공간의 정보는 상기 직각면체 공간에 속하는 데이터 객체들의 각 차원 값들 각각의 평균 및 표준편차를 포함하는 것을 특징으로 하는 클러스터링 시스템.
  25. 제24항에 있어서,
    상기 서브클러스터 결정부는, 상기 결정된 서브클러스터로부터 서브클러스터의 범위를 개선하되, 상기 각 차원 값의 평균을 중심으로 하는 소정 구간을 상기 서브클러스터의 범위로 결정하는 것을 특징으로 하는 클러스터링 시스템.
  26. 제25항에 있어서,
    상기 서브클러스터 결정부는, i 번째 차원의 상기 평균 및 표준편차를 μi 및 σi라 할 때, i 번째 차원에 대한 상기 소정 구간을 사용자 정의값 δ를 이용하여 μi+δσi 에서 μi-δσi 사이로 결정하는 것을 특징으로 하는 클러스터링 시스템.
KR1020080104741A 2008-10-24 2008-10-24 다차원 데이터 스트림을 위한 클러스터링 방법 및 시스템 KR101003842B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080104741A KR101003842B1 (ko) 2008-10-24 2008-10-24 다차원 데이터 스트림을 위한 클러스터링 방법 및 시스템
US12/564,343 US8762393B2 (en) 2008-10-24 2009-09-22 Method and system of clustering for multi-dimensional data streams

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080104741A KR101003842B1 (ko) 2008-10-24 2008-10-24 다차원 데이터 스트림을 위한 클러스터링 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20100045682A KR20100045682A (ko) 2010-05-04
KR101003842B1 true KR101003842B1 (ko) 2010-12-23

Family

ID=42118496

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080104741A KR101003842B1 (ko) 2008-10-24 2008-10-24 다차원 데이터 스트림을 위한 클러스터링 방법 및 시스템

Country Status (2)

Country Link
US (1) US8762393B2 (ko)
KR (1) KR101003842B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013081650A1 (en) 2011-11-28 2013-06-06 Hewlett-Packard Development Company, L. P. Clustering event data by multiple time dimensions
US9146987B2 (en) * 2013-06-04 2015-09-29 International Business Machines Corporation Clustering based question set generation for training and testing of a question and answer system
US9230009B2 (en) * 2013-06-04 2016-01-05 International Business Machines Corporation Routing of questions to appropriately trained question and answer system pipelines using clustering
US9348900B2 (en) 2013-12-11 2016-05-24 International Business Machines Corporation Generating an answer from multiple pipelines using clustering
US9658897B2 (en) 2014-06-23 2017-05-23 International Business Machines Corporation Flexible deployment and migration of virtual machines
US9473353B2 (en) 2014-06-23 2016-10-18 International Business Machines Corporation Cluster reconfiguration management
KR101535028B1 (ko) * 2014-07-02 2015-07-09 삼육대학교산학협력단 범위값 클러스터링 알고리즘 기반 비정상 이벤트의 탐지방법
US9697245B1 (en) * 2015-12-30 2017-07-04 International Business Machines Corporation Data-dependent clustering of geospatial words
US10817540B2 (en) 2016-09-02 2020-10-27 Snowflake Inc. Incremental clustering maintenance of a table
CN108090182B (zh) * 2017-12-15 2018-10-30 清华大学 一种大规模高维数据的分布式索引方法及系统
CN109614415B (zh) * 2018-09-29 2023-03-28 蚂蚁金服(杭州)网络技术有限公司 一种数据挖掘、处理方法、装置、设备及介质
CN111274275B (zh) * 2018-11-19 2023-07-04 中国电信股份有限公司 数据处理方法、装置和计算机可读存储介质
US11562026B1 (en) * 2021-08-30 2023-01-24 Sap Se Data access using sorted count mapping
CN115981970B (zh) * 2023-03-20 2023-05-16 建信金融科技有限责任公司 运维数据分析方法、装置、设备和介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6188776B1 (en) * 1996-05-21 2001-02-13 Interval Research Corporation Principle component analysis of images for the automatic location of control points
US5799300A (en) * 1996-12-12 1998-08-25 International Business Machines Corporations Method and system for performing range-sum queries on a data cube
US6003029A (en) * 1997-08-22 1999-12-14 International Business Machines Corporation Automatic subspace clustering of high dimensional data for data mining applications
US6460026B1 (en) * 1999-03-30 2002-10-01 Microsoft Corporation Multidimensional data ordering
US7565346B2 (en) * 2004-05-31 2009-07-21 International Business Machines Corporation System and method for sequence-based subspace pattern clustering
KR100907283B1 (ko) * 2007-10-31 2009-07-13 연세대학교 산학협력단 지속적으로 발생되는 데이터 객체들로 구성되는 비한정적데이터 집합인 데이터 스트림으로부터 클러스터를 찾는방법 및 장치
US20090322748A1 (en) * 2008-06-09 2009-12-31 Uti Limited Partnership Methods,systems, and computer program products for GPU-based point radiation for interactive volume sculpting and segmentation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J. W. Lee, "Efficiently Tracing Clusters over High-Dimensional On-line Data Stream", 연세대학교, 석사학위논문, 2008년 8월*

Also Published As

Publication number Publication date
KR20100045682A (ko) 2010-05-04
US8762393B2 (en) 2014-06-24
US20100106723A1 (en) 2010-04-29

Similar Documents

Publication Publication Date Title
KR101003842B1 (ko) 다차원 데이터 스트림을 위한 클러스터링 방법 및 시스템
Boukerche et al. Outlier detection: Methods, models, and classification
Kim et al. AA-DBSCAN: an approximate adaptive DBSCAN for finding clusters with varying densities
Ghesmoune et al. State-of-the-art on clustering data streams
Yagoubi et al. Dpisax: Massively distributed partitioned isax
KR100896528B1 (ko) 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템
Cao et al. An improved k-medoids clustering algorithm
Gullo et al. Clustering uncertain data via k-medoids
Nayyar et al. Comprehensive analysis & performance comparison of clustering algorithms for big data
Hesabi et al. Data summarization techniques for big data—a survey
Xiao et al. A survey of parallel clustering algorithms based on spark
Mahapatra et al. Comparative analysis of nearest neighbor query processing techniques
Vijayalaksmi et al. A fast approach to clustering datasets using dbscan and pruning algorithms
CN110781943A (zh) 一种基于毗邻网格搜索的聚类方法
Islam et al. i-CODAS: An Improved Online Data Stream Clustering in Arbitrary Shaped Clusters.
Lasek et al. Density-based clustering with constraints
KR100907283B1 (ko) 지속적으로 발생되는 데이터 객체들로 구성되는 비한정적데이터 집합인 데이터 스트림으로부터 클러스터를 찾는방법 및 장치
Kalliantzis et al. Efficient Distributed Outlier Detection in Data Streams
Fahy et al. Finding multi-density clusters in non-stationary data streams using an ant colony with adaptive parameters
Svynchuk et al. Modification of Query Processing Methods in Distributed Databases Using Fractal Trees.
Zhu et al. Closest pairs search over data stream
KR101869329B1 (ko) 소셜 데이터베이스의 공간 빈발 단어집합에 대한 데이터 마이닝 방법
Ravi et al. A critical review on density-based clustering algorithms and their performance in data mining
CN111695579A (zh) 一种基于网格的快速dbscan聚类方法
Ab Ghani et al. Subspace Clustering in High-Dimensional Data Streams: A Systematic Literature Review.

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151201

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee