KR102081722B1 - 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법 및 장치 - Google Patents

병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법 및 장치 Download PDF

Info

Publication number
KR102081722B1
KR102081722B1 KR1020130036933A KR20130036933A KR102081722B1 KR 102081722 B1 KR102081722 B1 KR 102081722B1 KR 1020130036933 A KR1020130036933 A KR 1020130036933A KR 20130036933 A KR20130036933 A KR 20130036933A KR 102081722 B1 KR102081722 B1 KR 102081722B1
Authority
KR
South Korea
Prior art keywords
frequent
pattern
closed
frequent pattern
projection data
Prior art date
Application number
KR1020130036933A
Other languages
English (en)
Other versions
KR20140120711A (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 KR1020130036933A priority Critical patent/KR102081722B1/ko
Publication of KR20140120711A publication Critical patent/KR20140120711A/ko
Application granted granted Critical
Publication of KR102081722B1 publication Critical patent/KR102081722B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법 및 장치에 관한 것으로, 일 양상에 따른 닫힌 빈발 패턴 마이닝 방법은 데이터베이스에서 빈발 아이템을 접두 패턴으로 하는 투영 데이터를 생성하여 저장하는 단계, 상기 저장된 투영 데이터간의 우선 순위에 따라 상기 저장된 투영 데이터를 복수의 프로세싱 노드에 할당하는 단계, 상기 할당된 투영 데이터를 이용하여 빈발 패턴을 생성하는 단계, 상기 빈발 패턴을 닫힌 빈발 패턴 리스트와 비교하여 상기 닫힌 빈발 패턴 리스트를 갱신하는 단계 및 상기 빈발 패턴이 상기 닫힌 빈발 패턴 리스트에 추가된 경우, 상기 빈발 패턴을 접두 패턴으로 하는 투영 데이터를 생성하여 저장하는 단계를 포함할 수 있다.

Description

병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법 및 장치{METHOD AND APPARATUS FOR MINING CLOSED FREQUENT PATTERN USING PARARELL PROCESSING}
병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법 및 장치와 관련된다.
인터넷을 비롯한 IT 기술의 발달과 함께 축적되는 데이터의 양은 기하급수적으로 증가하고 있다. 이런 거대한 데이터를 분석해서 유용한 정보를 추출하는 일은 점점 어려워지고 있다. 이를 해결하려는 노력의 일환으로 데이터 마이닝 기법들이 연구 개발되어 각광을 받고 있다.
데이터 마이닝 기법들 중에서 연관관계 마이닝(association rules mining) 기법은 데이터 내의 아이템(item)들이 어떻게 연관되어 있는지 규칙을 찾아내는 기법이다. 이를 위해 먼저 빈발 패턴(frequent pattern)을 찾아내고 이로부터 연관관계 규칙을 찾아낸다. 그러나 데이터의 양이 증가함에 따라 추출되는 빈발 패턴의 수도 증가하여, 최근에는 빈발 패턴의 수 자체도 너무 많아서 분석이 곤란한 상황에 이르렀다. 이에 닫힌 빈발 패턴(closed frequent pattern)이라는 많은 수의 빈발 패턴을 하나의 패턴으로 표현하는 개념이 제안되었다.
닫힌 빈발 패턴을 추출하기 위해, 초기에는 모든 빈발 패턴을 발견한 후 발견된 빈발 패턴에서 닫힌 빈발 패턴을 찾아냈으나 빈발 패턴을 추출하는데 시간이 너무 오래 걸리고 많은 빈발 패턴들이 결국에는 하나의 닫힌 빈발 패턴으로 압축되기 때문에 비효율적이었다. 그래서 데이터로부터 직접 닫힌 빈발 패턴들을 추출하는 기법들이 개발되었다.
기본적으로 닫힌 빈발 패턴을 찾아내는 알고리즘들은 지수 시간 복잡도(exponential time complexity)를 가진다. 모든 가능한 패턴들을 깊이 우선 방식(depth-first search method)이나 너비 우선 방식(width-first search method)으로 탐색하면서 원하는 닫힌 빈발 패턴인지를 검사한다. 이 때 탐색되는 방식을 이용하여 검사되는 패턴들을 트리 형태로 구조화해서 나열할 수 있는데, 닫힌 빈발 패턴의 정의에 의해 특정 패턴을 루트로 하는 서브 트리에 속한 패턴들이 모두 닫힌 빈발 패턴이 아닐 수 있다. 이를 얼마나 빨리 직접적인 탐색 없이 알아낼 수 있느냐에 따라 알고리즘의 성능이 크게 좌우된다.
병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법 및 장치를 제공하는 것을 목적으로 한다.
일 양상에 따른 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법은 데이터베이스에서 빈발 아이템을 접두 패턴으로 하는 투영 데이터를 생성하여 저장하는 단계, 상기 저장된 투영 데이터간의 우선 순위에 따라 상기 저장된 투영 데이터를 복수의 프로세싱 노드에 할당하는 단계, 상기 할당된 투영 데이터를 이용하여 빈발 패턴을 생성하는 단계, 상기 빈발 패턴을 닫힌 빈발 패턴 리스트와 비교하여 상기 닫힌 빈발 패턴 리스트를 갱신하는 단계 및 상기 빈발 패턴이 상기 닫힌 빈발 패턴 리스트에 추가된 경우, 상기 빈발 패턴을 접두 패턴으로 하는 투영 데이터를 생성하여 저장하는 단계를 포함할 수 있다.
일 양상에 따르면, 상기 할당하는 단계는 상기 저장된 투영 데이터의 접두 패턴을 기준으로 깊이 우선 탐색 순서에 따라 상기 저장된 투영 데이터를 할당할 수 있다.
일 양상에 따르면, 상기 데이터베이스에서 빈발 아이템을 접두 패턴으로 하는 투영 데이터를 생성하여 저장하는 단계는 상기 데이터베이스에서 빈발 아이템을 찾는 단계, 상기 빈발 아이템을 접두 패턴으로 하는 투영 데이터를 생성하는 단계 및 상기 생성된 투영 데이터를 저장하는 단계를 포함할 수 있다.
일 양상에 따르면, 상기 빈발 패턴을 생성하는 단계는 상기 할당된 투영 데이터에서 빈발 아이템을 찾는 단계 및 상기 할당된 투영 데이터의 접두 패턴과 상기 할당된 투영 데이터의 빈발 아이템을 결합하여 빈발 패턴을 생성하는 단계를 포함할 수 있다.
일 양상에 따르면, 상기 닫힌 빈발 패턴 리스트를 갱신하는 단계는 상기 닫힌 빈발 패턴 리스트에 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 후보가 존재하는지 여부에 따라 상기 닫힌 빈발 패턴 리스트를 갱신할 수 있다.
일 양상에 따르면, 상기 닫힌 빈발 패턴 리스트를 갱신하는 단계는 상기 닫힌 빈발 패턴 리스트에 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 상기 빈발 패턴을 상기 닫힌 빈발 패턴 리스트에 추가할 수 있다.
일 양상에 따르면, 상기 닫힌 빈발 패턴 리스트를 갱신하는 단계는 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 상기 빈발 패턴을 부분집합으로 하는 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 상기 빈발 패턴을 상기 닫힌 빈발 패턴 리스트에 추가할 수 있다.
일 양상에 따르면, 상기 닫힌 빈발 패턴 리스트를 갱신하는 단계는 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 상기 빈발 패턴의 지지 레코드와 동일한 지지 레코드를 가진 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 상기 빈발 패턴을 상기 닫힌 빈발 패턴 리스트에 추가할 수 있다.
일 양상에 따르면, 상기 닫힌 빈발 패턴 리스트를 갱신하는 단계는 상기 빈발 패턴의 지지도가 미리 설정된 값 미만인 경우, 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 상기 빈발 패턴의 지지 레코드와 동일한 지지 레코드를 가진 닫힌 빈발 패턴 후보가 존재하는지 여부를 판단하고, 상기 빈발 패턴의 지지도가 미리 설정된 값 이상인 경우, 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 상기 빈발 패턴을 부분집합으로 하는 닫힌 빈발 패턴 후보가 존재하는지 여부를 판단할 수 있다.
일 양상에 따르면, 상기 빈발 패턴을 접두 패턴으로 하는 투영 데이터를 생성하여 저장하는 단계는 상기 저장된 투영 데이터의 수가 미리 설정된 값 이상인 경우, 상기 할당받은 투영 데이터로부터 하나의 투영 데이터만을 생성하고, 상기 할당 받은 투영 데이터를 다음에 투영할 빈발 아이템과 함께 저장할 수 있다.
일 양상에 따른 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 장치는 복수의 프로세싱 노드에서 생성된 투영 데이터를 저장하고, 저장된 투영 데이터를 우선 순위에 따라 복수의 프로세싱 노드에 할당하는 투영 데이터 제공부, 닫힌 빈발 패턴 후보를 포함하는 닫힌 빈발 패턴 리스트를 저장하는 닫힌 빈발 패턴 관리부 및 상기 투영 데이터 제공부로부터 할당된 투영 데이터를 이용하여 빈발 패턴을 생성하여 상기 닫힌 빈발 패턴 리스트를 갱신하고, 상기 빈발 패턴이 상기 닫힌 빈발 패턴 리스트에 추가된 경우, 상기 빈발 패턴을 접두 패턴으로 하는 투영 데이터를 생성하는 복수의 프로세싱 노드를 포함할 수 있다.
일 양상에 따르면, 상기 투영 데이터 제공부는 상기 저장된 투영 데이터의 접두 패턴을 기준으로 깊이 우선 탐색 순서에 따라 상기 저장된 투영 데이터를 할당할 수 있다.
일 양상에 따르면, 상기 복수의 프로세싱 노드 중 임의의 하나의 프로세싱 노드는 데이터베이스에서 빈발 아이템을 찾은 후, 상기 빈발 아이템을 접두 패턴으로 하는 투영 데이터를 생성할 수 있다.
일 양상에 따르면, 상기 복수의 프로세싱 노드는 상기 할당된 투영 데이터에서 빈발 아이템을 찾은 후, 찾은 빈발 아이템을 상기 할당된 투영 데이터의 접두 패턴과 결합하여 빈발 패턴을 생성할 수 있다.
일 양상에 따르면, 상기 복수의 프로세싱 노드는 상기 닫힌 빈발 패턴 리스트에 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 후보가 존재하는지 여부에 따라 상기 닫힌 빈발 패턴 리스트를 갱신할 수 있다.
일 양상에 따르면, 상기 복수의 프로세싱 노드는 상기 닫힌 빈발 패턴 리스트에 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 상기 빈발 패턴을 상기 닫힌 빈발 패턴 리스트에 추가할 수 있다.
일 양상에 따르면, 상기 복수의 프로세싱 노드는 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 중 상기 빈발 패턴을 부분집합으로 포함하는 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 상기 빈발 패턴을 상기 닫힌 빈발 패턴 리스트에 추가할 수 있다.
일 양상에 따르면, 상기 복수의 프로세싱 노드는 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 후보 중 상기 빈발 패턴의 지지 레코드와 동일한 지지 레코드를 가진 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 상기 빈발 패턴을 상기 닫힌 빈발 패턴 리스트에 추가할 수 있다.
일 양상에 따르면, 상기 복수의 프로세싱 노드는 상기 빈발 패턴의 지지도가 미리 설정된 값 미만인 경우, 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 상기 빈발 패턴의 지지 레코드와 동일한 지지 레코드를 가진 닫힌 빈발 패턴 후보가 존재하는지 여부를 판단하고, 상기 빈발 패턴의 지지도가 미리 설정된 값 이상인 경우, 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 상기 빈발 패턴을 부분집합으로 하는 닫힌 빈발 패턴 후보가 존재하는지 여부를 판단할 수 있다.
일 양상에 따르면, 상기 복수의 프로세싱 노드는 상기 투영 데이터 제공부에 저장된 투영 데이터의 수가 미리 설정된 값 이상인 경우, 상기 할당 받은 투영 데이터로부터 하나의 투영 데이터만을 생성하고, 상기 할당 받은 투영 데이터를 다음에 투영할 빈발 아이템과 함께 저장할 수 있다.
병렬화를 통해 닫힌 빈발 패턴 마이닝에 걸리는 시간을 줄일 수 있다.
나아가, 닫힌 빈발 패턴일 가능성이 높은 빈발 패턴을 우선적으로 생성하도록 하여 닫힌 빈발 패턴 마이닝을 위한 탐색 공간을 줄일 수 있다.
도 1은 투영 데이터를 설명하기 위한 예시도,
도 2는 일 실시예에 따른 병렬 처리를 이용한 닫힌 빈발패턴 마이닝 장치의 구성도,
도 3a 내지 도 3f는 깊이 우선 탐색 방법에 따른 병렬 처리과정을 설명하기 위한 예시도,
도 4는 닫힌 빈발 패턴 리스트의 예시도,
도 5는 데이터베이스에서 투영 데이터를 생성하는 과정을 나타내는 순서도,
도 6은 복수의 프로세싱 노드에 의한 닫힌 빈발 패턴 마이닝 과정을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.
도 1은 투영 데이터를 설명하기 위한 예시도이다.
도 1을 참조하면, 도시된 예에서 예시적인 데이터베이스(110)와 빈발 아이템 a를 접두 패턴으로 하는 투영 데이터(120), 빈발 아이템 b를 접두 패턴으로 하는 투영 데이터(130) 및 빈발 아이템 c를 접두 패턴으로 하는 투영 데이터(140)가 각각 도시되어 있다.
빈발 아이템은 사용자가 정의한 최소 지지도(minimum support)를 만족하는 아이템을 의미한다. 또한, 최소 지지도를 만족하는 패턴을 빈발 패턴(frequent pattern)이라고 하며, 패턴은 각각의 아이템들의 집합을 의미한다.
한편, 지지도(support)는 특정 패턴을 포함하는 레코드의 수를 의미하며, 최소 지지도는 특정 패턴이 빈발 패턴이 되기 위해 요구되는 지지도의 최소 값을 의미한다.
도시된 예에서 최소 지지도가 2인 경우, 데이터베이스(110)에서 빈발 아이템은 a, b 및 c이다.
한편, 투영 데이터(projection data)는 데이터베이스에서 특정 빈발 아이템 또는 특정 빈발 패턴을 접두 패턴으로 하는 패턴들을 가지는 레코드를 모은 집합을 의미한다.
예를 들어, 도 1에서 a를 접두 패턴으로 하는 투영 데이터(120)는 데이터베이스에서 a를 접두 패턴으로 포함하는 패턴들과 각각의 패턴을 가지는 레코드를 포함한다. 이때, 접두 패턴 a는 투영 데이터에 포함된 모든 패턴에 대해 나타나므로, 별도로 표시하지 않을 수 있다.
한편, 데이터베이스(110)는 예를 들어 고객별 구입 아이템의 집합일 수 있다. 이때, 레코드는 고객의 식별정보일 수 있고, 각각의 아이템은 고객이 구입한 상품을 의미할 수 있다.
또 다른 예로 데이터베이스(110)는 환자의 건강 검진 데이터를 나타낸 것일 수 있다. 이때, 레코드는 환자의 식별 정보이며, 각각의 아이템은 건강 검진 데이터를 나타낸 것일 수 있다. 다만, 데이터베이스(110)는 예시된 것에 한정되는 것은 아니다.
도 2는 일 실시예에 따른 병렬 처리를 이용한 닫힌 빈발패턴 마이닝 장치의 구성도이다.
도 2를 참조하면, 일 실시예에 따른 빈발 패턴 마이닝 장치(200)는 복수의 프로세싱 노드(210)를 포함할 수 있다.
일 실시예에 따르면, 각각의 프로세싱 노드(210)는 멀티코어 프로세서에 포함되는 각각의 코어일 수 있다.
또 다른 실시예에 따르면, 각각의 프로세싱 노드(210)는 싱글 코어 프로세서일 수 있다.
또 다른 실시예에 따르면, 프로세싱 노드(210)는 분산 컴퓨팅 환경을 구성하는 각각의 컴퓨팅 장치일 수 있다.
복수의 프로세싱 노드(210)는 투영 데이터 제공부(230)에서 닫힌 빈발 패턴을 마이닝하기 위한 작업(job)을 할당 받아 병렬적으로 처리할 수 있다.
구체적으로, 복수의 프로세싱 노드(210)는 투영 데이터 제공부(230)로부터 투영 데이터를 할당 받아 빈발 패턴을 생성하고, 생성된 빈발 패턴이 닫힌 빈발 패턴(closed frequent pattern)인지 여부를 판단할 수 있다.
이때, 빈발 패턴 중 동일한 지지도를 가진 다른 빈발 패턴에 포함되지 않는 빈발 패턴을 닫힌 빈발 패턴으로 정의할 수 있다.
일 실시예에 따르면, 복수의 프로세싱 노드(210) 중 임의의 하나의 프로세싱 노드는 데이터베이스에서 모든 빈발 아이템을 찾은 후 각각의 빈발 아이템을 접두 패턴으로 하는 투영 데이터를 생성할 수 있다.
예를 들어, 도 1에 도시된 것과 같은 데이터베이스(110)가 주어지고, 최소 지지도가 2인 경우, 빈발 아이템은 a, b 및 c이며, a, b 및 c를 접두 패턴으로 하는 투영 데이터(120 내지 140)가 생성될 수 있다.
한편, 데이터베이스에서 빈발 아이템 탐색 및 빈발 아이템을 접두 패턴으로 하는 투영 데이터 생성은 복수의 프로세싱 노드(210) 중 임의의 하나의 프로세싱 노드에서 수행될 수 있다.
예를 들어, 현재 각 프로세싱 노드의 동작 상태 또는 각 프로세싱 노드의 성능을 고려하여 하나의 프로세싱 노드가 임의로 선택될 수 있다.
투영 데이터 제공부(230)는 프로세싱 노드(210)에서 생성된 투영 데이터를 저장하고, 저장된 투영 데이터 중 깊이 우선 탐색 방법(pseudo depth-first search method)에 따른 우선 순위가 높은 투영 데이터를 복수의 프로세싱 노드(210)에 우선적으로 제공할 수 있다.
한편, 일 실시예에 따르면, 투영 데이터 제공부(230)는 우선순위 큐(Priority Queue)로 구현될 수 있다. 이때, 우선 순위 큐는 투영 데이터의 접두 패턴을 키(key)로 하는 힙(heap)과 같은 자료구조에 기반하여 구현될 수 있다.
한편, 복수의 프로세싱 노드(210) 각각은 투영 데이터 제공부(230)로부터 투영 데이터를 제공 받아 빈발 패턴을 생성할 수 있다.
일 실시예에 따르면, 복수의 프로세싱 노드(210) 각각은 투영 데이터 제공부(230)에서 제공받은 투영 데이터에서 빈발 아이템을 찾은 후, 빈발 아이템을 투영 데이터의 접두 패턴과 결합하여 빈발 패턴을 생성할 수 있다.
예를 들어, 도 1을 참조하면, 접두 패턴 a에 대한 투영 데이터(120)에서 빈발 아이템은 b 및 c이다. 따라서, 접두 패턴 a에 대한 투영 데이터(120)를 제공받은 프로세싱 노드는 접두 패턴 a와 빈발 아이템 b 또는 c를 결합하여 빈발 패턴 {a, b}와 {a, c}를 생성할 수 있다.
또한, 접두 패턴 b에 대한 투영 데이터(130)에서 빈발 아이템은 c이다. 따라서, 접두 패턴 b에 대한 투영 데이터를 제공받은 프로세싱 노드는 접두 패턴 b와 빈발 아이템 c를 결합하여 빈발 패턴 {b, c}를 생성할 수 있다.
한편, 복수의 프로세싱 노드(210) 각각은 생성된 빈발 패턴을 접두 패턴으로 하는 투영 데이터를 생성하여 투영 데이터 제공부(230)에 저장할 수 있다.
한편, 빈발 패턴의 생성과 투영 데이터의 생성을 완료한 프로세싱 노드는 투영 데이터 제공부(230)에 저장된 투영 데이터 중 우선 순위가 가장 높은 투영 데이터를 제공받아 동일한 과정을 반복할 수 있다.
닫힌 빈발 패턴 관리부(250)는 닫힌 빈발 패턴 리스트를 저장할 수 있다.
일 실시예에 따르면, 복수의 프로세싱 노드(210) 각각은 생성된 빈발 패턴을 닫힌 빈발 패턴 리스트에 포함된 닫힌 빈발 패턴 후보들과 비교하여 닫힌 빈발 패턴 리스트를 갱신할 수 있다.
구체적으로, 복수의 프로세싱 노드(210) 각각은 닫힌 빈발 패턴 리스트 상에 포함되어 있는 닫힌 빈발 패턴 후보 중 각각의 프로세싱 노드에서 생성된 빈발 패턴과 동일한 지지도를 가지는 빈발 패턴 후보가 있는지 여부를 판단하여 닫힌 빈발 패턴 리스트를 갱신할 수 있다.
이때, 닫힌 빈발 패턴 리스트 상에 생성된 빈발 패턴과 동일한 지지도를 가지는 빈발 패턴 후보가 존재하지 않는 경우, 생성된 빈발 패턴은 닫힌 빈발 패턴일 가능성이 높으므로, 닫힌 빈발 패턴 리스트에 추가될 수 있다.
또한, 일 실시예에 따르면, 생성된 빈발 패턴과 동일한 지지도를 가지는 닫힌 빈발 패턴 후보 중 생성된 빈발 패턴을 부분집합으로 하는 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 생성된 빈발 패턴을 닫힌 빈발 패턴 리스트에 추가할 수 있다.
즉, 닫힌 빈발 패턴 리스트 상에 생성된 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 후보가 존재하지 않거나, 존재하더라도 생성된 빈발 패턴을 부분집합으로 포함하는 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 생성된 빈발 패턴은 닫힌 빈발 패턴일 가능성이 있으므로, 닫힌 빈발 패턴 리스트에 추가될 수 있다.
한편, 닫힌 빈발 패턴 후보 중 생성된 빈발 패턴과 동일한 지지도를 가지고 생성된 빈발 패턴에 부분집합으로 포함되는 닫힌 빈발 패턴 후보는 닫힌 빈발 패턴이 아닌 것으로 확정되므로 닫힌 빈발 패턴 리스트에서 삭제될 수 있다.
한편, 또 다른 실시예에 따르면, 생성된 빈발 패턴과 동일한 지지도를 가지는 닫힌 빈발 패턴 후보 중 생성된 빈발 패턴과 동일한 지지 레코드를 가지는 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 생성된 빈발 패턴을 닫힌 빈발 패턴 리스트에 추가할 수 있다.
반면, 생성된 빈발 패턴과 동일한 지지도를 가지는 닫힌 빈발 패턴 후보 중 생성된 빈발 패턴과 동일한 지지 레코드를 가지고 생성된 빈발 패턴을 부분집합으로 포함하는 닫힌 빈발 패턴 후보가 존재하는 경우, 생성된 빈발 패턴은 닫힌 빈발 패턴이 될 수 없으므로, 닫힌 빈발 패턴 리스트에 추가되지 않는다.
한편, 일 실시예에 따르면, 복수의 프로세싱 노드(210)는 생성된 빈발 패턴의 지지도가 미리 설정된 값 미만인 경우, 생성된 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 생성된 빈발 패턴의 지지 레코드와 동일한 지지 레코드를 가진 닫힌 빈발 패턴 후보가 존재하는지 여부를 판단할 수 있다.
이때, 생성된 빈발 패턴의 지지도가 미리 설정된 값 이상인 경우, 생성된 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 생성된 빈발 패턴을 부분집합으로 하는 닫힌 빈발 패턴 후보가 존재하는지 여부를 판단할 수 있다.
즉, 대체로 빈발 패턴의 길이가 길수록 지지도가 낮아지고, 빈발 패턴의 길이가 짧을수록 지지도가 커지므로, 빈발 패턴의 빈도가 일정 값 미만인 경우, 빈발 패턴의 지지 레코드와 닫힌 빈발 패턴 후보의 지지 레코드를 비교하도록 하여 연산량을 줄일 수 있다.
한편, 일 실시예에 따르면, 복수의 프로세싱 노드(210)는 생성된 빈발 패턴이 닫힌 빈발 패턴 리스트에 추가되지 않은 경우, 해당 빈발 패턴을 접두 패턴으로하는 투영 데이터를 생성하지 않음으로써, 탐색 공간을 줄일 수 있다.
도 3a 내지 도 3f는 깊이 우선 탐색 방법에 따른 병렬 처리과정을 설명하기 위한 예시도이다.
도 3a 내지 도 3f에서 도 1에 도시된 데이터베이스(110)와 동일한 데이터베이스가 주어진 것으로 가정하며, 최소 지지도는 2인 것으로 가정한다. 또한, 프로세싱 노드는 2 개가 존재하는 것으로 가정한다.
도 3a는 데이터베이스(110)에서 생성 가능한 빈발 패턴을 이용한 탐색 공간을 나타낸다. 도시된 예에서, 트리 상의 노드는 데이터베이스(110)에서 생성 가능한 빈발 패턴을 나타내며, 이는 투영 데이터의 접두 패턴이 될 수 있다.
한편, 깊이 우선 탐색 방법(depth-first search method)에 의하면, 도시된 예에서 {a}->{a, b}->{a, b, c}->{a, c}->{b}->{b, c}->{c}의 순서로 높은 우선 순위를 가진다.
이때, 일 실시예에 따르면, 빈발 아이템 간의 우선 순위는 지지도가 가장 낮은 빈발 아이템이 높은 우선 순위를 가지도록 정할 수 있다. 다만, 반드시 이에 한정되는 것은 아니며, 알파벳 순서 등 다양한 방법에 의해 정해질 수 있다.
한편, 도 3b 도 3f에 도시된 예에서는 빈발 아이템 간의 우선 순위는 알파벳 순서로 정해진 것으로 가정한다.
도 3b를 참조하면, 프로세싱 노드 1은 데이터베이스(110)에서 빈발 아이템을 찾을 수 있다. 도시된 예에서 빈발 아이템은 a, b 및 c이다.
이후, 각각의 빈발 아이템을 접두 패턴으로 하는 투영 데이터(Da, Db 및 Dc)를 생성할 수 있다. 이때, 생성된 투영 데이터는 도 1에 도시된 투영 데이터(120 내지 140)와 동일하다. 한편, 생성된 투영 데이터는 투영 데이터 제공부(230)에 저장될 수 있다.
이때, 일 실시예에 따르면, 투영 데이터 제공부(230)는 우선 순위 큐(300)를 이용하여 저장된 투영 데이터를 깊이 우선 탐색 방법에 따른 우선 순위에 따라 프로세싱 노드 1 및 2로 제공할 수 있다.
도 3c를 참조하면, 우선 순위 큐(300)에 저장된 투영 데이터 중 깊이 우선 탐색 방법에 따른 우선 순위가 높은 {a} 및 {b}를 접두 패턴으로 하는 투영 데이터 Da와 Db가 프로세싱 노드 1과 2에 우선적으로 할당된다.
도 3d 및 도 3e를 참조하면, 투영 데이터 Da와 Db를 각각 할당받은 프로세싱 노드 1 및 2는 할당받은 투영 데이터를 이용하여 빈발 패턴을 생성할 수 있다.
구체적으로 도 1을 참조하면, 투영 데이터 Da(120)에서 b와 c의 지지도가 최소 지지도 이상이므로, b와 c는 빈발 아이템이다. 따라서, 접두 패턴 a와 투영 데이터에서의 빈발 아이템 b 또는 c를 결합한 패턴 {a, b} 및 {a, c}는 빈발 패턴이 된다.
이후, 프로세싱 노드 1은 생성된 빈발 패턴을 접두 패턴으로 하는 투영 데이터 Dab 및 Dac를 생성하여 우선 순위 큐(300)에 저장할 수 있다.
마찬가지로, 프로세싱 노드 2는 투영 데이터 Db에서 빈발 아이템을 찾은 후 빈발 패턴을 생성할 수 있다. 도 1을 참조하면, 투영 데이터 Db(130)에서 c는 빈발 아이템이다. 따라서, {b, c}는 빈발 패턴이 된다.
한편, 프로세싱 노드 2는 생성된 빈발 패턴을 접두 패턴으로 하는 투영 데이터 Dbc를 생성하여 우선 순위 큐(300)에 저장할 수 있다.
이후, 도 3f에 도시된 예와 같이 우선 순위 큐(300)에 저장된 투영 데이터 중 깊이 우선 탐색 방법 상의 우선순위가 높은 Dab, Dac가 프로세싱 노드 1 및 2에 할당될 수 있다.
한편, 일 실시예에 따르면, 복수의 프로세싱 노드(210)는 우선 순위 큐에 저장된 투영 데이터의 수가 미리 설정된 값 이상인 경우, 하나의 투영 데이터만을 생성할 수 있다.
구체적으로, 도 3a에 도시된 예에서, 미리 설정된 투영 데이터의 수가 2인 경우, 우선 순위 큐(300)에 저장된 투영 데이터의 수는 미리 설정된 값을 초과한다. 따라서, 도 3c 및 도 3d에 도시된 예와 달리 우선 순위 큐(300)에서 Da 및 Da를 각각 제공받은 프로세싱 노드 1과 프로세싱 노드 2는 각각 하나의 투영 데이터만을 생성할 수 있다.
즉, 도 3c 및 도 3d에서 프로세싱 노드 1은 투영 데이터 Dab만을 생성하여 우선 순위 큐(300)에 저장할 수 있다. 이때, 프로세싱 노드 1은 Dac를 생성하는 대신 Da와 빈발 아이템 c를 함께 우선 순위 큐(300)에 저장함으로써, 이후에 프로세싱 노드 1 또는 2에 제공되어 Dac가 생성될 수 있도록 할 수 있다.
한편, 프로세싱 노드 1 및 2는 생성된 빈발 패턴을 닫힌 빈발 패턴 리스트의 닫힌 빈발 패턴 후보와 비교하여 닫힌 빈발 패턴을 갱신할 수 있다. 이때, 생성된 빈발 패턴이 닫힌 빈발 패턴 리스트에 추가되지 않은 경우, 해당 빈발 패턴을 접두 패턴으로 하는 투영 데이터는 생성하지 않을 수 있다.
즉, 생성된 빈발 패턴이 닫힌 빈발 패턴이 아닐 경우, 그 빈발 패턴을 루트로하는 서브 트리에 존재하는 빈발 패턴 역시 닫힌 빈발 패턴이 될 수 없다. 따라서, 해당 빈발 패턴을 접두 패턴으로 하는 투영 데이터를 생성하지 않음으로써, 그 빈발 패턴을 루트로 하는 빈발 패턴에 대해서는 가지치기(pruning)하여 탐색공간을 줄일 수 있다.
도 4는 닫힌 빈발 패턴 리스트의 예시도이다.
도 4를 참조하면, 닫힌 빈발 패턴 리스트(400)는 현재까지 찾아진 닫힌 빈발 패턴 후보를 저장할 수 있다. 이때, 닫힌 빈발 패턴 리스트(400)는 닫힌 빈발 패턴 후보의 지지도를 포함할 수 있다.
또한, 일 실시예에 따르면, 닫힌 빈발 패턴 리스트(400)는 닫힌 빈발 패턴 후보의 지지 레코드를 추가로 포함할 수 있다.
일 실시예에 따르면, 닫힌 빈발 패턴 관리부(250)는 복수의 프로세싱 노드(210)는 생성된 빈발 패턴과 닫힌 빈발 패턴 후보를 비교하여 닫힌 빈발 패턴 리스트(400)를 지속적으로 갱신할 수 있다.
예를 들어, 지지도가 2인 빈발 패턴 {b, c}가 생성된 경우, 닫힌 빈발 패턴 리스트(400)에서 생성된 빈발 패턴과 동일한 지지도를 가지는 닫힌 빈발 패턴 후보 {a, b, c}를 찾을 수 있다. 이때, {b, c}는 {a, b, c}의 부분집합이므로, 닫힌 빈발 패턴 리스트에 추가될 수 없다.
반면, 생성된 빈발 패턴 {b, c}의 지지도가 3인 경우, 동일한 지지도를 가지는 닫힌 빈발 패턴 후보가 존재하지 않으므로, 빈발 패턴 {b, c}는 닫힌 빈발 패턴 리스트에 추가될 수 있다.
한편, 생성된 빈발 패턴이 지지도가 4인 패턴 {a, b, d}인 경우, 닫힌 빈발 패턴 리스트에서 닫힌 빈발 패턴 후보 {a, b}는 {a, b, d}와 지지도가 같고, {a, b, d}의 부분집합이므로, {a, b}는 닫힌 빈발 패턴 리스트에서 삭제되고, {a, b, d}가 닫힌 빈발 패턴 리스트에 추가될 수 있다.
또 다른 예로, 지지도가 4인 빈발 패턴 {b}가 생성된 경우, 닫힌 빈발 패턴 리스트 상에서 지지도가 4인 닫힌 빈발 패턴 후보 {a, b}를 찾을 수 있다.
이때, 빈발 패턴{b}를 지지하는 레코드가 {R1, R2, R3, R4}인 경우, 닫힌 빈발 패턴 후보 {a, b}와 지지 레코드가 동일하므로, 빈발 패턴 {b}는 빈발 패턴 리스트(400)에 추가될 수 없다.
반면, 지지도가 2인 빈발 패턴 {d}가 생성되었고, 지지 레코드가 {R5, R6}인 경우, 동일한 지지 레코드를 가지는 닫힌 분발 패턴 후보가 존재하지 않으므로, 빈발 패턴 {d}는 닫힌 빈발 패턴 리스트에 추가될 수 있다.
한편, 지지도가 2인 빈발 패턴 {a, b, c, d}가 생성되었고, 지지 레코드가 {R1, R2}인 경우, 동일한 지지 레코드를 가지는 닫힌 빈발 패턴 후보 {a, b, c}가 존재하지만 {a, b, c}는 {a, b, c, d}의 부분집합이므로, 닫힌 빈발 패턴 후보 {a, b, c}는 삭제되고, 빈발 패턴 {a, b, c, d}가 닫힌 빈발 패턴 리스트에 추가될 수 있다.
도 5는 데이터베이스에서 투영 데이터를 생성하는 과정을 나타내는 순서도이다.
도 5를 참조하면, 복수의 프로세싱 노드(210) 중 임의의 하나의 프로세싱 노드는 데이터베이스에서 지지도가 최소 지지도 이상인 빈발 아이템을 찾은 후(510), 각각의 빈발 아이템을 접두 패턴으로 하는 투영 데이터를 생성할 수 있다(530).
이후, 생성된 투영 데이터는 투영 데이터 제공부(230)에 저장될 수 있다(550).
도 6은 복수의 프로세싱 노드에 의한 닫힌 빈발 패턴 마이닝 과정을 나타내는 순서도이다.
도 6을 참조하면, 복수의 프로세싱 노드(210) 각각은 투영 데이터 제공부(230)에 저장된 투영 데이터 중 우선 순위가 가장 높은 투영데이터를 병렬적으로 할당받을 수 있다(610).
이때, 투영 데이터의 우선 순위는 접두 패턴을 기준으로 하여 깊이 우선 탐색 방법에 따른 우선 순위에 따라 결정될 수 있다.
한편, 복수의 프로세싱 노드(210) 각각은 할당받은 투영 데이터에서 빈발 아이템을 탐색하여(620), 빈발 패턴을 생성할 수 있다(630). 이때, 빈발 패턴은 탐색된 빈발 아이템을 투영 데이터의 접두 패턴과 결합함으로써 생성될 수 있다.
빈발 아이템이 생성된 경우, 닫힌 빈발 패턴 리스트에 생성된 빈발 패턴과 지지도가 동일하고 빈발 패턴을 부분 집합으로 포함하는 닫힌 빈발 패턴 후보가 존재하는지 여부를 판단할 수 있다(640).
이때, 닫힌 빈발 패턴 리스트에 생성된 빈발 패턴과 지지도가 동일하고 빈발 패턴을 부분 집합으로 포함하는 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 생성된 빈발 패턴을 닫힌 빈발 패턴 리스트에 추가하고(650), 생성된 빈발 패턴을 접두 패턴으로 하는 투영 데이터를 생성하여 투영 데이터 제공부(230)에 저장할 수 있다(660).
한편, 할당 받은 투영 데이터의 모든 빈발 아이템에 대하여 빈발 패턴 생성 및 투영 데이터 생성이 완료된 경우(670), 투영 데이터 제공부(230)에 저장된 투영 데이터 중 깊이 우선 탐색 방법에 따른 우선 순위가 가장 높은 투영 데이터를 추출하여(680, 610), 620 내지 680의 과정을 반복할 수 있다.
한편, 투영 데이터 제공부(230)에 저장된 투영 데이터가 존재하지 않는 경우, 모든 절차가 종료되고, 닫힌 빈발 패턴 리스트에 포함된 닫힌 빈발 패턴 후보들은 닫힌 빈발 패턴으로 확정된다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 장치에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등을 포함한다.
또한, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서는 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
210: 프로세싱 노드 230: 투영 데이터 제공부
250: 닫힌 빈발 패턴 관리부

Claims (20)

  1. 데이터베이스에서 빈발 아이템을 접두 패턴으로 하는 투영 데이터를 생성하여 저장하는 단계;
    상기 저장된 투영 데이터간의 우선 순위에 따라 상기 저장된 투영 데이터를 복수의 프로세싱 노드에 할당하는 단계;
    상기 할당된 투영 데이터를 이용하여 빈발 패턴을 생성하는 단계;
    상기 빈발 패턴을 닫힌 빈발 패턴 리스트와 비교하여 상기 닫힌 빈발 패턴 리스트를 갱신하는 단계; 및
    상기 닫힌 빈발 패턴 리스트를 갱신한 결과 상기 빈발 패턴이 닫힌 빈발 패턴 리스트에 추가된 경우, 상기 빈발 패턴을 접두 패턴으로 하는 투영 데이터를 생성하여 저장하는 단계;를 포함하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법.
  2. 제 1 항에 있어서,
    상기 할당하는 단계는,
    상기 저장된 투영 데이터의 접두 패턴을 기준으로 깊이 우선 탐색 방법에 따른 우선순위에 따라 상기 저장된 투영 데이터를 할당하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법.
  3. 제 1 항에 있어서,
    상기 데이터베이스에서 빈발 아이템을 접두 패턴으로 하는 투영 데이터를 생성하여 저장하는 단계는,
    상기 데이터베이스에서 빈발 아이템을 찾는 단계;
    상기 빈발 아이템을 접두 패턴으로 하는 투영 데이터를 생성하는 단계; 및
    상기 생성된 투영 데이터를 저장하는 단계;를 포함하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법.
  4. 제 1 항에 있어서,
    상기 빈발 패턴을 생성하는 단계는,
    상기 할당된 투영 데이터에서 빈발 아이템을 찾는 단계; 및
    상기 할당된 투영 데이터의 접두 패턴과 상기 할당된 투영 데이터의 빈발 아이템을 결합하여 빈발 패턴을 생성하는 단계;를 포함하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법.
  5. 제 1 항에 있어서,
    상기 닫힌 빈발 패턴 리스트를 갱신하는 단계는,
    상기 닫힌 빈발 패턴 리스트에 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 후보가 존재하는지 여부에 따라 상기 닫힌 빈발 패턴 리스트를 갱신하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법.
  6. 제 5 항에 있어서,
    상기 닫힌 빈발 패턴 리스트를 갱신하는 단계는,
    상기 닫힌 빈발 패턴 리스트에 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 상기 빈발 패턴을 상기 닫힌 빈발 패턴 리스트에 추가하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법.
  7. 제 5 항에 있어서,
    상기 닫힌 빈발 패턴 리스트를 갱신하는 단계는,
    상기 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 상기 빈발 패턴을 부분집합으로 하는 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 상기 빈발 패턴을 상기 닫힌 빈발 패턴 리스트에 추가하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법.
  8. 제 5 항에 있어서,
    상기 닫힌 빈발 패턴 리스트를 갱신하는 단계는,
    상기 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 상기 빈발 패턴의 지지 레코드와 동일한 지지 레코드를 가진 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 상기 빈발 패턴을 상기 닫힌 빈발 패턴 리스트에 추가하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법.
  9. 제 5 항에 있어서,
    상기 닫힌 빈발 패턴 리스트를 갱신하는 단계는,
    상기 빈발 패턴의 지지도가 미리 설정된 값 미만인 경우, 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 상기 빈발 패턴의 지지 레코드와 동일한 지지 레코드를 가진 닫힌 빈발 패턴 후보가 존재하는지 여부를 판단하고,
    상기 빈발 패턴의 지지도가 미리 설정된 값 이상인 경우, 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 상기 빈발 패턴을 부분집합으로 하는 닫힌 빈발 패턴 후보가 존재하는지 여부를 판단하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법.
  10. 제 1 항에 있어서,
    상기 빈발 패턴을 접두 패턴으로 하는 투영 데이터를 생성하여 저장하는 단계는,
    상기 저장된 투영 데이터의 수가 미리 설정된 값 이상인 경우, 상기 할당받은 투영 데이터로부터 하나의 투영 데이터만을 생성하여 저장하고, 상기 할당 받은 투영 데이터를 다음에 투영할 빈발 아이템과 함께 저장하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법.
  11. 복수의 프로세싱 노드에서 생성된 투영 데이터를 저장하고, 저장된 투영 데이터를 우선 순위에 따라 복수의 프로세싱 노드에 할당하는 투영 데이터 제공부;
    닫힌 빈발 패턴 후보를 포함하는 닫힌 빈발 패턴 리스트를 저장하는 닫힌 빈발 패턴 관리부; 및
    상기 투영 데이터 제공부로부터 할당된 투영 데이터를 이용하여 빈발 패턴을 생성하여 상기 닫힌 빈발 패턴 리스트를 갱신하고, 상기 닫힌 빈발 패턴 리스트를 갱신한 결과 상기 빈발 패턴이 상기 닫힌 빈발 패턴 리스트에 추가된 경우, 상기 빈발 패턴을 접두 패턴으로 하는 투영 데이터를 생성하는 복수의 프로세싱 노드;를 포함하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 장치.
  12. 제 11 항에 있어서,
    상기 투영 데이터 제공부는,
    상기 저장된 투영 데이터의 접두 패턴을 기준으로 깊이 우선 탐색 방법에 따른 우선 순위에 따라 상기 저장된 투영 데이터를 할당하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 장치.
  13. 제 11 항에 있어서,
    상기 복수의 프로세싱 노드 중 임의의 하나의 프로세싱 노드는,
    데이터베이스에서 빈발 아이템을 찾은 후, 상기 빈발 아이템을 접두 패턴으로 하는 투영 데이터를 생성하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 장치.
  14. 제 11 항에 있어서,
    상기 복수의 프로세싱 노드는,
    상기 할당된 투영 데이터에서 빈발 아이템을 찾은 후, 찾은 빈발 아이템을 상기 할당된 투영 데이터의 접두 패턴과 결합하여 빈발 패턴을 생성하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 장치.
  15. 제 11 항에 있어서,
    상기 복수의 프로세싱 노드는,
    상기 닫힌 빈발 패턴 리스트에 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 후보가 존재하는지 여부에 따라 상기 닫힌 빈발 패턴 리스트를 갱신하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 장치.
  16. 제 15 항에 있어서,
    상기 복수의 프로세싱 노드는,
    상기 닫힌 빈발 패턴 리스트에 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 상기 빈발 패턴을 상기 닫힌 빈발 패턴 리스트에 추가하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 장치.
  17. 제 15 항에 있어서,
    상기 복수의 프로세싱 노드는,
    상기 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 중 상기 빈발 패턴을 부분집합으로 포함하는 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 상기 빈발 패턴을 상기 닫힌 빈발 패턴 리스트에 추가하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 장치.
  18. 제 15 항에 있어서,
    상기 복수의 프로세싱 노드는,
    상기 빈발 패턴과 동일한 지지도를 가진 닫힌 빈발 패턴 후보 중 상기 빈발 패턴의 지지 레코드와 동일한 지지 레코드를 가진 닫힌 빈발 패턴 후보가 존재하지 않는 경우, 상기 빈발 패턴을 상기 닫힌 빈발 패턴 리스트에 추가하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 장치.
  19. 제 15 항에 있어서,
    상기 복수의 프로세싱 노드는,
    상기 빈발 패턴의 지지도가 미리 설정된 값 미만인 경우, 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 상기 빈발 패턴의 지지 레코드와 동일한 지지 레코드를 가진 닫힌 빈발 패턴 후보가 존재하는지 여부를 판단하고,
    상기 빈발 패턴의 지지도가 미리 설정된 값 이상인 경우, 상기 빈발 패턴과 동일한 지지도를 가진 닫힌 패턴 후보 중 상기 빈발 패턴을 부분집합으로 하는 닫힌 빈발 패턴 후보가 존재하는지 여부를 판단하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 장치.
  20. 제 11 항에 있어서,
    상기 복수의 프로세싱 노드는,
    상기 투영 데이터 제공부에 저장된 투영 데이터의 수가 미리 설정된 값 이상인 경우, 상기 할당 받은 투영 데이터로부터 하나의 투영 데이터만을 생성하고, 상기 할당 받은 투영 데이터를 다음에 투영할 빈발 아이템과 함께 저장하는 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 장치.
KR1020130036933A 2013-04-04 2013-04-04 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법 및 장치 KR102081722B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130036933A KR102081722B1 (ko) 2013-04-04 2013-04-04 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130036933A KR102081722B1 (ko) 2013-04-04 2013-04-04 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140120711A KR20140120711A (ko) 2014-10-14
KR102081722B1 true KR102081722B1 (ko) 2020-02-26

Family

ID=51992522

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130036933A KR102081722B1 (ko) 2013-04-04 2013-04-04 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102081722B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028531A1 (en) 2000-01-03 2003-02-06 Jiawei Han Methods and system for mining frequent patterns
JP2009169850A (ja) 2008-01-18 2009-07-30 Toshiba Corp 系列パタン抽出装置及び方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100908301B1 (ko) * 2007-06-05 2009-07-17 성균관대학교산학협력단 리스트 기반 최대빈번 서브트리 추출 방법 및 장치
KR101079063B1 (ko) * 2010-02-22 2011-11-07 주식회사 케이티 점진적으로 증가하는 데이터를 처리하기 위한 빈발패턴 트리를 이용한 연관규칙 추출 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028531A1 (en) 2000-01-03 2003-02-06 Jiawei Han Methods and system for mining frequent patterns
JP2009169850A (ja) 2008-01-18 2009-07-30 Toshiba Corp 系列パタン抽出装置及び方法

Also Published As

Publication number Publication date
KR20140120711A (ko) 2014-10-14

Similar Documents

Publication Publication Date Title
JP6028567B2 (ja) データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法
JP2019194882A (ja) ファーストクラスデータベース要素としての半構造データの実装
EP2784665B1 (en) Program and version control method
JP5950285B2 (ja) 予め決められた複数のビット幅のデータに対して操作を行う命令を使用してツリーの検索を行うための方法、並びに、当該命令を使用してツリーの検索を行うためのコンピュータ及びそのコンピュータ・プログラム
US10956395B2 (en) Association analysis method and apparatus
JP5679074B2 (ja) ソフトウェアのインストール順序を決定する方法、プログラム、及び装置
KR101535813B1 (ko) 복합 이벤트 처리를 위한 이벤트 구성 규칙의 동적 업데이트를 위한 시스템 및 방법
US10552460B2 (en) Sensor data management apparatus, sensor data management method, and computer program product
KR102005343B1 (ko) 분할 공간 기반의 공간 데이터 객체 질의처리장치 및 방법, 이를 기록한 기록매체
JP5799812B2 (ja) データ配置・計算システム、データ配置・計算方法、マスタ装置、及びデータ配置方法
JP2019021232A (ja) 情報処理装置、情報処理方法および情報処理プログラム
CN105825137B (zh) 一种确定敏感数据扩散行为的方法及装置
JP2021502658A5 (ko)
CN114328632A (zh) 基于位图的用户数据分析方法、装置及计算机设备
JP2009169689A (ja) データ分類方法およびデータ処理装置
CN106503186A (zh) 一种数据管理方法、客户端及系统
Alis et al. Parallel processing of big point clouds using Z-Order-based partitioning
JP7427896B2 (ja) データベースの分割システム、データベースの分割方法、及びデータベースの分割プログラム
Zhou et al. A C++ library for protein sub-structure search
KR102081722B1 (ko) 병렬 처리를 이용한 닫힌 빈발 패턴 마이닝 방법 및 장치
JP2018085056A (ja) 算出装置、算出方法、及び算出プログラム
CN105677801B (zh) 一种基于图的数据处理方法和系统
KR101679011B1 (ko) 데이터베이스에서 데이터 이동을 처리하는 방법 및 장치
JP2013127750A (ja) パーティション分割装置及び方法及びプログラム
CN113064982A (zh) 一种问答库生成方法及相关设备

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