KR101828151B1 - 클러스터 생성 장치 및 방법 - Google Patents

클러스터 생성 장치 및 방법 Download PDF

Info

Publication number
KR101828151B1
KR101828151B1 KR1020160065317A KR20160065317A KR101828151B1 KR 101828151 B1 KR101828151 B1 KR 101828151B1 KR 1020160065317 A KR1020160065317 A KR 1020160065317A KR 20160065317 A KR20160065317 A KR 20160065317A KR 101828151 B1 KR101828151 B1 KR 101828151B1
Authority
KR
South Korea
Prior art keywords
cluster
initial
data point
data points
clusters
Prior art date
Application number
KR1020160065317A
Other languages
English (en)
Other versions
KR20170072110A (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 KR20170072110A publication Critical patent/KR20170072110A/ko
Application granted granted Critical
Publication of KR101828151B1 publication Critical patent/KR101828151B1/ko

Links

Images

Classifications

    • G06F17/30705
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Genetics & Genomics (AREA)
  • Physiology (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

복수의 데이터 포인트를 클러스터로 데이터 포인트간의 유사성에 기초하여 할당하는 클러스터 생성 장치 및 방법이 제공된다. 클러스터 생성 장치는 할당의 기준이 되는 중심 데이터 포인트 및 할당의 대상이 되는 대상 데이터 포인트를 대응함으로써, 초기 클러스터를 생성하는 초기 클러스터 생성부, 중심 데이터 포인트를 포함하는 중심 집합을 업데이트하는 중심 집합 업데이트부 및 중심 집합에 기초하여 대상 데이터 포인트를 초기 클러스터에 할당함으로써, 결과 클러스터를 생성하는 결과 클러스터 생성부를 포함한다.

Description

클러스터 생성 장치 및 방법{CLUSTER GENERATING APPARATUS AND METHOD}
본 발명은 클러스터 생성 장치 및 방법에 관한 것으로, 보다 구체적으로는 데이터 포인트를 클러스터링함으로써, 클러스터를 생성하는 장치 및 방법에 관한 것이다.
IDS (Intrusion detection system)는 인터넷 기술이 급격하게 발달하고 있는 오늘날, 인터넷 보안(internet security)에서 중요한 역할을 수행하고 있다. IDS는 정상 활동(normal activity)의 거동(behavior)을 학습한 다음, 잠재적 네트워크 공격일 수 있는 비정상 활동(anomaly activity)을 탐지한다.
거동을 학습하는 단계에서, IDS는 비슷한 활동을 동일 그룹으로 분류하고, 정상 활동을 대표하는 프로필을 만드는 알고리즘을 수행한다. 비정상 활동을 탐지하는 단계에서, 만약 새로운 거동이 정상 활동의 그룹과 거리가 멀다면, 새로운 거동은 비정상 활동으로 분류된다. 즉, 비유사한 객체(object)를 분류하고 탐지하는 알고리즘은 비정상에 기초한 침입 탐지(anomaly-based intrusion detection)에 매우 중요한 역할을 수행한다.
K-평균 알고리즘(K-means algorithm)은 IDS에서 사용되는 무감독 클러스터링 알고리즘(unsupervised clustering algorithm)이다. K-평균 알고리즘은 유사한 객체를 동일 클러스터로, 비유사한 객체를 다른 클러스터로 클러스터링 함으로써, 복수의 클러스터를 생성한다. 보다 구체적으로, K-평균 알고리즘은 객체를 속성(attribute)의 공간상에 위치한 데이터 포인트로 간주한다. 그 다음, 기준이 되는 중심 데이터 포인트와의 거리에 기초하여, 중심 데이터 포인트와 가까이에 있는 데이터 포인트를 동일 클러스터로 분류한다.
K-평균 알고리즘은 중심 데이터 포인트를 임의로 선택하므로, 아웃라이어 데이터 포인트(outlier data point)가 중심 데이터 포인트로 선택될 수 있다.
본 발명은 중심 데이터 포인트가 임의로 선택되더라도, 높은 적합도를 가지는 클러스터를 생성하는 클러스터 생성 장치 및 방법을 제안한다.
본 발명은 데이터 포인트에 포함된 복수의 속성에 대하여, 복수의 속성을 보다 동일하게 고려하여 클러스터를 생성하는 클러스터 생성 장치 및 방법을 제안한다.
본 발명의 일실시예에 따르면, 데이터 포인트를 클러스터에 할당함으로써 클러스터를 생성하는 방법에 있어서, 데이터 포인트 중에서 상기 할당의 기준이 되는 중심 데이터 포인트 및 데이터 포인트 중에서 상기 할당의 대상이 되는 대상 데이터 포인트를 대응하여 초기 클러스터를 생성하는 단계, 상기 중심 데이터 포인트를 포함하는 중심 집합을 업데이트 하는 단계 및 대상 데이터 포인트를 상기 초기 클러스터에 상기 중심 집합에 기초하여 할당함으로써, 결과 클러스터를 생성하는 단계를 포함하는 클러스터 생성 방법이 제공된다.
본 발명의 일실시예에 따르면, 데이터 포인트에 포함된 복수의 속성값 중 일부를 그룹핑한 속성의 그룹에 기초하여, 복수의 초기 클러스터를 선택함으로써, 클러스터의 집합을 생성하는 단계, 복수의 상기 초기 클러스터 간의 오버랩 여부에 기초하여, 상기 초기 클러스터를 상기 클러스터의 집합에 추가하는 단계 및 상기 클러스터의 집합에 포함된 상기 초기 클러스터 각각의 중심 데이터 포인트에 기초하여, 중심 집합을 생성하는 단계를 포함하는 중심 집합 생성 방법이 제공된다.
본 발명의 일실시예에 따르면, 데이터 포인트를 클러스터에 할당함으로써 클러스터를 생성하는 장치에 있어서, 데이터 포인트 중에서 상기 할당의 기준이 되는 중심 데이터 포인트 및 데이터 포인트 중에서 상기 할당의 대상이 되는 대상 데이터 포인트를 대응하여 초기 클러스터를 생성하는 초기 클러스터 생성부, 상기 중심 데이터 포인트를 포함하는 중심 집합을 업데이트 하는 중심 집합 업데이트부, 및 대상 데이터 포인트를 상기 초기 클러스터에 상기 중심 집합에 기초하여 할당함으로써, 결과 클러스터를 생성하는 결과 클러스터 생성부를 포함하는 클러스터 생성 장치가 제공된다.
본 발명의 일실시예에 따르면, 중심 데이터 포인트가 임의로 선택되더라도, 높은 적합도를 가지는 클러스터를 생성할 수 있다.
본 발명의 일실시예에 따르면, 데이터 포인트에 포함된 복수의 속성에 대하여, 복수의 속성을 보다 동일하게 고려하여 클러스터를 생성할 수 있다.
도 1a 내지 1b는 데이터 포인트 및 클러스터를 시각적으로 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 클러스터 생성 장치를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 클러스터 생성 장치의 동작을 도시한 순서도이다.
도 4는 본 발명의 일실시예에 따른 클러스터 생성 장치가 초기 클러스터를 생성하는 동작을 도시한 순서도이다.
도 5는 본 발명의 일실시예에 따른 클러스터 생성 장치가 중심 집합을 업데이트하는 동작을 도시한 순서도이다.
도 6은 본 발명의 일실시예에 따른 클러스터 생성 장치가 생성한 중심 집합을 개념적으로 도시한 도면이다.
도 7a 내지 도 7b는 본 발명의 일실시예에 따른 클러스터 생성 장치 및 종래의 클러스터 생성 방법에 따라 클러스터링한 결과를 비교한 그래프이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
클러스터는 복수의 객체(object)를 객체간의 유사성에 기초하여 분류한 집합이다. 클러스터링은 객체간의 유사성에 기초하여 분류함으로써, 하나 또는 그 이상의 클러스터를 생성하는 동작이다. 객체간의 유사성은 객체에 포함된 하나 또는 그 이상의 속성(attribute)에 기초하여 결정될 수 있다.
데이터 포인트(data point)는 객체를 속성에 기초하여 생성한 공간에 배치함으로써, 객체를 좌표 공간상에 위치한 포인트처럼 가정하기 위한 개념이다. 이 경우, 객체간의 유사성은 데이터 포인트 간의 거리에 대응할 수 있다. 즉, 데이터 포인트 간의 거리가 가까울수록, 데이터 포인트 간의 유사성이 증가하는 것으로 볼 수 있다. 데이터셋은 클러스터링의 대상이 되는 데이터 포인트의 집합이다.
도 1a 내지 1b는 데이터 포인트 및 클러스터를 시각적으로 도시한 도면이다. 도 1a 내지 1b를 참고하면, 객체가 두 가지 수치화 가능한 속성을 가질 경우, 속성 각각을 축으로 설정할 수 있다. 객체는 제1 속성에 대한 축(110) 및 제2 속성에 대한 축(120)을 기준으로, 객체를 좌표 공간에 데이터 포인트로 표시함으로써, 시각화될 수 있다.
일실시예에 따른 클러스터 생성 장치는 데이터 포인트간의 거리에 기초하여 초기 클러스터(initial cluster)를 생성할 수 있다. 클러스터 생성 장치는 클러스터링의 기준이 되는 중심 데이터 포인트를 선택한 다음, 클러스터링의 대상이 되는 대상 데이터 포인트를 클러스터에 할당함으로써, 초기 클러스터를 생성할 수 있다. 도 1a를 참고하면, 클러스터 생성 장치는 복수의 데이터 포인트 중에서, 제1 중심 데이터 포인트(131) 및 제2 중심 데이터 포인트(141)를 선별할 수 있다.
클러스터 생성 장치는 선별한 중심 데이터 포인트 및 대상 데이터 포인트간의 거리를 비교하여 초기 클러스터를 생성할 수 있다. 도 1a를 참고하면, 클러스터 생성 장치는 대상 데이터 포인트(132)에 대하여, 제2 중심 데이터 포인트(141)와의 거리 및 제1 중심 데이터 포인트(131)와의 거리를 비교할 수 있다. 대상 데이터 포인트(132)는 제2 중심 데이터 포인트(141) 보다 제1 중심 데이터 포인트(131)에 가까이 있다. 따라서, 클러스터 생성 장치는 대상 데이터 포인트(132)를 제1 중심 데이터 포인트(131)에 대한 클러스터(130)에 할당할 수 있다.
클러스터 생성 장치는 모든 대상 데이터 포인트에 대하여 앞서 설명한 거리 비교를 수행할 수 있다. 그 결과, 클러스터 생성 장치는 제1 중심 데이터 포인트(131)에 대한 초기 클러스터(130) 및 제2 중심 데이터 포인트(141)에 대한 초기 클러스터(140)를 생성할 수 있다.
클러스터를 생성하는 방법중의 하나인 K-평균 알고리즘에 따르면, 중심 데이터 포인트(141)는 임의로 선택될 수 있다. 이 경우, 좌표 공간에서 다른 데이터 포인트에 비해 멀리 위치한 아웃라이어 데이터 포인트(outlier data point)가 중심 데이터 포인트로 선택될 수 있다. 아웃라이어 데이터 포인트에 기초하여 생성된 클러스터는 다른 클러스터에 비해 매우 적은 데이터 포인트를 포함할 수 있다. 이는 생성된 클러스터의 신뢰도를 낮추는 결과를 초래할 수 있다.
일실시예에 따른 클러스터 생성 장치는 초기 클러스터에 기초하여 중심 데이터 포인트의 집합인 중심 집합을 생성할 수 있다. 더 나아가서, 클러스터 생성 장치는 업데이트한 중심 집합에 기초하여, 대상 데이터 포인트를 클러스터에 할당함으로써, 결과 클러스터를 생성할 수 있다. 도 1b는 클러스터 생성 장치가 생성한 결과 클러스터를 시각적으로 도시한 도면이다.
중심 집합은 초기 클러스터의 중심 데이터 포인트를 포함하는 데이터 포인트의 집합이다. 중심 집합은 결과 클러스터를 생성하는 기준이 될 수 있다. 클러스터 생성 장치는 중심 집합을 생성하기 전에, 초기 클러스터의 중심 데이터 포인트를 업데이트 할 수 있다. 또한, 클러스터 생성 장치는 중심 집합을 생성하기 전에, 초기 클러스터 간의 오버랩 여부에 기초하여, 초기 클러스터를 업데이트 할 수 있다. 도 1b를 참고하면, 클러스터 생성 장치는 초기 클러스터의 중심 데이터 포인트(151, 152, 154)에 기초하여 중심 집합을 생성할 수 있다.
클러스터 생성 장치는 중심 집합에 기초하여, 대상 데이터 포인트를 초기 클러스터에 할당함으로써, 결과 클러스터(160, 170, 180)를 생성할 수 있다. 도 1b를 참고하면, 클러스터 생성 장치는 중심 집합에 포함된 중심 데이터 포인트(151, 152, 154) 및 대상 데이터 포인트(171)간의 거리를 측정할 수 있다. 클러스터 생성 장치는 측정한 거리에 기초하여, 대상 데이터 포인트(171)를 결과 클러스터(170)에 할당할 수 있다.
도 2는 본 발명의 일실시예에 따른 클러스터 생성 장치를 도시한 도면이다. 클러스터 생성 장치는 초기 클러스터 생성부(210), 중심 집합 업데이트부(220) 및 결과 클러스터 생성부(230)를 포함할 수 있다.
초기 클러스터 생성부(210)는 중심 데이터 포인트에 기초하여, 대상 데이터 포인트를 초기 클러스터에 할당할 수 있다. 일실시예에 따르면, 초기 클러스터 생성부(210)는 K-평균 알고리즘에 기초하여 초기 클러스터를 생성할 수 있다. 초기 클러스터 생성부(210)는 K-평균 알고리즘에 기초하여, k개의 초기 클러스터를 생성할 수 있다.
클러스터링의 대상이 되는 데이터 포인트는 하나 이상의 속성을 포함할 수 있다. 초기 클러스터 생성부(210)는 데이터 포인트가 n개의 속성을 포함할 경우, n개의 속성들을 복수의 속성의 그룹으로 그룹핑할 수 있다. 초기 클러스터 생성부(210)는 속성의 그룹 각각에 대하여 K-평균 알고리즘을 적용할 수 있다.
초기 클러스터 생성부(210)는 데이터 포인트에 포함된 속성들을 표준화할 수 있다. 속성의 그룹에 포함된 속성값들이 표준화되므로, 다른 속성에 비해 편차가 큰 속성이 편차가 작은 속성보다 클러스터 할당에 더 큰 영향을 미치는 문제가 해결될 수 있다.
중심 집합 업데이트부(220)는 중심 집합 업데이트부(220)는 초기 클러스터의 중심 데이터 포인트에 기초하여, 중심 집합을 생성할 수 있다. 중심 집합 업데이트부(220)는 속성의 그룹에 따라 초기 클러스터들을 그룹핑할 수 있다. 중심 집합 업데이트부(220)는 초기 클러스터간의 오버랩 여부에 기초하여, 초기 클러스터를 그룹핑하여 생성한 클러스터의 집합에 다른 집합의 초기 클러스터를 포함시킬 수 있다.
결과 클러스터 생성부(230)는 대상 데이터 포인트를 초기 클러스터에 할당함으로써, 결과 클러스터를 생성할 수 있다. 결과 클러스터 생성부(230)는 대상 데이터 포인트 및 중심 집합간의 거리를 계산할 수 있다. 바꾸어 말하면, 결과 클러스터 생성부(230)는 중심 집합에 포함된 중심 데이터 포인트 및 대상 데이터 포인트간의 거리를 계산할 수 있다. 결과 클러스터 생성부(230)는 계산한 거리에 기초하여, 대상 데이터 포인트를 초기 클러스터에 할당할 수 있다.
도 3은 본 발명의 일실시예에 따른 클러스터 생성 장치의 동작을 도시한 순서도이다. 이하에서는, 클러스터링의 대상이 되는 데이터 포인트는 n=38개의 속성을 포함한다고 가정한다.
단계(310)에서, 일실시예에 따른 클러스터 생성 장치는 초기 클러스터를 생성할 수 있다. 클러스터 생성 장치는 K-평균 알고리즘에 기초하여 초기 클러스터를 생성할 수 있다. 클러스터 생성 장치는 클러스터링의 기준이 되는 중심 데이터 포인트를 선택하고, 중심 데이터 포인트 및 대상 데이터 포인트간의 거리를 측정할 수 있다.
데이터 포인트가 n=38개의 속성을 포함하는 경우, 클러스터 생성 장치는 38개의 속성을 복수의 속성의 그룹으로 그룹핑할 수 있다. 예를 들어, 클러스터 생성 장치는 38개의 속성 중 13개의 속성을 그룹핑하여 제1 속성의 그룹을 생성할 수 있다. 마찬가지로, 클러스터 생성 장치는 나머지 속성 중 13개의 속성을 그룹핑하여 제2 속성의 그룹, 나머지 12개의 속성을 그룹핑하여 제3 속성의 그룹을 생성할 수 있다. 이하에서는, n=38개의 속성을 L=3개의 속성의 그룹으로 그룹핑한 것으로 가정한다.
클러스터 생성 장치는 생성한 속성의 그룹에 기초하여 초기 클러스터를 생성할 수 있다. 보다 구체적으로, 클러스터 생성 장치는 제1 속성의 그룹에 대하여 K-평균 알고리즘을 적용함으로써, k개의 초기 클러스터를 생성할 수 있다. 즉, 클러스터 생성 장치는 제1 속성의 그룹에 포함된 속성만을 고려하여, 중심 데이터 포인트 및 대상 데이터 포인트간의 거리를 계산할 수 있다. 클러스터 생성 장치는 제2 속성의 그룹 내지 제3 속성의 그룹에 대해서도 동일한 동작을 수행하여, 총 L×k=3×k개의 초기 클러스터를 생성할 수 있다.
데이터 포인트에 포함된 속성들은 서로 다른 크기 및 편차를 가질 수 있다. 클러스터 생성 장치는 각각의 속성의 그룹에 포함된 속성을 표준화할 수 있다. 보다 구체적으로, 클러스터 생성 장치는 속성 f의 평균 mf를 수학식 1에 기초하여 계산할 수 있다.
Figure 112016051091580-pat00001
수학식 1을 참고하면, D는 모든 데이터 포인트의 개수, Xif는 i번째 데이터 포인트의 속성 f의 값이다. 클러스터 생성 장치는 계산된 평균 mf 를 참고하여, 속성 f의 절대 편차 Sf를 수학식 2에 따라 계산할 수 있다.
Figure 112016051091580-pat00002
클러스터 생성 장치는 수학식 3에 기초하여, i번째 데이터 포인트의 속성 f를 표준화한 Yif를 계산할 수 있다. 수학식 3을 참고하면, 클러스터 생성 장치는 수학식 1에 따라 계산된 평균 mf 및 수학식 2에 따라 계산된 절대 편차 Sf를 이용하여 Yif를 계산할 수 있다.
Figure 112016051091580-pat00003
클러스터 생성 장치는 표준화한 속성에 기초하여 초기 클러스터를 생성할 수 있다. 이 경우, 편차가 큰 속성이 편차가 작은 속성 보다 클러스터링에 큰 영향을 미치는 문제가 해결될 수 있다.
단계(320)에서, 일실시예에 따른 클러스터 생성 장치는 초기 클러스터 또는 중심 집합을 업데이트할 수 있다. 클러스터 생성 장치는 초기 클러스터간의 오버랩 여부에 기초하여, 초기 클러스터를 업데이트할 수 있다. 클러스터 생성 장치는 같은 속성의 그룹에 포함된 초기 클러스터들에 대하여, 특정 초기 클러스터를 다른 초기 클러스터에 기여할 수 있다.
클러스터 생성 장치는 복수의 데이터 포인트를 복수의 속성의 그룹으로 그룹핑한 경우, 속성의 그룹 각각에 대한 클러스터의 집합을 생성할 수 있다. 클러스터 생성 장치는, L=3으로 가정한 예에서, 3×k개의 초기 클러스터를 그룹핑하여 3개의 클러스터의 집합을 생성할 수 있다. 클러스터 생성 장치는 오버랩 여부에 기초하여, 초기 클러스터를 서로 다른 클러스터의 집합으로 이동시킬 수 있다.
클러스터 생성 장치는 클러스터의 집합간에 이동을 수행함으로써, 최종적으로 k개의 클러스터의 집합을 획득할 수 있다. 생성된 클러스터의 집합 각각은 L=3개의 초기 클러스터를 포함할 수 있다. 클러스터 생성 장치는 클러스터의 집합에 포함된 초기 클러스터의 중심 데이터 포인트에 기초하여, 중심 집합을 생성할 수 있다. 즉, 클러스터 생성 장치는 k개의 클러스터의 집합이 생성되므로, k개의 중심 집합을 생성할 수 있다.
단계(330)에서, 일실시예에 따른 클러스터 생성 장치는 결과 클러스터를 생성할 수 있다. 클러스터 생성 장치는 중심 집합과 대상 데이터 포인트간의 거리에 기초하여, 대상 데이터 포인트를 초기 클러스터에 할당할 수 있다. 보다 구체적으로, 클러스터 생성 장치는 모든 중심 집합에 대하여, 중심 집합과 대상 데이터 포인트간의 거리를 계산한다. 중심 집합은 복수의 중심 데이터 포인트를 포함하므로, 클러스터 생성 장치는 특정 중심 집합 S 와 대상 데이터 포인트 Xi간의 거리 d(Xi,S)를 수학식 4에 기초하여 결정할 수 있다.
Figure 112016051091580-pat00004
수학식 4를 참고하면, Cj는 중심 집합 S의 중심 데이터 포인트를 의미한다. d(Xi,Cj)는 Xi 및 Cj 간의 유클리디언 거리(Euclidean distance)로써, 수학식 5에 기초하여 계산될 수 있다.
Figure 112016051091580-pat00005
클러스터 생성 장치는 대상 데이터 포인트를, d(Xi,S)가 가장 작은 중심 집합 S에 대응하는 클러스터의 집합에 포함된 초기 클러스터에 할당할 수 있다. 클러스터 생성 장치는 모든 대상 데이터 포인트를 초기 클러스터에 할당함으로써, 결과 클러스터를 생성할 수 있다.
클러스터 생성 장치는 모든 대상 데이터 포인트가 초기 클러스터에 할당되는 경우, 할당을 종료할 수 있다. 일실시예에 따르면, 클러스터 생성 장치는 초기 클러스터에 더 이상 변화가 없는 경우, 할당을 종료할 수 있다. 일실시예에 따르면, 클러스터 생성 장치는 단계(320) 내지 단계(330)의 순서를 바꾸어 수행할 수 있다.
클러스터 생성 장치는 결과 클러스터를 출력할 수 있다. 결과 클러스터는 입력된 데이터 포인트를 분류하는 기준이 될 수 있으며, 비정상적인 데이터 포인트를 식별하는 기준이 될 수 있다.
도 4는 본 발명의 일실시예에 따른 클러스터 생성 장치가 초기 클러스터를 생성하는 동작을 도시한 순서도이다.
단계(410)에서, 일실시예에 따른 클러스터 생성 장치는 데이터 포인트에 포함된 복수의 속성에 기초하여 속성의 그룹을 생성할 수 있다. 클러스터 생성 장치는 복수의 속성을 수학식 1 내지 수학식 3에 기초하여, 표준화할 수 있다.
속성의 그룹들은 동일한 개수의 속성을 포함할 수 있다. n=38개의 속성을 L=3개의 속성의 그룹으로 그룹핑하는 경우, 클러스터 생성 장치는 13개의 속성을 그룹핑하여 제1 속성의 그룹을 생성하고, 나머지 속성 중 13개의 속성을 그룹핑하여 제2 속성의 그룹을 생성하고, 나머지 12개의 속성을 그룹핑하여 제3 속성의 그룹을 생성할 수 있다.
단계(420)에서, 일실시예에 따른 클러스터 생성 장치는 중심 데이터 포인트를 선택할 수 있다. 일실시예에 따르면, 클러스터 생성 장치는 복수의 임의로 중심 데이터 포인트를 선택할 수 있다. 일실시예에 따르면, 클러스터 생성 장치는 미리 설정한 개수의 중심 데이터 포인트를 선택할 수 있다. 일실시예에 따르면, 클러스터 생성 장치는 사용자의 입력에 기초하여, 중심 데이터 포인트를 선택할 수 있다.
클러스터 생성 장치는 복수의 속성의 그룹을 생성한 경우, 각각의 속성의 그룹에 대하여 중심 데이터 포인트를 선택할 수 있다. 이하에서는 클러스터 생성 장치가 속성의 그룹 각각에서 k개의 중심 데이터 포인트를 선택한 것으로 가정한다. L=3개의 속성의 그룹이 존재하므로, 클러스터 생성 장치는 L×k=3×k개의 중심 데이터 포인트를 선택할 수 있다. 이 경우, 클러스터 생성 장치는 각각의 속성의 그룹에 대하여 k개의 초기 클러스터를 생성할 수 있다.
단계(430)에서, 일실시예에 따른 클러스터 생성 장치는 대상 데이터 포인트를 초기 클러스터에 할당할 수 있다. 속성의 그룹 각각에서 k개의 중심 데이터 포인트가 선택되었으므로, 중심 데이터 포인트 각각에 대한 L×k=3×k개의 초기 클러스터가 존재한다.
클러스터 생성 장치는 대상 데이터 포인트 및 중심 데이터 포인트 간의 거리를 계산할 수 있다. 클러스터 생성 장치는 속성의 그룹 중 적어도 하나를 고려하여 대상 데이터 포인트 및 중심 데이터 포인트간의 거리를 계산할 수 있다. 클러스터 생성 장치는 계산된 거리에 기초하여, 대상 데이터 포인트를 최소 거리에 위치한 중심 데이터 포인트에 대한 초기 클러스터에 할당할 수 있다.
클러스터 생성 장치는 복수의 대상 데이터 포인트에 대하여 중심 데이터 포인트와의 거리를 병렬적으로 계산할 수 있다. 예를 들어, 클러스터 생성 장치는 대상 데이터 포인트 각각에 대한 스레드를 생성함으로써, 대상 데이터 포인트 및 중심 데이터 포인트 간의 거리를 계산할 수 있다.
단계(440)에서, 일실시예에 따른 클러스터 생성 장치는 중심 데이터 포인트를 업데이트 할 수 있다. 클러스터 생성 장치는 초기 클러스터에 포함된 데이터 포인트의 속성에 기초하여, 중심 데이터 포인트를 업데이트 할 수 있다. 클러스터 생성 장치는 초기 클러스터에 포함된 데이터 포인트의 속성의 평균을 계산한 다음, 평균에 가장 근접한 데이터 포인트를 중심 데이터 포인트로 선택할 수 있다.
클러스터 생성 장치는 속성의 그룹 중 적어도 하나에 기초하여, 중심 데이터 포인트를 업데이트 할 수 있다. 즉, 클러스터 생성 장치는 제1 속성의 그룹의 속성만을 고려하여 중심 데이터 포인트를 업데이트 할 수 있다. 특정 속성의 그룹에 기초하여 대상 데이터 포인트가 할당된 초기 클러스터에 대하여, 클러스터 생성 장치는 특정 속성의 그룹만을 고려하여 중심 데이터 포인트를 업데이트 할 수 있다.
단계(450)에서, 일실시예에 따른 클러스터 생성 장치는 수렴조건을 만족하는지 확인할 수 있다. 클러스터 생성 장치는 수렴조건을 만족하는 경우, 도 3의 단계(320)로 진행할 수 있다. 클러스터 생성 장치는 단계(430)에서 대상 데이터 포인트가 초기 클러스터에 할당되지 않은 경우, 수렴조건을 만족한 것으로 볼 수 있다. 클러스터 생성 장치는 모든 대상 데이터 포인트가 초기 클러스터에 할당된 경우, 수렴조건을 만족한 것으로 볼 수 있다.
클러스터 생성 장치는 수렴 조건을 만족하지 않은 경우, 단계(430)를 다시 수행할 수 있다. 일실시예에 따르면, 클러스터 생성 장치는 단계(430)이 수행된 횟수에 기초하여 수렴조건을 만족하는지 확인할 수 있다. 예를 들어, 단계(430)가 10회 반복 수행된 경우, 클러스터 생성 장치는 수렴조건을 만족한 것으로 볼 수 있다.
최종적으로, 클러스터 생성 장치는 L×k=3×k개의 초기 클러스터를 생성할 수 있다.
도 5는 본 발명의 일실시예에 따른 클러스터 생성 장치가 중심 집합을 업데이트하는 동작을 도시한 순서도이다. 클러스터 생성 장치는 생성된 초기 클러스터에 기초하여, 초기 클러스터의 중심 데이터 포인트를 포함하는 중심 집합을 생성할 수 있다. 클러스터 생성 장치는 속성의 그룹에 기초하여, 초기 클러스터를 업데이트함으로써, 중심 집합을 업데이트할 수 있다.
단계(510)에서, 일실시예에 따른 클러스터 생성 장치는 초기 클러스터를 그룹핑하여 클러스터의 집합을 생성할 수 있다. 클러스터 생성 장치는 속성의 그룹에 기초하여 클러스터의 집합을 생성할 수 있다. L=3개의 속성의 그룹이 존재하는 경우, 클러스터 생성 장치는 L×k=3×k개의 초기 클러스터 중에서 k개의 초기 클러스터를 선택할 수 있다. 클러스터 생성 장치는 k개의 초기 클러스터를 임의로 선택할 수 있다.
클러스터 생성 장치는 선택한 k개의 초기 클러스터에 기초하여 클러스터의 집합을 생성한다. 클러스터 생성 장치는 각각 k개의 초기 클러스터를 포함하는 L=3개의 클러스터의 집합을 생성할 수 있다.
단계(520)에서, 일실시예에 따른 클러스터 생성 장치는 초기 클러스터를 클러스터의 집합에 추가할 수 있다. 클러스터 생성 장치는 초기 클러스터를 초기 클러스터가 포함된 클러스터의 집합이 아닌 다른 클러스터의 집합에 추가할 수 있다.
클러스터 생성 장치는 초기 클러스터가 공유하는 데이터 포인트의 비율에 기초하여, 초기 클러스터간의 오버랩을 측정할 수 있다. 클러스터 생성 장치는 서로 다른 클러스터의 집합에 포함된 초기 클러스터에 대하여, 가장 많이 오버랩된 초기 클러스터들을 동일 클러스터의 집합에 추가할 수 있다. 이로써, 속성의 그룹 각각에 대하여, 클러스터의 집합은 서로 다른 초기 클러스터에 기여할 수 있다. 가장 많이 오버랩되는 초기 클러스터가 하나의 클러스터의 집합에 포함되므로, 가장 유사한 초기 클러스터가 하나의 클러스터의 집합에 포함될 수 있다.
단계(530)에서, 일실시예에 따른 클러스터 생성 장치는 각각의 클러스터의 집합으로부터, 중심 집합을 생성할 수 있다. 중심 집합은 클러스터의 집합에 포함된 초기 클러스터의 중심 데이터 포인트를 포함할 수 있다. 클러스터 생성 장치는 단계(520)으로부터, L=3개의 클러스터를 포함하는 k개의 클러스터의 집합을 획득할 수 있다. 따라서, 클러스터 생성 장치는 k개 클러스터의 집합 각각에 대한 k개의 중심 집합을 획득할 수 있다.
클러스터 생성 장치는 획득한 k개의 중심 집합에 기초하여, 대상 데이터 포인트를 초기 클러스터에 할당할 수 있다. 최종적으로, 클러스터 생성 장치는 결과 클러스터를 생성할 수 있다.
도 6은 본 발명의 일실시예에 따른 클러스터 생성 장치가 생성한 중심 집합을 개념적으로 도시한 도면이다. 도 6을 참고하면, Ca,b는 a 속성의 그룹에 기초하여 생성된 b번째 초기 클러스터를 의미한다. 초기 클러스터 각각은 중심 데이터 포인트를 포함한다. 도 6을 참고하면, 초기 클러스터 각각의 중심 데이터 포인트가 별 모양으로 도시된다.
클러스터 생성 장치는 초기 클러스터간의 오버랩 여부에 기초하여, 클러스터의 집합을 생성할 수 있다. 도 6을 참고하면, 클러스터 생성 장치는 C1,1, C2,1 내지 CL,1을 포함하는 클러스터의 집합을 생성할 수 있다. 클러스터 생성 장치는 C1,2, C2,2 내지 CL,2을 포함하는 클러스터의 집합을 생성할 수 있다. 클러스터의 집합은 오버랩 여부에 기초하여 생성되므로, 가장 많이 오버랩된 초기 클러스터가 하나의 클러스터의 집합에 포함될 수 있다.
일실시예에 따른 클러스터 생성 장치는 클러스터의 집합 각각에 대한 중심 집합을 생성할 수 있다. 도 6을 참고하면, 클러스터 생성 장치는 C1,1, C2,1 내지 CL,1을 포함하는 클러스터의 집합의 중심 데이터 포인트(610, 611, 612, 613)를 포함하는 중심 집합 S1을 생성할 수 있다. 클러스터 생성 장치는 C1,2, C2,2 내지 CL,2을 포함하는 클러스터의 집합에 대해서도 중심 집합 S2을 생성할 수 있다.
클러스터 생성 장치는 생성된 중심 집합 및 대상 데이터 포인트간의 거리에 기초하여, 대상 데이터 포인트를 초기 클러스터에 할당할 수 있다. 도 6을 참고하면, 클러스터 생성 장치는 대상 데이터 포인트에 대하여, 중심 집합 S1과의 거리, 중심 집합 S2와의 거리 … 중심 집합 SK와의 거리를 계산할 수 있다. 클러스터 생성 장치는 수학식 4에 기초하여 중심 집합 및 대상 데이터 포인트간의 거리를 계산할 수 있다. 클러스터 생성 장치는 대상 데이터 포인트를 최소 거리를 가지는 중심 집합에 대한 초기 클러스터에 할당할 수 있다.
도 7a 내지 도 7b는 본 발명의 일실시예에 따른 클러스터 생성 장치 및 종래의 클러스터 생성 방법에 따라 클러스터링한 결과를 비교한 그래프이다. 비교에 사용된 종래의 클러스터 생성 방법은 K-평균 알고리즘 및 유전 알고리즘(Genetic Algorithm)이다.
도 7a는 “kddcup.newtestdata_10_percent_unlabeled” 데이터 셋을 클러스터링한 결과를 비교한 그래프이다. “kddcup.newtestdata_10_percent_unlabeled” 데이터 셋은 네트워크 상에서 침입을 시뮬레이션한 다음, 침입 도중에 수집된 네트워크 연결 311,079개를 포함한다.
도 7b는 “kddcup.data_10_percent_corrected” 데이터 셋을 클러스터링한 결과를 비교한 그래프이다. “kddcup.data_10_percent_corrected” 데이터 셋은 네트워크 상에서 또 다른 침입을 시뮬레이션한 다음, 침입 도중에 수집된 네트워크 연결 494,021개를 포함한다.
두 데이터셋에 포함된 네트워크 연결은 TCP 연결의 지속 시간(duration), 프로토콜 타입, 전송된 바이트의 수, 생성한 파일 개수를 속성으로 포함한다. 두 데이터셋 모두 총 42개의 속성을 포함하며, 이 중에서 수치화될 수 있는 속성은 38개이다. 수치화될 수 있는 속성을 구체적으로 살펴보면, 지속 시간은 [0,58329]의 범위를, dst_host_count는 [0,255]의 범위를 가진다. 각각의 속성이 서로 다른 범위를 가지므로, 클러스터 생성 장치는 속성을 수학식 1 내지 수학식 3에 기초하여 표준화할 수 있다.
클러스터 생성 장치는 수치화될 수 있는 속성 38개를 L=3개의 속성의 그룹으로 분할할 수 있다. 클러스터 생성 장치는 각각의 속성의 그룹에 대하여, k개의 초기 클러스터를 생성할 수 있다. 따라서, 클러스터 생성 장치는 L×k=3×k개의 초기 클러스터를 생성할 수 있다.
클러스터 생성 장치는 L=3개의 클러스터의 집합을 생성한 다음, 오버랩 여부에 기초하여 초기 클러스터를 서로 다른 클러스터의 집합에 추가할 수 있다. 보다 구체적으로, 클러스터 생성 장치는 하나의 클러스터의 집합을 임의로 선택한 다음, 선택한 클러스터의 집합에 포함된 초기 클러스터 각각에 대하여, 다른 클러스터의 집합에서 가장 오버랩된 초기 클러스터를 찾을 수 있다. 클러스터 생성 장치는 가장 오버랩된 초기 클러스터를 선택한 클러스터의 집합의 초기 클러스터에 대응할 수 있다. 클러스터 생성 장치는 가장 오버랩된 초기 클러스터를 대응하여, k개의 클러스터의 집합을 획득할 수 있다. 각각의 클러스터의 집합은 L개의 초기 클러스터를 포함한다.
클러스터 생성 장치는 클러스터의 집합으로부터 k개의 중심 집합을 획득할 수 있다. 클러스터 생성 장치는 중심 집합에 기초하여 대상 데이터 포인트를 초기 클러스터에 할당함으로써, 결과 클러스터를 생성할 수 있다.
도 7a 내지 도 7b에 사용된 K-평균 알고리즘은 데이터 셋에서 임의의 중심 데이터 포인트를 선택한 다음, 각각의 클러스터가 최소 2개의 데이터 포인트를 포함할 때까지 반복하여 클러스터링한다.
도 7a 내지 도 7b에 사용된 유전 알고리즘은 각 세대당 최대 20개의 객체를 포함하고, 각각의 객체는 k개의 클러스터를 포함한다. 유전 알고리즘은 현재 세대의 객체를 임의로 크로스오버하여 생성한 객체 18개 및 부모 세대에서 가장 우수한 객체 2개를 이용하여 20개의 객체를 포함하는 다음 세대를 생성한다. 유전 알고리즘은 제10 세대에서 수렴한다. 유전 알고리즘은 각각의 객체의 우수성을 수학식 6의 적합도 함수(fitness function)에 기초하여 평가할 수 있다.
Figure 112016051091580-pat00006
수학식 6을 참고하면, JC는 오브젝티브 함수로써, 수학식 7로 정의된다.
Figure 112016051091580-pat00007
수학식 7을 참고하면, Cj는 j번째 클러스터이다. d(Xi,Zj)는 j번째 클러스터의 중심 데이터 포인트 Zj 및 데이터 포인트 Xi 간의 유클리디언 거리로써, 수학식 5로 정의될 수 있다. 클러스터에 포함된 데이터 포인트간의 유사성이 높을수록, Jc의 결과값은 작아진다. 따라서, 수학식 6의 f값은 유사성이 높을수록 커진다.
표 1 내지 표 2는 일실시예에 따른 클러스터 생성 장치, K-평균 알고리즘 및 유전 알고리즘을 독립적으로 10회 수행함으로써 생성한 클러스터의 적합도(fitness value)를 수학식 6에 기초하여 계산한 결과를 정리한 것이다.
표 1은 “kddcup.newtestdata_10_percent_unlabeled” 데이터 셋을 일실시예에 따른 클러스터 생성 장치, K-평균 알고리즘 및 유전 알고리즘에 따라 클러스터링한 결과를 비교한 표이다. 도 7a는 표 1의 결과를 시각적으로 도시한 도면이다.
알고리즘 평균 소요시간
(milliseconds)
평균 적합도
K-평균 알고리즘(k=5)
각각의 행(row)은 10회 실행의 평균이다.
1712.1 1.42904e-07
1251.1 1.52484e-07
2135 1.42784e-07
2357.6 1.47009e-07
본 발명(k=5, m=3)
각각의 행은 10회 실행의 평균이다.
2439.2 2.93793e-07
2476.4 2.92942e-07
2483.6 2.83562e-07
2402.4 2.92642e-07
유전 알고리즘 3957.9 3.18544e-07
3912.4 2.72813e-07
3864.1 3.10712e-07
3714.6 3.05991e-07
표 1을 참고하면, 일실시예에 따른 클러스터 생성 장치의 평균 소요시간은 K-평균 알고리즘의 평균 소요시간 보다 평균적으로 1.315배 느리다. 하지만, 평균 적합도를 비교할 경우, 일실시예에 따른 클러스터 생성 장치의 적합도는 K-평균 알고리즘의 적합도 보다 평균적으로 1.987배 크다. 클러스터 생성 장치 및 유전 알고리즘을 비교할 경우, 유전 알고리즘의 평균 소요시간이 평균적으로 1.576배 느리지만, 유전 알고리즘의 평균 적합도가 평균적으로 1.039배 큼을 알 수 있다.
표 2는 “kddcup.data_10_percent_corrected” 데이터 셋을 일실시예에 따른 클러스터 생성 장치, K-평균 알고리즘 및 유전 알고리즘에 따라 클러스터링한 결과를 비교한 표이다. 도 7b는 표 2의 결과를 시각적으로 도시한 도면이다.
알고리즘 평균 소요시간
(milliseconds)
평균 적합도
K-평균 알고리즘(k=5)
각각의 행(row)은 10회 실행의 평균이다.
4267.8 9.25666e-08
2700.6 8.89619 e-08
3406.6 9.27364 e-08
3527.8 9.45243 e-08
본 발명(k=5, m=3)
각각의 행은 10회 실행의 평균이다.
4869.4 1.80854 e-07
4616.2 1.84 e-07
4629.1 1.8765 e-07
4459.9 1.8124 e-07
유전 알고리즘 6370.2 1.79717 e-07
6238.1 1.93524 e-07
6239.1 2.03122 e-07
6409.9 1.88571 e-07
표 2를 참고하면, 클러스터 생성 장치의 평균 소요시간이 K-평균 알고리즘의 평균 소요시간 보다 평균적으로 1.336배 느리지만, 클러스터 생성 장치의 평균 적합도는 K-평균 알고리즘의 평균 적합도 보다 평균적으로 1.991배 큼을 알 수 있다. 클러스터 생성 장치 및 유전 알고리즘을 비교할 경우, 유전 알고리즘의 평균 소요시간이 평균적으로 1.36배 느리지만, 유전 알고리즘의 평균 적합도가 평균적으로 1.041배 큼을 알 수 있다.
표 1 내지 표 2, 이를 시각화한 도 7a 내지 도 7b를 참고하면, 클러스터 생성 장치는 K-평균 알고리즘보다 소요시간은 조금 더 길지만, 소요시간의 차이를 보상할 정도로 높은 적합도를 가질 수 있다. 또한, 클러스터 생성 장치는 유전 알고리즘보다 빠르면서, 거의 비슷한 적합도를 가질 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
210 : 초기 클러스터 생성부
220 : 중심 집합 업데이트부
230 : 결과 클러스터 생성부

Claims (10)

  1. 데이터 포인트를 클러스터에 할당함으로써 클러스터를 생성하는 방법에 있어서,
    데이터 포인트 중에서 상기 할당의 기준이 되는 중심 데이터 포인트 및 데이터 포인트 중에서 상기 할당의 대상이 되는 대상 데이터 포인트를 대응하여 복수 개의 초기 클러스터를 생성하는 단계;
    상기 복수 개의 초기 클러스터의 오버랩 여부에 기초하여, 복수 개의 중심 데이터 포인트를 포함하는 중심 집합을 생성하는 단계; 및
    상기 대상 데이터 포인트 및 상기 중심 집합 간의 거리에 기초하여, 상기 대상 데이터 포인트가 할당된 결과 클러스터를 생성하는 단계
    를 포함하고,
    상기 데이터 포인트는, 복수의 속성값을 포함하고,
    상기 초기 클러스터를 생성하는 단계는,
    복수의 속성값 중 일부를 그룹핑하여 생성된 복수 개의 속성의 그룹별로 상기 중심 데이터 포인트 및 상기 대상 데이터 포인트를 대응하여, 상기 복수 개의 초기 클러스터를 생성하는
    클러스터 생성 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 초기 클러스터를 생성하는 단계는,
    미리 설정된 개수의 상기 중심 데이터 포인트를 선택하는 단계;
    상기 중심 데이터 포인트 및 상기 대상 데이터 포인트간의 거리에 기초하여, 상기 대상 데이터 포인트를 상기 중심 데이터 포인트에 대응하는 단계; 및
    상기 중심 데이터 포인트 및 상기 대상 데이터 포인트간의 대응에 기초하여, 상기 중심 데이터 포인트를 업데이트 하는 단계
    를 포함하는 클러스터 생성 방법.
  4. 제1항에 있어서,
    상기 초기 클러스터를 생성하는 단계는,
    상기 데이터 포인트의 속성값의 편차에 기초하여, 상기 속성값을 표준화하는 클러스터 생성 방법.
  5. 제1항에 있어서,
    상기 중심 집합을 생성하는 단계는,
    상기 속성의 그룹에 기초하여 복수의 상기 초기 클러스터를 선택함으로써, 클러스터의 집합을 생성하는 단계;
    복수의 상기 초기 클러스터 간의 오버랩 여부에 기초하여, 상기 초기 클러스터를 상기 클러스터의 집합에 추가하는 단계; 및
    상기 클러스터의 집합에 포함된 상기 초기 클러스터 각각의 상기 중심 데이터 포인트에 기초하여, 상기 중심 집합을 생성하는 단계
    를 포함하는 클러스터 생성 방법.
  6. 제1항에 있어서,
    상기 결과 클러스터를 생성하는 단계는,
    대상 데이터 포인트 및 상기 중심 집합 간의 거리에 기초하여, 상기 대상 데이터 포인트를 상기 초기 클러스터에 할당하는 클러스터 생성 방법.
  7. 삭제
  8. 삭제
  9. 데이터 포인트를 클러스터에 할당함으로써 클러스터를 생성하는 장치에 있어서,
    데이터 포인트 중에서 상기 할당의 기준이 되는 중심 데이터 포인트 및 데이터 포인트 중에서 상기 할당의 대상이 되는 대상 데이터 포인트를 대응하여 복수 개의 초기 클러스터를 생성하는 초기 클러스터 생성부;
    상기 복수 개의 초기 클러스터의 오버랩 여부에 기초하여, 복수 개의 중심 데이터 포인트를 포함하는 중심 집합을 생성하는 중심 집합 생성부; 및
    상기 대상 데이터 포인트 및 상기 중심 집합 간의 거리에 기초하여, 상기 대상 데이터 포인트가 할당된 결과 클러스터를 생성하는 결과 클러스터 생성부
    를 포함하고,
    상기 데이터 포인트는, 복수의 속성값을 포함하고,
    상기 초기 클러스터 생성부는,
    복수의 속성값 중 일부를 그룹핑하여 생성된 복수 개의 속성의 그룹별로 상기 중심 데이터 포인트 및 상기 대상 데이터 포인트를 대응하여, 상기 복수 개의 초기 클러스터를 생성하는
    클러스터 생성 장치.
  10. 제1항 또는 제3항 내지 제6항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체.
KR1020160065317A 2015-12-16 2016-05-27 클러스터 생성 장치 및 방법 KR101828151B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20150180468 2015-12-16
KR1020150180468 2015-12-16

Publications (2)

Publication Number Publication Date
KR20170072110A KR20170072110A (ko) 2017-06-26
KR101828151B1 true KR101828151B1 (ko) 2018-02-12

Family

ID=59282387

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160065317A KR101828151B1 (ko) 2015-12-16 2016-05-27 클러스터 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101828151B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102142767B1 (ko) * 2018-09-11 2020-08-10 강원대학교산학협력단 데이터간 상대적 거리 비율 및 클러스터의 중심 데이터 간의 거리를 고려한 데이터 클러스터링 방법 및 시스템
KR102428572B1 (ko) * 2020-12-10 2022-08-03 한국전자기술연구원 유전자 알고리즘을 이용한 경량 인공지능 알고리즘의 하이퍼 파라미터 최적화 방법

Also Published As

Publication number Publication date
KR20170072110A (ko) 2017-06-26

Similar Documents

Publication Publication Date Title
US10867244B2 (en) Method and apparatus for machine learning
US20180174062A1 (en) Root cause analysis for sequences of datacenter states
EP3467723A1 (en) Machine learning based network model construction method and apparatus
CN111164620A (zh) 用于自动机器学习模型选择的特定于算法的神经网络体系架构
US20210133018A1 (en) A unifying semi-supervised approach for machine condition monitoring and fault diagnosis
KR102490369B1 (ko) 그래프 임베딩과 인간참여 방식을 통한 악성코드 제작그룹 식별 방법
CN108242266A (zh) 辅助诊断装置和方法
US11748527B2 (en) Automated generation and evaluation of architectural designs
WO2015180340A1 (zh) 一种数据挖掘方法及装置
JP6172317B2 (ja) 混合モデル選択の方法及び装置
US20210365813A1 (en) Management computer, management program, and management method
US10445341B2 (en) Methods and systems for analyzing datasets
KR101828151B1 (ko) 클러스터 생성 장치 및 방법
JP7042303B2 (ja) 拡大現実のための粒度の細かい2値化
US11003989B2 (en) Non-convex optimization by gradient-accelerated simulated annealing
US11593680B2 (en) Predictive models having decomposable hierarchical layers configured to generate interpretable results
US11954202B2 (en) Deep learning based detection of malicious shell scripts
Grishma et al. Software root cause prediction using clustering techniques: A review
KR102161670B1 (ko) 군장비 수리부속 품목 수요예측을 위한 수요패턴 별 클러스터링 시스템 및 방법
US20220334941A1 (en) Pattern extraction and rule generation apparatus, method, and program
KR101953479B1 (ko) 거리의 상대적 비율을 적용한 그룹 탐색 최적화 데이터 클러스터링 방법 및 시스템
Bonab et al. A new swarm-based simulated annealing hyper-heuristic algorithm for clustering problem
Majeed et al. CTGAN-MOS: Conditional generative adversarial network based minority-class-augmented oversampling scheme for imbalanced problems
US11710057B2 (en) Methods and systems for identifying patterns in data using delimited feature-regions
KR102142767B1 (ko) 데이터간 상대적 거리 비율 및 클러스터의 중심 데이터 간의 거리를 고려한 데이터 클러스터링 방법 및 시스템

Legal Events

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