KR102039244B1 - 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템 - Google Patents

반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템 Download PDF

Info

Publication number
KR102039244B1
KR102039244B1 KR1020180019178A KR20180019178A KR102039244B1 KR 102039244 B1 KR102039244 B1 KR 102039244B1 KR 1020180019178 A KR1020180019178 A KR 1020180019178A KR 20180019178 A KR20180019178 A KR 20180019178A KR 102039244 B1 KR102039244 B1 KR 102039244B1
Authority
KR
South Korea
Prior art keywords
data
solution
clustering
evaluation value
distance
Prior art date
Application number
KR1020180019178A
Other languages
English (en)
Other versions
KR20190105147A (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 KR1020180019178A priority Critical patent/KR102039244B1/ko
Publication of KR20190105147A publication Critical patent/KR20190105147A/ko
Application granted granted Critical
Publication of KR102039244B1 publication Critical patent/KR102039244B1/ko

Links

Images

Classifications

    • 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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Abstract

본 발명은 반딧불 알고리즘(Firefly Algorithm, FA)을 이용한 데이터 클러스터링 방법 및 시스템에 관한 것으로서, 데이터에 대한 사전 정보가 없을 때, 실루엣 평가값을 적용하여 적절한 클러스터 수를 결정하고, 이에 적합한 최적의 클러스터링 해를 탐색할 수 있다.

Description

반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템{DATA CLUSTERING METHOD USING FIREFLY ALGORITHM AND THE SYSTEM THEREOF}
본 발명은 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템에 관한 것으로서, 보다 상세하게는 실루엣 평가값을 적용하여 클러스터 수를 결정하고, 이에 적합한 최적의 데이터 클러스터링 해를 탐색하는 반딧불 알고리즘(Firefly Algorithm, FA) 방법에 관한 것이다.
최근 널리 사용되고 있는 사물인터넷(Internet of Things; IoT) 기기는 사물의 상태를 감지하는 센싱 기능을 포함함으로써, 수많은 데이터들을 생성하며 수집하고 있다. 이에, 수집된 빅 데이터를 분석하여 가치 있는 정보를 추출하고, 비즈니스 모델을 생성하는 등과 같은 수익 창출의 필요성이 대두되고 있다.
이와 같은 필요성에 따라, 가치 있는 정보 추출을 위한 데이터 분석 분야 중 데이터 클러스터링 방법 개발이 꾸준히 진행되어 왔다.
기존 기술들은 클러스터링 방법에서 복잡한 최적화 문제를 해결하기 위해 다양한 휴리스틱 알고리즘을 적용하였다. 예를 들면, Hruschka[2009]는 NP­hard 그룹핑에 관한 데이터 클러스터링 문제에 휴리스틱 알고리즘의 적용 필요성을 주장하였으며, Kao[2008]는 K­means, Nelder­Mead와 파티클 군집 최적화(Particle Swarm Optimization, PSO)를 혼합한 방법을 제안하였다. 또한, DW van der Merwe[5]는 K­means로 획득한 해를 파티클 군집 최적화(PSO) 방법의 초기 해 중 하나로 사용하는 방법을 제안하였다.
나아가, 최근에는 인공벌군집(artificial bee colony, ABC) 방법, 반딧불 알고리즘 (Firefly Algorithm, FA) 방법 등이 제안되었으나, 이들 연구에서는 평가기준으로 클러스터 내의 유클리드 거리만을 사용하고 있으므로, 적절한 클러스터 수를 결정하지 못한다는 문제점이 존재하였으며, 클러스터 수를 고정한 상태에서의 최적화 방법을 제안한다는 한계가 존재하였다.
만약, 사전에 데이터 정보가 존재하는 경우, 클러스터 수 k를 고정하여 사용할 수 있다. 다만, 그렇지 않은 경우, 클러스터 수 k를 결정해야만 한다. 따라서, 클러스터 수를 결정하기 위해서는 이를 위한 적절한 평가기준(Valid index) 선택이 필요하다.
이에 대하여, Arbelaitz& etal[2013]는 데이터 클러스터링 해를 평가하기 위해, 30개의 평가 기준(Validity index)을 20가지의 UCI 데이터에 적용하여 비교 분석하였고, Xu& etal[2012]는 파티클 군집 최적화(PSO) 방법을 다양한 평가기준에 적용하여 비교 분석하였다. 또한, Rousseeuw[1987]가 제안한 실루엣은 데이터 클러스터링할 때, 각 클러스터 내에서 데이터들이 얼마나 조밀하게 군집되어 있는지, 또한 클러스터 사이가 얼마나 뚜렷하게 구분되는지 평가하는 기준으로 사용되었다.
다만, 전술한 바와 같은 기존 방법들은 데이터에 대한 사전 정보가 없을 때, 적절한 클러스터 수를 결정하고, 이에 맞는 최적의 데이터 클러스터링 해를 탐색하기에 한계가 존재하였으며, 클러스터 수에 대한 정보가 존재하지 않는 경우에 더욱 어려운 한계에 도달하였다.
Hruschka and et al., A genetic algorithm for cluster analysis, Intelligent Data Analysis 7 (2003) pp.15­25 Kao, A hybridized approach to data clustering, Expert Systems with Applications Volume 34, Issue 3, April 2008, pp. 1754­1762 DW van der Merwe, Data clustering using Particle swarm optimization, Proceedings of the IEEE Congress on Evolutionary Computation, CEC 2003, 8 ­ 12 December 2003, Canberra, Australia Arbelaitz & et al. "An extensive comparative study of cluster validity indices", Pattern Recognition., vol. 46, Issue 1, pp. 243­256, Jan 2013. A Comparison Study of Validity Indices on Swarm­Intelligence­Based Clustering, Volume:42 , 2012, pp. 1243 ­ 1256 Rousseeuw, "Silhouettes: A graphical aid to the interpretation and validation of cluster analysis", Journal of Computational and Applied Mathematics., Vol 20, pp 53­65, November 1987
본 발명의 목적은 데이터에 대한 사전 정보가 없을 때, 실루엣 평가값을 적용하여 적절한 클러스터 수를 결정하고, 이에 적합한 최적의 클러스터링 해를 탐색할 수 있는 반딧불 알고리즘 방법을 제공하고자 한다.
또한, 본 발명의 목적은 복수의 데이터들의 상대적 비율을 확률적으로 적용하여 초기 해를 생성함으로써, 계산시간을 효율화할 수 있는 반딧불 알고리즘 방법을 제공하고자 한다.
또한, 본 발명의 목적은 초기 해(반딧불) 간의 거리를 고려하여 최적의 해를 탐색함으로써, 다양한 지역 최적해(local optimum)의 탐색을 효과적으로 수행할 수 있는 반딧불 알고리즘 방법을 제공하고자 한다.
본 발명의 실시예에 따른 반딧불 알고리즘을 이용하여 복수의 데이터들을 클러스터링하는 방법에 있어서, 복수의 데이터들 각각이 복수의 클러스터들로 클러스터링되는 해와 관련하여, 상기 복수의 데이터들 사이의 거리 및 상기 복수의 데이터들 사이의 거리의 상대적 비율을 산출하여 상기 복수의 데이터들에 대한 초기 해를 생성하는 단계, 상기 산출된 상대적 비율로 인한 중심 데이터를 산출하며, 상기 복수의 데이터들이 상기 중심 데이터에 소속되도록 클러스터링 해를 생성하고, 상기 클러스터링 해에 대한 실루엣 평가값을 산출하는 단계, 상기 클러스터링된 초기 해 각각의 거리와 상기 실루엣 평가값의 차이값을 이용하여 선호도를 산출하며, 선호도를 기반으로 이웃 해를 탐색하는 단계, 상기 실루엣 평가값을 평가 기준으로 상기 탐색된 이웃 해 간의 상기 초기 해들을 업데이트하여 최적의 해를 획득하는 단계 및 상기 최적의 해를 참조하여 상기 복수의 데이터들을 상기 복수의 클러스터들로 최종 클러스터링하는 단계를 포함한다.
상기 초기 해를 생성하는 단계는 상기 복수의 데이터들 중 p차원 특징을 나타내는 제i 데이터에서 제j 데이터까지의 거리(dij)를 산출하여 저장하는 단계, 상기 산출된 제i 데이터에서 제j 데이터까지의 거리(dij)의 합에서, 상기 복수의 데이터들에 대한 상기 제j 데이터까지의 거리의 상대적 비율(Vj)을 산출하는 단계 및 상기 산출된 상대적 비율을 확률적으로 적용하여 상기 복수의 데이터들에 대한 상기 초기 해를 생성하는 단계를 포함할 수 있다.
상기 클러스터링 해에 대한 실루엣 평가값을 산출하는 단계는 상기 복수의 데이터들의 상기 상대적 비율에 반비례하도록, 임의의 클러스터 수에 따른 상기 중심 데이터를 설정하는 단계, 상기 중심 데이터를 기반으로 상기 복수의 데이터들을 클러스터링하는 단계, 상기 클러스터링 해에 대한 상기 실루엣 평가값을 산출하는 단계 및 상기 실루엣 평가값에 기반하여 클러스터 수를 획득하는 단계를 포함할 수 있다.
상기 중심 데이터를 설정하는 단계는 상기 산출된 상대적 비율을 최소값부터 최대값까지 순차적으로 배열한 후, 상기 클러스터 수만큼 추출하여 상기 데이터 중심을 선택할 수 있다.
상기 클러스터 수를 획득하는 단계는 상기 산출된 실루엣 평가값 중 가장 큰 k를 상기 클러스터 수로 선택할 수 있다.
상기 선호도를 기반으로 이웃 해를 탐색하는 단계는 상기 클러스터링 해에서 이웃하는 상기 초기 해 각각의 거리와, 상기 이웃하는 초기 해 각각의 상기 실루엣 평가값의 차이값을 이용하여 선호도를 산출하며, 상기 이웃하는 초기 해 사이의 서로 다른 선호도를 판단할 수 있다.
상기 선호도를 기반으로 이웃 해를 탐색하는 단계는 상기 이웃하는 초기 해 사이의 서로 다른 선호도를 기반으로 고려되는 선호도(attractiveness,
Figure 112018016796619-pat00001
)를 이용하여 이웃 해를 탐색할 수 있다.
상기 최적의 해를 획득하는 단계는 상기 탐색된 이웃 해에 대하여, 상기 클러스터링 해에 대한 상기 실루엣 평가값을 재 산출하여 상기 초기 해들을 업데이트할 수 있다.
상기 최적의 해를 획득하는 단계는 상기 실루엣 평가값이 기 설정된 종료 조건에 부합할 때, 상기 반딧불 알고리즘(Firefly Algorithm, FA)을 종료하여 상기 실루엣 평가값이 정수 1에 근접하는 상기 최적의 해를 도출할 수 있다.
본 발명의 실시예에 따른 반딧불 알고리즘을 이용하여 복수의 데이터들을 클러스터링하는 방법을 실행시키기 위해 컴퓨터로 읽을 수 있는 매체에 저장된 컴퓨터 프로그램에 있어서, 상기 반딧불 알고리즘을 이용하여 복수의 데이터들을 클러스터링하는 방법은 복수의 데이터들 각각이 복수의 클러스터들로 클러스터링되는 해와 관련하여, 상기 복수의 데이터들 사이의 거리 및 상기 복수의 데이터들 사이의 거리의 상대적 비율을 산출하여 상기 복수의 데이터들에 대한 초기 해를 생성하는 단계, 상기 산출된 상대적 비율로 인한 중심 데이터를 산출하며, 상기 복수의 데이터들이 상기 중심 데이터에 소속되도록 클러스터링 해를 생성하고, 상기 클러스터링 해에 대한 실루엣 평가값을 산출하는 단계, 상기 클러스터링된 초기 해 각각의 거리와 상기 실루엣 평가값의 차이값을 이용하여 선호도를 산출하며, 선호도를 기반으로 이웃 해를 탐색하는 단계, 상기 실루엣 평가값을 평가 기준으로 상기 탐색된 이웃 해 간의 상기 초기 해들을 업데이트하여 최적의 해를 획득하는 단계 및 상기 최적의 해를 참조하여 상기 복수의 데이터들을 상기 복수의 클러스터들로 최종 클러스터링하는 단계를 포함한다.
본 발명의 실시예에 따른 반딧불 알고리즘을 이용하여 복수의 데이터들을 클러스터링하는 시스템에 있어서, 복수의 데이터들 각각이 복수의 클러스터들로 클러스터링되는 해와 관련하여, 상기 복수의 데이터들 사이의 거리 및 상기 복수의 데이터들 사이의 거리의 상대적 비율을 산출하여 상기 복수의 데이터들에 대한 초기 해를 생성하는 생성부, 상기 산출된 상대적 비율로 인한 중심 데이터를 산출하며, 상기 복수의 데이터들이 상기 중심 데이터에 소속되도록 클러스터링 해를 생성하고, 상기 클러스터링 해에 대한 실루엣 평가값을 산출하는 산출부, 상기 클러스터링된 초기 해 각각의 거리와 상기 실루엣 평가값의 차이값을 이용하여 선호도를 산출하며, 선호도를 기반으로 이웃 해를 탐색하는 탐색부, 상기 실루엣 평가값을 평가 기준으로 상기 탐색된 이웃 해 간의 상기 초기 해들을 업데이트하여 최적의 해를 획득하는 획득부 및 상기 최적의 해를 참조하여 상기 복수의 데이터들을 상기 복수의 클러스터들로 최종 클러스터링하는 최종 클러스터링부를 포함한다.
상기 생성부는 상기 복수의 데이터들 중 p차원 특징을 나타내는 제i 데이터에서 제j 데이터까지의 거리(dij)를 산출하여 저장하는 거리 산출부, 상기 산출된 제i 데이터에서 제j 데이터까지의 거리(dij)의 합에서, 상기 복수의 데이터들에 대한 상기 제j 데이터까지의 거리의 상대적 비율(Vj)을 산출하는 상대적 비율 산출부 및 상기 산출된 상대적 비율을 확률적으로 적용하여 상기 복수의 데이터들에 대한 상기 초기 해를 생성하는 초기 해 생성부를 포함할 수 있다.
상기 산출부는 상기 복수의 데이터들의 상기 상대적 비율에 반비례하도록, 임의의 클러스터 수에 따른 상기 중심 데이터를 설정하는 중심 데이터 설정부, 상기 중심 데이터를 기반으로 상기 복수의 데이터들을 클러스터링하는 클러스터링부, 상기 클러스터링 해에 대한 상기 실루엣 평가값을 산출하는 실루엣 평가값 산출부 및 상기 실루엣 평가값에 기반하여 클러스터 수를 획득하는 클러스터 수 획득부를 포함할 수 있다.
상기 중심 데이터 설정부는 상기 산출된 상대적 비율을 최소값부터 최대값까지 순차적으로 배열한 후, 상기 클러스터 수만큼 추출하여 상기 데이터 중심을 선택할 수 있다.
상기 클러스터 수 획득부는 상기 산출된 실루엣 평가값 중 가장 큰 k를 상기 클러스터 수로 선택할 수 있다.
상기 탐색부는 상기 클러스터링 해에서 이웃하는 상기 초기 해 각각의 거리와, 상기 이웃하는 초기 해 각각의 상기 실루엣 평가값의 차이값을 이용하여 선호도를 산출하며, 상기 이웃하는 초기 해 사이의 서로 다른 선호도를 판단할 수 있다.
상기 탐색부는 상기 이웃하는 초기 해 사이의 서로 다른 선호도를 기반으로 고려되는 선호도(attractiveness,
Figure 112018016796619-pat00002
)를 이용하여 이웃 해를 탐색할 수 있다.
상기 획득부는 상기 탐색된 이웃 해에 대하여, 상기 클러스터링 해에 대한 상기 실루엣 평가값을 재 산출하여 상기 초기 해들을 업데이트할 수 있다.
상기 획득부는 상기 실루엣 평가값이 기 설정된 종료 조건에 부합할 때, 상기 반딧불 알고리즘(Firefly Algorithm, FA)을 종료하여 상기 실루엣 평가값이 정수 1에 근접하는 상기 최적의 해를 도출할 수 있다.
본 발명의 실시예에 따르면, 데이터에 대한 사전 정보가 없을 때, 실루엣 평가값을 적용하여 적절한 클러스터 수를 결정하고, 이에 적합한 최적의 클러스터링 해를 탐색할 수 있다.
또한, 본 발명의 실시예에 따르면, 복수의 데이터들의 상대적 비율을 확률적으로 적용하여 초기 해를 생성함으로써, 계산시간을 효율화할 수 있다.
또한, 본 발명의 실시예에 따르면, 초기 해(반딧불) 간의 거리를 고려하여 최적의 해를 탐색함으로써, 다양한 지역 최적해(local optimum)의 탐색을 효과적으로 수행할 수 있다.
도 1은 실시예에 따른 복수의 데이터들이 복수의 클러스터들로 클러스터링되는 데이터 클러스터링 문제 및 실루엣 목적 함수를 설명하기 위해 도시한 것이다.
도 2는 본 발명의 실시예에 따른 반딧불 알고리즘을 이용한 데이터 클러스터링 방법의 흐름도를 도시한 것이다.
도 3은 본 발명의 실시예에 따른 초기 해를 생성하는 단계의 흐름도를 도시한 것이다.
도 4는 본 발명의 실시예에 따른 실루엣 평가값을 산출하는 단계의 흐름도를 도시한 것이다.
도 5는 본 발명의 실시예에 따른 반딧불 알고리즘을 이용한 데이터 클러스터링 시스템의 세부 구성을 블록도로 도시한 것이다.
도 6은 본 발명의 실시예에 따른 생성부의 세부 구성을 블록도로 도시한 것이다.
도 7은 본 발명의 실시예에 따른 산출부의 세부 구성을 블록도로 도시한 것이다.
도 8은 임의의 10개의 데이터를 도시한 것이다.
도 9는 본 발명의 실시예에 따른 최적의 해를 탐색하는 과정을 설명하기 위해 도시한 것이다.
이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
또한, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 시청자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 실시예에 따른 복수의 데이터들이 복수의 클러스터들로 클러스터링되는 데이터 클러스터링 문제 및 실루엣 목적 함수를 설명하기 위해 도시한 것이다.
도 1을 참조하면, 데이터 클러스터링은 복수의 데이터들 각각의 복수의 클러스터들로 클러스터링 되는 문제의 해로서 수리적으로 정립화될 수 있다.
예를 들어, 복수의 데이터들이
Figure 112018016796619-pat00003
과 같이 n개의 데이터 집합으로 구성되고(각 데이터
Figure 112018016796619-pat00004
는 d 차원 특징(feature)로 구성되며, i번째 데이터의 특징 값은
Figure 112018016796619-pat00005
로 표현됨), 복수의 데이터들이 k개의 복수의 클러스터들(복수의 클러스터들 중 어느 하나의 클러스터 k는
Figure 112018016796619-pat00006
의 값을 가짐)로 클러스터링되는 경우, 복수의 데이터들이 복수의 클러스터들로 클러스터링되는 데이터 클러스터링 문제의 해는 [수식 1]과 같이 제1 논리값 또는 제2 논리값 중 어느 하나로 결정되는 이진 변수로 표현되는 매트릭스
Figure 112018016796619-pat00007
로 정의될 수 있다.
[수식 1]
Figure 112018016796619-pat00008
[수식 1]에서, i번째 데이터
Figure 112018016796619-pat00009
가 k번째 클러스터에 클러스터링되는 경우에
Figure 112018016796619-pat00010
는 1의 이진 변수로 표시되며, 그렇지 않는 경우에는 0의 이진 변수로 표시된다.
또한, 데이터 클러스터링 문제의 해는, 복수의 데이터들 각각이 복수의 클러스터들 중 하나의 클러스터에 클러스터링되는 조건 및 복수의 클러스터들 각각에 복수의 데이터들 중 적어도 하나 이상의 데이터가 클러스터링되는 조건을 만족해야 한다. 즉, 데이터 클러스터링 문제는 i번째 데이터
Figure 112018016796619-pat00011
가 하나의 클러스터에 클러스터링되는 것과 k번째 클러스터에 적어도 하나 이상의 데이터가 클러스터링되는 것을 전제로 한다.
이에, [수식 1]을 기반으로 i번째 데이터
Figure 112018016796619-pat00012
의 소속이 한 개의 클러스터에만 소속되는지에 대한 여부는 [수식 2]와 같이 표현된다.
[수식 2]
Figure 112018016796619-pat00013
또한, [수식 2]를 기반으로, k번째 클러스터에 적어도 하나 이상의 i번째 데이터
Figure 112018016796619-pat00014
가 포함되는 여부는 [수식 3]과 같이 표현된다.
[수식 3]
Figure 112018016796619-pat00015
한편, 데이터 클러스터링 문제에서 실루엣 평가 함수는, 복수의 클러스터들 각각 내에서 데이터들(동일한 클러스터로 클러스터링된 데이터들)이 얼마나 조밀하게 모여 있는지, 그리고 복수의 클러스터들 사이가 얼마나 뚜렷하게 구분되는지를 평가하는 평가 기준으로 사용된다. 따라서, 실루엣 평가 함수는 복수의 클러스터들 각각 내에서 데이터들 사이의 거리와 복수의 클러스터들 간 데이터들 사이의 거리로 표현될 수 있다.
보다 상세하게는, 클러스터 A에 클러스터링되어 있는 데이터
Figure 112018016796619-pat00016
와 클러스터 A에 클러스터링되어 있는 다른 데이터들 사이의 평균 거리
Figure 112018016796619-pat00017
는, 클러스터 A 내에서 데이터들이 조밀하게 모여있는 정도를 나타낸다. 예를 들어,
Figure 112018016796619-pat00018
가 작을수록 클러스터 A 내에서 데이터들이 조밀하게 모여있음을 의미한다.
또한, 클러스터 A와 다른 클러스터 B 및 C가 존재하고, 클러스터 A에 클러스터링되어 있는 i번째 데이터
Figure 112018016796619-pat00019
에서 다른 클러스터 B 및 C의 각 데이터들과의 평균 거리를 각각
Figure 112018016796619-pat00020
Figure 112018016796619-pat00021
라 할 때,
Figure 112018016796619-pat00022
는 [수식 4]와 같이, 클러스터 A에 클러스터링되어 있는 i번째 데이터
Figure 112018016796619-pat00023
에서 다른 클러스터 B 및 C의 각 데이터들 사이의 평균 거리 중 가장 작은 값을 의미한다. 예를 들어,
Figure 112018016796619-pat00024
Figure 112018016796619-pat00025
보다 작다면,
Figure 112018016796619-pat00026
가 된다.
[수식 4]
Figure 112018016796619-pat00027
[수식 4]에서,
Figure 112018016796619-pat00028
의 값이 클수록 클러스터들 간의 구별이 뚜렷함을 의미한다.
따라서, [수식 5]와 같이 표현되는 실루엣 값
Figure 112018016796619-pat00029
는 i번째 데이터
Figure 112018016796619-pat00030
가 클러스터링되어 있는 클러스터 내에서 데이터들 사이의 거리 및 i번째 데이터
Figure 112018016796619-pat00031
와 다른 클러스터(i번째 데이터
Figure 112018016796619-pat00032
가 클러스터링되어 있는 클러스터와 다른 클러스터)에 클러스터링된 데이터들 사이의 거리를 나타낸다.
[수식 5]
Figure 112018016796619-pat00033
즉, [수식 5]에서, 실루엣 값
Figure 112018016796619-pat00034
가 클수록 i번째 데이터
Figure 112018016796619-pat00035
가 클러스터링되어 있는 클러스터 내에서 데이터들은 조밀하게 모여 있고, i번째 데이터
Figure 112018016796619-pat00036
가 클러스터링되어 있는 클러스터와 다른 클러스터간 데이터들 사이가 뚜렷하게 구별됨을 의미한다.
이에, 복수의 데이터들 모두에 대해 실루엣 값
Figure 112018016796619-pat00037
을 산출하여 합한 값을 복수의 데이터들의 개수 n으로 나누면, 평균 실루엣 값
Figure 112018016796619-pat00038
이 [수식 6]과 같이 산출된다.
[수식 6]
Figure 112018016796619-pat00039
[수식 6]에서, 평균 실루엣 값
Figure 112018016796619-pat00040
이 1에 가까운 경우는 데이터 클러스터링이 매우 잘된 것을 의미하고, ­1에 가까운 경우는 데이터 클러스터링이 잘 되지 않음을 의미한다. 평균 실루엣 값
Figure 112018016796619-pat00041
이 0에 가까운 경우는 데이터 클러스터링에서 데이터 클러스터 소속이 불분명한 경우를 의미한다.
데이터 클러스터 과정에서 평균 실루엣 값
Figure 112018016796619-pat00042
이 계산되는 예시는 다음과 같다. 도면과 같이, 10개의 데이터들
Figure 112018016796619-pat00043
각각이 특징 a1과 a2로 구성되고, K=3으로 3개의 클러스터들로 10개의 데이터들이 클러스터링되어, 클러스터 1에 데이터 x1(1,1), x2(1,2), x3(2,1)가 클러스터링되고, 클러스터 2에 데이터 x4(5,6), x5(5,7), x6(6,6), x7(6,7)가 클러스터링되며, 클러스터 3에 데이터 x8(9,1), x9(10,1), x10(10,2)가 클러스터링된 경우, 클러스터 1에 속한 x1과 클러스터 1의 다른 데이터들과의 평균 거리 a(x1)이 1.207로 산출되고, 클러스터 1에 속한 데이터 x1에서 다른 클러스터 2의 각 데이터들과의 평균거리 d(x1,2)가 7.1238로 산출되며, 클러스터 1에 속한 데이터 x1에서 다른 클러스터 3의 각 데이터들과의 평균 거리 d(x1,3)가 8.7058로 산출될 수 있다.
이에, [수식 4]에 따라,
Figure 112018016796619-pat00044
이 7.1238로 산출되고, [수식 5]에 따라,
Figure 112018016796619-pat00045
이 0.8596으로 산출된다. 이와 같이,
Figure 112018016796619-pat00046
내지
Figure 112018016796619-pat00047
도 동일한 방식으로 산출되어, 최종적으로 [수기 6]에 의해 평균 실루엣 값
Figure 112018016796619-pat00048
이 0.8214로 산출될 수 있다.
이러한 평균 실루엣 값
Figure 112018016796619-pat00049
은 실루엣 목적 함수로서, 실시예에 따른 데이터 클러스터링 문제에서 평가 기준으로 활용될 수 있다.
구체적으로, 실시예에 따른 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템은, 데이터 클러스터링 중 클러스터 수를 결정하는 과정에서 실루엣 목적 함수
Figure 112018016796619-pat00050
를 이용할 수 있으며, 그룹 탐색 최적화(Group Search Optimization; GSO) 기법을 적용하는 과정에서 평가 기준으로 실루엣 목적 함수
Figure 112018016796619-pat00051
를 활용할 수 있다.
도 2는 본 발명의 실시예에 따른 반딧불 알고리즘을 이용한 데이터 클러스터링 방법의 흐름도를 도시한 것이고, 도 5는 본 발명의 실시예에 따른 반딧불 알고리즘을 이용한 데이터 클러스터링 시스템의 세부 구성을 블록도로 도시한 것이다.
도 2를 참조하면, 본 발명의 실시예에 따른 반딧불 알고리즘을 이용한 데이터 클러스터링 방법은 하드웨어 모듈인 반딧불 알고리즘을 이용한 데이터 클러스터링 시스템(500)에 의해 수행되는 것으로, 컴퓨터에서 판독 가능한 매체에 저장된 컴퓨터 프로그램의 형태로 구현될 수 있다.
이를 위해, 도 5에서 본 발명의 실시예에 따른 반딧불 알고리즘을 이용한 데이터 클러스터링 시스템(500)은 생성부(510), 산출부(520), 탐색부(530), 획득부(540) 및 최종 클러스터링부(550)를 포함한다. 또한, 도 2의 각 단계들(단계 210 내지 단계 250)은 도 5의 반딧불 알고리즘을 이용한 데이터 클러스터링 시스템(500)의 구성요소들 즉, 생성부(510), 산출부(520), 탐색부(530), 획득부(540) 및 최종 클러스터링부(550)에 의해 수행될 수 있다.
단계 210에서 생성부(510)는 복수의 데이터들 각각이 복수의 클러스터들로 클러스터링되는 해와 관련하여, 복수의 데이터들 사이의 거리 및 복수의 데이터들 사이의 거리의 상대적 비율을 산출하여 복수의 데이터들에 대한 초기 해를 생성한다.
이하에서는, 도 3 및 도 6을 참조하여 단계 210 및 생성부에 대해 상세히 설명하고자 한다.
도 3은 본 발명의 실시예에 따른 초기 해를 생성하는 단계의 흐름도를 도시한 것이고, 도 6은 본 발명의 실시예에 따른 생성부의 세부 구성을 블록도로 도시한 것이다.
도 6에서 본 발명의 실시예에 따른 생성부(510)는 거리 산출부(511), 상대적 비율 산출부(512) 및 초기 해 생성부(513)를 포함할 수 있다. 또한, 도 3의 각 단계들(단계 211 내지 단계 213)은 도 6의 본 발명의 실시예에 따른 생성부(510)의 구성요소들 즉, 거리 산출부(511), 상대적 비율 산출부(512) 및 초기 해 생성부(513)에 의해 수행될 수 있다.
단계 211에서 거리 산출부(511)는 복수의 데이터들 중 p차원 특징을 나타내는 제i 데이터에서 제j 데이터까지의 거리(dij)를 산출하여 저장할 수 있다. 이 때, p차원 특징은 제I 데이터의 특징 데이터인 제j 데이터를 나타낼 수 있다.
거리 산출부(511)는 하기의 [수식 7]을 사용하여 P개의 특징을 가진 복수의 데이터들 즉, 제i 데이터에서 제j 데이터까지의 거리를 산출하여 저장할 수 있다.
[수식 7]
Figure 112018016796619-pat00052
[수식 7]을 통해 거리 산출부(511)는 k개의 그룹으로 클러스터링된 n개의 데이터들 간의 거리 즉, 제i 데이터에서 제j 데이터까지의 거리를 산출할 수 있다. 이 때, p는 P차원(특징, feature)을 나타내며, a는 좌표를 나타낸다.
실시예에 따라서, 거리 산출부(511)는 [수식 7]을 통해 산출된 거리 값을 저장하고, 필요 시 재 사용할 수 있다.
단계 212에서 상대적 비율 산출부(512)는 산출된 제i 데이터에서 제j 데이터까지의 거리(dij)의 합에서, 복수의 데이터들에 대한 제j 데이터까지의 거리의 상대적 비율(Vj)을 산출할 수 있다.
상대적 비율 산출부(512)는 하기의 [수식 8]을 사용하여 복수의 데이터들에 대하여 제j 데이터까지의 거리의 상대적인 비율(Vj)을 산출할 수 있다.
[수식 8]
Figure 112018016796619-pat00053
이 때, [수식 8]을 통해 산출되는 상대적인 비율 값이 작을수록 해당 데이터 j가 클러스터링할 때 중심 데이터 역할을 하는 것이 유리할 수 있고, 실루엣 평가값이 좋은 해 탐색에 효과적으로 적용될 수 있다.
단계 213에서 초기 해 생성부(513)는 산출된 상대적 비율을 확률적으로 적용하여 복수의 데이터들에 대한 초기 해를 생성할 수 있다.
예를 들면, 초기 해 생성부(513)는 복수의 데이터들에서 제j 데이터까지의 거리의 상대적인 비율을 확률적으로 적용하여 상대적으로 향상된 초기 해를 생성할 수 있다. 이로 인해, 본 발명의 실시예에 따른 반딧불 알고리즘을 이용한 데이터 클러스터링 시스템(500)는 생성된 초기 해를 이용함으로써, 데이터의 복잡도가 크더라도 성능이 우수한 반딧불 알고리즘 출력이 가능하며, 계산시간을 효율화할 수 있다.
초기 해 생성부(513)는 초기 해들 중 실루엣 목적 함수를 최대화하는 초기 해의 클러스터 수를 최적의 클러스터 수로 결정할 수 있으며, 최적의 클러스터 수에 기초하여 초기 해들을 업데이트할 수 있다.
이 때, 초기 해 생성부(513)는 [수식 2]와 같이 정의되는 복수의 데이터들 각각이 복수의 클러스터들 중 하나의 클러스터에 클러스터링되는 조건과, [수식 3]과 같이 정의되는 복수의 클러스터들 각각에 복수의 데이터들 중 적어도 하나 이상의 데이터가 클러스터링되는 조건을 만족하도록 초기 해들을 임의로 생성할 수 있다.
다시 도 2 및 도 5를 참조하면, 단계 220에서 산출부(520)는 산출된 상대적 비율로 인한 중심 데이터를 산출하며, 복수의 데이터들이 중심 데이터에 소속되도록 클러스터링 해를 생성하고, 클러스터링 해에 대한 실루엣 평가값을 산출한다.
이하에서는, 도 4 및 도 7을 참조하여 단계 220 및 산출부에 대해 상세히 설명하고자 한다.
도 4는 본 발명의 실시예에 따른 실루엣 평가값을 산출하는 단계의 흐름도를 도시한 것이고, 도 7은 본 발명의 실시예에 따른 산출부의 세부 구성을 블록도로 도시한 것이다.
도 7에서 본 발명의 실시예에 따른 산출부(520)는 중심 데이터 설정부(521), 클러스터링부(522), 실루엣 평가값 산출부(523) 및 클러스터 수 획득부(524)를 포함할 수 있다. 또한, 도 4의 각 단계들(단계 221 내지 단계 224)은 도 7의 본 발명의 실시예에 따른 산출부(520)의 구성요소들 즉, 중심 데이터 설정부(521), 클러스터링부(522), 실루엣 평가값 산출부(523) 및 클러스터 수 획득부(524)에 의해 수행될 수 있다.
단계 221에서 중심 데이터 설정부(521)는 복수의 데이터들의 상대적 비율에 반비례하도록, 임의의 클러스터 수에 따른 중심 데이터를 설정할 수 있다.
도 1을 예로 들어 설명하면, 클러스터 수(K=3)와 데이터 수(n=10)의 매트릭스 W={Wik}로 해를 표현할 수 있으며, 도 9의 2차원(3*10) 해로 표현할 수 있다. 여기서, 중심 데이터 설정부(521)는 모든 데이터 i(xi)의 상대적 비율(Vj)에 반비례하도록 확률적으로 클러스터 수(K=3) 각각에 대한 클러스터의 중심 데이터를 선택할 수 있다.
보다 세부적으로, 중심 데이터 설정부(521)는 모든 데이터 i(xi)에 대하여 산출된 상대적 비율을 최소값부터 최대값까지 순차적으로 배열한 후, 클러스터 수만큼 가장 좋은 상대적 비율을 추출하여 데이터 중심을 선택할 수 있다. 이 때, 상기 가장 좋은 상대적 비율이란, [수식 8]에서 산출되는 상대적인 비율(Vj)을 나타내며, 모든 데이터에서 상대적으로 가깝게 위치해 있는 데이터로, 데이터의 중심에 위치할 확률이 높다.
단계 222에서 클러스터링부(522)는 중심 데이터를 기반으로 복수의 데이터들을 클러스터링할 수 있다. 예를 들면, 클러스터링부(522)는 중심 데이터와 다른 데이터와의 거리를 기반으로, 가장 근접한 중심 데이터로 복수의 데이터들을 클러스터링할 수 있다.
단계 223에서 실루엣 평가값 산출부(523)는 클러스터링 해에 대한 실루엣 평가값을 산출할 수 있다.
실루엣 평가값 산출부(523)는 복수의 데이터들 각각이 복수의 클러스터들로 클러스터링되는 문제의 해와 관련하여, 복수의 클러스터들 각각 내에서 데이터들 사이의 거리 및 복수의 클러스터들간 데이터들 사이의 거리와 관련된 실루엣 목적 함수를 설정할 수 있다.
구체적으로, 실루엣 평가값 산출부(523)는 [수식 4] 내지 [수식 6]을 통하여 정의되는 실루엣 목적 함수를 설정함으로써, 실루엣 평가값(또는 평균 실루엣 값)을 산출할 수 있고, 실루엣 평가값을 평가 기준으로 활용할 수 있다.
단계 224에서 클러스터 수 획득부(524)는 실루엣 평가값에 기반하여 클러스터 수를 획득할 수 있다.
클러스터 수 획득부(524)는 산출된 실루엣 평가값 중 가장 큰 k를 클러스터 수로 선택할 수 있다. 예를 들면, 클러스터 수 획득부(524)는 실루엣 평가값 산출부(523)에서 산출된 실루엣 평가값 중 가장 좋은 값을 나타내는 k를 클러스터 수로 선택할 수 있다.
예를 들면, 클러스터 수 획득부(524)는 [수식 6]의 평균 실루엣 값을 산출하는 과정과, [수식 9] 내지 [수식 11]의 반딧불 알고리즘을 이용하여 클러스터 2~K의 실루엣 평가값 중 정수 1에 가장 근접한 k를 클러스터 수로 선택할 수 있다.
본 발명의 실시예에 따른 반딧불 알고리즘을 이용한 데이터 클러스터링 시스템(500)은 반딧불 알고리즘(Firefly Algorithm, FA)에 실루엣 평가값을 적용하여 데이터를 클러스터링한다.
반딧불 알고리즘(FA)은 밝기(light)의 강도(intensity)에 따른 선호도(attractiveness)와 거리(distance)에 따른 해 탐색 방법으로, 각각의 초기 해(반딧불, firefly)가 좋은 실루엣 평가값을 갖는 해(이하에서는 '이웃 해'로 지칭함)에 대하여 선호도를 닮아가는 과정(탐색)에서, 거리를 동시에 고려할 수 있다. 즉, 본 발명의 실시예에 따른 반딧불 알고리즘(FA)은 밝기의 강도가 높은 반딧불을 닮기 위해 더 좋은 즉, 더 나은 실루엣 평가값을 갖는 이웃 해를 탐색하며, 동시에 가능한 가까운 거리에 위치하는 해의 선호도를 탐색할 수 있다.
이러한 경향은 전체 해 군을 자동적으로 지역 그룹으로 나누게 되고, 각 반딧불은 각 지역 그룹의 지역 최적해(local optimum)를 탐색하게 된다. 이 지역 최적해들 중 가장 좋은 해가 전역 최적해(global optimum)가 될 수 있다.
이에 따라서, 본 발명의 실시예에 따른 반딧불 알고리즘을 이용한 데이터 클러스터링 시스템에서, 각 반딧불(해)은 지역에서 가장 가까운 거리의 더 좋은 반딧불(해)를 닮아 해를 탐색하기 때문에, 각각의 지역 최적해 탐색능력이 다른 알고리즘과 비교할 때, 지역 최적해의 탐색능력이 상대적으로 뛰어나다. 그러므로, 반딧불 알고리즘을 이용한 데이터 클러스터링 시스템은 초기 해 군의 크기(population size)를 충분히 한다면, 동시에 지역 최적해 및 전역 최적해의 탐색이 가능하다.
다시 도 2 및 도 5를 참조하면, 단계 230에서 탐색부(530)는 클러스터링된 초기 해 각각의 거리와 실루엣 평가값의 차이값을 이용하여 선호도를 산출하며, 선호도를 기반으로 이웃 해를 탐색한다.
탐색부(530)는 클러스터링 해에서 이웃하는 초기 해 각각의 거리와, 이웃하는 초기 해 각각의 실루엣 평가값의 차이값을 이용하여 선호도를 산출하며, 이웃하는 초기 해 사이의 서로 다른 선호도를 판단할 수 있다.
이후, 탐색부(530)는 이웃하는 초기 해 사이의 실루엣 평가값의 차이값(
Figure 112018016796619-pat00054
, 빛 세기의 차이)과 거리(r, 해 간의 거리)를 고려하여 선호도(attractiveness,
Figure 112018016796619-pat00055
)를 산출함으로써, 이웃 해를 탐색할 수 있다.
예를 들면, 탐색부(530)는 하기의 [수식 9]를 이용하여 선호도(
Figure 112018016796619-pat00056
)를 산출할 수 있다.
[수식 9]
Figure 112018016796619-pat00057
여기서, r은 초기 해(반딧불) i와 j의 위치
Figure 112018016796619-pat00058
Figure 112018016796619-pat00059
의 거리를 나타내며,
Figure 112018016796619-pat00060
로 산출될 수 있다. 또한,
Figure 112018016796619-pat00061
은 초기 해(반딧불) i와 j 각각의 실루엣 평가값의 차이값(
Figure 112018016796619-pat00062
)을 나타낸다.
예를 들어, 초기 해
Figure 112018016796619-pat00063
의 실루엣 평가값
Figure 112018016796619-pat00064
이 초기 해
Figure 112018016796619-pat00065
의 실루엣 평가값
Figure 112018016796619-pat00066
보다 높은 경우, 초기 해
Figure 112018016796619-pat00067
가 초기 해
Figure 112018016796619-pat00068
Figure 112018016796619-pat00069
만큼 따라가려는 성향을 나타낼 수 있다. 이 때, 탐색부(530)는
Figure 112018016796619-pat00070
Figure 112018016796619-pat00071
의 거리를 동시에 고려하여 선호도
Figure 112018016796619-pat00072
를 산출함으로써, 이웃 해를 탐색할 수 있다.
일 실시 예로, 초기 해 i보다 더 좋은 이웃 해 j가 존재하는 경우, 초기 해 i가 이웃 해 j를 닮아가면서 더 좋은 해를 탐색하는 과정에서, 탐색부(530)는 하기의 [수식 10]을 이용할 수 있다.
[수식 10]
Figure 112018016796619-pat00073
실시 예로, 초기 해 i보다 더 좋은 이웃 해 j가 존재하지 않는 경우, 초기 해 i가 이웃 해를 탐색하는 과정에서, 탐색부(530)는 하기의 [수식 11]을 이용할 수 있다.
[수식 11]
Figure 112018016796619-pat00074
[수식 10] 및 [수식 11]을 일반화하면, 하기의 [수식 12]와 같다.
[수식 12]
Figure 112018016796619-pat00075
본 발명의 실시예에 따른 반딧불 알고리즘을 이용한 데이터 클러스터링 시스템(500)은 초기 해(반딧불) i와 j 각각의 실루엣 평가값 중에서 실루엣 평가값
Figure 112018016796619-pat00076
Figure 112018016796619-pat00077
보다 좋은 경우, 수렴 속도를 조절할 수 있는 파라미터
Figure 112018016796619-pat00078
를 적절하게 선택하여 초기 해
Figure 112018016796619-pat00079
Figure 112018016796619-pat00080
를 거리 r에 따라 탐색하도록 조정할 수 있다. 이와 같이, 반딧불 알고리즘을 이용한 데이터 클러스터링 시스템(500)은 거리를 고려하기 때문에 각 지역별 탐색 기능이 뛰어나며, 비선형, 멀티모달(Multi­Model) 최적화 문제에 적절히 적용될 수 있다.
[수식 11]을 적용할 때,
Figure 112018016796619-pat00081
일수록 실시예에 따른 반딧불 알고리즘은 수렴 속도가 낮고, 세밀한 탐색을 할 수 있다. 반면에,
Figure 112018016796619-pat00082
일수록 반딧불 알고리즘은 수렴 속도가 높고, 실루엣 평가값 차이인
Figure 112018016796619-pat00083
에 큰 영향을 받을 수 있다.
이로 인해, 초기 해는 자기 자신보다 더 좋은 해(높은 실루엣 평가값을 가지는 해)가 없을 경우, 해를 랜덤으로 탐색할 수 있다.
예를 들어, 초기 해 간의 거리를 고려하지 않는 경우(
Figure 112018016796619-pat00084
일 경우), 파티클 군집 최적화(Particle Swarm Optimization, PSO)는 반딧불 알고리즘(Firefly Algorithm, FA)의 특별한 케이스가 될 수 있다. 다시 말해, 반딧불 알고리즘(FA)은 파티클 군집 최적화(PSO)의 일반화된 최적화 방법이며, 파티클 군집 최적화(PSO)보다 더 향상된 방법일 수 있다.
반딧불 알고리즘(FA)은 거리를 고려하기 때문에, 파티클 군집 최적화(PSO)처럼 기존 지역 최선해(pbest)와 전역 최선해(gbest)를 무조건 모방하여 발생할 수 있는 잘못된 조기 수렴 위험을 최소화할 수 있다.
단계 240에서 획득부(540)는 실루엣 평가값을 평가 기준으로 탐색된 이웃 해 간의 초기 해들을 업데이트하여 최적의 해를 획득한다.
예를 들면, 획득부(540)는 탐색된 이웃 해뿐만 아니라, 초기 해를 포함하는 모든 클러스터링 해에 대한 실루엣 평가값을 재 산출하여 초기 해들을 업데이트하여 최적의 해를 획득할 수 있다.
단계 241에서 획득부(540)는 실루엣 평가값이 기 설정된 종료 조건에 부합할 때, 반딧불 알고리즘(Firefly Algorithm, FA)을 종료하며, 실루엣 평가값이 정수 1에 근접하는 최적의 해를 도출할 수 있다. 실시예에 따라서, 실루엣 평가값이 정수 1에 근접하지 않는 경우, 본 발명의 실시예에 따른 제어부(560)는 단계 220에서 산출부(520)를 통해 산출된 실루엣 평가값 중 가장 좋은 실루엣 평가값에 해당하는 k를 재 선택하여 탐색부(530) 및 획득부(540)를 통한 단계 230 및 단계 240를 반복 수행하도록 제어할 수 있다.
단계 250에서 최종 클러스터링부(550)는 최적의 해를 참조하여 복수의 데이터들을 복수의 클러스터들로 최종 클러스터링한다.
도 8은 임의의 10개의 데이터를 도시한 것이고, 도 9는 본 발명의 실시예에 따른 최적의 해를 탐색하는 과정을 설명하기 위해 도시한 것이다.
도 8을 참조하면, 데이터(510)는 클러스터 수(K=3)와 데이터 개수(n=10)에 따라 2차원(3*10)의 해로 테이블화되며, 각 데이터
Figure 112018016796619-pat00085
는 특징
Figure 112018016796619-pat00086
Figure 112018016796619-pat00087
로 표시될 수 있다.
도 9를 참조하면, 현재 해 군(solution population)에 해 1(
Figure 112018016796619-pat00088
, 910) 및 해 2(
Figure 112018016796619-pat00089
, 920)가 존재하며, 각각의 해(반딧불)의 실루엣 평가값은 0.562031 및 0.121688인 것을 확인할 수 있다.
해 1(910)이 해 2(920)보다 실루엣 평가값이 더 좋은 해이므로, 해 2(920)는 해 1(910)에 호감도를 갖고 탐색하여, 해 3(
Figure 112018016796619-pat00090
, 930)를 생성할 수 있다.
예를 들어, 초기 해들 중 실루엣 평가값을 최대화하는 해가 해 1(910)로 선택되고, 해 1(910) 상에서 복수의 데이터들 각각에 대한 난수(random number, 911)가 도면과 같이 (0, 1) 사이에서 생성되었다면, 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템은 미리 설정된 기준 확률인 0.3과 복수의 데이터들 각각에 대한 난수(911)를 비교하여, 0.3보다 작은 난수를 갖는 데이터
Figure 112018016796619-pat00091
Figure 112018016796619-pat00092
가 클러스터링되는 클러스터를 임의로 변경함으로써, 이웃 해인 새로운 해 3(930)을 생성할 수 있다.
본 발명의 실시예에 따른 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템은 최적의 해를 탐색하기 위해, 실루엣 평가값과 해 1(910) 및 해 2(920) 간의 거리 r(해 형태의 차이)를 고려한
Figure 112018016796619-pat00093
를 적용함으로써, 최적의 클러스터링 해를 탐색할 수 있다.
도 9를 참조하면, 해 1(910) 및 해2(920)의 거리 r은 데이터
Figure 112018016796619-pat00094
,
Figure 112018016796619-pat00095
,
Figure 112018016796619-pat00096
,
Figure 112018016796619-pat00097
이 각기 다른 클러스터에 소속되어 있으므로, 4로 산출될 수 있다.
일 예로, 해의 실루엣 평가값과 거리가 모두 고려되어, 탐색되는(닮아가는) 정도
Figure 112018016796619-pat00098
가 0.25라고 가정한다면, 도 9에서의 각 데이터에 확률이 0.25보다 작으면 해 2(920)는 해 1(910)을 닮아가고, 해당 데이터를 복사할 수 있다. 즉, 해 2(920)의
Figure 112018016796619-pat00099
Figure 112018016796619-pat00100
은 해 1(910)의
Figure 112018016796619-pat00101
Figure 112018016796619-pat00102
을 복사할 수 있으며, 해 2(920)의 실루엣 평가값 0.121688은 해 3(930)로 변화하여 더 좋은 실루엣 평가값 0.577213을 갖는 최적의 해로 개선될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable 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), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (19)

  1. IOT 기기들로부터 수집된 복수의 데이터들을 분석하여 최적화 해를 구하기 위하여 상기 복수의 데이터들을 클러스터링하는 데이터 클러스터링 시스템의 데이터 클러스터링 방법에 있어서,
    상기 데이터 클러스터링 시스템은 프로세서 및 저장 장치에 의해 구현되는 생성부, 산출부, 탐색부, 획득부 및 최종 클러스터링부를 포함하고,
    상기 생성부에 의해, 복수의 데이터들 각각이 복수의 클러스터들로 클러스터링되는 해와 관련하여, 상기 복수의 데이터들 사이의 거리 및 상기 복수의 데이터들 사이의 거리의 상대적 비율을 산출하여 상기 복수의 데이터들에 대한 초기 해를 생성하는 단계;
    상기 산출부에 의해, 상기 산출된 상대적 비율로 인한 중심 데이터를 산출하며, 상기 복수의 데이터들이 상기 중심 데이터에 소속되도록 클러스터링 해를 생성하고, 상기 클러스터링 해에 대한 실루엣 평가값을 산출하는 단계;
    상기 탐색부에 의해, 상기 클러스터링된 초기 해 각각의 거리와 상기 실루엣 평가값의 차이값을 이용하여 선호도를 산출하며, 선호도를 기반으로 이웃 해를 탐색하는 단계;
    상기 획득부에 의해, 상기 실루엣 평가값을 평가 기준으로 상기 탐색된 이웃 해 간의 상기 초기 해들을 업데이트하여 최적의 해를 획득하는 단계; 및
    상기 최종 클러스터링부에 의해, 상기 최적의 해를 참조하여 상기 복수의 데이터들을 상기 복수의 클러스터들로 최종 클러스터링하는 단계를 포함하고,
    상기 초기 해를 생성하는 단계는
    상기 복수의 데이터들 중 p차원 특징을 나타내는 제i 데이터에서 제j 데이터까지의 거리(dij)를 산출하여 저장하는 단계;
    상기 산출된 제i 데이터에서 제j 데이터까지의 거리(dij)의 합에서, 상기 복수의 데이터들에 대한 상기 제j 데이터까지의 거리의 상대적 비율(Vj)을 산출하는 단계; 및
    상기 산출된 상대적 비율을 확률적으로 적용하여 상기 복수의 데이터들에 대한 상기 초기 해를 생성하는 단계
    를 포함하는 데이터 클러스터링 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 클러스터링 해에 대한 실루엣 평가값을 산출하는 단계는
    상기 복수의 데이터들의 상기 상대적 비율에 반비례하도록, 임의의 클러스터 수에 따른 상기 중심 데이터를 설정하는 단계;
    상기 중심 데이터를 기반으로 상기 복수의 데이터들을 클러스터링하는 단계;
    상기 클러스터링 해에 대한 상기 실루엣 평가값을 산출하는 단계; 및
    상기 실루엣 평가값에 기반하여 클러스터 수를 획득하는 단계
    를 포함하는 데이터 클러스터링 방법.
  4. 제3항에 있어서,
    상기 중심 데이터를 설정하는 단계는
    상기 산출된 상대적 비율을 최소값부터 최대값까지 순차적으로 배열한 후, 상기 클러스터 수만큼 추출하여 상기 중심 데이터을 선택하는 데이터 클러스터링 방법.
  5. 제3항에 있어서,
    상기 클러스터 수를 획득하는 단계는
    상기 산출된 실루엣 평가값 중 가장 큰 k를 상기 클러스터 수로 선택하는 데이터 클러스터링 방법.
  6. 제1항에 있어서,
    상기 선호도를 기반으로 이웃 해를 탐색하는 단계는
    상기 클러스터링 해에서 이웃하는 상기 초기 해 각각의 거리와, 상기 이웃하는 초기 해 각각의 상기 실루엣 평가값의 차이값을 이용하여 선호도를 산출하며, 상기 이웃하는 초기 해 사이의 서로 다른 선호도를 판단하는 데이터 클러스터링 방법.
  7. 제6항에 있어서,
    상기 선호도를 기반으로 이웃 해를 탐색하는 단계는
    상기 이웃하는 초기 해 사이의 서로 다른 선호도를 기반으로 고려되는 선호도(attractiveness,
    Figure 112019040906216-pat00103
    )를 이용하여 이웃 해를 탐색하는 데이터 클러스터링 방법.
  8. 제1항에 있어서,
    상기 최적의 해를 획득하는 단계는
    상기 탐색된 이웃 해에 대하여, 상기 클러스터링 해에 대한 상기 실루엣 평가값을 재 산출하여 상기 초기 해들을 업데이트하는 데이터 클러스터링 방법.
  9. 제8항에 있어서,
    상기 최적의 해를 획득하는 단계는
    상기 실루엣 평가값이 기 설정된 종료 조건에 부합할 때, 반딧불 알고리즘(Firefly Algorithm, FA)을 종료하여 상기 실루엣 평가값이 정수 1에 근접하는 상기 최적의 해를 도출하는 데이터 클러스터링 방법.
  10. 삭제
  11. IOT 기기들로부터 수집된 복수의 데이터들을 분석하여 최적화 해를 구하기 위하여 상기 복수의 데이터들을 클러스터링하는 데이터 클러스터링 시스템에 있어서,
    상기 데이터 클러스터링 시스템은 프로세서 및 저장 장치에 의해 구현되며,
    복수의 데이터들 각각이 복수의 클러스터들로 클러스터링되는 해와 관련하여, 상기 복수의 데이터들 사이의 거리 및 상기 복수의 데이터들 사이의 거리의 상대적 비율을 산출하여 상기 복수의 데이터들에 대한 초기 해를 생성하는 생성부;
    상기 산출된 상대적 비율로 인한 중심 데이터를 산출하며, 상기 복수의 데이터들이 상기 중심 데이터에 소속되도록 클러스터링 해를 생성하고, 상기 클러스터링 해에 대한 실루엣 평가값을 산출하는 산출부;
    상기 클러스터링된 초기 해 각각의 거리와 상기 실루엣 평가값의 차이값을 이용하여 선호도를 산출하며, 선호도를 기반으로 이웃 해를 탐색하는 탐색부;
    상기 실루엣 평가값을 평가 기준으로 상기 탐색된 이웃 해 간의 상기 초기 해들을 업데이트하여 최적의 해를 획득하는 획득부; 및
    상기 최적의 해를 참조하여 상기 복수의 데이터들을 상기 복수의 클러스터들로 최종 클러스터링하는 최종 클러스터링부를 포함하고,
    상기 생성부는
    상기 복수의 데이터들 중 p차원 특징을 나타내는 제i 데이터에서 제j 데이터까지의 거리(dij)를 산출하여 저장하는 거리 산출부;
    상기 산출된 제i 데이터에서 제j 데이터까지의 거리(dij)의 합에서, 상기 복수의 데이터들에 대한 상기 제j 데이터까지의 거리의 상대적 비율(Vj)을 산출하는 상대적 비율 산출부; 및
    상기 산출된 상대적 비율을 확률적으로 적용하여 상기 복수의 데이터들에 대한 상기 초기 해를 생성하는 초기 해 생성부
    를 포함하는 데이터 클러스터링 시스템.
  12. 삭제
  13. 제11항에 있어서,
    상기 산출부는
    상기 복수의 데이터들의 상기 상대적 비율에 반비례하도록, 임의의 클러스터 수에 따른 상기 중심 데이터를 설정하는 중심 데이터 설정부;
    상기 중심 데이터를 기반으로 상기 복수의 데이터들을 클러스터링하는 클러스터링부;
    상기 클러스터링 해에 대한 상기 실루엣 평가값을 산출하는 실루엣 평가값 산출부; 및
    상기 실루엣 평가값에 기반하여 클러스터 수를 획득하는 클러스터 수 획득부
    를 포함하는 데이터 클러스터링 시스템.
  14. 제13항에 있어서,
    상기 중심 데이터 설정부는
    상기 산출된 상대적 비율을 최소값부터 최대값까지 순차적으로 배열한 후, 상기 클러스터 수만큼 추출하여 상기 중심 데이터을 선택하는 데이터 클러스터링 시스템.
  15. 제13항에 있어서,
    상기 클러스터 수 획득부는
    상기 산출된 실루엣 평가값 중 가장 큰 k를 상기 클러스터 수로 선택하는 데이터 클러스터링 시스템.
  16. 제11항에 있어서,
    상기 탐색부는
    상기 클러스터링 해에서 이웃하는 상기 초기 해 각각의 거리와, 상기 이웃하는 초기 해 각각의 상기 실루엣 평가값의 차이값을 이용하여 선호도를 산출하며, 상기 이웃하는 초기 해 사이의 서로 다른 선호도를 판단하는 데이터 클러스터링 시스템.
  17. 제16항에 있어서,
    상기 탐색부는
    상기 이웃하는 초기 해 사이의 서로 다른 선호도를 기반으로 고려되는 선호도(attractiveness,
    Figure 112019040906216-pat00104
    )를 이용하여 이웃 해를 탐색하는 데이터 클러스터링 시스템.
  18. 제11항에 있어서,
    상기 획득부는
    상기 탐색된 이웃 해에 대하여, 상기 클러스터링 해에 대한 상기 실루엣 평가값을 재 산출하여 상기 초기 해들을 업데이트하는 데이터 클러스터링 시스템.
  19. 제18항에 있어서,
    상기 획득부는
    상기 실루엣 평가값이 기 설정된 종료 조건에 부합할 때, 반딧불 알고리즘(Firefly Algorithm, FA)을 종료하여 상기 실루엣 평가값이 정수 1에 근접하는 상기 최적의 해를 도출하는 데이터 클러스터링 시스템.
