KR20160019897A - 시계열의 고속 그룹화 기법 - Google Patents

시계열의 고속 그룹화 기법 Download PDF

Info

Publication number
KR20160019897A
KR20160019897A KR1020157035311A KR20157035311A KR20160019897A KR 20160019897 A KR20160019897 A KR 20160019897A KR 1020157035311 A KR1020157035311 A KR 1020157035311A KR 20157035311 A KR20157035311 A KR 20157035311A KR 20160019897 A KR20160019897 A KR 20160019897A
Authority
KR
South Korea
Prior art keywords
time series
cluster
feature vectors
implementations
series
Prior art date
Application number
KR1020157035311A
Other languages
English (en)
Other versions
KR102223419B1 (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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20160019897A publication Critical patent/KR20160019897A/ko
Application granted granted Critical
Publication of KR102223419B1 publication Critical patent/KR102223419B1/ko

Links

Images

Classifications

    • G06F17/30713
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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/22Indexing; Data structures therefor; Storage structures
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F17/30601
    • G06F17/30994
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23211Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with adaptive number of clusters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/12Classification; Matching
    • G06F2218/16Classification; Matching by matching signal segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

일부 예시에서, 시계열 데이터 세트가 분석되고 빠르고 효과적인 방식으로 그룹화될 수 있다. 예를 들어, 복수의 시계열을 클러스터로 고속 그룹화하는 것이 데이터 감소, 클러스터 개체군 결정, 및 위치 민감 해싱에 의한 고속 매칭을 통해 구현될 수 있다. 일부 상황에서, 사용자는 시계열을 클러스터로 그룹화하기 위한 입도의 레벨을 선택할 수 있으며, 이는 클러스터의 개수와 클러스터 내 2개의 시계열 간 최대 거리 간 상충 관계를 포함할 수 있다.

Description

시계열의 고속 그룹화 기법{FAST GROUPING OF TIME SERIES}
본 출원은 데이터 분석의 기술 분야와 관련된다.
많은 분야, 가령, 과학, 공학, 및 비즈니스에서 시계열의 형태로 된 데이터가 일반적이다. 하나 이상의 시계열을 분석하는 것이 가치 있는 통찰을 제공할 수 있다. 예를 들어, 클라우드에서 서로 다른 서비스를 실행시키는 수천 대의 기계를 관리하는 운영 엔지니어가 기계의 CPU 사용률 및 메모리 소비율을 모니터링할 수 있다. 자원 할당 및 용량 플래닝을 개선하기 위해, 운영 엔지니어는 하나 이상의 대응하는 기계에 대한 CPU 사용률 및 메모리 소비율을 나타내는 데이터 점의 하나 이상의 시계열을 수집 및 분석할 수 있다. 따라서 운영 엔지니어가 여러 다른 기계에 대한 CPU 사용률을 나타내는 여러 다른 시계열을 가질 수 있다. 여러 다른 시계열과 연관된 데이터의 많은 양 때문에, 운영 엔지니어는 데이터를 구성하고 여러 다른 기계들 간에 패턴 또는 유사성을 인식하는 것이 난제임을 알았다.
개요
본 명세서에 기재된 구현예는 시계열 데이터 세트를 고속의 효율적인 방식으로 분석하고 그룹화하도록 제공된다. 복수의 시계열의 특성에 대한 제한된 정보만 있거나 어떠한 사전 지식이 없을 때조차 복수의 시계열을 클러스터로 빠르게 그룹화하는 것이 몇 가지 기법을 이용해 구현될 수 있다. 이러한 기법의 예시는 다단계 샘플링(multi-step sampling)에 의한 데이터 감소, 데이터 특징 추정, 및 샘플링된 세트의 클러스터링을 포함한다. 일부 구현예에서, 사용자는 입도의 레벨을 선택함으로써 시계열 그룹화 결과를 제어할 수 있다. 미세 입도 레벨은 클러스터 내 시계열 쌍의 이들 사이의 최대 거리가 더 작은 더 작은 크기의 클러스터를 출력할 것이며, 비교적 많은 수의 클러스터를 출력할 것이다. 덜 미세한 입도 레벨은 비교적 큰 크기의 클러스터를 출력할 것이다.
이 개요는 이하의 상세한 설명에서 더 기재될 개념을 단순화된 형태로 소개하기 위해 제공된다. 이 개요는 본 발명의 핵심 또는 필수 특징을 식별하려는 것이 아니며, 본 발명의 범위를 결정하거나 제한하려 사용되는 것도 아니다.
상세한 설명이 첨부된 도면을 참조하여 제공된다. 도면에서, 도면부호의 가장 좌측 숫자(들)는 상기 도면부호가 최초 등장한 도면을 식별한다. 서로 다른 도면에서의 동일한 도면 부호의 사용은 유사하거나 동일한 아이템 또는 특징부를 가리킨다.
도 1은 일부 구현예에 따르는 복수의 시계열의 그룹화를 수행하기 위한 선택 구성요소를 포함하는 예시적 환경을 도시하는 블록도이다.
도 2는 일부 구현예에 따르는 시계열의 클러스터를 디스플레이하는 예시를 도시한다.
도 3은 일부 구현예에 따르는 시계열의 클러스터를 디스플레이하는 예시를 도시한다.
도 4는 일부 구현예에 따르는 클러스터에 복수의 시계열을 할당하는 예시적 프로세스의 흐름도이다.
도 5는 일부 구현예에 따르는 복수의 시계열을 그룹화하는 예시적 프로세스의 흐름도이다.
도 6은 복수의 시계열의 그룹화를 구현할 수 있는 대표적 컴퓨팅 장치를 나타내는 블록도이다.
복수의 시계열의 고속 그룹화
본 명세서에 기재된 기법은 일반적으로 복수의 시계열(time-series)을 그룹화하는 것과 관련된다. 본 명세서에서 사용될 때, 시계열은 수치 값들 또는 데이터 점들의 계열(series)이다. 예를 들어, 시계열은 각각의 값이 수집된 시점에 대응하는 순서로 저장 또는 표시되는 값들의 계열일 수 있다. 시계열 데이터 세트는 적어도 2개의 시계열의 모음이다. 일부 구현예에서, 시계열 데이터 세트는 하나 이상의 시계열의 모음이다. 복수의 시계열은 이들을 서로 다른 그룹으로 구성함으로써 더 효과적으로 분석될 수 있다. 예를 들어, 유사한 특성 또는 패턴을 갖는 둘 이상의 시계열이 동일한 그룹 또는 클러스터로 구성될 수 있다. 일부 구현예에서, 시계열 데이터 세트의 각각의 시계열은 동일한 개수의 수치 값 또는 데이터 점을 가진다.
시계열 분석학은 시계열 데이터 또는 단일 값을 토대로 피봇(pivot)하는 것을 포함할 수 있다. 피봇은 그룹화(group-by), 정렬(sorting), 및 하나의 데이터 세트에 대한 필터링 같은 동작들을 포함할 수 있으며, 이의 결과가 디스플레이 상에 표시될 수 있다. 예를 들어, 시스템 관리의 영역에서, 운영 엔지니어가 특정 시간 주기 동안 여러 다른 기계의 사용 패턴에 대해 습득하는 데 관심이 있을 수 있다. 시스템 운영자는 단일 값 속성(single-valued attribute)(가령, 기계 상에서 실행 중인 서비스의 유형)에 의해 필터링되는 기계의 세트일 수 있는 기계의 서브세트의 사용률 패턴(가령, CPU 사용률)을 이해하기를 원할 수 있다. 또 다른 경우, 기계의 세트는 시계열 속성과 연관된 특정 유형의 사용률 패턴(가령, 메모리 소비율 패턴 또는 CPU 사용률 패턴)에 의해 필터링될 수 있다. 따라서 특정 시간 간격 동안 메모리 사용률의 특정 패턴을 보이는 기계가 식별되고 사용자에게 표시될 수 있다.
일부 구현예에서, 시계열 속성 또는 단일 값 속성에 의한 피봇을 가능하게 하기 위해, 시계열의 패턴 속성(가령, 하루 동안의 방대한 수의 시계열의 CPU 사용률 패턴)이 클러스터링을 통해 획득 또는 식별된다. 일부 예시에서, 시계열 클러스터링 알고리즘(time-series clustering algorithm)이 복수의 시계열에 대한 피봇을 지원하기 위해 적어도 2개의 목표를 이행한다. 첫 번째 목표는 클러스터링 알고리즘이 빨라지고 확장 가능해지는 것이다. 피봇과 연관된 매끄러운 사용자 경험을 지원하기 위해, 기저 분석 엔진(underline analysis engine)이 사용자의 피봇에 대해 실시간 또는 거의 실시간 응답을 갖는 것이 중요하다. 데이터 세트가 극도로 클 수 있다. 예를 들어, 데이터센터가 방대한 수의 기계를 가질 수 있으며, 이때 각각의 기계와 하나씩의 시계열이 연관될 수 있다.
두 번째 목표는 알려지지 않은 특성을 갖는 데이터의 클러스터링 또는 데이터 특성과 관련된 정보가 제한적인 데이터의 클러스터링을 위한 알고리즘을 제공하는 것이다. 데이터가 서로 다른 영역에서 서로 다를 수 있기 때문에, 데이터 세트 내 시계열 패턴의 개체군(population), 가령, 클러스터의 개수 및 클러스터의 밀도를 결정하는 것이 어려울 수 있다. 덧붙여, 동일 영역에서라도, 서로 다른 시계열의 특성 속성이 서로 다를 수 있다(가령, CPU 사용률, 메모리 소비율). 덧붙여, 하나의 유형의 시계열이 서로 다른 시간 주기에서 서로 다른 클러스터 개체군을 가질 수 있다.
클러스터 중심(cluster center) 식별을 위한 정확도를 충분히 유지하면서 클러스터 중심을 식별하기 위한 계산 비용을 낮추기 위한 다단계 샘플링(multi-step sampling)이 사용되어 알고리즘을 빠르고 확장 가능하게 만들 수 있다. 그 후, 위치 민감 해싱(locality sensitive hashing)(LSH) 기법이 사용되어, 식별된 클러스터 중심에 대해 데이터 세트의 각각의 시계열을 매칭하고, 각각의 시계열을 가장 가까운 클러스터에 할당할 수 있다. 일부 구현예에서, 다단계 샘플링은 적어도 2개의 단계 또는 프로세스를 포함할 수 있다. 제1 단계는 데이터 차원 감소를 수행하기 위해 부분 집계 근사(piece-wise aggregation approximation)(PAA)를 이용하여 거나, 그 밖의 다른 적합한 데이터 차원 감소 기법, 가령, 이산 푸리에 변환, 이산 웨이블렛 변환(discrete wavelet transform), 및 이산 코사인 변환(discrete cosine transform)을 이용하는 것이다. 일부 구현예에서, PAA에 대해 사용되는 파라미터가 알고리즘에 의해 결정될 것이다. 제2 단계는 시계열 데이터 세트 분포를 근사로서 나타내기 위해 시계열의 서브세트를 선택하는 것을 포함하는 시계열 샘플링을 수행하는 것이다. 상기의 단계들 이후에, 원본 시계열 데이터 세트보다 차원이 감소되고 더 적은 데이터 점을 갖는, 샘플링된 시계열 데이터 세트가 획득된다. 그 후 클러스터링 알고리즘이 샘플링된 시계열 데이터 세트에 적용되어, 클러스터 중심의 세트를 획득할 수 있다. 그 후, 위치 민감 해싱(LSH) 기법이 이행되어, 데이터 세트의 각각의 시계열을 획득된 클러스터 중심에 대해 매칭하여, 각각의 시계열을 가장 가까운 클러스터에 할당할 수 있다. LSH를 대신하여 그 밖의 다른 적합한 매칭 기법, 가령, (가령, 앞서 언급된 바와 같이 매칭된 LSH 값을 갖는 더 작은 부분의 시계열 클러스터 중심들 간 거리를 계산하는 대신) 하나의 시계열과 모든 시계열 클러스터 중심 간 거리를 계산하는 것이 사용될 수 있다.
일부 구현예에서, 시계열의 특성에 대한 지식이 제한된 또는 없는 다양한 시계열을 처리하기 위해, 알고리즘이 반복 접근법을 이용하여 클러스터 개체군, 가령, 클러스터의 개수, 각각의 클러스터의 중심, 및 클러스터링을 위한 거리 임계치를 결정 또는 추정할 수 있다. 일부 구현예에서, 대부분 또는 모든 클러스터링 파라미터가 클러스터링 알고리즘에 의해 결정된다. 덧붙여, 일부 구현예에서, 사용자가 클러스터링 입도(clustering granularity)의 레벨을 대략적(rough) 내지 세밀(fine)로 특정하며, 이는 각각 클러스터링 알고리즘이 비교적 적은 개수의 클러스터 내지 비교적 많은 개수의 클러스터를 출력하게 할 수 있다. 일부 구현예에서, 클러스터링 알고리즘은 고도로 효율적이며 고도로 확장 가능하다.
일부 구현예에서, 시계열 데이터 세트는 D = {Ti}, i = 1, ... , N로 정의되며, 여기서, Ti는 시계열이고 N은 D 내의 시계열의 총 개수이다. 시계열 T는 T = {ti}, i = 1, ... , m로 정의되며, ti는 수치 값이며 m은 하나의 시계열 내 데이터 점의 개수이다. 일부 구현예에서, D 내 모든 시계열이 동일한 개수의 데이터 점을 가진다.
일부 구현예에서, 시계열 클러스터링을 위한 거리 메트릭(distance metric)이 정의될 수 있다. 일부 예시에서, 가령, 고차원 데이터 마이닝 적용예에서, 유클리드 거리 메트릭(L2-놈)보다 L1-놈(norm)이 사용될 수 있다. 따라서 일부 구현예에서, L1-놈이 거리 메트릭으로서 사용된다.
일부 구현예에서, 시계열 데이터 세트 D 및 클러스터링 입도 레벨
Figure pct00001
이 주어지면, 알고리즘이 시계열의 클러스터의 세트
Figure pct00002
를 출력하며, 여기서
Figure pct00003
이고
Figure pct00004
는 클러스터의 개수를 가리킨다. 일부 구현예에서, 클러스터링 결과의 품질이 L1-놈 거리를 기초로 하는 객체 함수 J로서 최대 값을 얻는다.
예시적 환경
도 1은 일부 구현예에 따르는 복수의 시계열 데이터의 그룹화를 수행하기 위한 선택 구성요소를 포함하는 예시적 환경(100)을 도시하는 블록도이다. 상기 환경(100)은 데이터 저장소(102)를 포함한다. 상기 데이터 저장소(102)는 데이터 저장에 적합할 수 있는 임의의 유형의 기계 또는 저장 장치를 포함할 수 있다.
도시된 예시에서, 환경(100)은 하나 이상의 서버(104)를 포함하며, 상기 하나 이상의 서버 각각은 하나 이상의 프로세서(106) 및 컴퓨터 판독가능 매체(108)를 포함할 수 있다. 상기 프로세서(106) 및 컴퓨터 판독가능 매체(108)는 이하에서 더 상세히 기재된다.
환경(100)은 본 명세서에 기재된 기능을 수행하기 위한 다양한 모듈 및 기능 구성요소를 포함할 수 있다. 일부 구현예에서, 환경(100)은 시계열 데이터 세트(112)를 특징 벡터 세트(feature vector set)(114)로 변환하기 위한 변환기 모듈(110)을 포함할 수 있으며, 이는 이하에서 더 상세히 기재된다. 덧붙여, 클러스터 모듈(116)은 특징 벡터 세트의 서브세트(118)를 선택하여 시계열 클러스터(120)를 생성하며, 이는 이하에서 더 상세히 기재된다. 일부 구현예에서, 클러스터 모듈(116)은 시계열 클러스터(120)를 생성하도록 사용되는 하나 이상의 LSH 테이블(122)을 구축하며, 이는 이하에서 더 상세히 기재된다.
일부 예시에서, 변환기 모듈(110) 및 클러스터 모듈(116)에 의해 수행되는 기능 및 그 밖의 다른 기능이 하나의 모듈 또는 둘보다 큰 개수의 모듈에 의해 수행될 수 있다. 변환기 모듈(110) 및 클러스터 모듈(116)의 추가 양태가 이하에서 기재된다. 덧붙여, 환경(100)은 네트워크(126)를 통해, 가령, 인터넷을 통해 하나 이상의 클라이언트(124)로 상호연결되어, 데이터 저장소(102) 및 서버(104)를 액세스할 수 있다. 덧붙여, 하나 이상의 서버(104)는 환경(100) 내 인트라넷 인프라구조(가령, 로컬 영역 네트워크(128))를 통해 상호 연결될 수 있다. 일부 구현예에서, 컴퓨터 판독가능 매체(108) 내 일부 또는 모든 정보가 데이터 저장소(102)에 저장된다.
일부 구현예에서, 클러스터 모듈(116)은 복수의 컴퓨팅 장치에 대응하는 복수의 시계열을 모을 수 있고, 여기서 복수의 시계열의 각각의 시계열은 일정 시간 주기 동안 컴퓨팅 장치들 중 하나의 컴퓨팅 장치에 의한 자원 소비를 나타내는 수치 값의 계열을 포함한다. 예를 들어, 클러스터 모듈(116)은 서버(104)들 중 둘 이상의 서버에 대응하는 시계열을 모을 수 있으며, 여기서 각각의 시계열은 서버, 가령, 메모리 사용률, CPU 사용률, 또는 전기 사용률에 의한 자원 소비율을 나타낸다.
시계열 클러스터의 예시
도 2는 일부 구현예에 따르는 시계열의 클러스터를 디스플레이하는 예시를 도시한다. 이 예시에서, 시계열 클러스터(202)는 디스플레이, 가령, 모니터, 또는 그래픽 출력을 표시하기에 적합한 그 밖의 다른 장치(가령, 클라이언트(124) 상의 디스플레이) 상에 표시된다. 상기 시계열 클러스터(202)는 3개의 서로 다른 시계열을 포함하며, 각각의 시계열은 서로 다른 컴퓨팅 장치의 메모리 사용률의 퍼센트를 나타낸다. 예를 들어, Y-축(204)은 메모리 사용률에 대응하고 X-축(206)은 시간에 대응하며, 이때 시간은 우측으로 갈수록 증가한다. 따라서 클러스터 모듈(116)은 시간 주기 동안 컴퓨팅 장치들 중 하나 이상의 컴퓨팅 장치의 자원 소비율(가령, 메모리 사용률, CPU 사용률)을 나타내기 위해 복수의 클러스터 중 적어도 하나의 클러스터의 그래픽 표현을 나타낼 수 있다. 예를 들어, 클러스터 모듈(116)은 3개의 서로 다른 컴퓨팅 장치의 자원 소비율을 가리키는 클러스터를 표시한다.
예를 들어, 시계열 클러스터(202)의 모든 3개의 시계열이 메모리 사용률의 유사한 패턴을 보이며, 이는 25% 내지 75%로 대략 변한다. 일부 구현예에서, 클러스터 모듈(116)은 3개의 시계열을 그룹화하여 본 명세서에 기재된 기법을 기초로 시계열 클러스터(202)를 형성할 수 있다. 일부 구현예에서, 더 적거나 더 많은 시계열이 시계열 클러스터(202)에 포함된다. 예를 들어, 시계열 클러스터(202)는 100개의 서로 다른 시계열을 포함할 수 있으며, 이들 각각의 시계열이 디스플레이된다. 일부 구현예에서, 사용자는 디스플레이될 시계열 클러스터(202)의 시계열의 서브세트를 선택할 수 있다. 일부 구현예에서, 사용자가 서브세트로서 디스플레이될 시계열의 개수를 선택한 후, 클러스터 모듈(116)은 시계열 클러스터(302)로부터 랜덤으로 디스플레이될 시계열의 개수를 선택한다. 일부 구현예에서, 시계열의 하나 이상의 추가 클러스터가 또한 동시에 디스플레이됨으로써, 사용자가 서로 다른 클러스터 간 비교 및 각각의 클러스터 내 서로 다른 시계열 간 비교를 할 수 있다.
도 3은 일부 구현예에 따르는 시계열의 클러스터를 디스플레이하는 예시를 도시한다. 예를 들어, 시계열 클러스터(302)가 디스플레이, 가령, 모니터 또는 그래픽 출력을 표시하기에 적합한 그 밖의 다른 장치 상에 표시된다. 시계열 클러스터(302)는 3개의 서로 다른 시계열을 포함하며, 각각의 시계열은 서로 다른 컴퓨팅 장치의 메모리 사용률의 퍼센트를 나타낸다. 도 2에서와 같이, Y-축(304)은 메모리 사용률에 대응하고 X-축(306)은 시간에 대응하며, 이때 시간은 우측으로 갈수록 증가한다.
예를 들어, 시계열 클러스터(302)의 모든 3개의 시계열이, 0% 내지 50%에서 대략적으로 변하는 메모리 사용률의 유사한 패턴을 보인다. 일부 구현예에서, 클러스터 모듈(116)은 본 명세서에 기재된 기법을 기초로 3개의 시계열을 그룹화하여 시계열 클러스터(302)를 형성할 수 있다. 일부 구현예에서, 더 적거나 더 많은 개수의 시계열이 시계열 클러스터(302)에 포함된다. 예를 들어, 시계열 클러스터(302)는 100개의 서로 다른 시계열을 포함할 수 있고, 각각의 시계열이 디스플레이된다. 일부 구현예에서, 사용자는 디스플레이될 시계열 클러스터(302)의 시계열의 서브세트를 선택할 수 있다. 일부 구현예에서, 사용자가 서브세트로서 디스플레이될 시계열의 개수를 선택한 후, 클러스터 모듈(116)은 시계열 클러스터(302)로부터 랜덤으로 디스플레이될 시계열의 개수를 선택한다. 일부 구현예에서, 하나 이상의 추가 시계열 클러스터가 동시에 디스플레이됨으로써, 사용자가 서로 다른 클러스터 간 비교 및 각각의 클러스터 내 서로 다른 시계열 간 비교를 할 수 있다.
복수의 시계열을 그룹화하여 클러스터 형성하기
일부 구현예에서, 클러스터 모듈(116)은 클러스터링 알고리즘을 이행하여, 시계열 데이터 세트의 클러스터의 개체군을 자동으로 추정 또는 결정할 수 있다. 클러스터의 개체군은 클러스터의 개수, 각각의 클러스터의 중심, 및 각각의 클러스터의 지름에 의해 반영될 수 있다. 클러스터 개체군을 결정한 후, 각각의 시계열이 타 클러스터 중심으로부터의 거리에 비교해서 클러스터 중심과 자신까지 최소의 거리를 갖는 클러스터로 할당된다.
일부 예시에서, 클러스터 개체군을 추정하기 위한 대략적(rough)에서 미세한(fine)까지 3개의 단계로 접근법이 수행된다. 제1 단계에서, 시계열의 서브세트가 완전 시계열 데이터 세트로부터 랜덤하게 샘플링된다. 시계열의 샘플링된 서브세트가 완전 시계열 데이터 세트의 특성을 여전히 반영할 수 있다. 따라서 일부 예시에서, 각각의 클러스터는 샘플링된 세트에서 대표를 가질 수 있으며, 더 큰 클러스터는 샘플링된 세트에서 더 많은 시계열을 가질 수 있다. 제2 단계에서, 변환기 모듈(110)이 (가령, PAA 및 기호 집계 근사(Symbolic Aggregate Approximation)(SAX)에 의해) 샘플링된 서브세트의 원시(raw) 시계열 데이터를 감소된 수의 차원을 갖는 코드 공간으로 변환한다. 코드 공간에서, 서로 가까운 시계열이 동일한 코드 또는 유사한 코드를 가질 것이다. 일부 예시에서, 서로 다른 개수의 시계열과 연관된 코드의 등급화된 리스트가 코드를 그룹화함으로써 획득될 수 있다. 동일한 코드와 연관된 모든 시계열은 서로 "대략적으로" 가깝기 때문에 이들은 시계열의 커뮤니티(community)로 보일 수 있다. 반대로, 서로 다른 코드를 갖는 시계열은 서로 "대략적으로" 멀다. 따라서 시계열의 개체군 중 과반수가 상위 커뮤니티에 속한다.
제3 단계에서, 클러스터 모듈(116)은 상위 커뮤니티로부터 실제 개체군을 추정 또는 결정한다. 우선, 클러스터 모듈(116)은 각각의 커뮤니티를 나타내기 위해 중심 시계열을 추정하고 상위 커뮤니티들 간 거리의 상한 dmax을 추정한다. 그 후 클러스터 모듈(116)은 [0, dmax]의 범위에서 거리 임계치의 샘플링된 값의 세트를 이용해 상위 커뮤니티의 이들 중심 시계열을 클러스터링한다. 서로 다른 거리 임계치에 의해 획득된 클러스터의 품질, 가령, 클러스터의 개수 및 클러스터의 내부 품질을 체크함으로써, 클러스터 모듈(116)은 클러스터링 결과의 최상 품질과 연관된 거리 임계치의 범위뿐 아니라 그 밖의 다른 클러스터 개체군 정보를 결정할 수 있다. 그 후 상기 클러스터 모듈(116)은 적절한 거리 임계치와 서로 다른 입도 레벨 간 맵핑을 구축할 수 있다.
일부 구현예에서, 알고리즘을 빠르고 확장 가능하게 만들기 위해, 서로 다른 데이터 감소율을 갖는 2개의 특징 공간(feature space)이 구현된다. 따라서 변환기 모듈(110)은 PAA와 SAX 모두를 활용하여 시계열의 대략적인 커뮤니티를 추정할 수 있다. 데이터 감소를 위해 PAA를 적용하기만 함으로써 최종 클러스터링이 이행되며, 이는 허용 가능한 정확도를 지키면서, 원시 시계열 공간에 대해 작업하는 것보다 훨씬 빠를 수 있다. 일부 구현예에서, 클러스터 모듈(116)은 LSH를 이행하여 각각의 시계열을 자신의 가장 가까운 시계열 클러스터에 할당하는 프로세스를 가속시킬 수 있다. LSH를 이용하여, 하나의 시계열과 시계열 클러스터의 모든 중심 간의 거리를 계산하는 것이 불필요하며, LSH 값에 매칭되는 시계열 클러스터 중심의 작은 부분만 계산할 필요가 있다. 따라서 클러스터링 알고리즘이 더 빠르고 더 효율적으로 구현될 수 있다.
도 4는 일부 구현예에 따르는 클러스터에 복수의 시계열을 할당하는 예시적 프로세스(400)의 흐름도이다. 단계(402)에서, 시계열 데이터 세트(112)가 주어지면, 변환기 모듈(110)이 데이터 변환을 구현한다. 상기 변환기 모듈(110)은 각각의 시계열이 분할될 동일 크기의 세그먼트의 개수인 최적 PAA 파라미터를 결정한다. 최적 PAA 파라미터를 결정하는 것에 응답하여, 변환기 모듈(110)은 PAA를 이용해 원시 시계열 데이터를 특징 벡터 공간으로 변환하여, 특징 벡터 세트(114)를 생성할 수 있다. 단계(404)에서, 클러스터 모듈(116)은 클러스터링 파라미터를 추정한다. 클러스터 모듈(116)은 샘플링된 데이터에서 반복 방식을 이용해, 클러스터링 파라미터, 가령, 클러스터의 개수, 각각의 클러스터의 중심, 및 각각의 입도 레벨에 대한 거리 임계치를 추정할 수 있다. 생성된 특징 벡터 세트(114) 및 단계(404)에서 생성된 중심을 기초로, 단계(406)에서, 클러스터 모듈(116)은 모든 중심에 대해 LSH 테이블(122)을 구축한다.
단계(408)에서, 클러스터 모듈(116)은 LSH 테이블(122)을 기초로 하는 클러스터링을 구현하여, 시계열 클러스터(120)를 생성할 수 있다. 상기 클러스터 모듈(116)은 LSH 테이블(122)을 이용해 매 시계열을 모든 시계열의 중심에 대해 매칭시킨다. 클러스터의 중심이 모든 중심 중에서 한 시계열과 가장 작은 거리를 갖고 상기 거리가 거리 임계치보다 작을 경우, 상기 시계열은 상기 클러스터에 할당될 것이다. 따라서 특정 클러스터가 다른 클러스터의 다른 시계열보다 하나 이상의 면에서 서로 더 유사한 복수의 시계열을 포함할 수 있다. 일부 구현예에서, 시계열 클러스터의 중심이 클러스터 내 모든 시계열의 평균 값을 갖는 시계열이다.
PAA 파라미터의 결정
시계열 데이터 세트가 주어지면, 변환기 모듈(110)은 시계열 데이터 세트(112)를 원시 시계열 데이터에 비교할 때 훨씬 더 낮은 차원을 갖는 특징 공간으로 변환한다. 데이터를 더 작은 차원을 갖는 특징 벡터 세트(114)로 변환하는 것이 계산 비용을 상당히 낮출 수 있다. 일부 구현예에서, PAA를 통해 데이터 감소가 구현된다. PAA를 시계열 데이터 세트(112)에 적용하기 위해, 각각의 시계열을 분할할 세그먼트의 개수가 결정될 수 있다. 세그먼트의 적절한 개수는 서로 다른 데이터 세트에 대해 달라질 수 있다.
PAA는 M(M<<m)개의 동일 크기 세그먼트를 이용해 시계열 T = t1, t2, ..., tm을 분할하고, 세그먼트 내 데이터 점들의 평균 값으로 각각의 세그먼트를 표현한다. 생성된 특징 벡터는
Figure pct00005
로 표현될 수 있으며, 이때,
Figure pct00006
이고, M은 동일 크기 세그먼트의 개수를 나타내며, m은 시계열 내 수치 값의 개수를 나타낸다.
특정 시계열 데이터 세트에 대한 M의 최적 값이 요인들, 가령, 희망 데이터 감소율(data reduction rate) 및 데이터 감소 오차(data reduction error)에 따라 달라진다. 작은 M일수록 큰 데이터 감소율 및 큰 데이터 감소 오차를 야기할 것이다. 이와 달리, 큰 M일수록 작은 데이터 감소율 및 작은 데이터 감소 오차를 야기할 것이다. 사용자가 M에 대한 값과 관련하여 현명한 결정을 하기 위해, 데이터 감소 오차 및 데이터 감소율을 측정하기 위한 모델이 개발될 수 있다.
일부 구현예에서, PAA가 시계열에 미치는 영향이 주파수 영역에서 분석될 수 있다. PAA는 본래 시계열을 나타내기 위해 세그먼트의 평균 값을 이용하기 때문에 PAA는 저역 통과 필터를 이용하는 것과 유사성을 가진다. 평활화 동작(가령, 각각의 세그먼트의 평균화)에 의해 시계열의 고 주파수 성분이 감소될 것이다. 각각의 세그먼트의 길이(가령, m/M)가 저역 통과 필터의 차단 주파수(차단 주파수)를 결정한다.
일부 구현예에서, 큰 M이 짧은 평활화 윈도(smoothing window)(가령, 세그먼트)에 대응하며, 이는 높은 차단 주파수를 야기한다. 하나의 극값에서, M=m인 경우, 차단 주파수는 원 시계열의 주파수 상한과 동일하고, 데이터 감소 오차와 데이터 감소율 모두 0이다. 또 다른 극값에서, M=1인 경우(가령, 시계열을 나타내기 위해 평균 값을 이용하는 경우), 데이터 감소율은 1-1/m이고 데이터 감소 오차는 시계열에서 데이터의 분산이다. 따라서 M의 적합한 값을 선택하는 것은 데이터 감소 오차와 데이터 감소율 간 상충관계를 포함한다.
일부 구현예에서, M의 값을 결정하기 위해 파워-스펙트럼-기반 알고리즘이 사용되어, 적어도 일부 또는 대부분의 시계열이 PAA를 구현한 후에 비교할 때 작은 평균 제곱 오차를 가짐을 보장할 수 있다. 신호 처리 이론에 따라 PAA는 저역 통과 필터로서 모델링될 수 있기 때문에, PAA 후 변환된 시계열과 원 시계열 간 평균 제곱 오차가 저역 통과 필터에 의해 억제되는 고 주파수(가령, 차단 주파수보다 큰 주파수) 성분의 에너지와 대략 동일하다.
따라서 시계열의 파워 스펙트럼이 계산될 수 있고, 적절한 차단 주파수가 선택되어, 유의미한 퍼센티지(임계치 β보다 큰 비)의 시계열에 대해, 저 주파수(차단 주파수보다 작은 주파수) 성분이 원시, 원 시계열의 에너지의 상당한 퍼센티지(임계치
Figure pct00007
보다 큰 비)를 보유할 것이다. 그 후 차단 주파수에 대응하는 M의 값이 계산될 수 있다. 이 절차는 이하에서 더 상세히 기술된다.
우선, 변환기 모듈(110)은 파워 스펙트럼 분석을 기초로 각각의 시계열에 대한 차단 주파수를 결정한다. 시계열 T={ti), i=1, ..., m에 대해, 변환기 모듈(110)은 이산 푸리에 변환(DFT)을 이용해 시계열을 서로 다른 주파수를 갖는 복합 사인 파(complex sine wave)의 세트로 분해할 수 있다. 상기 DFT 변환은:
Figure pct00008
이며, 이때, Xk는 원 시계열에서 주파수
Figure pct00009
를 갖는 성분의 계수를 나타내며 k는 주파수 영역 상에서의 데이터-계열의 점 인덱스를 나타낸다. 주파수
Figure pct00010
를 갖는 성분의 에너지는 ∥Xk2이다. 그 후, 변환기 모듈(110)은 다음의 공식을 만족시키는 최소 값을 갖는 차단 주파수 ko를 결정한다:
Figure pct00011
유지되는 에너지의 비(k0 미만의 주파수를 갖는 성분의 에너지)가
Figure pct00012
이상이다. 즉, 원 시계열 T에서 저주파수 시계열 T(가령, k0 이하의 주파수를 갖는 성분만으로 구성된 시계열)로의 손실된 에너지(가령, 평균 제곱 오차)의 비가 (1-
Figure pct00013
) 이하이다. 저주파수 시계열이 원 시계열의 만족스러운 근사를 가짐을 보장하는
Figure pct00014
에 대한 값을 이용해, 변환기 모듈(110)은 공식 (1)에 따라 차단 주파수 k0를 계산할 수 있다.
그 후 변환기 모듈(110)은 시계열의 차단 주파수를 모으고, 이들을 오름 차순으로 배열하며, 차단 주파수의 β-백분위수를 최종 차단 주파수(
Figure pct00015
)로 선택한다. 일부 구현예에서,
Figure pct00016
는 저주파수(가령, ≤
Figure pct00017
) 성분에서 시계열의 β 퍼센티지가 에너지의
Figure pct00018
퍼센티지 이상을 유지함을 보장하도록 선택된다.
일부 구현예에 따르면, 변환기 모듈(110)이 세그먼트의 개수 M을
Figure pct00019
로서 결정한다. 신호 처리에서 샘플링 이론에 따르면, 가장 높은 주파수가
Figure pct00020
인 저주파수 계열에 대해, 상기 계열은 샘플링률
Figure pct00021
로 샘플링되는 데이터로부터 재구성될 수 있다. 저주파수 계열이 원 시계열의 우수한 근사이기 때문에, 동일한 샘플링률
Figure pct00022
가 사용되어 원 시계열 T를 샘플링할 수 있다. 따라서 T는
Figure pct00023
개의 세그먼트들로 나뉜다. 마지막으로 변환기 모듈(110)은 각각의 세그먼트를 나타내도록 평균 값을 사용한다.
클러스터 개체군의 결정
PAA를 이용해 시계열 데이터 세트(112)를 특징 공간으로 변환한 후, 클러스터 모듈(116)은 클러스터 개체군, 가령, 클러스터의 개수, 각각의 클러스터의 중심, 및 클러스터의 지름을 결정 또는 추정한다. 우선, 클러스터 모듈(116)은 전체 시계열 데이터 세트(112)로부터 시계열의 서브세트를 랜덤하게 샘플링한다. 샘플링된 세트의 개체군이 전체 데이터 세트의 총 개체군과 유사할 것이다. 실세계에서의 데이터 세트가 낮은 내재적 차원수를 갖는 것이 일반적이기 때문에, 클러스터 모듈(116)은 전체 데이터 세트의 개체군과 유사한 적절한 샘플 수를 결정할 수 있다. 일부 예시에서, 사용자는 클러스터의 수가 2 내지 100일 때 시계열 데이터 세트의 클러스터링 결과에 만족할 수 있다. 덧붙여, 피봇을 구현할 때, 사용자는 더 적은 수의 그룹(가령, 2 내지 100 그룹)을 관찰하기 원할 수 있다. 일부 구현예에서, 클러스터 모듈(116)은 약 10,000의 샘플 수를 선택한다. 또 다른 구현예에서, 더 적거나 더 많은 개수의 샘플이 클러스터 모듈(116)에 의해 선택될 수 있다. 전체 데이터 세트 D로부터 랜덤하게 샘플링된 시계열 데이터 세트는 Dsam = {Ti}로 나타나며, i = 1, ..., N0이다.
일부 구현예에서, 클러스터 개체군을 결정하거나 클러스터 개체군의 대략적인 추정을 얻기 위해, 클러스터 모듈(116)은 SAX를 이용해 시계열 데이터 세트에 대한 기호적 표현(symbolic representation)을 획득할 수 있다. 시계열 분석을 위해 SAX를 구현함으로써, 클러스터 모듈(116)은 처리될 데이터의 양을 감소시킨다. SAX를 구현함으로써, PAA에 의해 획득된 특징 벡터가 기호 시퀀스(symbol sequence)로 더 이산화된다. 앞서 언급된 바와 같이, PAA에 의해 m개의 수치 값을 갖는 시계열 T가 M개의 수치 값
Figure pct00024
을 갖는 벡터에 맵핑될 수 있다. 상기 벡터는 SAX에 의해 M개의 수치 값을 M개의 기호로 인코딩함으로써 M개의 기호를 갖는 새 벡터 S=s1, ..., sM로 추가로 변환될 수 있으며, 이때 si
Figure pct00025
에 맵핑된다. 일부 예시에서, 기호 공간의 기수(cardinality)가 비교적 작다(가령, 2 내지 10). 일부 구현예에서, 2 또는 3의 기수가 충분하다. 일부 구현예에서, 기호 공간의 기수가 card인 경우, 가능한 값의 전체 범위가 card개의 세그먼트로 나뉠 것이다. 수치 값이 상기 값이 속하는 세그먼트의 인덱스를 기초로 card개의 기호 중 하나로 인코딩될 것이다.
일부 구현예에서, 각각의 시계열이 상위 차원 공간에서 하나의 점로서 간주될 수 있다. SAX가 사용되어 공간을 일련의 서브-영역으로 분할(partition)하고 각각의 서브-영역 내 데이터 점의 개수를 고려함으로써 대략의 데이터 분포를 획득할 수 있다. 따라서 대략의 데이터 분포가 각각의 시계열의 샘플링을 추가로 안내(guide)할 수 있다.
Dsam 내 시계열의 코드 벡터를 단순히 그룹화함으로써, 클러스터 모듈(116)은
Figure pct00026
를 획득하고, 여기서 Ci는 단일 기호 벡터 Si에 맵핑되는 모든 시계열의 그룹이다. Ci 내 시계열의 개수는 Freq(Ci)로 지시되며, 다음의 수학식을 만족시킨다:
Figure pct00027
Figure pct00028
여기서,
Figure pct00029
은 Dsam 내 시계열의 개수를 지시한다. Dsam 내에 cl개의 대략적인 개체군의 시계열이 존재하며, C1은 동일 코드 벡터에 맵핑되며 서로 전부 유사한 가장 많은 수의 시계열을 갖는 제1 커뮤니티이다.
{Ci}, i=1, ..., cl에서 비주류(가령, 롱-테일(long-tail) 그룹(가령,
Figure pct00030
)를 제거하기 위해, 꼬리 잘라내기 샘플링(tail-cutting sampling) 기법이 사용될 수 있다. 상기 꼬리 잘라내기 샘플링 기법은 비주류 그룹을 제거하지만, 또한 콜모고로프-스미르노프(Kolmogorov-Smirnov) 테스트를 이용함으로써 신뢰 수준
Figure pct00031
을 갖는 {Ci}의 전체 분포도를 보존한다. 구체적인 단계가 이하에서 설명된다. 우선, 신뢰 수준
Figure pct00032
이 (0과 1 사이의 실수 값으로) 설정되고, 정수 T(꼬리 인덱스)가 식별되어, 그룹
Figure pct00033
이 신뢰 수준
Figure pct00034
를 갖는
Figure pct00035
를 나타낼 수 있도록 한다. 일부 구현예에서, 상기의 단계들이 다음의 의사코드에 따라 수행될 수 있다:
절차 EstimateTailIndex
Input:
대략적 개체군 {Ci}, i=1, ..., cl
i≤cl-1일 때
Figure pct00036
;
Figure pct00037
: 신뢰 수준;
Figure pct00038
:
Figure pct00039
를 기초로 하는 콜모고로프 계수;
Figure pct00040
Output:
T
Begin
Set T=1
For i=1, ..., cl
Figure pct00041
Figure pct00042
Figure pct00043
Endfor
End
일부 구현예에서, 이 알고리즘의 시간 복잡도가 대략 O(cl)이다. 일부 구현예에서, 이진 탐색이 사용되어 알고리즘의 속도를 대략 O(log(cl)의 시간 복잡도까지 올릴 수 있다.
일부 구현예에서, DBSCAN(또는 그 밖의 다른 적합한 기법)과 유사한 밀도-기반 클러스터링 기법이 샘플링된 시계열 세트 TS에 적용된다. TS는
Figure pct00044
내 시계열 세트로부터 획득되며, 여기서 T는 상기 절차 EstimateTaillndex에 의해 추정되고,
Figure pct00045
는 대응하는
Figure pct00046
(원 시계열)의 PAA 후의 시계열이다. 랜덤 샘플링률 r에 의해 Ci 내 시계열의 일부분이 TS로 더해져서, 더 대표성이 뛰어난 시계열 세트 TS를 획득할 수 있다(이는 전체 시계열 세트를 단순히 랜덤하게 샘플링하는 것보다 훨씬 더 뛰어날 수 있다). 이 단계의 효율을 개선하기 위해, R*-트리가 적용되어 각각의 시계열에 대한 이웃 정보를 인덱싱할 수 있다. 일부 구현예에서, 전체 시간 복잡도가 대략 O(NlogN)이다. 이 단계는 시계열들을 몇 개의 클러스터로 그룹화한다, G = {g}.
따라서 일부 구현예에서, 밀도-기반 클러스터링을 샘플링된 시계열 세트에 적용함으로써 클러스터를 식별하는 것은 몇 가지 단계를 포함할 수 있다. 적절하고 다양한 밀도를 추정하는 제1 단계는 매우 중요한 단계일 수 있다. 모델-기반 밀도 추정 알고리즘이라는 명칭의 알고리즘이 k-dis 곡선을 기초로 복수의 밀도를 빠르고 효과적으로 식별한다. 본 명세서에서 사용될 때, k-dis는 한 시계열과 이의 k번째 최근접 시계열 간의 거리를 의미한다. k-dis 곡선은 다음과 같이 획득된다: 각각의 점(높은 차원 공간으로 표현되는 시계열)에 대해, 이의 k번째 최근접 점이 획득된다. 그 후 대응하는 거리가 기록된다. 모든 점에 대한 이러한 거리가 모아진다. 점들은 거리에 따라 정렬되고, 그 후 가장 큰 거리에서 가장 작은 거리 순으로 나열된다. 이러한 점들의 배열이 k-dis 곡선이다. 이 곡선 내 변곡점이 서로 다른 밀도를 갖는 특징 공간 내 서로 다른 영역이 있음을 나타낸다. k-dis 곡선 내 변곡점을 식별함으로써, 특징 공간 내 다중 밀도가 추정될 수 있다. 변곡점은 k-dis를 복수의 세그먼트로 분리하며, 각각의 세그먼트는 하나씩의 모델에 대해 우수하게 적합(fit)될 수 있는데, 가령, 기울기와 오프셋을 갖는 선을 가질 수 있다. 변곡점의 최적 선택이 가장 작은 적합 오차(fitting error)를 갖고 서로 다른 세그먼트 내 모델들 간 가장 큰 차이를 갖는 모델이 획득되게 할 수 있다.
본 발명의 알고리즘은 다음과 같이 변곡점을 식별한다: 하나의 점이 변곡점인 경우, 각각 좌측 점과 우측 점에 대해 모델이 추정된다. 그 후 두 모델의 유사도가 측정된다. 각각의 점에 대해, 대응하는 유사도 점수가 획득된다. 그 후 모든 점들 간 가장 낮은 값이 획득된다. 가장 낮은 값이 주어진 임계치(1에 매우 가까울 수 있으며, 여기서는 0.99)보다 작은 경우, 이 점이 변곡점이다. 이러한 검사가 어떠한 변곡점도 더는 식별되지 않을 때까지 곡선의 우측 부분에서 재귀적으로 수행된다. k-dist 곡선의 좌측부가 이상 점임을 나타내는 가장 높은 k-dist 값을 갖는 데이터 점이기 때문에, 좌측부에서는 다시 변곡점을 식별할 필요가 없다. 예시적 구현예에서, 모델은 선형 모델이고 두 모델들의 유사도 메트릭이 기울기의 차이이다. 그러나 임의의 적합한 유사도 메트릭을 갖는 임의의 적합한 모델이 알고리즘과 함께 적용될 수 있다(가령, 가우시안 모델).
일부 구현예에서, 적절한 밀도-거리 및 최소-점을 추정하기 위해 k-분포 곡선(k-distribution curve)이 식별된다. 그 후 (밀도-거리 및 최소-점으로부터 얻어진) 특정 기준을 만족시키는 코어-점이 모델-기반 밀도 추정 알고리즘을 기초로 결정된다. 그 후 그래프로부터 연결된 구성요소들이 식별될 수 있다. 특히, 클러스터링 절차는 최고 밀도 값에서 최저 밀도 값으로 검사하여, 가장 치밀한 영역이 우선 식별될 수 있도록 함으로써 이뤄진다. 그 후 덜 치밀한 영역이 식별되며, 이런 방식이 계속 진행될 수 있다. 이러한 절차의 이점은 더 치밀한 클러스터가 덜 치밀한 클러스터 내에 포함되어 있을 때조차 2개의 서로 다른 클러스터가 고립될 수 있다는 것이다. 그 후, 그래프에서 연결된 구성요소들이 식별될 수 있다. R*-트리 및 그 밖의 다른 일부 파생된 데이터 구조가 각각의 점의 이웃 정보를 인덱싱하기 위해 사용될 수 있고, 이로 인해, 앞서 언급된 바와 같이 전체 복잡도가 대략 O(NlogN)가 될 수 있다.
LSH 기반 클러스터링
그 후, 경계-코어-점이 식별되고, 좌측 점(샘플링 후 선택되지 않은 점)이 각각의 클러스터에 할당된다. 일부 구현예에서, 경계-코어-점이 다음과 같이 정의된다. 각각의 코어-점에 대해, 이의 연결된 점들 모두가 코어-점인 경우, 이는 내부-코어-점(intra-core-point)이며, 그렇지 않은 경우, 경계-코어-점이다. 각각의 새 점(클러스터 ID에 할당될 필요가 있는 점)에 대해, 가장 가까운 경계-코어-점이 식별되고, (상기 경계-코어-점의) 대응하는 클러스터 id가 상기 새 점에 할당된다. 이 단계의 속도를 높이기 위해, LSH 또는 그 밖의 다른 적합한 기법이 데이터 세트 내 각각의 시계열을 폐쇄 경계-코어-점에 할당하도록 사용된다. PAA 벡터
Figure pct00047
를 갖는 각각의 시계열 T에 대해, LSH가 확률 1-δ를 갖고
Figure pct00048
Figure pct00049
를 반환할 수 있으며, 여기서 δ는 신뢰 수준 상수이고, 가령, δ = 0.05이다. 일부 구현예에서, 클러스터 모듈(116)은 해쉬 값(hash value)에 적어도 부분적으로 기초하여 각각의 시계열을 복수의 경계-코어-점 중 하나에게 할당함으로써 복수의 클러스터를 생성한다. 일부 구현예에서, 클러스터 모듈(116)은 다음의 의사코드에 따라서 데이터 세트 D 내 시계열을 경계-코어-점의 r개의 세트(각각의 세트가 하나의 특정 클러스터의 경계를 나타냄)로 할당한다:
절차 AssignTimeSeries
Input: 시계열 데이터 세트 D; 경계-코어-점의 r개의 세트의 PAA 벡터
Figure pct00050
; 거리 임계치 d; 신뢰 수준 δ
Output: 클러스터
Figure pct00051
Begin
δ 및 LSH 이론을 기반으로 L 결정, L은 LSH 테이블의 개수
// 해시-테이블 빌드
For
Figure pct00052
의 각각의
Figure pct00053
Figure pct00054
, hj,m은 1-안정 LSH 함수 군으로부터 랜덤 선택됨, j=1, ..., L
End for
Set
Figure pct00055
For 각각의
Figure pct00056
Figure pct00057
Figure pct00058
에서 서브세트
Figure pct00059
불러오기, 이때,
Figure pct00060
Figure pct00061
가 적어도 하나의 해시 함수에 대해 매칭됨.
Figure pct00062
에서
Figure pct00063
식별, 이때
Figure pct00064
Figure pct00065
,
Figure pct00066
,
Figure pct00067
.
Figure pct00068
End for
End.
한편, 특이적 시계열이 또한 제거될 수 있다. 각각의 그룹의 시계열은
Figure pct00069
Figure pct00070
로 표시되는 단일 기호 벡터에 맵핑될 수 있으며, 여기서
Figure pct00071
는 클러스터 g에 속하며 단일 기호 벡터 Si에 맵핑되는 모든 시계열의 그룹이다. 일부 구현예에서, 하나의 시계열에서 또 다른 시계열로 연속적인 이동이 존재할 수 있기 때문에(이들이 함께 클러스터링되는 이유이다) 동일 클러스터 g에 위치하는 일부 시계열들이 상당히 상이한 거리를 가질 수 있다는 "롱 프렌치 브레드(long French bread)" 우려를 고려하여 각각의 클러스터 g는 몇 개의 서브 그룹으로 분할된다. 이들 시계열은 멀리 분리되어 최종 사용자를 위한 더 우수한 시각화가 얻어질 수 있다. 구체적인 단계가 이하에서 설명된다(다음 단계는 입력:
Figure pct00072
을 가지며, 이때,
Figure pct00073
는 클러스터 g에 속하며 단일 기호 벡터 Si에 맵핑되는 모든 시계열의 그룹이다).
우선, 클러스터 모듈(116)은 Ci에 대해 중심 PAA 벡터
Figure pct00074
를 다음과 같이 정의한다:
Figure pct00075
여기서, 하나의 세그먼트의 중심
Figure pct00076
의 PAA 값은
Figure pct00077
내 모든 시계열의 동일 세그먼트의 PAA 값들의 중앙 값과 동일하다.
거리 임계치 d가 주어지면, 하나의 서브-그룹에서 임의의 2개의 서로 다른 시계열의 상계가 d를 초과할 수 없도록 Dg 내 시계열이 몇 개의 서브-그룹으로 분할될 수 있다. 이러한 제약조건(속성 "유의미(meaningful)"이라고 지칭) 하에서, 서브-그룹의 전체 개수가 최소화될 수 있으며(최소화는 "컴팩트(compact)" 덮개(covering)의 속성을 지칭한다), 이는 집합-덮개(set-covering)의 최적화 문제라고 지칭된다. 이 문제를 해결하기 위해, 다음의 의사코드에서 나타나는 바의 휴리스틱 알고리즘이 식별될 수 있다:
절차 EstimatePopulation
Input:
대략적 개체군
Figure pct00078
Figure pct00079
일 때
Figure pct00080
; 거리 임계치 d
Output:
서브-그룹
Figure pct00081
Begin
Figure pct00082
Figure pct00083
Figure pct00084
Figure pct00085
내 모든
Figure pct00086
Figure pct00087
를 만족하는 g에 할당
Figure pct00088
Figure pct00089
Figure pct00090
내 가장 큰 그룹이도록 i를 업데이트
End While
End
삼각 부등식 관계 및 g 내 제1 중심과 g 내 임의의 중심 간 거리가 d/2보다 작음을 기초로, 상기의 의사코드에 의해 획득되는 개체군 G는 다음의 속성을 가진다: G의 동일 그룹 g 내 임의의 2개의 중심 간 거리는 d보다 작음.
서로 다른 데이터 세트가 서로 다른 특성을 갖기 때문에, 데이터 세트에 따라서 적절한 거리 임계치가 변경될 수 있다. 일부 구현예에서, 거리 임계치 후보자들의 세트에서 적절한 거리 임계치를 결정하기 위해 반복 접근법이 사용될 수 있다. 각각의 임계치 후보자에 대해, 클러스터 모듈(116)은 이하에서 기재된 바와 같이 그룹화 결과의 내부 품질을 평가할 수 있다:
우선, 클러스터 모듈(116)이 다음과 같이 최대 가능한 거리 임계치를 결정 또는 추정한다:
Figure pct00091
여기서, dmax는 C1의 중심 시계열과 타 커뮤니티의 중심 시계열 간 최대 거리이다. 일부 구현예에서, 적절한 거리 임계치가 dmax보다 작을 수 있다. 일부 구현예에서, 클러스터 모듈(116)은 다음의 의사코드에 따라서 입도 레벨과 이에 대응하는 거리 임계치 간 맵핑을 결정한다:
절차 EstimateDistanceThreshold
Input:
대략적 개체군 {Ci}, i=1,..., cl,
Figure pct00092
일 때
Figure pct00093
, l: 클러스터링 입도 레벨의 개수; dmax, Qmin: 품질 임계치의 최소 값
Output:
d1, ..., dl
Begin
dstep = dmax/k, k는 상수 정수
For i = 1, ..., k
d(i)=dstep*i
G=EstimatePopulation({Ci}, d(i))
Q(i)=CalQualityMetric(G)
Endfor
Q(ij)≥Qmin이도록 하는 최소 imin 및 최대 imax 찾기
for any imin≤j≤imax
Set
Figure pct00094
Figure pct00095
End
상기의 의사코드에서, k는 [0, dmax]의 범위에서 샘플링되는 서로 다른 임계 값들의 개수이다. 클러스터 모듈(116)은 각각의 거리 임계치에 대해 EstimatePopulation 절차를 실행하고 추정된 개체군의 품질을 평가한다. CalQualityMetric는 개체군 G의 품질을 추정하는 절차이다. 일부 구현예에서, 개체군 G의 품질을 결정하기 위한 메트릭이 클러스터의 개수이다. 따라서 클러스터의 개수가 특정 범위 내에 있는 경우(가령, 하한 임계 값 및 상한 임계 값 내에 있는 경우) 품질 점수가 높을 것이다. 일부 구현예에서, 클러스터의 개수가 하한 임계 값과 상한 임계 값 내에 있을 경우 클러스터 모듈(116)은 개체군을 선택 또는 식별한다. 일부 구현예에서, 사용자가 하한 임계 값 및 상한 임계 값을 선택한다. 일부 예시에서, 클러스터 모듈(116)은 상기의 메트릭을 대신하여, 또는 추가하여, 하나 이상의 추가 유형의 메트릭을 구현할 수 있다. 예를 들어, 클러스터 모듈(116)은 "실루엣(silhouette)"을 구현하여, 개체군 결과의 품질을 평가할 수 있다.
입도 레벨과 거리 임계 값 간의 맵핑이 주어지면, 클러스터 모듈(116)은 시드(seed)의 개수와 각각의 입도 레벨에 대한 시드 시계열을 결정할 수 있다. 각각의 입도 레벨에 대해, 절차 EstimatePopulation에 의해 개체군 G가 획득될 수 있다. G 내 각각의 그룹에 대해, 클러스터 모듈(116)은 G의 시드에 대응하는 모든 시계열을 모으고, 수학식(5)를 이용해 G의 업데이트된 중심을 찾는다.
예시적 프로세스
다음의 흐름도에서, 각각의 블록은 하드웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있는 하나 이상의 동작을 나타낸다. 소프트웨어의 맥락에서, 블록은 하나 이상의 프로세서에 의해 실행될 때 프로세서로 하여금 언급된 동작을 수행하게 하는 컴퓨터 실행가능 명령어를 나타낸다. 일반적으로 컴퓨터 실행가능 명령어는 특정 기능을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 블록이 기술되는 순서는 한정으로 해석되어서는 안 되며, 임의의 개수의 기술된 동작이 임의의 순서로 조합 및/또는 병렬로 조합되어 프로세스를 구현할 수 있다. 본 명세서에서 설명 목적으로 몇 가지 예시가 기재되었지만, 본 발명은 특정 예시에 한정되지 않고 추가 장치, 환경, 적용예 및 설정에 확장될 수 있다. 설명 목적으로 이하의 프로세스는 도 1의 환경(100)을 참조하여 기술되지만, 그 밖의 다른 장치, 시스템, 프레임워크, 및 환경이 이 프로세스를 구현할 수 있다.
도 5는 일부 구현예에 따라 복수의 시계열을 그룹화하는 예시적 프로세스(500)의 흐름도이다.
(502)에서, 클러스터 모듈(116)은 복수의 시계열을 모은다. 일부 구현예에서, 복수의 시계열의 각각의 시계열은 수치 값들의 계열을 포함한다.
(504)에서, 클러스터 모듈(116)이 처리할 또 다른 시계열이 있는지 결정한다.
(506)에서, 처리할 또 다른 시계열이 존재하는 경우, 변환기 모듈(110)은 상기 시계열에 대응하는 특징 벡터를 생성한다. 그 후 상기 프로세스는 블록(504)으로 복귀하며, 여기서 처리할 또 다른 시계열이 없는 경우, 프로세스는 블록(508)으로 진행한다.
(508)에서, 클러스터 모듈(116)은 꼬리 잘라내기 샘플링 기법을 적용하여, 앞서 언급된 바와 같이, 신뢰 수준
Figure pct00096
을 갖는 {Ci}의 원 분포를 보존하면서 더 적은 시계열(샘플링된 시계열)을 획득할 수 있다.
(510)에서, 클러스터 모듈(116)은 밀도 기반 클러스터링을 샘플링된 시계열에 적용하여 각각의 클러스터를 식별할 수 있다.
(512)에서, 클러스터 모듈(116)은 복수의 특징 벡터의 서브세트를 기초로, 클러스터링을 위해 사용되는 입도 레벨과 거리 임계치 간에 맵핑한다.
(514)에서, 클러스터 모듈(116)은 블록(512)의 맵핑을 기초로 입도 레벨들 중 하나의 입도 레벨에 대응하는 복수의 시드(seed)를 생성한다. 일부 구현예에서, 입도 레벨들 중 하나의 입도 레벨은 사용자에 의해 선택된다.
(516)에서, 클러스터 모듈(116)은 복수의 시계열의 각각의 시계열을 복수의 시드 중 하나씩의 시드에 할당한다. 일부 예시에서, 상기 클러스터 모듈(116)은 위치 민감 해싱(가령, 앞서 기재된 LSH 테이블)을 기초로 복수의 시계열의 각각의 시계열을 복수의 시드 중 하나씩의 시드에 할당한다.
(518)에서, 클러스터 모듈(116)은 디스플레이가 복수의 클러스터 중 적어도 하나의 클러스터의 그래픽 표현을 표시하도록 한다. 예를 들어, 디스플레이는 복수의 시계열을 포함하는 하나 이상의 클러스터를 표시할 수 있다. 일부 구현예에서, 앞서 언급된 바와 같이, 복수의 클러스터 중 적어도 하나의 클러스터의 그래픽 표현은 특정 시간 동안 복수의 컴퓨팅 장치 중 적어도 하나의 컴퓨팅 장치의 자원 소비율을 나타낸다.
예시적 컴퓨팅 시스템
도 6은 소거 코딩된 저장(erasure coded storage)을 구현할 수 있는 블록도이다. 예를 들어, 컴퓨팅 장치(600)는, 도 1에 기술된 바와 같은, 서버, 가령, 서버(104) 중 하나, 또는 클라이언트(124)일 수 있다. 그러나 기법 및 메커니즘이 또 다른 컴퓨팅 장치, 시스템, 및 환경에서 구현될 수 있음이 자명할 것이다. 도 6에 도시된 컴퓨팅 장치(600)는 컴퓨팅 장치의 예시에 불과하며 컴퓨터 및 네트워크 아키텍처의 용도 또는 기능의 범위에 대한 어떠한 제한도 암시하려는 것이 아니다.
도시된 예시에서, 컴퓨팅 장치(600)는 하나 이상의 프로세서(106), 변환기 모듈(110), 클러스터 모듈(116), 시계열 데이터 세트(112), 시계열 클러스터(120), LSH 테이블(122), 특징 벡터 세트(116), 및 특징 벡터 세트의 서브세트(118)를 포함하는 하나 이상의 컴퓨터 판독가능 매체(108), 하나 이상의 입력 장치(602), 하나 이상의 출력 장치(604), 저장장치(606) 및 시스템 버스(610) 또는 그 밖의 다른 적합한 연결을 통해 통신 할 수 있는 하나 이상의 통신 연결(608)을 포함한다.
일부 구현예에서, 프로세서(106)는 마이크로프로세싱 유닛(MPU), 중앙 처리 장치(CPU), 또는 종래 기술에 알려진 그 밖의 다른 처리 유닛 또는 구성요소이다. 프로세서(106)는, 그 밖의 다른 능력들 외에도, 컴퓨터 판독가능 매체(108) 또는 그 밖의 다른 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터로 판독 가능하고 프로세서로 액세스 가능한 명령을 인출 및 실행시키도록 구성될 수 있다. 통신 연결(608)에 의해 장치는 그 밖의 다른 컴퓨팅 장치, 가령, 네트워크(108)를 통해 통신할 수 있다. 이들 네트워크는 유선 네트워크뿐 아니라 무선 네트워크를 포함할 수 있다.
본 명세서에서 사용될 때, "컴퓨터 판독가능 매체"는 컴퓨터 저장 매체 및 통신 매체를 포함한다. 컴퓨터 저장 매체는 정보, 가령, 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 그 밖의 다른 데이터를 저장하기 위한 임의의 방법 또는 기법으로 구현된 휘발성 및 비휘발성, 이동식 및 비-이동식 매체를 포함한다. 컴퓨터 저장 매체의 비-제한적 예를 들면, 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM), 전기 소거식 프로그램 가능 ROM(EEPROM), 플래시 메모리 또는 그 밖의 다른 메모리 기법, 컴팩트 디스크 ROM(CD-ROM), 디지털 다목적 디스크(DVD), 또는 그 밖의 다른 광 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 그 밖의 다른 자기 저장 장치, 또는 컴퓨팅 장치에 의해 액세스되기 위한 정보를 저장하도록 사용될 수 있는 그 밖의 다른 임의의 매체가 있다.
이와 달리, 통신 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 그 밖의 다른 데이터를 변조된 데이터 신호, 가령, 반송파로 구현할 수 있다. 본 명세서에서 사용될 때, 컴퓨터 저장 매체는 통신 매체를 포함하지 않는다.
컴퓨터 판독가능 매체(108)는 컴퓨팅 장치(600)가 본 명세서에 기재된 기능을 수행할 수 있게 하는 다양한 모듈 및 기능 구성요소를 포함할 수 있다. 일부 구현예에서, 컴퓨터 판독가능 매체(108)는 복수의 시계열의 그룹화 및 복수의 시계열의 그룹화와 관련된 동작을 수행하기 위한 변환기 모듈(110) 및 클러스터 모듈(116)을 포함할 수 있다. 상기 변환기 모듈(110) 및/또는 클러스터 모듈(116)은 단일 명령 모듈을 포함할 수 있거나 임의의 개수의 명령 모듈로 분할될 수 있는 복수의 프로세서 실행가능 명령어를 포함할 수 있다. 이러한 명령어는 예를 들어 컴퓨팅 장치(100)의 하드웨어 구성요소를 위한 드라이버를 더 포함할 수 있다.
변환기 모듈(110) 및/또는 클러스터 모듈(116)은 컴퓨팅 장치(600) 상에서 전체적으로 또는 부분적으로 구현될 수 있다. 도 6에 컴퓨팅 장치(600)의 컴퓨터 판독가능 매체(108)에 저장되는 것으로 도시되지만, 변환기 모듈(110) 및 클러스터 모듈(116) 또는 이의 일부분은 컴퓨팅 장치(600)에 의해 액세스 가능한 임의의 형태의 컴퓨터 판독가능 매체를 이용해 구현될 수 있다. 일부 구현예에서, 변환기 모듈(110) 및/또는 클러스터 모듈(116)은 또 다른 장치 또는 서버 상에서 부분적으로 구현된다. 덧붙여, 컴퓨터 판독가능 매체(108)는 또 다른 모듈, 가령, 운영 체제, 장치 드라이버, 프로그램 데이터 등뿐 아니라, 클러스터 모듈(116) 및 그 밖의 다른 모듈에 의해 사용되는 데이터(가령, 시계열 데이터 세트(112), 시계열 클러스터(120), LSH 테이블(122), 특징 벡터 세트(116), 특징 벡터 세트의 서브세트(118))를 포함할 수 있다.
컴퓨터 판독가능 매체(108) 또는 그 밖의 다른 기계 판독가능 저장 매체는 본 명세서에 기재된 방법 또는 기능 중 하나 이상을 구현하는 하나 이상의 명령 세트(가령, 소프트웨어)를 저장한다. 명령은 또한, 컴퓨팅 장치(600)에 의해 실행되는 동안 컴퓨터 판독가능 매체(108) 내에 그리고 프로세서(106) 내에 완전히 또는 적어도 부분적으로 위치할 수 있다. 상기 프로그램 코드는 하나 이상의 컴퓨터 판독가능 메모리 장치 또는 그 밖의 다른 컴퓨터 판독가능 저장 장치, 가령, 컴퓨터 판독가능 매체(108)에 저장될 수 있다. 덧붙여, 예시적 장치 구성 및 아키텍처가 기재되었지만, 그 밖의 다른 구현예가 본 명세서에 기재된 구성 및 아키텍처에 한정되지 않는다. 따라서 본 발명은 해당 분야의 통상의 기술자에게 알려져 있거나 자명할 때 그 밖의 다른 구현예까지 확장될 수 있다.
본 명세서에 기재된 예시적 환경, 시스템 및 컴퓨팅 장치가 일부 구현예에 적합한 예시에 불과하며 본 명세서에 기재된 프로세스, 구성요소 및 특징부를 구현할 수 있는 환경, 아키텍처 및 프레임워크의 사용 또는 기능의 범위와 관련해 어떠한 한정도 암시하려는 것이 아니다. 따라서 본 명세서의 구현은 다양한 환경 또는 아키텍처와 함께 동작되며, 범용 또는 특수 용도 컴퓨팅 시스템 또는 프로세싱 능력을 갖는 그 밖의 다른 장치에서 구현될 수 있다. 일반적으로, 도면을 참조하여 기재되는 기능들 중 임의의 기능이 소프트웨어, 하드웨어(가령, 고정 로직 회로) 또는 이들 구현예의 조합을 이용해 구현될 수 있다. 따라서 본 명세서에 기재된 프로세스, 구성요소 및 모듈이 컴퓨터 프로그램 프로덕트에 의해 구현될 수 있다.
덧붙여, 본 개시내용은 기재되고 도면에서 도시되는 다양한 예시적 구현예를 제공한다. 그러나 이 개시내용이 본 명세서에 기재되고 도시된 구현예에 국한되지 않으며, 해당 분야의 통상의 기술자에게 자명한 또는 자명해질 그 밖의 다른 구현예까지 확장될 수 있다. 본 명세서에서, "하나의 예시", "일부 예시", "일부 구현예", 또는 유사한 구문들은 기재된 특정 특징, 구조, 또는 특성이 적어도 하나의 구현예에 포함됨을 의미하고, 본 명세서 내 다양한 위치에서의 이들 구문의 등장이 반드시 동일한 구현예를 지칭하는 것은 아니다.
결론
본 발명이 구조적 특징부 및/또는 방법적 동작에 특정적인 언어로 기재되었지만, 특허청구범위에서 규정되는 본 발명은 앞서 기재된 특정 특징부 또는 동작에 한정되지 않는다. 오히려, 앞서 기재된 특정 특징부 및 동작이 청구항을 구현하는 예시적 형태로 개시된 것이다. 이 개시내용은 개시된 구현예의 모든 임의의 변형 또는 수정을 포함하려는 의도를 가지며 다음의 청구항은 본 명세서에 개시된 특정 구현예에 한정되는 것으로 해석되지 않아야 한다. 대신, 본 명세서의 범위는 이하의 청구항 및 이러한 청구항의 균등물에 의해서 온전히 결정될 것이다.

Claims (10)

  1. 방법으로서,
    복수의 시계열을 모으는 단계 - 상기 복수의 시계열의 각각의 시계열은 수치 값의 계열(a series of numerical value)을 포함함 - ,
    복수의 특징 벡터를 생성하는 단계 - 상기 복수의 특징 벡터의 각각의 특징 벡터는 상기 복수의 시계열 중 하나씩의 시계열에 대응함 - ,
    상기 복수의 특징 벡터의 서브세트에 적어도 부분적으로 기초하여 클러스터링을 위한 입도 레벨들과 거리 임계치들 간에 맵핑하는 단계,
    상기 맵핑에 적어도 부분적으로 기초하여 상기 입도 레벨들 중 하나의 입도 레벨에 대응하는 복수의 시드를 생성하는 단계, 및
    상기 복수의 시계열의 각각의 시계열을 복수의 시드 중 하나씩의 시드에 할당하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 복수의 특징 벡터를 생성하는 단계는
    상기 복수의 시계열의 각각의 시계열을 분할하기 위한 수를 결정하는 단계,
    상기 복수의 시계열의 각각의 시계열을 상기 수만큼 분할하여 각각의 시계열에 대한 복수의 세그먼트를 형성하는 단계 - 상기 복수의 세그먼트의 각각의 세그먼트는 대략적으로 동일한 개수의 수치 값을 포함함 - , 및
    상기 복수의 세그먼트의 각각의 세그먼트 내 수치 값들을 평균 내는 단계를 포함하는
    방법.
  3. 제2항에 있어서,
    복수의 시계열의 각각의 시계열을 분할하기 위한 수를 결정하는 단계는
    복수의 시계열의 각각의 시계열의 파워 스펙트럼을 계산하는 단계,
    복수의 시계열 중 적어도 제1 주파수 퍼센티지에 대해, 차단 주파수 미만의 주파수 성분의 에너지가 적어도 상기 복수의 시계열의 에너지의 제2 임계 퍼센티지이도록 차단 주파수를 선택하는 단계, 및
    상기 차단 주파수에 적어도 부분적으로 기초하여 상기 수를 결정하는 단계를 포함하는
    방법.
  4. 제3항에 있어서,
    상기 차단 주파수에 적어도 부분적으로 기초하여 상기 수를 결정하는 단계는 상기 차단 주파수에 2를 곱하는 단계를 포함하는
    방법.
  5. 제1항에 있어서,
    상기 맵핑에 적어도 부분적으로 기초하여 상기 입도 레벨들 중 하나의 입도 레벨에 대응하는 복수의 시드를 생성하는 단계는
    기호에 대한 수치 값의 맵핑에 적어도 부분적으로 기초하여, 상기 복수의 특징 벡터의 각각의 수치 값을 기호로 인코딩함으로써 상기 복수의 특징 벡터의 서브세트를 변환하는 단계,
    상기 맵핑에 적어도 부분적으로 기초하여 입도 레벨들 중 하나에 대응하는 거리 임계치를 결정하는 단계, 및
    상기 거리 임계치에 적어도 부분적으로 기초하여, 복수의 시드를 생성하는 단계를 포함하는
    방법.
  6. 제1항에 있어서,
    상기 입도 레벨들 중 하나의 입도 레벨은 적어도 부분적으로 사용자 입력에 기초하여 선택되는
    방법.
  7. 제1항에 있어서,
    상기 복수의 특징 벡터의 서브세트는 상기 복수의 특징 벡터로부터 랜덤하게 샘플링되는
    방법.
  8. 제1항에 있어서,
    상기 복수의 시계열의 각각의 시계열을 복수의 시드 중 하나씩의 시드에 할당하는 단계는 위치 민감 해싱(locality sensitive hashing)에 적어도 부분적으로 기초하는
    방법.
  9. 시스템으로서,
    하나 이상의 프로세서,
    복수의 컴퓨터 실행가능 구성요소를 포함하는 메모리
    를 포함하되, 상기 복수의 컴퓨터 실행가능 구성요소는,
    복수의 시계열을 모으며 - 상기 복수의 시계열의 각각의 시계열은 수치 값의 계열을 포함함 - ,
    복수의 특징 벡터를 생성하고 - 상기 복수의 특징 벡터의 각각의 특징 벡터는 상기 복수의 시계열 중 하나씩의 시계열에 대응함 - ,
    복수의 특징 벡터의 적어도 하나의 서브세트에 적어도 부분적으로 기초하여 하나의 입도 레벨에 대응하는 복수의 시드를 생성하며,
    복수의 시계열의 각각의 시계열을 상기 복수의 시드 중 한씩의 시드에 할당
    하기 위한 모듈을 포함하는
    시스템.
  10. 컴퓨터 실행가능 명령어를 저장하는 컴퓨터 판독가능 매체로서,
    상기 명령어는 실행될 때 하나 이상의 프로세서로 하여금
    복수의 컴퓨팅 장치에 대응하는 복수의 시계열을 모으는 동작 - 상기 복수의 시계열의 각각의 시계열은 시간 주기 동안 각각의 컴퓨팅 장치에 의한 자원 소비율을 나타내는 수치 값들의 계열을 포함함 - ,
    상기 복수의 시계열의 각각의 시계열의 파워 스펙트럼에 적어도 부분적으로 기초하여 복수의 특징 벡터를 생성하는 동작 - 상기 복수의 특징 벡터의 각각의 특징 벡터는 상기 복수의 시계열의 각자의 시계열에 대응함 - ,
    밀도-기반 클러스터링을 상기 복수의 특징 벡터의 적어도 일부분에 적용함으로써 클러스터를 식별하는 동작,
    상기 복수의 특징 벡터의 서브세트에 적어도 부분적으로 기초하여 복수의 클러스터의 각각의 클러스터에 대한 입도 레벨들과 거리 임계치들 간에 맵핑하는 동작,
    상기 맵핑에 적어도 부분적으로 기초하여 입도 레벨들 중 하나의 입도 레벨에 대응하는 복수의 시드를 생성하는 동작 - 상기 입도 레벨들 중 하나의 입도 레벨은 사용자 입력에 적어도 부분적으로 기초하여 선택됨 - ,
    복수의 시계열의 각각의 시계열을 해시 값에 적어도 부분적으로 기초하여 복수의 시드 중 하나씩의 시드에 할당하는 동작, 및
    상기 시간 주기 동안 컴퓨팅 장치들 중 적어도 하나의 컴퓨팅 장치의 자원 소비율을 나타내도록 복수의 클러스터 중 적어도 하나의 클러스터의 그래픽 표현을 표시하는 동작
    을 수행하게 하는 컴퓨터 판독가능 매체.
KR1020157035311A 2013-06-14 2013-06-14 시계열의 고속 그룹화 기법 KR102223419B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/077213 WO2014198052A1 (en) 2013-06-14 2013-06-14 Fast grouping of time series

Publications (2)

Publication Number Publication Date
KR20160019897A true KR20160019897A (ko) 2016-02-22
KR102223419B1 KR102223419B1 (ko) 2021-03-04

Family

ID=52021578

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157035311A KR102223419B1 (ko) 2013-06-14 2013-06-14 시계열의 고속 그룹화 기법

Country Status (5)

Country Link
US (1) US10176246B2 (ko)
EP (1) EP3008633A4 (ko)
KR (1) KR102223419B1 (ko)
CN (1) CN105378714B (ko)
WO (1) WO2014198052A1 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2916260A1 (en) * 2014-03-06 2015-09-09 Tata Consultancy Services Limited Time series analytics
US10614094B2 (en) * 2014-04-30 2020-04-07 Micro Focus Llc Visualizing topics with bubbles including pixels
US20150363450A1 (en) * 2014-06-12 2015-12-17 National Chiao Tung University Bayesian sequential partition system in multi-dimensional data space and counting engine thereof
US10110674B2 (en) * 2014-08-11 2018-10-23 Qualcomm Incorporated Method and apparatus for synchronizing data inputs generated at a plurality of frequencies by a plurality of data sources
US11683234B2 (en) * 2015-07-14 2023-06-20 Netflix, Inc. Server outlier detection
US20170109055A1 (en) * 2015-10-15 2017-04-20 Pure Storage, Inc. Capacity planning in a multi-array storage system
US10936600B2 (en) * 2015-10-23 2021-03-02 Oracle International Corporation Sensor time series data: functional segmentation for effective machine learning
US10007786B1 (en) * 2015-11-28 2018-06-26 Symantec Corporation Systems and methods for detecting malware
US9886314B2 (en) * 2016-01-28 2018-02-06 Pure Storage, Inc. Placing workloads in a multi-array system
US10853362B2 (en) * 2016-04-18 2020-12-01 Verizon Media Inc. Optimized full-spectrum loglog-based cardinality estimation
US11068481B2 (en) * 2016-04-18 2021-07-20 Verizon Media Inc. Optimized full-spectrum order statistics-based cardinality estimation
CN107346367B (zh) * 2016-05-04 2020-09-18 阿里巴巴集团控股有限公司 一种业务变量的数值的分段方法及装置
US10778707B1 (en) * 2016-05-12 2020-09-15 Amazon Technologies, Inc. Outlier detection for streaming data using locality sensitive hashing
US10277396B2 (en) * 2016-06-16 2019-04-30 General Electric Company Watermarking for data integrity
US10554514B2 (en) * 2016-10-26 2020-02-04 Vmware, Inc. Detecting and remediating root causes of performance issues
US10447713B2 (en) 2017-04-26 2019-10-15 At&T Intellectual Property I, L.P. Internet traffic classification via time-frequency analysis
US10719521B2 (en) * 2017-09-18 2020-07-21 Google Llc Evaluating models that rely on aggregate historical data
CN108241745B (zh) * 2018-01-08 2020-04-28 阿里巴巴集团控股有限公司 样本集的处理方法及装置、样本的查询方法及装置
US10650559B2 (en) * 2018-04-30 2020-05-12 Robert Bosch Gmbh Methods and systems for simplified graphical depictions of bipartite graphs
US10635984B2 (en) * 2018-07-23 2020-04-28 Falkonry Inc. System and method for the assessment of condition in complex operational systems based on multi-level pattern recognition
CN109582741B (zh) * 2018-11-15 2023-09-05 创新先进技术有限公司 特征数据处理方法和装置
EP3906468A4 (en) * 2018-12-31 2022-09-21 Kobai, Inc. BUSINESS INTELLIGENCE SYSTEM AND PROCESS
US10917302B2 (en) 2019-06-11 2021-02-09 Cisco Technology, Inc. Learning robust and accurate rules for device classification from clusters of devices
CN110728526B (zh) * 2019-08-19 2024-04-02 创新先进技术有限公司 地址识别方法、设备以及计算机可读介质
CN111639263B (zh) * 2020-06-03 2023-11-24 小红书科技有限公司 笔记推荐方法、装置及系统
CN112001234B (zh) * 2020-07-13 2023-07-21 广东石油化工学院 一种基于仿射不变度量的旋转机械采样数据聚类方法
CN112381137B (zh) * 2020-11-10 2024-06-07 重庆大学 新能源电力系统可靠性评估方法、装置、设备及存储介质
US11928159B2 (en) * 2021-03-16 2024-03-12 Google Llc Systems and methods for clustering with list-decodable covers
US11645252B2 (en) 2021-07-23 2023-05-09 Bank Of America Corporation System and method for efficiently validating time-series data using a hash-based representation of the data
US11640389B2 (en) 2021-07-23 2023-05-02 Bank Of America Corporation Hash-based identification of data corruption issues in time-series data
US11656927B1 (en) 2021-12-03 2023-05-23 International Business Machines Corporation Localizing faults in multi-variate time series data
US11922126B1 (en) * 2023-07-28 2024-03-05 Intuit Inc. Use of semantic confidence metrics for uncertainty estimation in large language models

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130006455A (ko) * 2010-02-16 2013-01-16 어플라이드 머티어리얼스, 인코포레이티드 적응성 예측 알고리즘들을 사용하고 가상 계측을 위해 적응성 예측 알고리즘들을 사용할 시기를 결정하기 위한 방법들 및 장치들

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496655B2 (en) * 2002-05-01 2009-02-24 Satyam Computer Services Limited Of Mayfair Centre System and method for static and dynamic load analyses of communication network
US6937961B2 (en) 2002-09-26 2005-08-30 Freescale Semiconductor, Inc. Performance monitor and method therefor
US7103222B2 (en) 2002-11-01 2006-09-05 Mitsubishi Electric Research Laboratories, Inc. Pattern discovery in multi-dimensional time series using multi-resolution matching
JP4398777B2 (ja) * 2004-04-28 2010-01-13 株式会社東芝 時系列データ分析装置および方法
JP4772378B2 (ja) * 2005-05-26 2011-09-14 株式会社東芝 Webページから時系列データを生成する方法及び装置
US7809824B2 (en) * 2008-09-29 2010-10-05 Yahoo! Inc. Classification and cluster analysis spam detection and reduction
US8161028B2 (en) * 2008-12-05 2012-04-17 International Business Machines Corporation System and method for adaptive categorization for use with dynamic taxonomies
US8385662B1 (en) * 2009-04-30 2013-02-26 Google Inc. Principal component analysis based seed generation for clustering analysis
JP5284990B2 (ja) 2010-01-08 2013-09-11 インターナショナル・ビジネス・マシーンズ・コーポレーション キーワードの時系列解析のための処理方法、並びにその処理システム及びコンピュータ・プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130006455A (ko) * 2010-02-16 2013-01-16 어플라이드 머티어리얼스, 인코포레이티드 적응성 예측 알고리즘들을 사용하고 가상 계측을 위해 적응성 예측 알고리즘들을 사용할 시기를 결정하기 위한 방법들 및 장치들

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
T. Warren Liao. Clustering of time series data─a survey. Pattern Recognition, 2005.11, Vol.38, No. 11, pp.1857-1874. 1부.* *

Also Published As

Publication number Publication date
CN105378714A (zh) 2016-03-02
US10176246B2 (en) 2019-01-08
KR102223419B1 (ko) 2021-03-04
US20160140208A1 (en) 2016-05-19
EP3008633A4 (en) 2016-06-29
EP3008633A1 (en) 2016-04-20
WO2014198052A1 (en) 2014-12-18
CN105378714B (zh) 2020-06-23

Similar Documents

Publication Publication Date Title
KR102223419B1 (ko) 시계열의 고속 그룹화 기법
Dieker et al. Exact simulation of Brown-Resnick random fields at a finite number of locations
Ishioka An expansion of X-means for automatically determining the optimal number of clusters
CN108415845A (zh) Ab测试系统指标置信区间的计算方法、装置和服务器
CN104391879A (zh) 层次聚类的方法及装置
CN114238329A (zh) 向量相似度计算方法、装置、设备及存储介质
JP2018037009A (ja) クラスタ分析システム、クラスタ分析装置、クラスタ分析方法
CN109636020A (zh) 一种预测目的地地址的方法及系统
CN112800115A (zh) 数据处理方法及数据处理装置
US10585130B2 (en) Noise spectrum analysis for electronic device
CN114610825A (zh) 关联网格集的确认方法、装置、电子设备及存储介质
CN105138527A (zh) 一种数据分类回归方法及装置
CN105653541B (zh) 识别数据元素之间的关联和演变模式的系统和方法
CN116226468B (zh) 基于网格化终端业务数据存储管理方法
Liu et al. A new local density and relative distance based spectrum clustering
CN115905373B (zh) 一种数据查询以及分析方法、装置、设备及存储介质
CN116861373A (zh) 一种查询选择率估算方法、系统、终端设备及存储介质
KR101577249B1 (ko) 보로노이 셀 기반의 서포트 클러스터링 장치 및 방법
Wang et al. A novel trace clustering technique based on constrained trace alignment
CN113850346B (zh) Mec环境下多维属性感知的边缘服务二次聚类方法及系统
CN111209105A (zh) 扩容处理方法、装置、设备及可读存储介质
CN116933119A (zh) 一种基于卷积神经网络的信号数据去除趋势方法
CN107607723A (zh) 一种基于随机投影集成分类的蛋白质间相互作用测定方法
CN112235152B (zh) 流量大小估算方法和装置
CN112750047A (zh) 行为关系信息提取方法及装置、存储介质、电子设备

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant