KR101761175B1 - 빈발 패턴 마이닝 방법, 빈발 패턴 마이닝 서버 및 이를 수행하는 프로그램을 기록하는 기록매체 - Google Patents

빈발 패턴 마이닝 방법, 빈발 패턴 마이닝 서버 및 이를 수행하는 프로그램을 기록하는 기록매체 Download PDF

Info

Publication number
KR101761175B1
KR101761175B1 KR1020150052734A KR20150052734A KR101761175B1 KR 101761175 B1 KR101761175 B1 KR 101761175B1 KR 1020150052734 A KR1020150052734 A KR 1020150052734A KR 20150052734 A KR20150052734 A KR 20150052734A KR 101761175 B1 KR101761175 B1 KR 101761175B1
Authority
KR
South Korea
Prior art keywords
pattern
frequent
mining
frequent pattern
data structure
Prior art date
Application number
KR1020150052734A
Other languages
English (en)
Other versions
KR20160122588A (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 KR1020150052734A priority Critical patent/KR101761175B1/ko
Publication of KR20160122588A publication Critical patent/KR20160122588A/ko
Application granted granted Critical
Publication of KR101761175B1 publication Critical patent/KR101761175B1/ko

Links

Images

Classifications

    • G06F17/30539
    • G06F17/30327
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

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

Abstract

본 발명은 빈발 패턴 마이닝 방법 및 서버에 관한 것으로, 빈발 패턴 마이닝 방법은 데이터베이스에 저장된 데이터를 기초로 데이터베이스 트리 자료구조를 생성하는 단계, 1차 빈발 패턴 마이닝이 요청되는 경우, 상기 데이터베이스 트리 자료구조를 기초로 상위 K개의 빈발 패턴을 마이닝하고, 상기 마이닝된 K개의 빈발 패턴을 기초로 빈발 패턴 트리 자료구조를 생성하는 단계, 2차 빈발 패턴 마이닝이 요청되는 경우, 상기 1차 마이닝 결과를 활용할 수 있는지 여부를 결정하는 단계 및 상기 1차 마이닝 결과를 활용할 수 있는 것으로 결정된 경우, 상기 빈발 패턴 트리 자료구조에서 상위 K'개의 빈발 패턴을 검색하여 제공하는 단계를 포함한다.

Description

빈발 패턴 마이닝 방법, 빈발 패턴 마이닝 서버 및 이를 수행하는 프로그램을 기록하는 기록매체{METHOD OF MINING A FREQUENT PATTERN, APPARATUS PERFORMING THE SAME AND STORAGE MEDIUM STORING A PROGRAM PERFORMING THE SAME}
본 발명은 빈발 패턴 마이닝 방법, 빈발 패턴 마이닝 서버 및 이를 수행하는 프로그램을 기록하는 기록매체에 관한 것으로, 보다 상세하게는 점진적으로 증가하는 데이터베이스로부터 상위 K개의 빈발 패턴들을 마이닝 하고, 마이닝 후 K값이 변화됐을 때 이전의 마이닝 결과를 사용함으로써 변화된 K에 대한 빈발 패턴들을 효율적으로 마이닝하는 방법, 장치 및 이를 수행하는 프로그램을 기록하는 기록매체에 관한 것이다.
데이터베이스로부터 빈발 패턴들을 마이닝(mining)하기 위해서 사용자로부터 최소 빈도수 임계치를 입력받는 방식이 있다. 그러나 이러한 방식의 경우 적절한 임계치 값을 결정하기 어려운 문제점이 있다. 만약 임계치 값을 너무 크게 설정하면 어떠한 빈발 패턴도 마이닝 되지 않을 수도 있으며, 반대로 임계치 값을 너무 작게 설정하면 너무 많은 빈발 패턴들이 추출됨으로써 분석에 어려움이 따를 뿐만 아니라 마이닝 과정을 수행하는 데 상당한 시간이 소요될 수 있다. 따라서, 적절한 임계치 값을 설정하기 위해 사용자가 컴퓨터를 이용하여 여러 번 마이닝 작업을 수행해야 하는 문제점이 있다.
한편, 정적 데이터베이스로부터 빈발 패턴들을 마이닝하는 방식은 데이터베이스의 데이터가 점진적으로 증가하게 되면, 기존 데이터베이스에 대해 구축된 자료구조를 제거한 후 점진적으로 증가된 데이터뿐만 아니라 기존 데이터베이스 내 데이터까지 모두 다시 스캔하여 새로운 자료구조를 구축하고 마이닝 과정을 수행해야 하는 문제점이 있다.
한국등록특허 제10-0913027호는 대량의 데이터 집합을 분석하여 특징 정보를 찾아내는 데이터 마이닝 방법 및 이 방법을 이용하여 구현된 데이터 마이닝 시스템에 관한 것으로, 지속적으로 증가되는 데이터 집합에 대한 빈발항목 및 빈발 순차패턴 탐색 과정에서 필요한 메모리 사용량 및 마이닝 작업 시간을 최적화 하여 마이닝 결과를 실시간으로 구할 수 있는 방법을 제시하고 데이터 집합의 변화에 대한 마이닝 결과의 변화를 효과적으로 파악할 수 있는 방법을 제시한다.
한국등록특허 제10-10131754(2013.10.04)호는 가중치를 고려한 최대 빈발 패턴을 마이닝하는 방법에 관한 것으로, 대용량의 트랜잭션 데이터에서 의미 있는 패턴들을 효과적으로 마이닝하기 위하여, 최대 빈발 패턴 마이닝과 가중화 빈발 패턴 마이닝을 결합한 새로운 마이닝 방법을 제공함으로써, 최대 빈발 패턴 마이닝은 빈발 패턴간의 중복을 피하여 빠르고 효율적인 마이닝이 가능하며, 가중화 빈발 패턴 마이닝은 빈발 패턴 중에서 상대적으로 덜 중요한 아이템들로 구성된 패턴들을 배제할 수 있다.
한국등록특허 제10-0913027호(2009.08.12), 제3 페이지 내지 제5 페이지 한국등록특허 제10-10131754호(2013.10.04), 제4 페이지 내지 제5 페이지
본 발명의 일 실시예는 자료구조 구축 또는 갱신 후 최소 빈도수 임계치 설정 없이 K값을 입력받아 자료구조로부터 상위 K개의 빈발 패턴들을 마이닝할 수 있는 빈발 패턴 마이닝 방법 및 장치를 제공하고자 한다.
본 발명의 일 실시예는 마이닝 후 사용자에 의해 K값이 변화하거나 새로운 트랜잭션이 추가되면 기존 마이닝 결과를 이용하여 상위 K개의 빈발 패턴들을 효율적으로 마이닝할 수 있는 빈발 패턴 마이닝 방법 및 장치를 제공하고자 한다.
본 발명의 일 실시예는 새로운 데이터가 추가됐을 때 추가된 데이터만을 스캔하여 기 구축된 자료구조에 반영하여 갱신할 수 있는 빈발 패턴 마이닝 방법 및 장치를 제공하고자 한다.
실시예들 중에서, 빈발 패턴 마이닝 방법은 데이터베이스에 저장된 데이터를 기초로 데이터베이스 트리 자료구조를 생성하는 단계, 1차 빈발 패턴 마이닝이 요청되는 경우, 상기 데이터베이스 트리 자료구조를 기초로 상위 K개의 빈발 패턴을 마이닝하고, 상기 마이닝된 K개의 빈발 패턴을 기초로 빈발 패턴 트리 자료구조를 생성하는 단계, 2차 빈발 패턴 마이닝이 요청되는 경우, 상기 1차 마이닝 결과를 활용할 수 있는지 여부를 결정하는 단계 및 상기 1차 마이닝 결과를 활용할 수 있는 것으로 결정된 경우, 상기 빈발 패턴 트리 자료구조에서 상위 K'개의 빈발 패턴을 검색하여 제공하는 단계를 포함한다.
일 실시예에서, 상기 빈발 패턴 트리 자료구조는 상기 K개의 상위 빈발 패턴과 K+1번째 빈발 패턴에 대한 정보를 저장하는 패턴 정보 엔트리로 구성된 패턴 정보 리스트 및 패턴 정보에 대한 패턴 아이템 노드로 구성된 패턴 전위 트리를 포함할 수 있다.
일 실시예에서, 상기 패턴 정보 엔트리는 각 패턴에 대한 패턴 빈도수 및 각 패턴의 마지막 아이템에 대한 패턴 아이템 노드를 가리키는 패턴 노드 링크를 포함할 수 있다.
일 실시예에서, 상기 K+1번째 빈발 패턴에 대한 패턴 노드 링크는 NULL 값으로 설정될 수 있다.
일 실시예에서, 상기 패턴 아이템 노드는 패턴 아이템 명칭 및 해당 패턴에 대한 정보를 저장하고 있는 패턴 정보 엔트리를 가리키는 패턴 엔트리 링크를 포함할 수 있다.
일 실시예에서, 상기 빈발 패턴 트리 자료구조를 생성하는 단계는 상위 K+1개의 빈발 패턴을 빈도수 내림차순으로 정렬하는 단계, 상기 정렬된 패턴을 순서대로 가져와서 가져온 패턴의 패턴 내 아이템들을 정해진 순서에 따라 정렬하는 단계 및 상기 정렬된 아이템들을 순서대로 트리에 삽입하는 단계를 포함할 수 있다.
일 실시예에서, 상기 정렬된 아이템들을 순서대로 트리에 삽입하는 단계는 상기 패턴 내 마지막 아이템에 대한 아이템 노드 생성 시 해당 아이템 노드에 상응하는 패턴 정보를 저장하기 위한 패턴 정보 엔트리를 생성하는 단계, 상기 생성된 패턴 정보 엔트리에 삽입하는 패턴의 빈도수를 기록하는 단계, 상기 패턴 아이템 노드의 패턴 엔트리 링크를 상기 생성된 패턴 정보 엔트리와 연결하는 단계 및 상기 생성된 패턴 정보 엔트리의 패턴 노드 링크를 상기 패턴 아이템 노드와 연결하는 단계를 포함할 수 있다.
일 실시예에서, 상기 정렬된 아이템들을 순서대로 트리에 삽입하는 단계는 K+1번째 빈발 패턴에 대한 마지막 패턴 정보 엔트리를 생성하여 상기 빈발 패턴 트리 자료구조를 완성하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 1차 마이닝 결과를 활용할 수 있는지 여부를 결정하는 단계는 1차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수와 2차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수를 기초로 상기 1차 마이닝 결과를 활용할 수 있는지 여부를 결정할 수 있다.
일 실시예에서, 상기 1차 마이닝 결과를 활용할 수 있는지 여부를 결정하는 단계는 1차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K)와 2차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K')를 비교하는 단계, 상기 1차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K)가 상기 2차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K')보다 큰 경우, 상기 패턴 정보 리스트의 마지막 패턴 정보 엔트리에 저장된 K+1번째 빈발 패턴의 빈도수와 K번째 빈발 패턴의 빈도수를 비교하는 단계 및 상기 K번째 빈발 패턴의 빈도수가 K+1번째 빈발 패턴의 빈도수보다 큰 경우, 상기 1차 마이닝 결과를 활용할 수 있는 것으로 결정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 1차 마이닝 결과를 활용할 수 있는지 여부를 결정하는 단계는 상기 2차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K')가 상기 1차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K) 이하인 경우, 또는 상기 K번째 빈발 패턴의 빈도수가 K+1번째 빈발 패턴의 빈도수 이하인 경우, 상기 1차 마이닝 결과를 활용할 수 없는 것으로 결정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 1차 마이닝 결과를 활용할 수 있는지 여부를 결정하는 단계는 상기 1차 마이닝 결과를 활용할 수 없는 것으로 결정된 경우, 상기 데이터베이스 트리 자료구조를 기초로 상위 K'개의 빈발 패턴을 다시 마이닝하는 단계를 더 포함 할 수 있다.
일 실시예에서, 상기 빈발 패턴 마이닝 방법은 상기 데이터베이스에 새로운 트랜잭션이 추가되는 경우, 상기 추가된 트랜잭션을 기초로 상기 빈발 패턴 트리 자료구조를 갱신하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 빈발 패턴 트리 자료구조를 갱신하는 단계는 상기 추가된 트랜잭션 내 아이템들을 정해진 순서에 따라 정렬하는 단계, 상기 패턴 전위 트리에서 상기 정렬된 각 아이템에 대응되는 패턴 아이템 노드를 검색하는 단계 및 상기 대응되는 패턴 아이템 노드가 패턴 정보 엔트리와 연결되어 있는 경우, 해당 엔트리의 빈도수 값을 갱신하는 단계를 포함할 수 있다.
일 실시예에서, 상기 패턴 아이템 노드를 검색하는 단계는 검색된 패턴 아이템 노드가 상기 추가된 트랜잭션 내 다음 아이템에 대한 패턴 아이템 노드를 자식 노드로 가지고 있지 않으면, 상기 패턴 아이템 노드를 검색하는 단계를 중단할 수 있다.
일 실시예에서, 상기 빈발 패턴 트리 자료구조를 갱신하는 단계는 상기 추가된 트랜잭션 내 모든 아이템에 대한 처리가 끝나거나 상기 검색하는 과정이 중단되면, 상기 패턴 정보 리스트에서 K+1번째 빈발 패턴에 대한 엔트리의 빈도수 값을 갱신하는 단계를 더 포함할 수 있다.
실시예들 중에서, 빈발 패턴 마이닝 서버는 컴퓨터 읽기 가능한 명령어들을 저장하는 메모리 및 상기 메모리와 전기적으로 연결되고 사용자의 요청에 따라 상기 저장된 명령어들을 통해 아래의 과정을 실행하는 프로세서를 포함하고, 상기 프로세서는 데이터베이스에 저장된 데이터를 기초로 데이터베이스 트리 자료구조를 생성하는 단계, 1차 빈발 패턴 마이닝이 요청되는 경우, 상기 데이터베이스 트리 자료구조를 기초로 상위 K개의 빈발 패턴을 마이닝하고, 상기 마이닝된 K개의 빈발 패턴을 기초로 빈발 패턴 트리 자료구조를 생성하는 단계, 2차 빈발 패턴 마이닝이 요청되는 경우, 상기 1차 마이닝 결과를 활용할 수 있는지 여부를 결정하는 단계 및 상기 1차 마이닝 결과를 활용할 수 있는 것으로 결정된 경우, 상기 빈발 패턴 트리 자료구조에서 상위 K'개의 빈발 패턴을 검색하여 제공하는 단계를 실행한다.
일 실시예에서, 상기 프로세서는 1차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수와 2차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수를 기초로 상기 1차 마이닝 결과를 활용할 수 있는지 여부를 결정할 수 있다.
일 실시예에서, 상기 프로세서는 상기 1차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K)가 상기 2차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K')보다 큰 경우, 상기 패턴 정보 리스트의 마지막 패턴 정보 엔트리에 저장된 K+1번째 빈발 패턴의 빈도수와 K번째 빈발 패턴의 빈도수를 비교하고, 상기 K번째 빈발 패턴의 빈도수가 K+1번째 빈발 패턴의 빈도수보다 큰 경우, 상기 1차 마이닝 결과를 활용할 수 있는 것으로 결정할 수 있다.
일 실시예에서, 상기 프로세서는 상기 데이터베이스에 새로운 트랜잭션이 추가되는 경우, 상기 추가된 트랜잭션을 기초로 상기 빈발 패턴 트리 자료구조를 갱신할 수 있다.
일 실시예에서, 상기 프로세서는 상기 추가된 트랜잭션 내 아이템들을 정해진 순서에 따라 정렬하고, 상기 패턴 전위 트리에서 상기 정렬된 각 아이템에 대응되는 패턴 아이템 노드를 검색하며, 상기 대응되는 패턴 아이템 노드가 패턴 정보 엔트리와 연결되어 있는 경우, 해당 엔트리의 빈도수 값을 갱신할 수 있다.
실시예들 중에서, 빈발 패턴 마이닝 방법에 관한 컴퓨터 프로그램을 저장하는 기록매체는 데이터베이스에 저장된 데이터를 기초로 데이터베이스 트리 자료구조를 생성하는 기능, 1차 빈발 패턴 마이닝이 요청되는 경우, 상기 데이터베이스 트리 자료구조를 기초로 상위 K개의 빈발 패턴을 마이닝하고, 상기 마이닝된 K개의 빈발 패턴을 기초로 빈발 패턴 트리 자료구조를 생성하는 기능, 2차 빈발 패턴 마이닝이 요청되는 경우, 상기 1차 마이닝 결과를 활용할 수 있는지 여부를 결정하는 기능 및 상기 1차 마이닝 결과를 활용할 수 있는 것으로 결정된 경우, 상기 빈발 패턴 트리 자료구조에서 상위 K'개의 빈발 패턴을 검색하여 제공하는 기능을 수행하는 빈발 패턴 마이닝 방법에 관한 컴퓨터 프로그램을 포함한다.
본 발명의 일 실시예에 따른 빈발 패턴 마이닝 방법 및 서버는 자료구조 구축 또는 갱신 후 최소 빈도수 임계치 설정 없이 K값을 입력받아 자료구조로부터 상위 K개의 빈발 패턴들을 마이닝할 수 있다.
본 발명의 일 실시예에 따른 빈발 패턴 마이닝 방법 및 서버는 마이닝 후 사용자에 의해 K값이 변화하거나 새로운 트랜잭션이 추가되면 기존 마이닝 결과를 이용하여 상위 K개의 빈발 패턴들을 효율적으로 마이닝할 수 있다.
본 발명의 일 실시예에 따른 빈발 패턴 마이닝 방법 및 서버는 새로운 데이터가 추가됐을 때 추가된 데이터만을 스캔하여 기 구축된 자료구조에 반영하여 갱신할 수 있다.
도 1은 본 발명의 일 실시예에 따른 빈발 패턴 마이닝 시스템을 설명하는 블록도이다.
도 2는 도 1에 있는 빈발 패턴 마이닝 서버를 설명하는 블록도이다.
도 3은 도 2에 있는 빈발 패턴 마이닝 서버에서 실행되는 빈발 패턴 마이닝 방법을 설명하는 흐름도이다.
도 4는 데이터베이스 트리 자료구조를 설명하는 도면이다.
도 5는 기존 마이닝 결과의 활용 가능 여부를 확인하는 과정을 설명하는 흐름도이다.
도 6은 빈발 패턴 트리 자료구조를 설명하는 도면이다.
도 7은 상위 K 빈발 패턴 트리 자료구조를 구축하는 과정을 설명하는 흐름도이다.
도 8은 추가 트랜잭션에 대한 상위 K 빈발 패턴 트리 자료구조를 갱신하는 과정을 설명하는 흐름도이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 빈발 패턴 마이닝 시스템을 설명하는 블록도이다.
도 1을 참조하면, 빈발 패턴 마이닝 시스템(100)은 사용자 단말기(110), 빈발 패턴 마이닝 서버(120) 및 데이터베이스(130)를 포함한다.
사용자 단말기(110)는 사용자의 제어에 의해 빈발 패턴 마이닝 서버(120)에 접속하여 빈발 패턴 마이닝을 요청할 수 있다. 사용자 단말기(110)는 빈발 패턴 마이닝 서버(120)에서 제공된 경과 정보 또는 결과 정보를 화면에 디스플레이한다. 사용자 단말기(110)는 모바일 단말기, 테블릿 PC, 랩탑 PC 또는 데스크탑 PC에 해당할 수 있다.
빈발 패턴 마이닝 서버(120)는 사용자 단말기(110)의 요청에 따라 데이터베이스(130)에 저장된 데이터에 대한 빈발 패턴 마이닝을 수행한다. 예를 들어, 빈발 패턴 마이닝 서버(120)는 1차 빈발 패턴 마이닝이 요청되는 경우, 데이터베이스 트리 자료구조를 기초로 상위 K개의 빈발 패턴을 마이닝하고, 마이닝된 K개의 빈발 패턴을 기초로 빈발 패턴 트리 자료구조를 생성한다. 2차 빈발 패턴 마이닝이 요청되는 경우, 빈발 패턴 마이닝 서버(120)는 1차 마이닝 결과를 활용할 수 있는지 여부를 결정하고, 1차 마이닝 결과를 활용할 수 있는 것으로 결정된 경우, 빈발 패턴 트리 자료구조에서 상위 K'개의 빈발 패턴을 검색하여 제공할 수 있다. 1차 마이닝 결과를 활용할 수 없는 것으로 결정된 경우, 빈발 패턴 마이닝 서버(120)는 데이터베이스 트리 자료구조를 기초로 상위 K'개의 빈발 패턴을 다시 마이닝하고, 빈발 패턴 트리 자료구조를 생성한다. 빈발 패턴 마이닝 서버(120)는 마이닝 경과 정보와 결과 정보를 사용자 단말기(110)에 제공할 수 있다.
도 2는 도 1에 있는 빈발 패턴 마이닝 서버를 설명하는 블록도이다.
도 2를 참조하면, 빈발 패턴 마이닝 서버(120)는 다른 구성요소들과 버스(220)를 통해 통신하는 프로세서(또는, CPU)(210)를 포함한다. 프로세서(210)는 다른 구성요소들의 작동을 제어하고 다른 구성요소들과 빈발 패턴 마이닝을 수행한다. 또한, 프로세서(210)는 메모리(230)와 전기적으로 연결되고 사용자의 요청에 따라 메모리(230)에 저장된 명령어들을 통해 빈발 패턴 마이닝을 수행할 수 있다.
빈발 패턴 마이닝 서버(120)는 메모리(230) 및 저장 장치(240)를 포함하고, 메모리(230)는 롬(Read Only Memory, ROM)(232) 및 램(Random Access Memory, RAM)(234)을 포함한다. 여기에서, 메모리(230)는 일시적 또는 영구적으로 컴퓨터가 판독할 수 있는 기록매체에 해당하고, 저장 장치(240)는 영구적으로 컴퓨터가 판독할 수 있는 기록매체에 해당한다. 메모리(230) 및 저장 장치(240) 중 적어도 하나는 빈발 패턴 마이닝을 위한 명령어를 포함하는 컴퓨터 프로그램을 저장한다.
빈발 패턴 마이닝 서버(120)는 네트워크(280)와 통신하기 위하여 네트워크 인터페이스(270)를 포함한다. 네트워크 인터페이스(270)는 빈발 패턴 마이닝 서버(120)와 네트워크(280)간의 정보, 데이터 및 신호를 전송할 수 있는 환경을 설정한다. 도 1을 참조하면, 빈발 패턴 마이닝 서버(120)는 네트워크(280)를 통하여 사용자 단말기(110)와 연결될 수 있다.
빈발 패턴 마이닝 서버(120)는 사용자 인터페이스 입력 장치(250)(예를 들어, 마우스, 트랙볼, 터치 패드, 그래픽 태블릿, 스캐너, 상품 바코드 스캔을 위한 바코드 스캐너, 터치 스크린, 키보드, 포인팅 장치 등)를 통해 사용자로부터 정보를 입력받을 수 있다. 사용자 인터페이스 입력 장치(250)는 빈발 패턴 마이닝 서버(120) 또는 네트워크에 정보(예를 들어, 트랜잭션)를 입력할 수 있는 모든 메커니즘을 포함한다.
빈발 패턴 마이닝 서버(120)는 사용자 인터페이스 출력 장치(260)를 통해 정보를 출력할 수 있다. 사용자 인터페이스 출력 장치(260)는 디스플레이 화면과 같은 시각적 출력 장치를 포함할 수 있으나, 이에 한정되지 않는다. 사용자 인터페이스 출력 장치(260)는 사용자에게 정보를 출력할 수 있는 모든 메커니즘을 포함하고, 하나의 영상 출력 장치 또는 스피커와 같은 출력 장치와 결합될 수 있다.
일 실시예에서, 디스플레이 스크린은 빈발 패턴 마이닝 서버(120)로부터 수신한 정보를 디스플레이하고 운영자로부터 입력을 수신할 수 있다. 즉, 디스플레이 스크린은 사용자 인터페이스 입력 장치(250)와 사용자 인터페이스 출력 장치(260)로서 구현될 수 있다.
도 3은 도 2에 있는 빈발 패턴 마이닝 서버에서 실행되는 빈발 패턴 마이닝 방법을 설명하는 흐름도이다.
도 3을 참조하면, 빈발 패턴 마이닝 서버(120)는 데이터베이스(130)에 저장된 데이터를 스캔(312)하여 트리(tree) 기반의 데이터베이스 트리 자료구조(316)를 구축한다(314). 사용자 단말기(110)로부터 빈발 패턴에 대한 마이닝 요청이 수신된 경우, 빈발 패턴 마이닝 서버(120)는 최소 빈도수 임계치 설정없이 데이터베이스 트리 자료구조(316)로부터 상위 K개의 빈발 패턴들을 마이닝(또는, 추출) 한다(320).
마이닝이 완료되면 빈발 패턴 마이닝 서버(120)는 K개의 마이닝 결과 패턴들을 K+1번째로 빈도수가 높은 K+1번째 빈발 패턴의 정보와 함께 또 다른 트리 기반의 자료구조인 빈발 패턴 트리 자료구조(324)에 저장한다.
이후 사용자 단말기(110)로부터 입력된 K 값이 변화하거나 새로운 트랜잭션(330)이 데이터베이스(130)에 추가되는 경우, 빈발 패턴 마이닝 서버(120)는 빈발 패턴 트리 자료구조(324)를 이용하여 상위 K개의 빈발 패턴들을 효율적으로 마이닝할 수 있다.
이하에서는 도 3을 참조하여 빈발 패턴 마이닝 방법에 대해 자세히 설명하기로 한다. 빈발 패턴 마이닝 서버(120)는 초기 데이터베이스(130)를 스캔 하여 데이터베이스(130) 내 트랜잭션들을 읽어오고(312), 이를 순서대로 데이터베이스 트리 자료구조(316)에 삽입함으로써 데이터베이스(130)에 대한 트리 기반의 데이터베이스 트리 자료구조를 구축한다(314).
도 4는 데이터베이스 트리 자료구조를 설명하는 도면이다.
도 4를 참조하면, 데이터베이스 트리 자료구조(316)는 아이템 헤더 테이블(410)과 트랜잭션 전위 트리(420)로 구성된다. 아이템 헤더 테이블(410)은 아이템 엔트리들로 구성돼 있으며, 각 아이템 엔트리는 아이템 이름, 빈도수, 상기 트랜잭션 전위 트리(420)에서 마지막으로 생성된 해당 아이템에 대한 아이템 노드를 가리키기 위한 링크를 포함한다. 트랜잭션 전위 트리(420)는 적어도 하나의 아이템 노드로 구성돼 있으며, 각 아이템 노드는 아이템 이름, 빈도수, 바로 이전에 생성된 같은 아이템에 대한 노드를 가리키기 위한 아이템 노드 링크를 포함한다.
다시 3을 참조하면, 데이터베이스 트리 자료구조(314)를 구축한 후, 사용자 단말기(110)로부터 상위 K개의 빈발 패턴에 대한 마이닝 요청이 수신되면, 빈발 패턴 마이닝 서버(120)는 이전 마이닝 결과를 사용 가능한지 여부를 확인한다(318).
이전 마이닝 결과를 사용 가능한 경우, 빈발 패턴 마이닝 서버(120)는 기존 마이닝 결과로부터 상위 K개의 빈발 패턴들을 가져와 사용자 단말기(110)에 제공한다. 일 실시예에서, 빈발 패턴 마이닝 서버(120)는 빈발 패턴 트리 자료구조에서 상위 K 빈발 패턴을 탐색하고(326), 탐색된 상위 K개의 빈발 패턴(328)을 사용자 단말기(110)에 제공할 수 있다.
이전 마이닝 결과를 사용할 수 없는 경우, 빈발 패턴 마이닝 서버(120)는 데이터베이스 트리 자료구조(316)에 대한 마이닝 연산을 통해 상위 K'개의 빈발 패턴들을 추출하고(320), 그 결과를 사용자 단말기(110)에 제공한다. 빈발 패턴 마이닝 서버(120)는 마이닝된 빈발 패턴들을 트리 자료구조에 삽입하여 상위 K 빈발 패턴 트리 자료구조(324)를 구축한다(322).
도 5는 기존 마이닝 결과의 활용 가능 여부를 확인하는 과정을 설명하는 흐름도이다.
이하에서는 도 5를 참조하여, 빈발 패턴 마이닝 서버(120)가 상위 K 빈발 패턴 트리 자료구조(324)에 저장된 마이닝 결과를 사용 가능한지 확인하는 과정을 자세히 설명하기로 한다.
빈발 패턴 마이닝 서버(120)는 사용자 단말기(110)로부터 입력된 새로운 마이닝 요청 개수(K')를 이전 빈발 패턴 마이닝에서 마이닝된 개수(K)를 비교한다(510).
만약 새로 입력된 마이닝 요청 개수(K')가 이전 마이닝 개수(K)보다 큰 경우, 빈발 패턴 마이닝 서버(120)는 상위 K'개의 빈발 패턴에 대한 마이닝 과정을 다시 수행한다(520). 일 실시예에서, 빈발 패턴 마이닝 서버(120)는 데이터베이스 트리 자료구조를 재구축하고 재구축된 트리 자료구조로부터 상위 K'개의 빈발 패턴을 다시 마이닝할 수 있다.
만약 새로 입력된 마이닝 요청 개수(K')가 이전 마이닝 개수(K)보다 작거나 같은 경우(즉, 이하인 경우), 빈발 패턴 마이닝 서버(120)는 패턴 정보 리스트(610)에서 마지막 엔트리에 기록된 K+1번째 빈발 패턴의 빈도수 값을 바로 위 엔트리에 기록된 K번째 빈발 패턴의 빈도수 값과 비교한다(530). 만약 K번째 빈발 패턴의 빈도수 값이 K+1번째 빈발 패턴의 빈도수 값보다 크기 않다면 (즉, 이하인 경우) 빈발 패턴 마이닝 서버(120)는 마이닝 과정을 다시 수행한다(520).
K번째 빈발 패턴의 빈도수 값이 K+1번째 빈발 패턴의 빈도수 값보다 큰 경우, 빈발 패턴 마이닝 서버(120)는 패턴 정보 리스트(610)에서 빈도수 값이 가장 큰 패턴 엔트리부터 차례대로 K'개 만큼 탐색하여 상위 K'개의 빈발 패턴 정보를 사용자에게 제공한다(540).
도 6은 빈발 패턴 트리 자료구조를 설명하는 도면이다.
도 6을 참조하면, 상위 K 빈발 패턴 트리 자료구조(324)는 패턴 정보 리스트(610)와 패턴 전위 트리(620)로 구성된다. 패턴 정보 리스트(610)는 적어도 하나의 패턴 정보 엔트리들로 구성돼 있으며, 각 패턴 정보 엔트리는 패턴 빈도수(612)와 패턴 전위 트리(620)에 삽입된 상응하는 패턴의 마지막 아이템 노드를 가리키기 위한 패턴 노드 링크(614)를 포함한다.
패턴 정보 리스트(610)에서 마지막 패턴 정보 엔트리(616)에는 K+1번째로 높은 빈도수를 가지는 패턴(즉, K+1번째 빈발 패턴)의 빈도수 정보가 저장되며, 해당 엔트리의 패턴 노드 링크는 NULL 값으로 설정된다.
패턴 전위 트리(620)는 적어도 하나의 패턴 아이템 노드로 구성된다. 각 패턴 아이템 노드는 패턴 아이템 이름(630)과 해당 패턴에 대한 정보가 저장된 패턴 정보 엔트리를 가리키기 위한 패턴 엔트리 링크(640)를 포함한다. 패턴 엔트리 링크(640)는 해당 패턴 아이템 노드가 패턴의 마지막 아이템 노드일 때 해당 패턴에 대한 정보가 저장된 패턴 정보 엔트리를 가리키고, 그렇지 않으면 NULL 값으로 설정된다.
도 7은 상위 K 빈발 패턴 트리 자료구조를 구축하는 과정을 설명하는 흐름도이다.
빈발 패턴 마이닝 서버(120)는 데이터베이스 트리 자료구조(316)에 대한 마이닝을 수행하여 상위 K개의 빈발 패턴들을 추출하고, 추출된 패턴들을 상위 K 빈발 패턴 트리 자료구조(324)에 삽입한다. 이때, 빈발 패턴 마이닝 서버(120)는 K+1번째 빈발 패턴에 대한 정보를 K 빈발 패턴 트리 자료구조의 패턴 정보 리스트(610)의 마지막 엔트리에 저장한다.
이하에서는 도 7을 참조하여, 빈발 패턴 마이닝 서버(120)가 상위 K 빈발 패턴 트리 자료구조를 구축하는 과정을 자세히 설명하기로 한다. 빈발 패턴 마이닝 서버(120)는 먼저 마이닝 된 상위 K개의 빈발 패턴들을 빈도수 내림차순으로 정렬한다(712).
빈발 패턴 마이닝 서버(120)는 정렬된 상위 K개의 빈발 패턴 집합에서 순서대로 빈발 패턴을 하나씩 읽어온다. 해당 빈발 패턴은 빈도수 값을 포함하고 있으며, 해당 빈발 패턴 내 아이템들은 해당 패턴과 동일한 빈도수를 가진다.
빈발 패턴 마이닝 서버(120)는 해당 패턴 내 아이템들을 정해진 순서에 따라 정렬하고(714), 첫 번째 아이템부터 차례대로 상위 K 빈발 패턴 트리 자료구조(324)에 삽입한다(430).
빈발 패턴에 대한 아이템을 빈발 패턴 트리 자료구조(324)에 삽입하는 과정에서 패턴 내 마지막 아이템이 추가되는 경우(718), 빈발 패턴 마이닝 서버(120)는 빈발 패턴 트리 자료구조(324)의 패턴 정보 리스트(610)에 해당 빈발 패턴에 대한 정보를 저장하기 위한 패턴 정보 엔트리를 생성한다(720).
빈발 패턴 마이닝 서버(120)는 패턴 정보 엔트리에 해당 패턴에 대한 빈도수를 설정하고(772), 패턴 노드 링크를 마지막 아이템에 대한 패턴 아이템 노드로 연결한다(724). 그리고, 빈발 패턴 마이닝 서버(120)는 마지막 패턴 아이템 노드의 패턴 엔트리 링크를 새로 생성된 패턴 정보 엔트리로 연결한다(726).
빈발 패턴 마이닝 서버(120)는 상위 K 빈발 패턴들에 대해 714 과정 내지 726과정을 수행한다. 모든 상위 K 빈발 패턴들에 대한 아이템 정보 삽입이 완료되면(728), 빈발 패턴 마이닝 서버(120)는 K+1번째 빈발 패턴에 대한 정보를 상위 K 빈발 패턴 트리 자료구조(324)에 저장한다. 즉, 빈발 패턴 마이닝 서버(120)는 패턴 정보 리스트(610)에 새로운 패턴 정보 엔트리를 생성하여(730), 생성된 엔트리에 K+1번째 빈발 패턴에 대한 정보를 저장한다. 빈발 패턴 마이닝 서버(120)는 생성된 해당 엔트리의 빈도수와 패턴 노드 링크의 값을 각각 K+1번째 빈발 패턴의 빈도수 및 NULL 값으로 설정한다(732).
이러한 과정을 통해 구축된 상위 K 빈발 패턴 트리 자료구조(324)는 데이터베이스 트리 자료구조를 다시 구축하여 빈발 패턴을 마이닝하는 과정을 거치지 않고 빈발 패턴을 추출하여 결과를 제공하는 데 사용될 수 있다.
다시 도 3을 참조하면, 초기 데이터베이스(130)에 대한 데이터베이스 트리 자료구조(316)를 구축한 후 데이터베이스(130)에 새로운 트랜잭션이 추가되는 경우, 빈발 패턴 마이닝 서버(120)는 추가 정보를 반영하기 위해 해당 트랜잭션에 대한 스캔을 수행한다(330). 빈발 패턴 마이닝 서버(120)는 추가된 트랜잭션을 기 구축된 데이터베이스 트리 자료구조(316)에 삽입하여 데이터베이스 트리 자료구조를 갱신한다(332).
데이터베이스 트리 자료구조를 갱신한 후 빈발 패턴 마이닝 서버(120)는 상위 K 빈발 패턴 트리 자료구조를 갱신한다(334). 이는 기존 마이닝 결과에서 마이닝된 개수(K') 이하의 개수(K)에 대한 마이닝 요청이 발생했을 때, 빈발 패턴 마이닝 서버(120)가 상위 K 빈발 패턴 트리 자료구조(324)에 저장된 이전 마이닝 결과를 사용할 수 있도록 하기 위함이다.
도 8은 추가 트랜잭션에 대한 상위 K 빈발 패턴 트리 자료구조를 갱신하는 과정을 설명하는 흐름도이다.
이하에서는 도 8을 참조하여, 빈발 패턴 마이닝 서버(120)가 추가 트랜잭션에 대한 상위 K 빈발 패턴 트리 자료구조를 갱신하는 과정을 자세히 설명하기로 한다.
빈발 패턴 마이닝 서버(120)는 추가된 트랜잭션 내 아이템들을 정해진 순서에 따라 정렬하고(810), 루트 노드(Root node)를 기준으로 추가된 트랜잭션의 첫 번째 아이템부터 빈발 패턴 트리 자료구조(324)를 탐색한다(812). 즉, 빈발 패턴 마이닝 서버(120)는 해당 아이템과 대응되는 패턴 아이템 노드를 빈발 패턴 트리 자료구조(324)에서 탐색한다.
대응되는 패턴 아이템 노드가 있고(814) 해당 패턴 아이템 노드가 패턴 정보 리스트(610) 내 엔트리와 연결돼 있으면(816) 빈발 패턴 마이닝 서버(120)는 해당 엔트리에 저장된 빈도수 값을 갱신한다. 일 실시예에서, 빈발 패턴 마이닝 서버(120)는 해당 엔트리에 저장된 빈도수 값을 1 증가시킬 수 있다(818). 빈발 패턴 마이닝 서버(120)는 추가된 트랙잭션 내 모든 아이템에 대해 812과정 내지 818과정을 수행한다.
일 실시예에서, 대응되는 패턴 아이템 노드를 탐색하는 과정에서 현재 탐색하고 있는 패턴 아이템 노드가 추가된 트랜잭션 내 다음 아이템에 대한 패턴 아이템 노드를 자식 노드로 가지고 있지 않으면(814) 빈발 패턴 마이닝 서버(120)는 패턴 아니템 노드를 탐색하는 과정을 중단한다(822).
추가된 트랜잭션 내 모든 아이템에 대한 처리가 끝나거나 탐색 과정이 중단되는 경우, 빈발 패턴 마이닝 서버(120)는 패턴 정보 리스트(610)의 마지막 엔트리에 저장되어 있는 K+1번째 빈발 패턴에 대한 빈도수 값을 갱신한다. 일 실시예에서, 빈발 패턴 마이닝 서버(120)는 해당 엔트리에 저장된 빈도수 값을 1 증가시킬 수 있다(824).
상기와 같은 과정을 통해 빈발 패턴 마이닝 서버(120)는 추가된 트랜잭션을 기초로 데이터베이스 트리 자료구조와 빈발 패턴 트리 자료구조를 갱신한다. 따라서, 빈발 패턴 마이닝 서버(120)는 이전 마이닝 결과와 추가된 트랜잭션이 반영된 빈발 패턴 트리 자료구조를 이용하여 효율적으로 빈발 패턴을 마이닝할 수 있다.
상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 빈발 패턴 마이닝 시스템
110: 사용자 단말기
120: 빈발 패턴 마이닝 서버
130: 데이터베이스

Claims (22)

  1. 데이터베이스에 저장된 데이터를 기초로 데이터베이스 트리 자료구조를 생성하는 단계;
    1차 빈발 패턴 마이닝이 요청되는 경우, 상기 데이터베이스 트리 자료구조를 기초로 상위 K개의 빈발 패턴을 마이닝하고, 상기 마이닝된 K개의 빈발 패턴을 기초로 빈발 패턴 트리 자료구조를 생성하는 단계;
    2차 빈발 패턴 마이닝이 요청되는 경우, 상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는지 여부를 결정하는 단계; 및
    상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는 것으로 결정된 경우, 상기 빈발 패턴 트리 자료구조에서 상위 K'개의 빈발 패턴을 검색하여 제공하는 단계를 포함하는 빈발 패턴 마이닝 방법.
  2. 제1항에 있어서, 상기 빈발 패턴 트리 자료구조는
    상기 K개의 상위 빈발 패턴과 K+1번째 빈발 패턴에 대한 정보를 저장하는 패턴 정보 엔트리로 구성된 패턴 정보 리스트 및 패턴 정보에 대한 패턴 아이템 노드로 구성된 패턴 전위 트리를 포함하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  3. 제2항에 있어서, 상기 패턴 정보 엔트리는
    각 패턴에 대한 패턴 빈도수 및 각 패턴의 마지막 아이템에 대한 패턴 아이템 노드를 가리키는 패턴 노드 링크를 포함하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  4. 제3항에 있어서,
    상기 K+1번째 빈발 패턴에 대한 패턴 노드 링크는 NULL 값으로 설정되는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  5. 제2항에 있어서, 상기 패턴 아이템 노드는
    패턴 아이템 명칭 및 해당 패턴에 대한 정보를 저장하고 있는 패턴 정보 엔트리를 가리키는 패턴 엔트리 링크를 포함하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  6. 제2항에 있어서, 상기 빈발 패턴 트리 자료구조를 생성하는 단계는
    상위 K+1개의 빈발 패턴을 빈도수 내림차순으로 정렬하는 단계;
    상기 정렬된 패턴을 순서대로 가져와서 가져온 패턴의 패턴 내 아이템들을 정해진 순서에 따라 정렬하는 단계; 및
    상기 정렬된 아이템들을 순서대로 트리에 삽입하는 단계를 포함하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  7. 제6항에 있어서, 상기 정렬된 아이템들을 순서대로 트리에 삽입하는 단계는
    상기 패턴 내 마지막 아이템에 대한 아이템 노드 생성 시 해당 아이템 노드에 상응하는 패턴 정보를 저장하기 위한 패턴 정보 엔트리를 생성하는 단계;
    상기 생성된 패턴 정보 엔트리에 삽입하는 패턴의 빈도수를 기록하는 단계;
    상기 패턴 아이템 노드의 패턴 엔트리 링크를 상기 생성된 패턴 정보 엔트리와 연결하는 단계; 및
    상기 생성된 패턴 정보 엔트리의 패턴 노드 링크를 상기 패턴 아이템 노드와 연결하는 단계를 포함하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  8. 제7항에 있어서,
    K+1번째 빈발 패턴에 대한 마지막 패턴 정보 엔트리를 생성하여 상기 빈발 패턴 트리 자료구조를 완성하는 단계를 더 포함하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  9. 제2항에 있어서, 상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는지 여부를 결정하는 단계는
    1차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수와 2차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수를 기초로 상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는지 여부를 결정하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  10. 제9항에 있어서, 상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는지 여부를 결정하는 단계는
    1차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K)와 2차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K')를 비교하는 단계;
    상기 1차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K)가 상기 2차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K')보다 큰 경우, 상기 패턴 정보 리스트의 마지막 패턴 정보 엔트리에 저장된 K+1번째 빈발 패턴의 빈도수와 K번째 빈발 패턴의 빈도수를 비교하는 단계; 및
    상기 K번째 빈발 패턴의 빈도수가 K+1번째 빈발 패턴의 빈도수보다 큰 경우, 상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는 것으로 결정하는 단계를 포함하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  11. 제10항에 있어서, 상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는지 여부를 결정하는 단계는
    상기 2차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K')가 상기 1차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K) 이하인 경우, 또는 상기 K번째 빈발 패턴의 빈도수가 K+1번째 빈발 패턴의 빈도수 이하인 경우, 상기 1차 빈발 패턴 마이닝 결과를 활용할 수 없는 것으로 결정하는 단계를 포함하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  12. 제11항에 있어서,
    상기 1차 빈발 패턴 마이닝 결과를 활용할 수 없는 것으로 결정된 경우, 상기 데이터베이스 트리 자료구조를 기초로 상위 K'개의 빈발 패턴을 다시 마이닝하는 단계를 더 포함하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  13. 제2항에 있어서,
    상기 데이터베이스에 새로운 트랜잭션이 추가되는 경우, 상기 추가된 트랜잭션을 기초로 상기 빈발 패턴 트리 자료구조를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  14. 제13항에 있어서, 상기 빈발 패턴 트리 자료구조를 갱신하는 단계는
    상기 추가된 트랜잭션 내 아이템들을 정해진 순서에 따라 정렬하는 단계;
    상기 패턴 전위 트리에서 상기 정렬된 각 아이템에 대응되는 패턴 아이템 노드를 검색하는 단계; 및
    상기 대응되는 패턴 아이템 노드가 패턴 정보 엔트리와 연결되어 있는 경우, 해당 엔트리의 빈도수 값을 갱신하는 단계를 포함하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  15. 제14항에 있어서, 상기 패턴 아이템 노드를 검색하는 단계는
    검색된 패턴 아이템 노드가 상기 추가된 트랜잭션 내 다음 아이템에 대한 패턴 아이템 노드를 자식 노드로 가지고 있지 않으면, 상기 패턴 아이템 노드를 검색하는 단계를 중단하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  16. 제14항에 있어서,
    상기 추가된 트랜잭션 내 모든 아이템에 대한 처리가 끝나거나 상기 검색하는 과정이 중단되면, 상기 패턴 정보 리스트에서 K+1번째 빈발 패턴에 대한 엔트리의 빈도수 값을 갱신하는 단계를 더 포함하는 것을 특징으로 하는 빈발 패턴 마이닝 방법.
  17. 컴퓨터 읽기 가능한 명령어들을 저장하는 메모리; 및
    상기 메모리와 전기적으로 연결되고 사용자의 요청에 따라 상기 저장된 명령어들을 통해 아래의 과정을 실행하는 프로세서를 포함하고,
    상기 프로세서는
    데이터베이스에 저장된 데이터를 기초로 데이터베이스 트리 자료구조를 생성하는 단계;
    1차 빈발 패턴 마이닝이 요청되는 경우, 상기 데이터베이스 트리 자료구조를 기초로 상위 K개의 빈발 패턴을 마이닝하고, 상기 마이닝된 K개의 빈발 패턴을 기초로 빈발 패턴 트리 자료구조를 생성하는 단계;
    2차 빈발 패턴 마이닝이 요청되는 경우, 상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는지 여부를 결정하는 단계; 및
    상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는 것으로 결정된 경우, 상기 빈발 패턴 트리 자료구조에서 상위 K'개의 빈발 패턴을 검색하여 제공하는 단계를 실행하는 빈발 패턴 마이닝 서버.
  18. 제17항에 있어서, 상기 프로세서는
    1차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수와 2차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수를 기초로 상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는지 여부를 결정하는 것을 특징으로 하는 빈발 패턴 마이닝 서버.
  19. 제18항에 있어서, 상기 프로세서는
    상기 1차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K)가 상기 2차 빈발 패턴 마이닝에서 요청된 빈발 패턴의 개수(K')보다 큰 경우, 패턴 정보 리스트의 마지막 패턴 정보 엔트리에 저장된 K+1번째 빈발 패턴의 빈도수와 K번째 빈발 패턴의 빈도수를 비교하고,
    상기 K번째 빈발 패턴의 빈도수가 K+1번째 빈발 패턴의 빈도수보다 큰 경우, 상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는 것으로 결정하는 것을 특징으로 하는 빈발 패턴 마이닝 서버.
  20. 제18항에 있어서, 상기 프로세서는
    상기 데이터베이스에 새로운 트랜잭션이 추가되는 경우, 상기 추가된 트랜잭션을 기초로 상기 빈발 패턴 트리 자료구조를 갱신하는 것을 특징으로 하는 빈발 패턴 마이닝 서버.
  21. 제20항에 있어서, 상기 프로세서는
    상기 추가된 트랜잭션 내 아이템들을 정해진 순서에 따라 정렬하고, 패턴 전위 트리에서 상기 정렬된 각 아이템에 대응되는 패턴 아이템 노드를 검색하며, 상기 대응되는 패턴 아이템 노드가 패턴 정보 엔트리와 연결되어 있는 경우, 해당 엔트리의 빈도수 값을 갱신하는 것을 특징으로 하는 빈발 패턴 마이닝 서버.
  22. 빈발 패턴 마이닝 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 있어서,
    데이터베이스에 저장된 데이터를 기초로 데이터베이스 트리 자료구조를 생성하는 기능;
    1차 빈발 패턴 마이닝이 요청되는 경우, 상기 데이터베이스 트리 자료구조를 기초로 상위 K개의 빈발 패턴을 마이닝하고, 상기 마이닝된 K개의 빈발 패턴을 기초로 빈발 패턴 트리 자료구조를 생성하는 기능;
    2차 빈발 패턴 마이닝이 요청되는 경우, 상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는지 여부를 결정하는 기능; 및
    상기 1차 빈발 패턴 마이닝 결과를 활용할 수 있는 것으로 결정된 경우, 상기 빈발 패턴 트리 자료구조에서 상위 K'개의 빈발 패턴을 검색하여 제공하는 기능을 수행하는 빈발 패턴 마이닝 방법에 관한 컴퓨터 프로그램을 저장하는 기록매체.
KR1020150052734A 2015-04-14 2015-04-14 빈발 패턴 마이닝 방법, 빈발 패턴 마이닝 서버 및 이를 수행하는 프로그램을 기록하는 기록매체 KR101761175B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150052734A KR101761175B1 (ko) 2015-04-14 2015-04-14 빈발 패턴 마이닝 방법, 빈발 패턴 마이닝 서버 및 이를 수행하는 프로그램을 기록하는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150052734A KR101761175B1 (ko) 2015-04-14 2015-04-14 빈발 패턴 마이닝 방법, 빈발 패턴 마이닝 서버 및 이를 수행하는 프로그램을 기록하는 기록매체

Publications (2)

Publication Number Publication Date
KR20160122588A KR20160122588A (ko) 2016-10-24
KR101761175B1 true KR101761175B1 (ko) 2017-07-25

Family

ID=57256645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150052734A KR101761175B1 (ko) 2015-04-14 2015-04-14 빈발 패턴 마이닝 방법, 빈발 패턴 마이닝 서버 및 이를 수행하는 프로그램을 기록하는 기록매체

Country Status (1)

Country Link
KR (1) KR101761175B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101275834B1 (ko) 2010-11-09 2013-06-18 충북대학교 산학협력단 상위 k개의 중요 패턴들을 마이닝 하는 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100913027B1 (ko) 2002-09-23 2009-08-20 이원석 데이터 마이닝 시스템 및 그 방법
KR101013175B1 (ko) 2010-07-23 2011-02-10 현빈개발 주식회사 박스거더용 자전거 도로 및 이의 시공방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101275834B1 (ko) 2010-11-09 2013-06-18 충북대학교 산학협력단 상위 k개의 중요 패턴들을 마이닝 하는 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
상위 K개의 빈발 패턴 마이닝의 분석과 성능평가(한국인터넷정보학회 학술발표대회 논문집,2012.11,49-50(2pages))

Also Published As

Publication number Publication date
KR20160122588A (ko) 2016-10-24

Similar Documents

Publication Publication Date Title
CN110837550B (zh) 基于知识图谱的问答方法、装置、电子设备及存储介质
CN107590174B (zh) 页面访问方法及装置
US11321421B2 (en) Method, apparatus and device for generating entity relationship data, and storage medium
US11907659B2 (en) Item recall method and system, electronic device and readable storage medium
US8631097B1 (en) Methods and systems for finding a mobile and non-mobile page pair
JP2019536171A (ja) ウェブページのクラスタリング方法及び装置
CN103885966A (zh) 电子商务交易平台中的问答交互方法和系统
Hoseini et al. A new algorithm for mining frequent patterns in can tree
CN112579729A (zh) 文档质量评价模型的训练方法、装置、电子设备和介质
CN110309214B (zh) 一种指令执行方法及其设备、存储介质、服务器
JP2009169689A (ja) データ分類方法およびデータ処理装置
KR101761177B1 (ko) 상위 k 중요 패턴 마이닝 방법, 이를 수행하는 장치 및 이를 저장하는 기록매체
JP5439235B2 (ja) 文書分類方法、文書分類装置、およびプログラム
CN115329753B (zh) 一种基于自然语言处理的智能数据分析方法和系统
KR101761175B1 (ko) 빈발 패턴 마이닝 방법, 빈발 패턴 마이닝 서버 및 이를 수행하는 프로그램을 기록하는 기록매체
CN115687717A (zh) Grok表达式获取方法、装置、设备及计算机可读存储介质
US9195940B2 (en) Jabba-type override for correcting or improving output of a model
US20150178966A1 (en) System and method to check the correct rendering of a font
CN114860872A (zh) 数据处理方法、装置、设备以及存储介质
CN114676155A (zh) 代码提示信息的确定方法、数据集的确定方法及电子设备
KR20220099745A (ko) 지리공간 블록체인 데이터 검색을 위한 공간 분할 기반의 트리 인덱싱 및 질의어 처리 방법 및 장치
KR20220041337A (ko) 유사어로 검색어 갱신 및 핵심 문서를 추출하기 위한 그래프 생성 시스템 및 이를 이용한 그래프 생성 방법
KR20220041336A (ko) 중요 키워드 추천 및 핵심 문서를 추출하기 위한 그래프 생성 시스템 및 이를 이용한 그래프 생성 방법
US20190026795A1 (en) Evaluation device and evaluation method
JP2020091607A (ja) 検索システム、及び検索方法

Legal Events

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