KR1020180019178A 2018-02-19 2018-02-19 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템 KR102039244B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180019178A KR102039244B1 (ko) 2018-02-19 2018-02-19 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180019178A KR102039244B1 (ko) 2018-02-19 2018-02-19 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20190105147A KR20190105147A (ko) 2019-09-16
KR102039244B1 true KR102039244B1 (ko) 2019-11-26

Family

ID=68067236

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180019178A KR102039244B1 (ko) 2018-02-19 2018-02-19 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102039244B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102372252B1 (ko) * 2020-05-15 2022-03-08 강원대학교산학협력단 실루엣 평가 함수를 적용한 빠른 시뮬레이티드어닐링 데이터 클러스터링 방법 및 그 장치
KR102372251B1 (ko) * 2020-05-15 2022-03-08 강원대학교산학협력단 전역 최적화를 위한 강건한 k-평균 방법 및 그 장치
KR102635503B1 (ko) * 2021-07-23 2024-02-07 서울대학교산학협력단 마르코프 체인 몬테 카를로 샘플링의 초기값 결정 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101402808B1 (ko) * 2012-09-18 2014-07-08 한국과학기술원 익명화를 위한 시드 선택 방법, 익명화 방법 및 이를 이용하는 정보 보호 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
비특허문헌(한국경영과학회지)

Also Published As

Publication number Publication date
KR20190105147A (ko) 2019-09-16

Similar Documents

Publication Publication Date Title
US10467526B1 (en) Artificial intelligence system for image similarity analysis using optimized image pair selection and multi-scale convolutional neural networks
US10679055B2 (en) Anomaly detection using non-target clustering
KR20210093931A (ko) 기계 학습 모델의 자동화된 생성
Saikia et al. Global Feature Tracking and Similarity Estimation in Time‐Dependent Scalar Fields
KR102039244B1 (ko) 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템
WO2022088390A1 (zh) 图像的增量聚类方法、装置、电子设备、存储介质及程序产品
CN107291760A (zh) 无监督的特征选择方法、装置
Thomas et al. Detecting symmetry in scalar fields using augmented extremum graphs
Wu et al. CLARE: A semi-supervised community detection algorithm
Mashtalir et al. Spatio-temporal video segmentation
CN106033425A (zh) 数据处理设备和数据处理方法
US20120095986A1 (en) Runtime optimization of spatiotemporal events processing background
Fang et al. Robust image clustering via context-aware contrastive graph learning
CN113641906A (zh) 基于资金交易关系数据实现相似目标人员识别处理的系统、方法、装置、处理器及其介质
Shehab et al. Toward feature selection in big data preprocessing based on hybrid cloud-based model
Sawas et al. A versatile computational framework for group pattern mining of pedestrian trajectories
Wang et al. An improved simplified PCNN model for salient region detection
KR102264969B1 (ko) 빅데이터 분석을 위한 시장 세분화 반딧불 알고리즘 방법 및 시스템
Ripon et al. A multi-objective evolutionary algorithm for color image segmentation
US20230229570A1 (en) Graph machine learning for case similarity
CN112906824B (zh) 车辆聚类方法、系统、设备及存储介质
KR101953479B1 (ko) 거리의 상대적 비율을 적용한 그룹 탐색 최적화 데이터 클러스터링 방법 및 시스템
Suresh et al. An ensemble feature selection model using fast convergence ant colony optimization algorithm
Stojanova Considering autocorrelation in predictive models
Wang et al. Active community detection in massive graphs

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