KR20090019185A - 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템 - Google Patents
데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템 Download PDFInfo
- Publication number
- KR20090019185A KR20090019185A KR1020070083432A KR20070083432A KR20090019185A KR 20090019185 A KR20090019185 A KR 20090019185A KR 1020070083432 A KR1020070083432 A KR 1020070083432A KR 20070083432 A KR20070083432 A KR 20070083432A KR 20090019185 A KR20090019185 A KR 20090019185A
- Authority
- KR
- South Korea
- Prior art keywords
- association rule
- node
- item set
- item
- items
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 156
- 238000007418 data mining Methods 0.000 title claims abstract description 15
- 230000002441 reversible effect Effects 0.000 claims description 19
- 238000004422 calculation algorithm Methods 0.000 description 31
- 238000005065 mining Methods 0.000 description 31
- 238000012545 processing Methods 0.000 description 10
- 238000002474 experimental method Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013138 pruning Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 101100153586 Caenorhabditis elegans top-1 gene Proteins 0.000 description 2
- 101100370075 Mus musculus Top1 gene Proteins 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000006165 Knowles reaction Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 238000013016 damping Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
데이터 스트림으로부터 연관규칙을 생성하는 방법 및 데이터 마이닝 시스템이 개시된다. 본 발명에 따른 연관규칙 생성방법은, 지속적으로 발생되는 트랜잭션들로 구성되는 비한정적 데이터 집합인 데이터 스트림으로부터 연관규칙을 생성하는 방법에 있어서, 이미 발생한 트랜잭션들에 포함된 항목집합들 및 상기 항목집합들의 출현빈도수가 전위트리를 이용하여 관리되고, 상기 전위트리의 각 노드는 특정 항목과 상기 노드에 대응하는 특정 항목집합의 출현빈도수 정보를 가질 때, 현재 발생한 트랜잭션에 포함된 항목집합 및 상기 항목집합의 출현 빈도수에 따라서 상기 항목집합에 대응하는 노드가 가지고 있는 정보를 갱신하거나 새로운 노드를 추가하는 단계; 상기 전위트리의 각 노드에 해당하는 항목집합에 대하여 지지도를 소정의 임계값인 최소 지지도와 비교하여 빈발항목집합들을 선택하는 단계; 및 상기 선택된 빈발항목집합들에 해당하는 노드들 중 전부 또는 일부의 노드들을 방문하면서 상기 방문된 노드들 각각이 가지고 있는 정보를 이용하여 연관규칙을 생성하는 단계를 포함하는 것을 특징으로 한다.
데이터 마이닝(data mining), 데이터 스트림(Data stream), 빈발항목집합(Frequent itemset), 연관규칙(Association rules)
Description
본 발명은 연관규칙 생성 방법 및 데이터 마이닝 시스템에 관한 것으로, 특히 지속적으로 발생되는 트랜잭션들로 구성되는 비한정적 데이터 집합인 데이터 스트림으로부터 연관규칙을 생성하는 방법 및 상기 데이터 스트림으로부터 연관규칙을 생성하는 데이터 마이닝 시스템에 관한 것이다.
일반적으로 데이터 마이닝의 대상이 되는 데이터 집합에서는 응용 도메인에 나타나는 모든 단위 정보들을 단위항목(item)으로 정의하고 응용 도메인에서 의미적인 동시성(즉, 의미적으로 서로 함께 발생하는)을 갖는 단위 정보들의 모임을 트랜잭션(transaction)이라 정의한다. 트랜잭션은 의미적인 동시성을 갖는 단위항목들의 정보를 가지며 데이터 마이닝의 분석 대상이 되는 데이터 집합은 해당 응용 도메인에서 발생된 트랜잭션들의 집합으로 정의된다.
항목들의 집합 I가 주어졌을 때, 연관규칙은 X → Y(X⊆ I, Y⊆ I)와 같은 형태로 표현된다. 연관규칙은 데이터 집합의 항목들간에 서로 의미있는 관계가 있 음을 나타낸다. 즉, 트랜잭션에 항목집합 X가 출현한다면 같은 트랜잭션에 있는 다른 항목집합 Y도 높은 확률에 의해 출현한다는 예측이 연관규칙이다. 트랜잭션의 집합에서, 연관규칙 X → Y의 지지도(support)는 X와 Y를 포함하는 트랜잭션의 비율을 나타낸다. 또한, 연관규칙 X → Y의 신뢰도란 전체 트랜잭션에 대하여 X를 포함하는 트랜잭션이 Y도 포함하고 있는 경우의 확률을 뜻한다. 연관규칙의 강도를 나타내는 두 가지 표기인 최소지지도 Smin과 최소 신뢰도 Cmin은 <R. Agrawal, T. Imielinski, and A. Swami, "Mining Association Rules between Sets of Items in Very Large Databases" Proc. ACM SIGMOD Conf. Management of Data, pp. 207-216, May 1993>에서 확립되었다.
일반적으로 최소지지도 Smin 과 최소 신뢰도 Cmin이 주어졌을 때, 연관규칙의 생성은 다음의 두 단계로 이루어진다. 첫번째 단계에서, 항목집합의 지지도가 Smin과 같거나 더 큰 지지도 값을 갖는 모든 항목집합들을 찾는다. 항목들의 모든 이러한 조합들을 빈발항목집합(Frequent Itemsets)이라고 한다. 두 번째 단계에서는 각 빈발항목집합들 중 공집합을 제외한 적당한 부분집합이 연관규칙의 조건부가 될 수 있는지 평가한다. 즉, 임의의 빈발항목집합 e와 e의 한 부분집합 중 공집합이 아닌 q에 대하여 S(e)/S(q)≥ Cmin을 만족하는 경우에만 연관규칙 q → e-q가 생성된다. 이러한 연관규칙 생성 방법에서 주요한 병목문제를 일으키는 것은 첫번째 단계이다. 그러므로, 대부분의 연구들은 전체 데이터 집합에서 빈발항목집합을 효율적으로 찾는 방법에 집중되어 있었다.
트랜잭션의 유한 집합으로부터 빈발항목집합을 탐색하는 대표적인 알고리즘으로 <R. Agrawal, T. Imielinski, and A. Swami, "Mining Association Rules between Sets of Items in Very Large Databases" Proc. ACM SIGMOD Conf. Management of Data, pp. 207-216, May 1993>에서 Apriori 알고리즘이 제안되었다. Apriori 알고리즘은 길이 n인 빈발항목집합을 탐색하기 위해 최대 n+1번의 트랜잭션 정보 검색 과정을 거치며 DIC<S. Brin, R. Motwani, J.D. Ullman, and S. Tsur. Dynamic Itemset Counting and Implication Rules for Market Basket Data. In Proceedings of the ACM SIGMOD International Conference on Management of Data, pp. 255-264, 1997>와 Partition<A. Savasers, E. Omiecinski, and S. Navathe. An Efficient Algorithm for Mining Association Rules in Large Databases. In Proceedings of the 21st International Conference on Very Large Data Bases, pp. 432-444, 1995>과 같은 알고리즘들이 트랜잭션 정보 검색 회수를 줄이기 위해 제안되었다. 데이터 집합이 점진적으로 증가되는 환경에서는 BORDERS<Y. Aumann, R. Feldman, O. Lipshtat, and H. Manilla. Borders: An efficient algorithm for association generation in dynamic databases. In Journal of Intelligent Information System, Vol. 12, No. 1, pages 61-73, 1999>와 DEMON <V. Ganti, J. Gehrke, and R. Ramakrishnan. DEMON: Mining and monitoring evolving data. In Proc. of the 16th Int'l Conference on Data Engineering, pages 439-448, San Diego, California, Feb. 2000> 같은 점진적인 마이닝 알고리즘들이 효율적이다. 점진적 마이닝 알고리즘은 최신의 마이닝 결과를 탐색하기 위해 이전 마이닝 결과 를 효과적으로 사용하는데 초점을 맞추고 있다. 그러나 데이터 집합의 다수 검색과 각 트랜잭션 정보의 관리를 필요로 하므로 데이터 스트림의 빈발항목집합 탐색에는 적합하지 않다.
연관규칙 마이닝 단계인 두번째 단계에 관하여, online mining 방법<Charu C. Aggarwal, Philip S. Yu: A New Approach to Online Generation of Association Rules. IEEE Trans. Knowl. Data Eng. 13(4): 527-540, 2001>이 제안되었다. 일반적으로 사용자는 일반적으로 아주 적은 수의 연관규칙에만 관심이 있으며 적정한 레벨의 Smin과 Cmin을 찾기 위해서는 사용자가 여러 번 질의를 하게 된다. 비순환형 그래프인 adjacency lattice는 중복성을 피하기 위해 모든 빈발항목집합들의 집합들로 구성된다. 온라인 연관규칙 마이닝을 위해서 OLAP(Online Analytical Processing)과 비슷한 접근방식을 사용한다. 그러나, 이러한 유한 트랜잭션 집합에 대한 접근방법들은 데이터 집합에 대한 중복적인 검색과 각 트랜잭션 정보의 관리를 필요로 하므로 데이터 스트림의 빈발항목집합 탐색에는 적합하지 않다.
데이터 스트림은 빠른 속도로 발생됨과 동시에 지속적으로 발생되는 연속적인 데이터로 구성되는 무한집합으로 정의된다. 따라서 발생되는 모든 데이터 객체를 한정된 공간에서 별도로 저장하는 것은 불가능하다. 이런 특성을 고려하여 데이터 스트림의 정보에 대한 지식을 추출하기 위해서는 다음과 같은 조건들을 만족해야 한다. 첫째 데이터 스트림의 각 트랜잭션 정보를 단 한번만 읽고 마이닝 결과를 생성해야 한다. 둘째 데이터 스트림을 분석하기 위해 아무리 새로운 데이터가 계속적으로 무한히 생성된다 하더라도 물리적으로 한정된 메모리 공간으로 처리해야 한 다. 셋째 새롭게 생성된 데이터 객체는 가능한 빠르게 처리되어야 한다. 마지막으로 스트림에 대한 최신의 결과는 필요 시 즉시 제공되어야 한다. 이러한 요구 조건을 만족시키기 위해 일반적으로 데이터 스트림에 대한 마이닝 방법들은 마이닝 결과에 다소의 오차를 포함한다.
최근 들어, 데이터 스트림에서 의미 있는 지식을 탐색하기 위한 다양한 알고리즘들이 활발히 제안되어 왔다. 이러한 알고리즘들 중에서 sticky sampling 방법과 Lossy Counting 알고리즘<G.S. Manku and R. Motwani. Approximate Frequency Counts over Data Streams. In Proc. of the 28th VLDB, pp.346-357, 2002> 및 estDec 방법<J.H. Chang and W.S. Lee. Finding recent frequent itemsets adaptively over online data streams. In Proc. of the 9th ACM SIGKDD, pp. 487-492, 2003>은 스트림 환경에서의 빈발항목집합 탐색에 중점을 두고 있다. Lossy Counting 알고리즘은 결정론적인 방법을 따르는 대표적인 방법으로 최소 지지도와 최대 허용 오차 조건이 주어졌을 때 데이터 스트림에서 발생한 빈발항목들의 집합을 찾는다. 스트림을 구성하는 각 트랜잭션에서 발생하는 빈발가능한 항목들의 출현 빈도 수와 이들 각각의 오차를 메모리에서 관리하여 새로 발생한 트랜잭션들은 메인 메모리에 유지되는 고정된 크기의 버퍼에 채워지고 동시에 처리된다. 버퍼에 채워진 트랜잭션들에 대해서는 먼저 단위항목들의 출현빈도수가 갱신되며, 버퍼의 트랜잭션들에서 가능한 모든 후보 항목을 생성하고 이의 발생빈도 수를 갱신한다. 새로운 빈발가능 항목은 이전에 발생된 트랜잭션의 수를 고려하여 해당 항목에 포함될 수 있는 최대 오차를 추정하며 함께 관리한다.
이 알고리즘에서는 버퍼의 크기와 한번에 일괄 처리될 수 있는 트랜잭션의 수가 비례하므로, 버퍼의 크기가 증가함에 따라 높은 효율을 보이지만 결과적으로 빈발항목집합 탐색을 위해 필요한 메모리 사용 공간은 증가한다. 또한, 출현 빈도수를 갱신하거나 마이닝 결과를 얻기 위해서는 보조 저장 장치에서 관리되는 모든 항목집합들을 탐색해야 하며, 이는 마이닝 수행 시간을 증가시킬 수 있다. 따라서, 임의 시점에서 수시로 마이닝 결과를 구하고자 하는 온라인 데이터 스트림 환경에서의 마이닝에는 비효율적이다.
온라인 데이터 스트림을 대상으로 빈발항목집합을 탐색하면서 출현 빈도수 관리 대상 항목집합을 메모리 상에서 관리될 수 있을 정도의 적은 수로 줄이기 위한 방법으로 이전 연구에서 estDec 방법이 제안되었다.
estDec 방법에서는, 사전 정의된 임계값 Ssig (Ssig≤Smin) 이상의 지지도를 갖는 항목집합을 중요 항목집합으로 본다. 그리고, 메모리에서 모든 중요 항목집합의 현재 출현빈도수를 추적하기 위하여 전위트리 구조를 채용하였다. 각 중요 항목집합은 전위트리의 노드에 의하여 표현되고, 메모리에서 모니터링되는 항목집합의 개수는 지연 추가(delayed-insertion)와 전지 작업(pruning)에 의하여 최소화된다. 지연 추가란 새로운 트랜잭션에 포함된 항목집합의 추가를 그 항목집합이 모니터링될만큼 중요해질 때까지 추가를 지연시키는 것이고, 전지 작업은 모니터링되는 항목집합이 중요해지지 않게 되면 그 항목집합을 전지하는 것이다.
<Ahmed Metwally, Divyakant Agrawal, Amr El Abbadi. Using Association Rules for Fraud Detection in Web Advertising Network. In Proc. of the 31st international conference on Very large data bases , August 2005>에서는, 웹 광고 네트워크(web advertising networks)의 부정을 탐지하기 위해 데이터 스트림에서 두 아이템으로 이루어진 단순한 형태의 연관규칙을 도입하였다. 두 개의 항목 x와 y의 연관규칙 x→y를 정의하기 위해서 데이터 스트림의 conditional frequency가 지속적으로 모니터링 된다. 이것은 (x, y)쌍의 출현빈도수 항목, 즉 x가 출현한 후에 사전에 정의된 max span δ 안에서 항목 y가 출현한 경우의 발생 횟수를 의미한다. unique-count 기법은 데이터 스트림 상에서 효율적으로 모든 개별적인 항목의 쌍의 conditional frequency를 계산하기 위해 고안되었다. 그러나 우리가 다루는 데이터 스트림 상에서 일반적인 연관규칙 유도 알고리즘은 이전의 연구에서 아직까지 언급된 적이 없다. 모든 최신의 빈발항목집합들이 추출된 이후에 임의의 시점에서 수시로 모든 연관규칙들을 생성하는 전통적인 두 단계의 접근방법이 온라인 데이터 스트림에도 적용되고 있다. 이러한 접근 방식은 모든 빈발항목집합의 지지도에 관한 정보를 임시적으로 저장할 부가적인 메모리 공간이 요구되며, 온라인 데이터 스트림 상에서 점진적으로 연관규칙의 변화를 추적하는 데에 비효율적이다.
본 발명이 이루고자 하는 기술적 과제는 지속적으로 발생되는 트랜잭션들로 구성되는 비한정적 데이터 집합인 데이터 스트림으로부터 효율적으로 연관규칙을 생성하는 방법 및 상기 데이터 스트림으로부터 연관규칙을 생성하는 데이터 마이닝 시스템을 제공하는 데에 있다.
상기 기술적 과제를 해결하기 위하여 본 발명에 따른 연관규칙 생성방법은, 지속적으로 발생되는 트랜잭션들로 구성되는 비한정적 데이터 집합인 데이터 스트림으로부터 연관규칙을 생성하는 방법에 있어서, 이미 발생한 트랜잭션들에 포함된 항목집합들 및 상기 항목집합들의 출현빈도수가 전위트리를 이용하여 관리되고, 상기 전위트리의 각 노드는 특정 항목과 상기 노드에 대응하는 특정 항목집합의 출현빈도수 정보를 가질 때, (a) 현재 발생한 트랜잭션에 포함된 항목집합 및 상기 항목집합의 출현 빈도수에 따라서 상기 항목집합에 대응하는 노드가 가지고 있는 정보를 갱신하거나 새로운 노드를 추가하는 단계; (b) 상기 전위트리의 각 노드에 해당하는 항목집합에 대하여 지지도를 소정의 임계값인 최소 지지도와 비교하여 빈발항목집합들을 선택하는 단계; 및 (c) 상기 선택된 빈발항목집합들에 해당하는 노드들 중 전부 또는 일부의 노드들을 방문하면서 상기 방문된 노드들 각각이 가지고 있는 정보를 이용하여 연관규칙을 생성하는 단계를 포함하는 것을 특징으로 한다.
상기 (c) 단계는, (c1) 루트 노드로부터 상기 노드들 중 연관규칙을 생성하고자 하는 항목집합에 대응하는 노드까지의 경로 상에 있는 노드들 각각이 가지고 있는 항목 및 출현빈도수를 상기 경로 상의 순서대로 스택에 저장하는 단계; 및 (c2) 상기 스택에 저장된 항목 및 출현빈도수를 이용하여 상기 항목집합에 대한 연관규칙을 생성하는 단계를 포함할 수 있다.
상기 항목집합에 포함된 항목들이 사전적 정렬순서를 이루고 있을 때, 상기 (c2) 단계는, (c21) 연관규칙의 조건부에 포함된 모든 항목들의 사전적 정렬 순서가 결과부에 포함된 항목들 중 사전적 정렬 순서가 가장 앞선 항목보다 모두 앞서 있는 형태의 연관규칙인 순방향 연관규칙을 생성하는 단계; 및 (c22) 상기 항목집합에 대한 연관규칙 중 상기 순방향 연관규칙을 제외한 형태의 연관규칙인 역방향 연관규칙을 생성하는 단계를 포함할 수 있다.
또한, 상기 (c) 단계는 깊이 우선 탐색 방법을 이용하여 상기 노드들을 방문하고, 상기 방문된 노드들 각각에 해당하는 항목집합에 대하여 연관규칙을 생성할 수 있다.
또한, 상기 (c) 단계는 (c1) 루트 노드로부터 상기 노드들 중 임의의 노드까지의 경로 상에 있는 노드들 각각이 가지고 있는 정보를 상기 경로 상의 순서대로 스택에 저장하는 단계; (c2) 상기 스택에 저장된 정보를 이용하여 상기 임의의 노드에 대응하는 항목집합에 대한 연관규칙을 생성하는 단계; (c3) 상기 스택의 최상위에 저장된 정보인 상기 임의의 노드에 대응하는 항목 및 출현빈도수를 삭제하고, 상기 임의의 노드의 형제노드 또는 부모노드를 방문하여 상기 방문된 형제노드 또는 부모노드가 가지고 있는 정보를 상기 스택에 저장하는 단계; 및 (c4) 상기 스택에 저장된 정보를 이용하여 상기 형제노드 또는 부모노드에 대응하는 항목집합에 대한 연관규칙을 생성하는 단계를 포함할 수 있다.
상기 (c2) 단계 또는 상기 (c4) 단계에서 상기 항목집합에 대한 연관규칙의 생성은, 상기 항목집합의 부분항목집합들 모두가 각각 조건부가 되는 연관규칙의 신뢰도를 계산하고, 소정의 임계값인 최소 신뢰도와 비교하여 연관규칙을 생성할 수 있다.
또한, 상기 (c2) 단계 또는 상기 (c4) 단계에서 상기 항목집합에 대한 연관규칙의 생성은, 상기 항목집합의 부분항목집합들 중 적어도 일부가 조건부가 되는 연관규칙의 신뢰도를 검사하여 연관규칙을 생성하는 한편, 상기 항목집합의 부분항목집합들 중 임의의 부분항목집합을 조건부로 하는 연관규칙의 신뢰도가 소정의 임계값인 최소 신뢰도보다 작은 경우, 상기 임의의 부분항목집합의 부분집합을 조건부로 하는 연관규칙의 신뢰도는 검사하지 않을 수 있다.
또한, 상기 (c) 단계에서, 특정 항목집합 X가 조건부에 위치하는 연관규칙을 생성하고자 할 때, 전위순위 탐색방법으로 상기 특정 항목집합 X의 수퍼집합에 대응하는 각 노드를 방문하면서 연관규칙을 생성하되, 임의의 방문된 노드에 대하여 연관규칙 X→e-X(여기서, e는 상기 임의의 방문된 노드에 대응하는 항목집합)가 성립되지 않는 경우, 상기 임의의 방문된 노드의 자손 노드들은 방문하지 않을 수 있다.
또한, 상기 (c) 단계에서, 특정 항목집합 Y가 결과부에 위치하는 연관규칙을 생성하고자 할 때, 전위순위 탐색방법으로 상기 특정 항목집합 Y의 수퍼집합에 대응하는 각 노드를 방문하면서 연관규칙을 생성하되, 임의의 방문된 노드에 대하여 연관규칙 e-Y→Y(여기서, e는 상기 임의의 방문된 노드에 대응하는 항목집합)가 성립되지 않는 경우, 상기 임의의 방문된 노드의 자손 노드들은 방문하지 않을 수 있다.
상기 다른 기술적 과제를 해결하기 위하여 본 발명에 따른 데이터 마이닝 시스템은, 지속적으로 발생되는 트랜잭션들로 구성되는 비한정적 데이터 집합인 데이터 스트림으로부터 연관규칙을 생성하는 데이터 마이닝 시스템에 있어서, 이미 발생한 트랜잭션들에 포함된 항목집합들 및 상기 항목집합들의 출현빈도수가 전위트리를 이용하여 관리되고, 상기 전위트리의 각 노드는 특정 항목과 상기 노드에 대응하는 특정 항목집합의 출현빈도수 정보를 가지는 상기 전위 트리를 저장하는 전위 트리 저장부; 현재 발생한 트랜잭션에 포함된 항목집합 및 상기 항목집합의 출현 빈도수에 따라서 상기 항목집합에 대응하는 노드가 가지고 있는 정보를 갱신하거나 새로운 노드를 추가하는 전위 트리 갱신부; 상기 전위트리의 각 노드에 해당하는 항목집합에 대하여 지지도를 소정의 임계값인 최소 지지도와 비교하여 빈발항목집합들을 선택하는 빈발항목집합 선택부; 및 상기 선택된 빈발항목집합들에 해당하는 노드들 중 전부 또는 일부의 노드들을 방문하면서 상기 방문된 노드들 각각이 가지고 있는 정보를 이용하여 연관규칙을 생성하는 연관규칙 생성부를 포함하는 것을 특징으로 한다.
상기 데이터 마이닝 시스템은, 루트 노드로부터 상기 노드들 중 연관규칙을 생성하고자 하는 항목집합에 대응하는 노드까지의 경로 상에 있는 노드들 각각이 가지고 있는 항목 및 출현빈도수를 상기 경로 상의 순서대로 저장하기 위한 스택을 더 포함하고, 상기 연관규칙 생성부는 상기 스택에 저장된 항목 및 출현빈도수를 이용하여 상기 항목집합에 대한 연관규칙을 생성할 수 있다.
상기 항목집합에 포함된 항목들이 사전적 정렬순서를 이루고 있을 때, 상기 연관규칙 생성부는, 연관규칙의 조건부에 포함된 모든 항목들의 사전적 정렬 순서가 결과부에 포함된 항목들 중 사전적 정렬 순서가 가장 앞선 항목보다 모두 앞서 있는 형태의 연관규칙인 순방향 연관규칙을 생성하고, 상기 항목집합에 대한 연관규칙 중 상기 순방향 연관규칙을 제외한 형태의 연관규칙인 역방향 연관규칙을 생성할 수 있다.
상기 또 다른 기술적 과제를 해결하기 위하여 상기된 본 발명에 따른, 지속적으로 발생되는 트랜잭션들로 구성되는 비한정적 데이터 집합인 데이터 스트림으로부터 연관규칙을 생성하는 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
본 발명에 따르면, 지속적으로 발생되는 트랜잭션들로 구성되는 비한정적 데이터 집합인 데이터 스트림으로부터 효율적으로 연관규칙을 생성할 수 있다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
먼저 본 발명을 설명함에 있어서 사용될 기호에 대하여 정의한다.
빈발항목집합 마이닝을 위한 데이터 스트림은 지속적으로 발생되는 트랜잭션의 무한집합으로 다음과 같이 정의된다.
ⅰ) I = {i 1 ,i 2 ,…,i n }는 현재까지의 항목(item)의 집합이며 항목은 응용 도메인에서 발생한 단위 정보를 의미한다.
ⅱ) 2 I 가 항목집합 I의 멱집합을 나타낼 때, e ∈ (e ∈ 2I - {ø})을 만족하는 e를 항목집합(itemset)이라 하고, 항목집합의 길이 |e|는 항목집합 e를 구성하는 항목의 수를 의미하며 임의의 항목집합 e는 해당 항목집합의 길이에 따라 |e|-항목집합이라 정의한다. 일반적으로 3-항목집합 {a,b,c}는 간단히 abc로 나타낸다.
ⅲ) 트랜잭션은 공집합이 아닌 I의 부분집합이며 각 트랜잭션은 트랜잭션 식별자 TID를 갖는다. k번째 순서로 데이터 집합에 추가되는 트랜잭션을 T k 라 나타내며 T k 의 TID는 k이다.
ⅳ) 새로운 트랜잭션 T k 가 추가되었을 때 현재의 데이터 집합 D k 는 현재까지 발생하여 추가된 모든 트랜잭션들 즉, D k =<T 1 ,T 2 ,…,T k >로 구성된다. 따라서 |D| k 는 현재 데이터 집합 D k 에 포함된 트랜잭션의 총 수를 의미한다.
다음으로, 본 발명의 일 실시예에서 온라인 데이터 스트림을 대상으로 빈발항목집합을 탐색하기 위한 종래의 estDec 방법을 설명하기로 한다.
데이터 스트림에 나타나는 정보는 시간이 흐름에 따라 변화한다. 데이터 스트림에 나타나는 정보의 변화를 빠르게 식별하는 것은 데이터 스트림 분석에 있어서 보다 가치 있는 정보를 제공한다. 이러한 목적으로, 데이터 스트림의 현재 마이 닝 결과에 대하여 오래된 트랜잭션들에 포함된 쓸모없게 된 정보들이 미치는 영향은 효과적으로 제거되어야만 한다. 이러한 결점을 해결하기 위하여 감쇠율 방법이 적용된다. 감쇠율은 시간 변화에 따라 발생되는 데이터 집합에서 과거 정보와 최근 정보의 중요성을 차별화하는 정보 차별화 방법에서 일정량의 변화에 따른 가중치의 감쇠 정도를 나타내는 값이며 다음 두 변수, 즉 감쇠 기본값(decay-base : b)과 감쇠 기본 주기(decay-base-life : h)에 의해 정의된다. 감쇠 기본값은 감쇠율을 정의하는 기본값이며 감쇠 기본 주기는 데이터 집합에서 현재 트랜잭션의 가중치(=1)가 감쇠되어 b-1이 되는 시점까지 경과하는 단위시간의 수를 의미한다. 한편 감쇠 기본값 b와 감쇠 기본주기 h가 주어졌을 때 한번의 단위시간 변화에 따른 가중치의 감쇠 정도를 나타내는 감쇠율(decay-rate : d)는 다음과 같이 정의된다. 감쇠율 d가 정의되었을 때 한번의 시간 변화에 따라 나타내는 실제 감쇠 정보는 (1-d)로 구해진다.
d = b -(1/ h ) (b≥1,h≥1)
온라인 데이터 스트림 환경에서 빈발항목집합 탐색을 위해 제안된 estDec 방법은 데이터 스트림을 구성하는 트랜잭션이 생성과 동시에 처리되며, 빈발항목집합 생성을 위한 후보집합 생성없이 전위트리 구조를 갖는 모니터링 트리를 이용하여 트랜잭션에 나타난 항목집합들의 출현 빈도수를 관리한다. 주어진 현재 데이터 집합 D k 에서, 전위트리 P k 는 다음과 같은 특징을 갖는다.
ⅰ) 전위트리 P k 는 "null"값을 가지는 하나의 루트노드 n root 을 가지며, n root 을 제외한 다른 노드들은 하나의 항목 i∈I를 갖는다.
ⅱ) 주어진 전위트리 P k 의 한 항목 i n ∈I를 갖는 임의의 노드 n에 대하여, 루트노드로부터 노드 n까지의 경로상에 존재하는 노드들이 n root → n 1 → n 2 →…→ n v → n 의 순서를 이루고 경로상의 임의의 노드 n j 가 항목 i j ∈I (1 ≤ j ≤v)를 갖는다고 할 때, 노드 n은 항목집합 e n =i 1 i 2…i v i n 을 표현하며, e n 의 현재 출현 빈도수 C k (e n )를 관리한다.
주어진 감쇠율 d에 대하여, 현재 데이터 스트림 D k 에서 항목집합 e의 출현빈도수 C k (e)는 다음과 같이 정의 된다.
C k (e)=C k -1(e)ㅧd +1 if e appears in a new transaction T k
C k (e)=C k -1(e)ㅧd if e does not appear in a new transaction T k
새로운 트랜잭션 T k 가 생성될 때 마다, T k 에 나타난 항목집합과 일치하는 모든 노드들이 방문되고 각 항목집합들의 출현 빈도수가 갱신된다. 온라인 데이터 스트림을 대상으로 빈발항목집합을 탐색하면서 출현 빈도수 관리 대상 항목집합을 메모리 상에서 관리될 수 있을 정도의 적은 수로 줄이기 위한 방법인 estDec 방법에서는 지연추가(delayed-insertion)와 전지작업(pruning)을 통하여 빈발항목집합이 될 가능성이 있는 항목집합들만을 관리한다. 각 작업들을 위해 다음의 두 가지 사전 정의된 지지도 임계값, 즉 지연추가 임계값 Sins (≤ Smin)과 전지 임계값 Sprn (≤ Sins)을 사용한다. 항목집합의 지지도가 Sins보다 큰 값을 가지는 항목집합을 중요 항목집합(significant itemset)으로 간주하여 이 항목집합들만을 메모리상에서 관리한다. estDec 방법에서 데이터 스트림 D k 에 출현한 새로운 항목집합과 해당 항목집합의 출현 빈도수가 메모리상의 전위트리에서 관리되는 경우는 다음과 값은 두 가지 경우이다. 첫째, 새로운 트랜잭션 T k 에서 최초로 발생된 길이 1인 항목집합과 해당 항목집합의 출현 빈도수는 출연 빈도수 추정과정을 거치지 않고 전위트리 P k 에 추가되어 관리된다. 둘째, T k 에 전위트리에서 관리되지 않는 길이 n (n≥2)인 새로운 항목집합이 발생되었을 때에는 해당 항목집합이 가까운 미래에 빈발항목집합이 될 수 있을 정도로 큰 지지도를 가질 때 전위트리 P k 에 추가된다. 즉, P k 에서 관리되고 있지 않은 새로운 n-항목집합 e는(n≥2)자신의 모든 (n-1)-부분항목집합들이 P k 에서 관리될 때, e의 지지도를 이들 (n-1)-부분항목집합의 출현빈도수로부터 추정하며, 추정값이 사전 정의된 지연추가 임계값 Sins 이상일 때 P k 에 추가된다.
다수의 트랜잭션으로 구성되는 데이터 집합에서 출현한 임의의 두 항목에 대해서 이들 두 항목이 가능한 많은 트랜잭션에서 함께 출현한 경우를 최소배타분포 (least exclusively distributed : LED)라 정의한다. 이와 반대로, 이들 두 항목이 최대한 배타적으로 출현한 경우를 최대배타분포(most exclusively distributed : MED) 라 정의한다. 두 개의 항목 e1 및 e2 에 대해서 병합항목(union-itemset) e1∪ e2의 최대 출현 빈도수 Cmax(e1∪e2) 는 두 항목이 최소배타분포(LED) 상태라고 가정하여 추정한다.
C max (e 1 ∪e 2 ) = min(C(e 1 ), C(e 2 ))
여기서 C(x)는 항목집합 x의 출현 빈도수를 나타낸다. 두 개의 항목 e 1 및 e 2 에 대해서(e 1∩e 2 ≠ ??), 병합항목의 최소출현빈도수 C min (e 1 ∪e 2 ) 는 두 항목이 최대배타분포(MED) 상태라고 가정하여 추정한다.
C min (e 1 ∪e 2 ) = max(0,C(e 1)+C(e 2)??C(e 1∩e 2))
n-항목집합 e의 (n-1)-부분항목집합들에 대한 현재 출현 빈도수를 {c 1,c 2,…,c n }라고 할 때, e의 추정된 출현 빈도수 는 모든 (n-1)-부분항목집합들의 출현 빈도수들 중 최소값 = min(c 1,…,c n )이며 e의 지지도 추정 과정에서 발생하는 최대 오차의 폭은 다음과 같다.
위의 과정을 지연 추가라 하며, 출현 빈도수의 추정값이 갖는 최대 오차의 폭은 k값이 커짐에 따라 작아진다.
한편, 이미 Pk에 관리되고 있는 항목집합들에 대해 현재 항목집합의 지지도 가 전지 임계값 Sprn 미만으로 감소할 때 해당 항목집합을 앞으로 빈발항목집합이 될 가능성이 상대적으로 낮은 비중요 항목집합으로 간주하여 빈발항목집합의 안티모노톤(antimonotone) 성질에 의해 해당 항목집합을 표현하는 노드와 그 노드의 모든 자손 노드들을 Pk로부터 제거한다. 이 과정을 항목집합의 전지과정이라 한다.
estDec 방법은 매개변수 갱신 단계, 출현빈도 수 갱신 단계, 지연추가 단계 및 빈발항목 선택 단계와 같은 네 단계로 구성된다. 마이닝 작업 과정에서 새로운 트랜잭션이 현재 데이터 집합에 추가될 때마다 빈발항목 탐색 단계를 제외한 다른 단계들이 순차적으로 수행된다. 매개변수 갱신 단계에서는 현재의 데이터 집합의 트랜잭션의 총 수 |D| k 가 갱신된다. 출현빈도 수 갱신 단계에서는 새로 추가된 트랜잭션에 출현한 항목들 중에서 전위트리에서 관리되고 있는 항목들의 출현빈도 수가 갱신된다. 해당 항목에 대한 출현빈도 수 갱신 작업이 완료되면 새롭게 출현한 항목들 중에서 가까운 미래에 빈발항목이 될 가능성이 있는 항목들을 찾기 위해서 지연추가 단계가 시작된다. 빈발항목 선택 단계는 현재 데이터 집합에 대한 마이닝 결과를 구하고자 할 때에만 수행된다.
도 1은 본 발명의 일 실시예에 따른 연관규칙 생성방법의 전체적인 흐름도를 나타낸다.
110단계에서, 응용 도메인에서 새롭게 발생한 트랜잭션 데이터를 읽는다.
120단계에서, 트랜잭션의 총 수, 항목집합의 추가 및 전지 작업을 위한 임계값 등 마이닝에 필요한 기본적인 정보들을 갱신한다.
130단계에서, 발생한 트랜잭션에 포함된 항목집합 및 그 출현빈도수에 따라서 항목집합에 대응하는 노드가 가지고 있는 정보, 즉 해당하는 항목집합의 출현 빈도수를 갱신하거나, 새로운 노드를 추가한다. 여기서, 새로운 노드는 이미 설명한 바와 같은 estDec 방법에서의 지연추가 방식으로 추가될 수 있다. 또한, 130단계에서, 항목집합의 출현 빈도수 갱신과 함께 이미 설명한 바와 같은 전지작업을 수행할 수도 있다.
한편, 도 1에는 도시하지 않았으나, 필요에 따라서 주기적으로 또는 특수한 경우에 강제 전지작업을 수행할 수 있다. 과거 오래 전에 출현한 이후 다시 출현하지 않는 항목집합은 매우 작은 지지도를 가지나 전위트리로부터 제거되지 않고 유지될 수 있다. 즉, 제거 가능한 불필요한 항목집합이 전위트리 내에 존재하게 되므로 마이닝 과정에서 메모리가 낭비될 수 있으므로, 이러한 낭비를 최소화하기 위해서 전위트리에 존재하는 모든 항목집합을 탐색하여 전지 가능한 항목집합을 전위트리에서 제거할 수 있다. 이러한 작업을 강제 전지작업이라 한다. 강제 전지작업을 수행하는 경우 전위트리에는 전지 임계값 이상의 항목집합만 유지되므로 메모리 사용량을 최소화할 수 있는 장점이 있다. 하지만 강제 전지작업은 전위트리 전체를 탐색해야 하므로 시간이 상대적으로 많이 걸린다. 따라서 일정한 시간 간격을 두고 주기적으로 수행하거나 메모리 부족 상황과 같은 특수한 경우에만 수행한다.
상술한 110단계 내지 130단계는 응용 도메인에서 트랜잭션이 발생할 때마다 계속 반복된다.
135단계에서 빈발항목집합의 선택 요청이 발생하면 140단계로 진행한다. 빈 발항목집합의 선택 요청은 현재의 데이터 스트림에 대한 마이닝 결과를 구하고자 할 때 발생할 수 있다.
140단계에서, 전위트리의 각 노드에 해당하는 항목집합에 대하여 지지도를 소정의 임계값인 최소 지지도와 비교하여 빈발항목집합들을 선택한다. 구체적으로, 전위트리의 각 노드를 탐색하면서, 해당하는 항목집합의 지지도가 최소 지지도 이상일 경우에만 빈발항목으로 판정한다.
145단계에서 연관규칙의 생성 요청이 발생하면 150단계로 진행한다. 연관규칙의 생성 요청 역시 빈발항목집합의 선택 요청과 마찬가지로 현재의 데이터 스트림에 대한 마이닝 결과를 구하고자 할 때 발생할 수 있다.
150단계에서, 선택된 빈발항목집합들에 해당하는 노드들 중 전부 또는 일부의 노드들을 방문하면서, 방문된 노드들 각각이 가지고 있는 정보, 즉 노드가 표현하는 항목집합과 그 항목집합의 출현 빈도수 등을 이용하여 연관규칙을 생성한다.
이하에서는 상기 150단계를 보다 구체적으로 설명하며, 임의의 빈발항목집합에 대하여 연관규칙을 생성하는 방법, 전위트리의 모든 빈발항목집합에 대하여 현재 유효한 모든 연관규칙을 생성하는 방법, 특정 항목집합이 조건부에 위치하는 모든 연관규칙을 생성하는 방법, 특정 항목집합 Y가 결과부에 위치하는 모든 연관규칙을 생성하는 방법으로 나누어 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따라 임의의 빈발항목집합에 대하여 연관규칙을 생성하는 방법의 흐름도를 나타낸다.
210단계에서, 루트 노드로부터 연관규칙을 생성하고자 하는 항목집합에 대응 하는 노드까지의 경로 상에 있는 노드들 각각이 가지고 있는 항목 및 출현빈도수를 경로 상의 순서대로 스택에 저장한다. 노드들을 순회하면서 정보가 상기 스택에 저장되므로, 본 명세서에서는 편의상 상기 스택을 순회스택(traversal stack)이라 명명하기로 한다.
220단계에서는 순회스택에 저장된 항목 및 출현빈도수를 이용하여 상기 항목집합에 대한 연관규칙을 생성한다.
이하에서는 상기 210단계와 220단계를 보다 상세하게 설명한다.
임의의 빈발항목집합 n-항목집합에서는 최대 2n-2개의 연관규칙이 생성될 수 있다. 공집합을 제외한 n-항목집합의 모든 부분항목집합이 각 연관규칙의 조건부를 이룰 수 있기 때문이다. 예를 들어 빈발항목집합 abc에서는 다음과 같이 모두 6개의 개별적인 연관규칙이 생성될 수 있다: a→bc, ab→c, ac→b, b→ac, bc→a그리고 c→ab. 본 실시예에서는 다음과 같은 정의 1에 정의된 바에 따라 연관규칙을 순방향 연관규칙(ordered association rules)과 역방향 연관규칙(disordered association rules)의 두 가지 타입으로 분류한다. 예를 들어 항목들의 사전적인 정렬 순서에 따르는 연관규칙 ac → de은 순방향 연관규칙이며 반면에 ad → ce는 역방향 연관규칙이다. 이러한 빈발한 n-항목집합에 대하여 최대 n-1 개의 개별적인 연관규칙이 생성될 수 있다.
정의 1. 순방향 / 역방향 연관규칙 (ordered / disordered association rules)
빈발항목집합 e ⊆ I 에 대하여, q를 e의 공집합이 아닌 임의의 부분항목집합이라고 하자. I의 항목들이 사전적 정렬순서를 이루고 있을 때, 연관규칙 q → e??q는 q의 모든 항목들의 사전적 정렬 순서가 e-q의 항목들 중 사전적 정렬 순서가 가장 앞선 항목보다 모두 앞서 있을 경우 이 연관규칙을 순방향 연관규칙이라고 정의하기로 한다. 항목집합 e의 연관규칙들 중 순방향 연관규칙이 아닌 연관규칙들을 역방향 연관규칙이라고 정의하기로 한다.
상술한 estDec 방법에서, 온라인 데이터 스트림의 모든 빈발항목집합은 전위트리에 의해 계속해서 모니터링된다. 전위트리에서 최신의 빈발항목집합들로부터 연관규칙의 생성여부를 확인하기 위해서는, 각 빈발항목집합들의 공집합이 아닌 모든 적당한 부분항목집합의 현재 지지도가 순방향과 역방향 연관규칙의 신뢰도 계산에 필요하다. 그러므로 전위트리에서 각 부분항목집합에 해당하는 노드들을 방문해야 한다. 다음과 같은 정의 2에 정의된 순회스택(traversal stack)은 한 빈발항목집합의 모든 순방향/역방향 연관규칙을 만들기 위해 사용된다.
정의 2. 순회스택(traversal stack)
전위트리 Px 에서 빈발한 n-항목집합 e = i1i2…in를 나타내는 노드를 p라고 할 때, 루트노드부터 시작하는 노드 p까지 경로상의 모든 노드들에 대한 정보, 즉 (i1,Ck(i1))→(i2,Ck(i1i2))→…→(in,Ck(i1i2...in))는 순회스택에 경로상의 순서대로 삽입된다. 순회스택(t_stack)은 원소(i, c)들의 배열이다. 순회스택(t_stack)의 j번째 원소는 항목집합 e의 j번째 항목 ij와 그에 해당하는 항목집합 ej=i1i2…ij의 현재 빈도수 Ck(ej)를 가리킨다. 즉, t_stack[j]=(ij, Ck(ej))는 t_stack[j].i=ij와 t_stack[j].c=Ck(ej)를 나타낸다. 또한 순회스택의 항목집합 e에 대한 현재 정보는 t_stack[top]=t_stack[n]인 top 포인터에 의해 참조된다.
먼저, 순회스택을 이용하여 순방향 연관규칙을 생성하는 과정을 살펴보자. 루트노드로부터 n-빈발항목집합e = i1i2…in에 해당하는 항목집합 e를 나타내는 현재 노드까지의 경로가 순회스택에 삽입되었을 경우, 모든 순방향 연관규칙은 다음과 같이 생성된다. 첫번째 순방향 연관규칙 i1 → i2…in의 현재 신뢰도는 t_stack[top].c/t_stack[1].c=Ck(e)/Ck(i1)를 계산함으로써 구할 수 있다. 만약 이 값이 소정의 임계값인 최소 신뢰도 Cmin보다 크거나 같은 값일 경우, 위의 연관규칙이 생성된다. 이와 유사한 방법으로 순방향 연관규칙 i1i2...ij → ij+1…in은 t_stack[top].c/t_stack[j].c=Ck(e)/Ck(i1i2…ij)와 같은 계산에 따라 검사된다. 도 3은 이와 같이 순회스택을 이용하여 임의의 빈발항목집합 e의 모든 순방향 연관규칙을 생성하는 방법을 나타낸 알고리즘이다.
다음으로, 순회스택을 이용하여 역방향 연관규칙을 생성하는 과정을 살펴보자. 루트노드로부터 n-빈발항목집합 e = i1i2…in에 해당하는 항목집합 e를 나타내는 현재 노드까지의 경로가 순회스택에 삽입되었을 경우, 본 실시예에서 역방향 연관규칙은 다음의 두가지로 구분되는 집합 A1과 A2로 나누어진다. 집합 A1은 역방향 연관규칙의 조건부에 첫번째 항목 i1을 가지고 있는 경우이며 다른 집합 A2는 첫번째 항목 i1을 결과부에 가지고 있는 경우이다. 모든 역방향 연관규칙은 첫번째 집합 A1과 두번째 집합 A2에 대하여 각각 순회스택의 배열을 두 번 반복 참조함으로써 생성될 수 있다. 본 실시예에서는 효율적인 연관규칙의 생성을 위하여 역방향 연관규칙의 조건부를 predecessor, alternative와 combinators 의 세 가지 배타적인 부분으로 나누고 나머지 항목들은 결과부를 이루도록 한다. 이하에서 보다 구체적으로 설명하기로 한다.
순회스택의 (top-1)번째 원소로부터 시작하는 첫번째 집합 A1에 대하여 순회스택의 항목들이 세 개의 부분으로 나누어진다. 순회스택의 j번째 원소가 검사될 때, 다음 두 가지 조건을 만족하는 모든 역방향 연관규칙들이 생성된다.
i) 항목집합 e의 j 번째 항목이 결과부에 포함된다. 그리고,
ii) j번째 항목 이전의 모든 항목 t_stack[k].i(2≤k≤j-1)가 조건부를 이룬다.
t_stack[k].i(2≤k≤j-1) 인 항목들은 순회스택의 j번째 원소 이전의 항목들로서 이 predecessor들은 두번째 조건을 만족하기 위해서 모두 조건부에 포함되어야 한다. 반면에, 순회스택에서 j번째 원소를 뒤따르는 항목들은 alternative가 된다. predecessor를 구성하는 항목집합과 alternative 중 하나의 항목으로 이루어진 서브트리의 각 노드들이 위의 조건들을 만족하는 연관규칙을 생성할 수 있다. alternative 항목들 각각에 대하여, alternative 항목들 보다 사전적 정렬 순서를 뒤따르는 항목들이 combinator 항목들이 된다. 도 4의 (a)는 n-빈발항목집합 e=i1…in로부터 생성되는 모든 가능한 역방향 연관규칙을 보여준다. 도 4의 (b)에서 순회스택의 j번째 원소가 검사되고 있을 때, predecessor는 i1,…,ij-1이다. 그러므로 이 모든 predecessors를 포함하는 조건부와 j번째 원소인 항목 ij를 포함하는 결과부로 구성된 연관규칙이 생성된다. alternatives인 ij+1…in중 임의의 한 항목 ik(j+1≤k≤n)에 대하여 ik 의 뒤에 들어온 모든 항목들 t_stack[l](k+1≤l≤n) 은 combinators가 된다. 그러므로 이 항목집합 i1i2…ij-1ik을 나타내는 노드를 루트로 하는 서브트리 S(ij)에 대하여 생성 가능한 역방향 연관규칙의 수는 모두 2n-k개이다.
첫번째 집합 A1에 대하여 모든 가능한 역방향 연관규칙이 검사된 후에 두번째 집합 A2에 대한 연관규칙의 검사를 위해 순회스택의 원소들은 한번 더 역순으로 처리된다. 도 4의 (c)에 나와 있듯이, 순회스택의 j번째 원소(2≤j≤n) 에 대하여 1-항목 ij 를 루트로 하는 서브트리의 모든 노드들이 첫번째 집합과 같은 방법으로 검사된다. 이 경우에 항목 ij는 predecessor가 되고 j번째 원소 앞의 항목들 t_stack[k](1≤k≤j-1)은 결과부에 포함된다. 이 서브트리의 모든 노드들을 검사할 때는 alternative가 없는 반면 남아있는 항목들 t_stack[l](j+1≤l≤n) 이 combinator가 된다. 도 5는 상술한 바와 같이 순회스택을 이용하여 임의의 빈발항 목집합 e의 모든 역방향 연관규칙을 생성하는 방법을 나타낸 알고리즘이다.
도 6은 상술한 본 발명의 일 실시예에 따라서 3-항목집합 abc로부터 모든 연관규칙이 생성되는 예를 나타내는 도면이다. 본 예에서 최소 지지도 Smin=0.1이고, 최소 신뢰도 Cmin=0.7로 하여 연관규칙을 생성한다. 루트노드로부터 노드 m10 까지의 경로에 있는 모든 노드들의 정보가 순서대로 순회스택 t_stack에 삽입되므로, 노드 m10이 가장 먼저 방문된다. 빈발항목집합 abc로부터 생성 가능한 모든 순방향 연관규칙은 도 6의 (b)에 나타나 있다. 첫번째 순방향 연관규칙 a→bc는 t_stack[top].c/t_stack[1].c=Ck(abc)/Ck(a)≥Cmin이 성립하기 때문에 유효하다. 마찬가지 방법으로 순방향 연관규칙인 ab→c 또한 t_stack[top].c/t_stack[2].c=Ck(abc)/Ck(ab)≥Cmin이 성립하므로 유효하다.
한편, 역방향 연관규칙은 다음과 같이 생성된다. 항목집합 abc의 첫번째 집합 A1에 대하여 순회스택은 t_stack[2]에 대해서만 처리된다. 그러므로 항목 t_stack[2].i=b가 결과부에 위치하게 되면, predecessor, alternative 및 combinator는 각각 a, c 및 b가 되고 첫번째 집합 A1에서 생성 가능한 첫번째 역방향 연관규칙은 ac→b가 된다. 이 연관규칙의 신뢰도는 노드 m6를 방문함으로써 t_stack[top].c/Ck(ac)≥ Cmin 와 같이 계산된다. 반면에 두번째 집합 A2의 역방향 연관규칙은 다음과 같이 생성된다. 항목 t_stack[2].i=b가 predecessor가 되면, 항목 c는 combinator가 되고 항목 a는 결과부에 위치하게 된다. 그러므로 역방향 연 관규칙 b→ac는 노드 m2를 방문하여 t_stack[top].c/Ck(b)<Cmin와 같이 신뢰도가 계산된 후에 생성된다. 이어서 서브트리의 노드가 검사된다. 항목집합 bc의 현재 빈도수를 찾기 위하여 자식 노드 m8 이 처리되며 그 값은 t_stack[top].c/Ck(bc)≥Cmin와 같이 계산된다. 그러나 다음 자식 노드인 m9는 현재 순회스택에 들어있지 않으므로 방문되지 않는다. 이와 같은 방법으로 노드 m3 은 다음 predecessor인 c 에 대해 방문된다.
도 7은 본 발명의 일 실시예에 따라 전위트리의 모든 빈발항목집합에 대하여 현재 유효한 모든 연관규칙을 생성하는 방법의 흐름도를 나타낸다. 본 실시예에서, 현재 모든 빈발항목집합으로부터 생성되는 연관규칙을 찾기 위해서, 전위트리는 전위 순회 방식으로 깊이 우선 탐색 방법(pre-order depth-first manner)을 통해 방문된다. 다만, 첫 번째 레벨의 노드들이 방문되었을 경우에는 해당하는 노드들이 나타내는 항목집합이 1-항목집합이기 때문에 어떠한 연관규칙도 생성되지 않는다.
우선, 710단계에서, 루트 노드로부터 현재 빈발항목집합을 나타내는 전위트리의 가장 왼쪽의 가장 깊이가 깊은 노드를 방문한다. 이때, 경로 상의 노드들 각각이 가지고 있는 정보를 경로 상의 순서대로 순회스택에 저장한다. 다시 말하면, 자식 노드로 내려가면서 노드를 방문할 때마다 현재 방문된 노드가 나타내는 항목과 출현빈도수를 순회스택에 저장한다.
720단계에서, 전위트리 가장 왼쪽의 가장 깊이가 깊은 노드가 방문되면, 방문된 노드에 해당하는 항목집합에 대하여 연관규칙을 생성한다. 이때 이미 설명한 바와 같이 순방향 연관규칙과 역방향 연관규칙을 생성한다. 본 단계에서, 방문된 노드에 대하여 모든 연관규칙이 생성된 후에는 순회스택의 top, 즉 최상위 층에 저장된 정보를 삭제한다.
730단계에서, 현재 방문된 노드의 형제노드가 존재하면, 740단계로 진행하여 형제노드를 방문하고, 방문된 노드가 가지고 있는 정보를 순회스택에 저장하고, 750단계에서, 720단계와 마찬가지로 연관규칙을 생성한다.
730단계에서, 현재 방문된 노드의 형제노드가 존재하지 않으면, 760단계로 진행하여 부모노드를 방문하고, 방문된 노드가 가지고 있는 정보를 순회스택에 저장하고, 770단계에서, 720단계와 마찬가지로 연관규칙을 생성한다.
780단계에서, 전위트리의 모든 빈발항목집합에 대응하는 노드들에 대하여 연관규칙의 생성이 완료되지 않은 경우, 완료되지 않은 노드들에 대하여 연관규칙을 생성하기 위하여 다시 730단계로 되돌아간다. 780단계에서 전위트리의 모든 빈발항목집합에 대응하는 노드들에 대하여 연관규칙의 생성이 완료되었으면 종료한다.
도 8은 상술한 전위트리의 모든 빈발항목집합에 대하여 현재 유효한 모든 연관규칙을 생성하는 방법을 나타낸 알고리즘이며, 도 9는 도 6에 도시된 전위트리로부터 생성되는 연관규칙을 나타낸다. 도 8을 참조하면, 방문된 노드들 각각에서 생성되는 연관규칙은 도 3 및 도 5에 도시된 알고리즘에 따라서 생성된다. 도 8에 도시된 알고리즘에 따르면, 방문된 노드들 각각에 해당하는 항목집합의 부분항목집합들 모두가 각각 조건부가 되는 연관규칙의 신뢰도를 계산하고, 최소 신뢰도와 비교하여 연관규칙을 생성한다. 이러한 방법을 본 명세서에서 편의상 Assoc-all 방법이 라 명명하기로 한다.
이하에서는 전위트리의 모든 빈발항목집합에 대하여 현재 유효한 모든 연관규칙을 생성함에 있어서 트리 탐색 공간을 줄일 수 있는 방법을 설명한다. 도 8에 따른 연관규칙 생성방법은 방문된 노드에 해당하는 항목집합에서 생성되는 모든 연관규칙을 검사한다. 그러나, 항목집합에 대한 안티모노톤(anti-monotone) 성질을 이용하면 트리 탐색 공간을 줄일 수 있다. 전위트리의 모든 연관규칙을 생성하는 과정에서 방문되는 노드의 수를 최소화함으로써 전체 처리 시간이 감소될 수 있는 것이다. 순회스택에 있는 특정 빈발항목집합 e 에 의해 생성되는 모든 연관규칙을 검사하기 위해서, 항목집합 e의 공집합을 제외한 모든 부분항목집합들은 생성 가능한 연관 규칙의 조건부로 간주된다. 그러므로 Assoc-all 방법에 의하면 항목집합 e의 모든 부분집합을 나타내는 노드들을 방문함으로써 모든 생성 가능한 연관규칙의 신뢰도를 검사한다.
그러나 다음과 같은 정리 1에 의하여 특정 부분항목집합 v ⊂ e에 대하여 연관규칙의 생성이 실패하면, 조건부가 항목집합 v의 부분항목집합 중 어느 하나가 되는 어떤 연관규칙도 생성될 수 없음을 알 수 있다. 이를 이용하여 트리 탐색 공간을 줄일 수 있게 된다.
정리 1. 최소 신뢰도 Cmin과 두 빈발항목집합 X 와 Y (X⊂I, Y⊂I, X⊂Y) 가 주어졌을 때, 연관규칙 X → Y-X가 생성되지 않는다면, X의 부분항목집합이 조건부가 되는 연관규칙이 생성될 수 없다.
증명. 연관규칙 X → Y-X가 유효하지 않기 때문에 S(Y)/S(X)<Cmin이 성립한다. 이 때, Z를 X의 임의의 부분항목집합이라고 하면(Z⊂X), 안티모노톤 속성에 의하여 S(Z)≥S(X)≥S(Y)가 된다. 그러므로 S(Y)/S(Z)≤S(Y)/S(X)<Cmin와 같은 식이 유도될 수 있다. 결국 Z → Y-Z와 같은 형태의 연관규칙은 생성될 수 없게 된다. 따라서, 연관규칙을 생성하고자 하는 항목집합의 부분항목집합들 중 임의의 부분항목집합을 조건부로 하는 연관규칙의 신뢰도가 최소 신뢰도보다 작은 경우, 상기 임의의 부분항목집합의 부분집합을 조건부로 하는 연관규칙의 신뢰도는 검사하지 않음으로써, 즉 상기 임의의 부분항목집합의 부분집합을 나타내는 노느들은 방문하지 않음으로써 트리 탐색 공간을 줄일 수 있다.
예를 들어, 현재 데이터 스트림 Dk 에 대하여 전위트리 Pk 가 주어졌을 경우 e1을 임의의 항목집합 e의 부분항목집합이라고 하자(e⊃e1). 항목집합 e에서 생성되는 연관규칙을 찾기 위해 e를 나타내는 노드가 방문되었을 경우, e1을 나타내는 노드를 방문함으로써 연관규칙 e1 → e-e1이 생성되지 않았다면, e2(e2⊂e1)가 조건부에 오게 되는 연관규칙을 찾기 위해 e2를 나타내는 노드를 방문할 필요가 없다. 그러므로 e1 의 모든 부분항목집합을 나타내는 노드들을 방문할 필요가 없다. 예를 들어, 도 6에서 현재 방문한 노드가 항목집합 abcd 을 나타내는 m12라고 가정하자. 만약, 연관규칙 bcd → a이 생성되지 않는다면, 즉 S(abcd)/S(bcd)<Cmin이라면, S(bcd)≤ S(bc)≤S(b)이기 때문에 연관규칙 bc → ad와 b → acd 또한 생성되지 않는다. 또한 연관규칙 c → abd, cd → ab, d → abc 역시 생성되지 않는다. 그러므로 항목집합 bcd 의 부분항목집합을 나타내는 노드들은 방문할 필요가 없다. 이러한 방법을 본 명세서에서 편의상 Assoc-all-anti 방법이라 명명하기로 한다.
이제 Assoc-all-anti 방법에서 순방향 연관규칙과 역방향 연관규칙을 생성하는 구체적인 과정을 설명하기로 한다.
먼저, 순방향 연관규칙의 생성을 설명한다. 루트노드로부터 n-빈발항목집합 e = i1i2…in를 나타내는 노드까지의 경로에 있는 노드들의 정보가 순회스택에 들어있을 경우, 모든 순방향 연관규칙은 다음과 같이 생성된다. 첫번째 순방향 연관규칙 i1...in-1→in의 신뢰도는 t_stack[top].c/t_stack[top-1].c=Ck(e)/Ck(in-1)를 계산함으로써 검사된다. 만약 이 값이 Cmin 보다 작다면, 조건부에 i1..in-1의 부분항목집합이 위치하는 연관규칙은 어느 것도 생성되지 않는다. 도 10은 Assoc-all-anti 방법에서 순방향 연관규칙을 생성하는 방법을 나타낸 알고리즘이다. Assoc-all-anti 방법을 이용하여 순방향 연관규칙을 생성할 때 항목집합 e의 부분항목집합을 검사하는 일련의 과정은 Assoc-all 방법과 정확하게 반대로 수행된다. 이는 도 3에 도시된 알고리즘의 3행과 도 10에 도시된 알고리즘의 3행을 비교하면 알 수 있다.
다음으로, 역방향 연관규칙의 생성을 설명한다. 루트노드로부터 n-빈발항목집합 e = i1i2…in를 나타내는 노드까지의 경로에 있는 노드들의 정보가 순회스택에 들어있을 경우, 도 11에 나타난 알고리즘에 따른 Assoc-all-anti 방법은 항목집합 e 로부터 모든 역방향 연관규칙을 다음과 같이 생성한다. 이 과정은 두 단계로 나누어진다. 첫번째 단계에서, 전위트리 Pk 의 노드들을 후위순위 탐색방법으로 다음 두 조건을 만족하는 노드에 다다를 때까지 방문한다.
1) 노드가 나타내는 항목집합이 항목집합 e의 부분집합이고,
2) 노드가 나타내는 항목집합에 e의 마지막 항목보다 사전적인 정렬 순서가 앞서는 항목이 포함되어있어야 한다.
이 경로상의 각각의 노드들을 방문하면서 위의 두 조건을 검사한다. 만약 위의 두 조건들 중 하나라도 만족하지 않는다면, 이 노드의 자손노드들은 방문할 필요가 없다. 이는 이들 자손노드들 중에는 항목집합 e의 적당한 부분항목집합과 대응되는 노드가 없기 때문이다. 임의의 항목집합 e1 이 두 조건을 다 만족했을 경우, 두 번째 단계로서, 연관규칙 e1 → e - e1의 신뢰도를 계산한다. 만약 이 값이 Cmin보다 작으면 상기된 정리 1에 의해서 e1의 부분항목집합이 조건부에 오는 어떤 연관규칙도 생성되지 않는다. 그러므로 e1의 부분항목집합 중 어떤 것도 검사되지 않는다. 반면에, 전위트리를 순회함으로써, e2→ e-e2의 생성 여부를 모든 e1의 부분항목집합 e2들을 살펴봄으로써 확인한다. 이러한 두 단계를 통한 역방향 연관규칙의 생성을 전위트리에 위의 두 조건을 만족하는 노드가 더 이상 없을 때까지 반복한다. 다만 전위트리의 모든 경로들을 검사하여야 하기 때문에 첫번째 단계에서 상대적으로 많은 시간이 소요될 수 있다. 따라서 Assoc-all-anti 방법의 성능은 전위트 리의 크기에 민감하게 영향을 받을 수 있다. 도 11은 Assoc-all-anti 방법으로 모든 역방향 연관규칙을 생성하기 위해 도 5의 gen_disordered_rule() 프로시져에서 search_subtree 루틴을 호출하는 부분을 search_subtree_anti 로 대체한 것을 나타낸다.
이제, 본 발명의 일 실시예에 따라 특정 항목집합이 조건부에 위치하는 모든 연관규칙을 생성하는 방법을 설명한다. 이러한 방법을 본 명세서에서 편의상 Assoc-X 방법이라 명명하기로 한다. 특정 항목집합 X가 조건부에 위치하는 모든 연관규칙을 생성하기 위해서는, 전위트리에서 항목집합 X의 모든 수퍼집합들의 현재 지지도를 찾아야 한다. 항목집합 X의 임의의 한 수퍼집합 e(X⊂e)에 대하여 항목집합 X, e와 e-X이 빈발하면 (≥ Smin), 연관규칙 X → e-X가 생성될 수 있다. 또한, 이러한 과정은 다음의 정리 2에 의하여 방문되는 노드들의 수를 줄임으로써 성능이 강화될 수 있다.
정리 2. 최소 신뢰도 Cmin이 주어졌을 때, 두 항목집합 X와 Y(X⊂I,Y⊂I)에 대하여 연관규칙 X→Y가 생성되지 않는다면, 항목집합 Y의 임의의 수퍼집합인 (Y⊂)에 대하여 연관규칙 X→도 생성되지 않는다.
증명. 연관규칙 X→Y가 생성되지 않는다면 S(X∪Y)<Cmin·S(X)가 성립한다. ⊃Y 이기 때문에 S(X∪)≤S(X∪Y) 또한 성립한다. 따라서, S(X∪)<Cmin·S(X)가 유도되어 연관규칙 X→ 은 생성될 수 없다.
주어진 n-항목집합 X=i1i2...in (X⊂I)에 대하여, 항목집합 X 의 수퍼집합에 해당하는 노드에 닿을 때까지 전위트리 Pk의 경로들이 전위순회 탐색방법으로 탐색된다. 그러나 임의의 v-항목집합 와 일치하는 노드 w에 대하여 다음 세 가지 조건중 하나라도 만족하면 노드 w의 자손노드들을 방문할 필요가 없다.
예를 들어, 도 6에서 항목집합 bc가 조건부에 위치하는 모든 연관규칙을 찾기 위해 항목집합 bc를 나타내는 노드 m8이 현재 방문되고 있을 경우, bc의 모든 수퍼집합들의 지지도를 찾아야 할 필요가 있다. 만약 항목집합 abc를 나타내는 노드 m10에서 S(abc)/S(bc)<Cmin이 되어 연관규칙 bc→a 가 생성되지 않는다면, 노드 m10의 자손노드들에서는 어떠한 추가적인 연관규칙도 생성될 수 없다. 또한, S(abcd)≤S(abc)이므로S(abcd)/S(bc)<Cmin이 성립되므로, 자손 노드 m12는 방문할 필요가 없게 된다. 나아가, 항목집합 bc의 모든 수퍼집합을 찾는 과정의 나머지 과정에서, 항목집합 ac를 나타내는 노드 m6가 방문되었을 경우, 전위트리의 순회는 중단된다. 이는 m6의 자손노드들은 항목 b를 포함할 수 없기 때문이다. 도 12는 Assoc-X 방법에 의하여 특정 항목집합이 조건부에 위치하는 모든 연관규칙을 생성하는 방법을 나타낸 알고리즘이다.
이번에는, 본 발명의 일 실시예에 따라 특정 항목집합이 결과부에 위치하는 모든 연관규칙을 생성하는 방법을 설명한다. 이러한 방법을 본 명세서에서 편의상 Assoc-Y 방법이라 명명하기로 한다. 이 방법에서는, Assoc-X 방법과는 달리, 특정 항목집합이 연관규칙 X→Y의 결과부에 위치하는 모든 연관규칙을 찾는다. 특정 항목집합 Y가 결과부에 위치하는 모든 연관규칙을 생성하기 위해서는, 전위트리에서 항목집합 Y의 모든 수퍼집합들의 현재 지지도를 찾아야 한다. 고정된 n-항목집합 Y=i1i2...in(Y⊂I)에 대하여, 항목집합 Y 의 수퍼집합에 해당하는 노드에 닿을 때까지 전위트리 Pk 의 경로들이 전위순회 탐색방법으로 탐색된다. 그러나 임의의 v-항목집합 와 일치하는 노드 w에 대하여 다음 세 가지 조건중 하나라도 만족하면 노드 w의 자손노드들을 방문할 필요가 없다.
도 13은 본 발명의 일 실시예에 따라 특정 항목집합이 결과부에 위치하는 모 든 연관규칙을 생성하는 방법을 나타낸 알고리즘이다. 임의의 경로 상에 있는 노드들을 방문하면서, 경로 상에서 조건부에 위치 가능한 항목들을 찾기 위해 항목집합 Y에 속하지 않는 경로 상의 항목들은 별도의 임시 스택(x_stack)에 넣어진다. 예를 들어, 도 6에서 결과부가 항목집합 Y = bc인 모든 연관규칙을 찾기 위해 항목집합 bc를 나타내는 노드 m8을 현재 방문 중이라고 가정하자. 항목집합 abc를 나타내는 노드 m10를 방문하는 동안 이 항목들은 순회스택에 저장되게 되고, 조건부에 오게 될 항목 'a'는 이미 x_stack에 들어 있게 된다. 만약 항목집합 abc의 지지도가 Smin보다 크거나 같은 값을 가질 경우, 항목 a의 지지도는 m1을 방문함으로써 찾을 수 있다. 만약 S(a)≥Smin라면 S(abc)/S(a)이 성립하게 되고, 연관규칙 a → bc가 생성된다.
도 14는 본 발명의 일 실시예에 따른, 연관규칙을 생성하는 데이터 마이닝 시스템의 블록도이다.
전위트리 저장부(1420)는 데이터 스트림으로부터 발생한 트랜잭션에 포함된 항목집합들 및 그 출현빈도수를 관리하는 전위트리를 저장한다. 이때 전위트리의 각 노드는 특정 항목과 각 노드에 대응하는 특정 항목집합의 출현빈도수 정보를 가진다. 전위트리 저장부(1420)에 저장되는 전위트리는 이미 설명한 바에 따른 전위트리와 동일하므로 구체적인 설명은 생략한다.
전위트리 갱신부(1410)는 데이터 스트림으로부터 발생하는 트랜잭션을 입력 받고, 입력받은 트랜잭션에 포함된 항목집합 및 그 출현빈도수에 따라서 항목집합에 대응하는 노드가 가지고 있는 정보를 갱신하거나 전위트리에 새로운 노드를 추가한다. 전위트리 갱신부(1410)의 동작은 도 1의 130단계에 관련된 설명과 동일하므로, 구체적인 설명은 생략한다.
빈발항목집합 선택부(1430)는 저위트리 저장부(1420)에 저장된 전위트리의 각 노드에 해당하는 항목집합에 대하여 지지도를 소정의 임계값인 최소 지지도와 비교하여 빈발항목집합들을 선택한다. 빈발항목집합 선택부(1430)의 동작은 도 1의 140단계에 관련된 설명과 동일하므로, 구체적인 설명은 생략한다.
연관규칙 생성부(1450)는 빈발항목집합 선택부(1430)에 의해 선택된 빈발항목집합들에 해당하는 노드들 중 전부 또는 일부의 노드들을 방문하면서, 방문된 노드들 각각이 가지고 있는 정보를 이용하여 연관규칙을 생성한다. 한편, 연관규칙 생성부(1450)는 연관규칙을 생성하는 과정에서 루트 노드로부터 연관규칙을 생성하고자 하는 항목집합에 대응하는 노드까지의 경로 상에 있는 노드들 각각이 가지고 있는 항목 및 출현빈도수를 경로 상의 순서대로 순회스택(1440)에 저장하고, 순회스택(1440)에 저장된 정보를 이용하여 연관규칙을 생성한다. 연관규칙 생성부(1450)와 순회스택(1440)의 동작은 도 1의 150단계에 관련된 설명과 동일하므로, 구체적인 설명은 생략한다.
이하에서는 도 15에 도시된 바에 따른 테이블에 나열된 데이터 집합을 대상으로 본 발명에 따른 방법들의 성능을 검증한 결과를 설명한다. 도 15를 참조하면, |T|, |I|, |D| 및 N은 각각 트랜잭션의 평균 길이(average transaction size), 잠 재적 최대 빈발항목집합의 평균 길이(average maximal potentially frequent itemset size), 트랜잭션의 총 수 및 데이터 집합을 구성하는 단위항목의 총 수를 나타낸다. 데이터 집합 Weblog 을 제외하고, 각 데이터 집합은 <R. Agrawal, T. Imielinski, and A. Swami, "Mining Association Rules between Sets of Items in Very Large Databases" Proc. ACM SIGMOD Conf. Management of Data, pp. 207-216, May 1993.>에서 설명된 방법으로 생성되었다. Weblog데이터 집합은 포탈 웹 사이트의 웹 페이지 접근 기록으로부터 생성되었다. Weblog데이터 집합은 545개의 항목과 500,000개의 트랜잭션으로 구성되어 있으며 한 트랜잭션에 나타나는 최소, 최대, 평균 항목의 개수는 2, 30, 5이다. 데이터 집합의 특성을 나타내기 위해서 데이터 집합의 단위항목 총 수 대비 트랜잭션의 평균길이의 비율을 각 데이터 집합의 트랜잭션-밀도(transaction-density) ρ T (D)라 정의한다.
데이터 집합의 트랜잭션-밀도는 데이터 집합에서 단위항목들이 밀집되어 분포하는 정도를 평가하는데 활용된다.
모든 실험에서, 온라인 데이터 스트림 환경을 시뮬레이션 할 수 있도록 각 트랜잭션들이 일련의 순서로 하나씩 탐색된다. 또한 Ssig 값은 특별한 언급이 없는 한 0.1 S min 로 설정되었다. 모든 실험은 1GB 의 메모리를 가진 3.0GHz 펜티엄 컴퓨터와 Ubuntu Linux 5.1 환경에서 실험되었으며 모든 프로그램은 C언어를 이용하여 구현되었다.
도 16은 네 가지 데이터 집합에 대하여 Assoc-all-anti 방법의 성능을 Assoc-all 방법과 비교한 결과를 보여준다. 이 실험에서 Smin 값은 0.001로 설정되었다. 그림 12-(a)는 각각의 데이터 집합에 대하여 생성되는 전위트리의 크기 변화를 보여준다. ρ(D)값이 커짐에 따라 전위트리의 크기도 커지게 되며 전위트리를 이루는 경로들의 평균 길이 또한 더 큰 값을 갖게 된다. 이러한 이유로, 트리의 크기는 그림 12-(b)와 같이 ρ(D) 값에 비례한다. 후위 순위 탐색방법에 의해 수행되는 Assoc-all-anti 방법의 전지 작업은 트리의 높이에 매우 민감하게 영향을 받으며 결과적으로 Assoc-all 방법보다 훨씬 많은 수행시간을 필요로 한다. 그러나 ρ(D) = 0.3인 경우, Assoc-all-anti방법은 Assoc-all 방법보다 아주 근소하게 나은 성능을 보이는데 이는 전위트리를 이루는 경로의 길이가 훨씬 짧기 때문이다. 도 16의 (c)는 이 실험에서 방문되는 노드들의 수를 보여준다. 이 그림에서 알 수 있듯이 특히 데이터 집합의 트랜잭션 밀도가 높은 경우에 Assoc-all 방법에 의해 방문되는 노드의 수는 Assoc-all-anti 방법을 따르는 것보다 훨씬 작다. 각 데이터 집합에 대하여, Assoc-all과 Assoc-all-anti 방법은 같은 양의 메모리를 사용하며 마이닝 결과의 정확도 역시 같은 값을 갖는다. 이는 두 방법이 같은 전위트리를 사용하기 때문이다. 위의 이러한 결과들에 기초하여 이후의 실험들은 Assoc-all 방법의 특성에 대해서 수행하였다
도 17은 T10.I4.D1000K 데이터 집합을 이용한 Assoc-all 방법의 성능을 보여 준다. 그림에서 추가되는 트랜잭션들은 순서에 따라 200K개씩의 트랜잭션으로 구성되는 5개의 구간으로 구분되며 강제 전지 작업은 매 1K개의 트랜잭션마다 수행된다. 전위트리에서 생성되는 각 노드는 서로 동일한 크기이므로 각 구간의 메모리 사용량은 전위트리의 최대 노드 수로 표현된다. 도 17-(a) 는 각 구간마다 C min 값의 변화에 따른 메모리 사용량을 나타낸다. 도 17-(b)는 트랜잭션이 추가됨에 따른 평균 처리시간의 변화를 보여주며 도 17-(c)는 평균 처리 시간에 S min 이 미치는 영향을 나타낸다. 기대한 바와 같이 생성되는 연관규칙의 수는 S min 과 C min 에 반비례 한다.
데이터 집합의 트랜잭션 밀도의 영향을 측정하기 위하여, 같은 |I|값을 갖는 세가지 데이터 집합에 대하여 실험을 수행하였다. 도 18-(a) 는 전위트리의 크기가 데이터 집합의 밀도에 비례함을 보여준다. |T|의 크기가 증가할수록 전위트리의 크기 역시 증가한다. 이러한 이유로 평균 처리 시간은 도 18-(b)와 같이 |T|값에 비례하여 증가하게 된다.
도 19는 동일한 S min 에 대해서 S sig 의 변화에 따른 Assoc-all 방법의 성능을 평가한 것이다. S sig 가 작을수록, 전위 트리가 관리하는 항목들이 많아지므로 더 많은 메모리 공간을 사용한다. 도 19-(b)와 도 19-(c)는 S sig 가 평균 처리 시간에 주는 영향을 보여준다. S sig 가 더 큰 값을 가질수록 전위트리에 유지되는 항목집합의 수가 작아지므로 평균 처리 시간은 감소한다.
본 발명에서 제안된 방법들의 상대적인 정확도를 표현하기 위해 average confidence error ACE ( R 2 | R 1 )를 정의하였다. 주어진 데이터 스트림 D k 에서 두 연관규칙 결과집합 과 에 대해 R 1 에 대한 R 2 의 상대적인 정확도를 ACE(R 2|R 1)와 같이 나타내며 다음과 같이 정의한다:
ACE(R 2|R 1)이 작을수록 R 2 의 연관규칙 결과 집합이 R 1의 결과 집합과 유사하다.
도 20-(a)에서 estDec 방법의 처리가 안정되어 감에 따라 ACE(R proposedmethod |R apriori )는 감소한다. 도 20-(b)는 ACE가 연관규칙이 거의 생성되지 않을 경우를 제외하고 C min 의 값에 거의 영향을 받지 않음을 보여준다.
도 21은 데이터 집합 T10.I4.D1000K를이용한 Assoc-X 와 Assoc-Y 방법의 성능을 보여주며 이 때 S min 과 C min 는 0.001과 0.5로 설정되었다. 그림에서 assoc-x-thm2 는 상기 정리 2에 정의된 전지 방법이 적용된 경우를 나타낸다. 특정 조건부나 결과부의 길이가 증가함에 따라, 탐색 공간은 작아진다. 그러므로, 방문해야 하는 노드의 수는 도 21-(a)와 같이 감소한다. 같은 이유로, 평균 처리 시간은 고정된 항목집합의 길이에 반비례한다. 도 21-(c)는 이 세 가지 방법들의 마이닝 결과 의 정확도를 측정한 결과이다. 이 방법들이 모두 동일한 데이터 집합의 전위트리를 사용하기 때문에 그들의 정확도 또한 같은 값을 가진다. 고정되는 항목의 길이가 늘어날수록, 정확도는 근소하게 증가한다. Assoc-all 방법과 비교했을 때, 이 방법들은 관심 있는 항목들의 모든 연관규칙을 생성하는 데 있어 처리시간은 크게 감소된다(order of 103).
데이터 스트림 상에서, 주어진 Smin 과 Cmin에 대하여 생성되는 연관규칙의 수는 시간이 지남에 따라 끊임없이 변할 수 있다. 반면에 갱신되는 온라인 데이터 스트림의 마이닝 결과는 실시간에 추적되어야 하고 어느 순간에라도 결과 집합을 생성할 수 있어야만 한다. 이러한 데이터 스트림의 연속성을 고려할 때 한정된 데이터집합에서 연관규칙을 생성하는 전통적인 2단계 접근 방법은 더 이상 효율적이지 않다. 온라인 데이터 스트림에서 estDec 방법의 전위트리를 이용하여 현재 모든 빈발항목집합의 지지도를 관리함으로써, 본 발명에서는 연속적으로 변화하는 현재의 빈발항목집합을 직접 이용하여 연관규칙을 생성하는 방법을 제안하였다. 전위트리에 유지되는 각 빈발항목집합들로부터 순회스택을 이용하여 모든 연관규칙이 효율적으로 생성될 수 있다. 나아가, Assoc-X 방법과 Assoc-Y 방법을 이용하면 특정 항목집합으로부터 생성되는 모든 연관규칙을 찾는 사용자의 요구를 충족시킬 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동 작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 연관규칙 생성방법의 전체적인 흐름도를 나타낸다.
도 2는 본 발명의 일 실시예에 따라 임의의 빈발항목집합에 대하여 연관규칙을 생성하는 방법의 흐름도를 나타낸다.
도 3은 이와 같이 순회스택을 이용하여 임의의 빈발항목집합 e의 모든 순방향 연관규칙을 생성하는 방법을 나타낸 알고리즘이다.
도 4는 본 발명의 일 실시예에 따라 역방향 연관규칙을 생성하는 과정을 설명하기 위한 도면이다.
도 5는 순회스택을 이용하여 임의의 빈발항목집합 e의 모든 역방향 연관규칙을 생성하는 방법을 나타낸 알고리즘이다.
도 6은 본 발명의 일 실시예에 따라서 3-항목집합 abc로부터 모든 연관규칙이 생성되는 예를 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따라 전위트리의 모든 빈발항목집합에 대하여 현재 유효한 모든 연관규칙을 생성하는 방법의 흐름도를 나타낸다.
도 8은 전위트리의 모든 빈발항목집합에 대하여 현재 유효한 모든 연관규칙을 생성하는 방법을 나타낸 알고리즘이다.
도 9는 도 6에 도시된 전위트리로부터 생성되는 연관규칙을 나타낸다.
도 10은 Assoc-all-anti 방법에서 순방향 연관규칙을 생성하는 방법을 나타낸 알고리즘이다.
도 11에 Assoc-all-anti 방법에서 항목집합 e 로부터 모든 역방향 연관규칙을 생성하는 방법을 나타낸 알고리즘이다.
도 12는 본 발명의 일 실시예에 따라 특정 항목집합이 조건부에 위치하는 모든 연관규칙을 생성하는 방법을 나타낸 알고리즘이다.
도 13은 본 발명의 일 실시예에 따라 특정 항목집합이 결과부에 위치하는 모든 연관규칙을 생성하는 방법을 나타낸 알고리즘이다.
도 14는 본 발명의 일 실시예에 따른, 연관규칙을 생성하는 데이터 마이닝 시스템의 블록도이다.
도 15는 본 발명에 따른 연관규칙 생성방법의 성능을 검증하기 위한 데이터 집합을 나타낸다.
도 16은 네 가지 데이터 집합에 대하여 Assoc-all-anti 방법의 성능을 Assoc-all 방법과 비교한 결과를 나타낸다.
도 17은 T10.I4.D1000K 데이터 집합을 이용한 Assoc-all 방법의 성능을 나타낸다.
도 18은 데이터 집합의 트랜잭션 밀도의 영향을 측정하기 위하여, 같은 |I|값을 갖는 세가지 데이터 집합에 대하여 실험을 수행한 결과를 나타낸다.
도 19는 동일한 S min 에 대해서 S sig 의 변화에 따른 Assoc-all 방법의 성능을 평가한 것을 나타낸다.
도 20은 본 발명에서 제안된 연관규칙 생성방법의 상대적인 정확도를 측정한 결과를 나타낸다.
도 21은 데이터 집합 T10.I4.D1000K를이용한 Assoc-X 와 Assoc-Y 방법의 성능을 나타낸다.
Claims (18)
- 지속적으로 발생되는 트랜잭션들로 구성되는 비한정적 데이터 집합인 데이터 스트림으로부터 연관규칙을 생성하는 방법에 있어서,이미 발생한 트랜잭션들에 포함된 항목집합들 및 상기 항목집합들의 출현빈도수가 전위트리를 이용하여 관리되고, 상기 전위트리의 각 노드는 특정 항목과 상기 노드에 대응하는 특정 항목집합의 출현빈도수 정보를 가질 때,(a) 현재 발생한 트랜잭션에 포함된 항목집합 및 상기 항목집합의 출현 빈도수에 따라서 상기 항목집합에 대응하는 노드가 가지고 있는 정보를 갱신하거나 새로운 노드를 추가하는 단계;(b) 상기 전위트리의 각 노드에 해당하는 항목집합에 대하여 지지도를 소정의 임계값인 최소 지지도와 비교하여 빈발항목집합들을 선택하는 단계; 및(c) 상기 선택된 빈발항목집합들에 해당하는 노드들 중 전부 또는 일부의 노드들을 방문하면서 상기 방문된 노드들 각각이 가지고 있는 정보를 이용하여 연관규칙을 생성하는 단계를 포함하는 것을 특징으로 하는 연관규칙 생성 방법.
- 제1항에 있어서,상기 (c) 단계는(c1) 루트 노드로부터 상기 노드들 중 연관규칙을 생성하고자 하는 항목집합에 대응하는 노드까지의 경로 상에 있는 노드들 각각이 가지고 있는 항목 및 출현 빈도수를 상기 경로 상의 순서대로 스택에 저장하는 단계; 및(c2) 상기 스택에 저장된 항목 및 출현빈도수를 이용하여 상기 항목집합에 대한 연관규칙을 생성하는 단계를 포함하는 것을 특징으로 하는 연관규칙 생성 방법.
- 제2항에 있어서,상기 항목집합에 포함된 항목들이 사전적 정렬순서를 이루고 있을 때, 상기 (c2) 단계는,(c21) 연관규칙의 조건부에 포함된 모든 항목들의 사전적 정렬 순서가 결과부에 포함된 항목들 중 사전적 정렬 순서가 가장 앞선 항목보다 모두 앞서 있는 형태의 연관규칙인 순방향 연관규칙을 생성하는 단계; 및(c22) 상기 항목집합에 대한 연관규칙 중 상기 순방향 연관규칙을 제외한 형태의 연관규칙인 역방향 연관규칙을 생성하는 단계를 포함하는 것을 특징으로 하는 연관규칙 생성 방법.
- 제3항에 있어서,상기 (c21) 단계에서의 상기 순방향 연관규칙의 생성은, 상기 항목집합이 n-항목집합인 e=i 1 i 2 …i n 이고, 상기 스택의 j번째 층(여기서, j=1, 2, ..., n-1)에 저장된 출현 빈도수인 항목집합 i 1 i 2 …i j 의 출현 빈도수가 t_stack[j].c이고, 상기 스 택의 최상위 층에 저장된 출현 빈도수인 항목집합 i 1 i 2 …i n 의 출현 빈도수가 t_stack[top].c일 때, 식 t_stack[top].c/t_stack[j].c에 의해 연관규칙 i 1 i 2 …i j →i 1 i 2 …i n 의 신뢰도를 계산하고, 소정 임계값인 최소 신뢰도와 비교하여 연관규칙을 생성하는 것을 특징으로 하는 연관규칙 생성방법.
- 제3항에 있어서,상기 (c22) 단계에서 상기 역방향 연관규칙을 생성하기 위하여, 상기 항목집합이 n-항목집합인 e=i 1 i 2 …i n 일 때, 상기 스택에 저장된 항목 및 출현빈도수(정보)를 이용하여, 항목 i 1 이 조건부에 포함되는 연관규칙을 생성하고, 항목 i 1 이 결과부에 포함되는 연관규칙을 생성하는 것을 특징으로 하는 연관규칙 생성방법.
- 제1항에 있어서,상기 (c) 단계는 깊이 우선 탐색 방법을 이용하여 상기 노드들을 방문하고, 상기 방문된 노드들 각각에 해당하는 항목집합에 대하여 연관규칙을 생성하는 것을 특징으로 하는 연관규칙 생성방법.
- 제1항에 있어서, 상기 (c) 단계는(c1) 루트 노드로부터 상기 노드들 중 임의의 노드까지의 경로 상에 있는 노 드들 각각이 가지고 있는 정보를 상기 경로 상의 순서대로 스택에 저장하는 단계;(c2) 상기 스택에 저장된 정보를 이용하여 상기 임의의 노드에 대응하는 항목집합에 대한 연관규칙을 생성하는 단계;(c3) 상기 스택의 최상위에 저장된 정보인 상기 임의의 노드에 대응하는 항목 및 출현빈도수를 삭제하고, 상기 임의의 노드의 형제노드 또는 부모노드를 방문하여 상기 방문된 형제노드 또는 부모노드가 가지고 있는 정보를 상기 스택에 저장하는 단계; 및(c4) 상기 스택에 저장된 정보를 이용하여 상기 형제노드 또는 부모노드에 대응하는 항목집합에 대한 연관규칙을 생성하는 단계를 포함하는 것을 특징으로 하는 연관규칙 생성방법.
- 제7항에 있어서,상기 항목집합에 포함된 항목들이 사전적 정렬순서를 이루고 있을 때, 상기 (c2) 단계 또는 상기 (c4) 단계는 각각,연관규칙의 조건부에 포함된 모든 항목들의 사전적 정렬 순서가 결과부에 포함된 항목들 중 사전적 정렬 순서가 가장 앞선 항목보다 모두 앞서 있는 형태의 연관규칙인 순방향 연관규칙을 생성하는 단계; 및상기 항목집합에 대한 연관규칙 중 상기 순방향 연관규칙을 제외한 형태의 연관규칙인 역방향 연관규칙을 생성하는 단계를 포함하는 것을 특징으로 하는 연관규칙 생성 방법.
- 제7항에 있어서,상기 (c2) 단계 또는 상기 (c4) 단계에서 상기 항목집합에 대한 연관규칙의 생성은, 상기 항목집합의 부분항목집합들 모두가 각각 조건부가 되는 연관규칙의 신뢰도를 계산하고, 소정의 임계값인 최소 신뢰도와 비교하여 연관규칙을 생성하는 것을 특징으로 하는 연관규칙 생성방법.
- 제7항에 있어서,상기 (c2) 단계 또는 상기 (c4) 단계에서 상기 항목집합에 대한 연관규칙의 생성은, 상기 항목집합의 부분항목집합들 중 적어도 일부가 조건부가 되는 연관규칙의 신뢰도를 검사하여 연관규칙을 생성하는 한편, 상기 항목집합의 부분항목집합들 중 임의의 부분항목집합을 조건부로 하는 연관규칙의 신뢰도가 소정의 임계값인 최소 신뢰도보다 작은 경우, 상기 임의의 부분항목집합의 부분집합을 조건부로 하는 연관규칙의 신뢰도는 검사하지 않는 것을 특징으로 하는 연관규칙 생성방법.
- 제10항에 있어서,상기 항목집합에 포함된 항목들이 사전적 정렬순서를 이루고 있을 때,상기 (c2) 단계 또는 상기 (c4) 단계에서, 연관규칙의 조건부에 포함된 모든 항목들의 사전적 정렬 순서가 결과부에 포함된 항목들 중 사전적 정렬 순서가 가장 앞선 항목보다 모두 앞서 있는 형태의 연관규칙인 순방향 연관규칙의 생성은, 상기 스택을 위에서 아래로 탐색하면서 상기 스택에 저장된 정보를 이용하여 상기 항목집합의 부분항목집합들의 신뢰도를 검사하는 것을 특징으로 하는 연관규칙 탐색방법.
- 제11항에 있어서,상기 (c2) 단계 또는 상기 (c4) 단계에서, 상기 항목집합에 대한 연관규칙 중 상기 순방향 연관규칙을 제외한 형태의 연관규칙인 역방향 연관규칙의 생성은, 상기 전위트리의 각 노드를 방문하면서 상기 각 노드에 대응하는 항목집합이 상기 연관규칙을 생성하고자 하는 항목집합의 부분집합인지 여부 및 상기 연관규칙을 생성하고자 하는 항목집합의 마지막 항목보다 사전적 정렬 순서가 앞서는지 여부의 조건을 검사하고, 상기 조건을 만족하는 노드에 대응하는 항목집합을 조건부로 하는 연관규칙의 신뢰도를 검사하는 한편, 상기 조건을 만족하지 않는 노드의 자손 노드들은 방문하지 않는 것을 특징으로 하는 연관규칙 생성방법.
- 제1항에 있어서,상기 (c) 단계에서, 특정 항목집합 X가 조건부에 위치하는 연관규칙을 생성하고자 할 때, 전위순위 탐색방법으로 상기 특정 항목집합 X의 수퍼집합에 대응하는 각 노드를 방문하면서 연관규칙을 생성하되, 임의의 방문된 노드에 대하여 연관규칙 X→e-X(여기서, e는 상기 임의의 방문된 노드에 대응하는 항목집합)가 성립되지 않는 경우, 상기 임의의 방문된 노드의 자손 노드들은 방문하지 않는 것을 특징 으로 하는 연관규칙 생성방법.
- 제1항에 있어서,상기 (c) 단계에서, 특정 항목집합 Y가 결과부에 위치하는 연관규칙을 생성하고자 할 때, 전위순위 탐색방법으로 상기 특정 항목집합 Y의 수퍼집합에 대응하는 각 노드를 방문하면서 연관규칙을 생성하되, 임의의 방문된 노드에 대하여 연관규칙 e-Y→Y(여기서, e는 상기 임의의 방문된 노드에 대응하는 항목집합)가 성립되지 않는 경우, 상기 임의의 방문된 노드의 자손 노드들은 방문하지 않는 것을 특징으로 하는 연관규칙 생성방법.
- 제1항 내지 제14항 중 어느 한 항에 기재된 연관규칙 생성방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
- 지속적으로 발생되는 트랜잭션들로 구성되는 비한정적 데이터 집합인 데이터 스트림으로부터 연관규칙을 생성하는 데이터 마이닝 시스템에 있어서,이미 발생한 트랜잭션들에 포함된 항목집합들 및 상기 항목집합들의 출현빈도수가 전위트리를 이용하여 관리되고, 상기 전위트리의 각 노드는 특정 항목과 상기 노드에 대응하는 특정 항목집합의 출현빈도수 정보를 가지는 상기 전위 트리를 저장하는 전위 트리 저장부;현재 발생한 트랜잭션에 포함된 항목집합 및 상기 항목집합의 출현 빈도수에 따라서 상기 항목집합에 대응하는 노드가 가지고 있는 정보를 갱신하거나 새로운 노드를 추가하는 전위 트리 갱신부;상기 전위트리의 각 노드에 해당하는 항목집합에 대하여 지지도를 소정의 임계값인 최소 지지도와 비교하여 빈발항목집합들을 선택하는 빈발항목집합 선택부; 및상기 선택된 빈발항목집합들에 해당하는 노드들 중 전부 또는 일부의 노드들을 방문하면서 상기 방문된 노드들 각각이 가지고 있는 정보를 이용하여 연관규칙을 생성하는 연관규칙 생성부를 포함하는 것을 특징으로 하는 데이터 마이닝 시스템.
- 제16항에 있어서,루트 노드로부터 상기 노드들 중 연관규칙을 생성하고자 하는 항목집합에 대응하는 노드까지의 경로 상에 있는 노드들 각각이 가지고 있는 항목 및 출현빈도수를 상기 경로 상의 순서대로 저장하기 위한 스택을 더 포함하고,상기 연관규칙 생성부는 상기 스택에 저장된 항목 및 출현빈도수를 이용하여 상기 항목집합에 대한 연관규칙을 생성하는 것을 특징으로 하는 데이터 마이닝 시스템.
- 제17항에 있어서,상기 항목집합에 포함된 항목들이 사전적 정렬순서를 이루고 있을 때,상기 연관규칙 생성부는, 연관규칙의 조건부에 포함된 모든 항목들의 사전적 정렬 순서가 결과부에 포함된 항목들 중 사전적 정렬 순서가 가장 앞선 항목보다 모두 앞서 있는 형태의 연관규칙인 순방향 연관규칙을 생성하고, 상기 항목집합에 대한 연관규칙 중 상기 순방향 연관규칙을 제외한 형태의 연관규칙인 역방향 연관규칙을 생성하는 것을 특징으로 하는 데이터 마이닝 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070083432A KR100896528B1 (ko) | 2007-08-20 | 2007-08-20 | 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템 |
US12/033,150 US8005769B2 (en) | 2007-08-20 | 2008-02-19 | Computer-implemented method of generating association rules from data stream and data mining system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070083432A KR100896528B1 (ko) | 2007-08-20 | 2007-08-20 | 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090019185A true KR20090019185A (ko) | 2009-02-25 |
KR100896528B1 KR100896528B1 (ko) | 2009-05-08 |
Family
ID=40383079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070083432A KR100896528B1 (ko) | 2007-08-20 | 2007-08-20 | 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8005769B2 (ko) |
KR (1) | KR100896528B1 (ko) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101238014B1 (ko) * | 2011-03-07 | 2013-02-27 | 연세대학교 산학협력단 | 듀얼 트리 구조를 이용하여 데이터 스트림에서 순차 패턴을 탐사하기 위한 장치 및 그 방법 |
KR20130033214A (ko) * | 2011-09-26 | 2013-04-03 | 한국전력공사 | 원격검침 로드 프로파일의 부하기기별 전력 사용 패턴 분리 장치 및 방법 |
KR101376444B1 (ko) * | 2012-01-31 | 2014-03-19 | 충북대학교 산학협력단 | 데이터 스트림에서 가중치를 고려하여 하향식으로 트리를 탐색하는 패턴 마이닝 방법 |
KR20150079154A (ko) * | 2013-12-31 | 2015-07-08 | 대구대학교 산학협력단 | 이중 감쇠율 기법으로 고관심 정보를 마이닝하는 방법 |
KR20190049536A (ko) | 2017-10-30 | 2019-05-09 | 서울대학교산학협력단 | 연관 규칙의 단계적 추출 장치 및 방법 |
CN110287240A (zh) * | 2019-06-27 | 2019-09-27 | 浪潮软件集团有限公司 | 一种基于Top-K频繁项集的挖掘算法 |
CN111708921A (zh) * | 2020-06-11 | 2020-09-25 | 中国建设银行股份有限公司 | 一种号码选择的方法、装置、设备和存储介质 |
CN114548646A (zh) * | 2021-12-15 | 2022-05-27 | 中南大学 | 一种基于关联规则的疫情风险因子识别方法及系统 |
CN114840577A (zh) * | 2022-04-14 | 2022-08-02 | 四川大学 | 一种基于邻接比特压缩表的频繁闭项集挖掘算法 |
CN117688055A (zh) * | 2023-11-08 | 2024-03-12 | 亿保创元(北京)信息科技有限公司 | 一种基于关联网络分析技术的保险黑产识别与应对系统 |
CN117971921A (zh) * | 2024-01-15 | 2024-05-03 | 兵器装备集团财务有限责任公司 | 基于apriori算法检测客户异常操作的方法及系统 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080183561A1 (en) * | 2007-01-26 | 2008-07-31 | Exelate Media Ltd. | Marketplace for interactive advertising targeting events |
KR100899144B1 (ko) * | 2007-10-26 | 2009-05-27 | 연세대학교 산학협력단 | 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법및 장치 |
US8554602B1 (en) | 2009-04-16 | 2013-10-08 | Exelate, Inc. | System and method for behavioral segment optimization based on data exchange |
US8621068B2 (en) * | 2009-08-20 | 2013-12-31 | Exelate Media Ltd. | System and method for monitoring advertisement assignment |
US8280899B2 (en) * | 2009-10-14 | 2012-10-02 | Microsoft Corporation | Abstracting events for data mining |
US8949980B2 (en) * | 2010-01-25 | 2015-02-03 | Exelate | Method and system for website data access monitoring |
CN101866405B (zh) * | 2010-06-23 | 2011-11-16 | 江苏大学 | 一种关联规则挖掘中隐私数据的保护方法 |
KR101275834B1 (ko) * | 2010-11-09 | 2013-06-18 | 충북대학교 산학협력단 | 상위 k개의 중요 패턴들을 마이닝 하는 방법 |
US8812543B2 (en) * | 2011-03-31 | 2014-08-19 | Infosys Limited | Methods and systems for mining association rules |
CN103150311B (zh) * | 2011-12-07 | 2018-03-09 | 微软技术许可有限责任公司 | 基于数据划分的频繁对象挖掘 |
US9171158B2 (en) | 2011-12-12 | 2015-10-27 | International Business Machines Corporation | Dynamic anomaly, association and clustering detection |
CN102609830B (zh) * | 2012-02-16 | 2015-09-30 | 南京理工大学 | 一种基于关联规则的物流仓储仓位分配方法 |
US9582761B2 (en) | 2012-09-21 | 2017-02-28 | Sas Institute Inc. | Generating and displaying canonical rule sets with dimensional targets |
US9092734B2 (en) | 2012-09-21 | 2015-07-28 | Sas Institute Inc. | Systems and methods for interactive displays based on associations for machine-guided rule creation |
US9117174B2 (en) * | 2012-09-21 | 2015-08-25 | Sas Institute Inc. | System for efficiently generating K-maximally predictive association rules with a given consequent |
US9858526B2 (en) | 2013-03-01 | 2018-01-02 | Exelate, Inc. | Method and system using association rules to form custom lists of cookies |
US9269049B2 (en) | 2013-05-08 | 2016-02-23 | Exelate, Inc. | Methods, apparatus, and systems for using a reduced attribute vector of panel data to determine an attribute of a user |
US20160212158A1 (en) * | 2013-08-28 | 2016-07-21 | Hewlett Packard Enterprise Development Lp | Distributed pattern discovery |
CN105303045B (zh) * | 2015-10-27 | 2018-05-04 | 中国石油天然气股份有限公司 | 一种长输管道线性数据关联规则挖掘方法 |
CN107908776A (zh) * | 2017-11-30 | 2018-04-13 | 国网浙江省电力公司经济技术研究院 | 基于事务‑项目关联矩阵的频繁模式网络挖掘算法及系统 |
CN107967199B (zh) * | 2017-12-05 | 2019-11-08 | 广东电网有限责任公司东莞供电局 | 一种基于关联规则挖掘的电力设备温度预警分析方法 |
KR102023504B1 (ko) * | 2018-01-24 | 2019-09-20 | 연세대학교 산학협력단 | 실시간 데이터스트림의 유사 주기 패턴 탐색 방법 및 장치 |
GB2576375A (en) * | 2018-08-17 | 2020-02-19 | Uvue Ltd | Transaction system and method of operation thereof |
CN112818030B (zh) * | 2021-01-21 | 2022-11-04 | 北京理工大学 | 一种自适应的分布式流数据关联规则挖掘方法 |
CN112968865B (zh) * | 2021-01-26 | 2022-08-02 | 西安理工大学 | 一种基于关联规则挖掘的网络协议语法特征快速提取方法 |
KR102564199B1 (ko) | 2021-01-28 | 2023-08-04 | 숙명여자대학교산학협력단 | 2차원 배열 데이터의 구역 간의 연관규칙을 탐색하는 시스템 및 그 제어 방법 |
CN113610504A (zh) * | 2021-08-17 | 2021-11-05 | 平安资产管理有限责任公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN115473933B (zh) * | 2022-10-10 | 2023-05-23 | 国网江苏省电力有限公司南通供电分公司 | 一种基于频繁子图挖掘的网络系统关联服务发现方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7496592B2 (en) * | 2005-01-31 | 2009-02-24 | International Business Machines Corporation | Systems and methods for maintaining closed frequent itemsets over a data stream sliding window |
KR100812378B1 (ko) * | 2005-11-28 | 2008-03-11 | 이원석 | 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법 |
-
2007
- 2007-08-20 KR KR1020070083432A patent/KR100896528B1/ko not_active IP Right Cessation
-
2008
- 2008-02-19 US US12/033,150 patent/US8005769B2/en not_active Expired - Fee Related
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101238014B1 (ko) * | 2011-03-07 | 2013-02-27 | 연세대학교 산학협력단 | 듀얼 트리 구조를 이용하여 데이터 스트림에서 순차 패턴을 탐사하기 위한 장치 및 그 방법 |
KR20130033214A (ko) * | 2011-09-26 | 2013-04-03 | 한국전력공사 | 원격검침 로드 프로파일의 부하기기별 전력 사용 패턴 분리 장치 및 방법 |
KR101376444B1 (ko) * | 2012-01-31 | 2014-03-19 | 충북대학교 산학협력단 | 데이터 스트림에서 가중치를 고려하여 하향식으로 트리를 탐색하는 패턴 마이닝 방법 |
KR20150079154A (ko) * | 2013-12-31 | 2015-07-08 | 대구대학교 산학협력단 | 이중 감쇠율 기법으로 고관심 정보를 마이닝하는 방법 |
KR20190049536A (ko) | 2017-10-30 | 2019-05-09 | 서울대학교산학협력단 | 연관 규칙의 단계적 추출 장치 및 방법 |
CN110287240A (zh) * | 2019-06-27 | 2019-09-27 | 浪潮软件集团有限公司 | 一种基于Top-K频繁项集的挖掘算法 |
CN111708921A (zh) * | 2020-06-11 | 2020-09-25 | 中国建设银行股份有限公司 | 一种号码选择的方法、装置、设备和存储介质 |
CN111708921B (zh) * | 2020-06-11 | 2024-04-26 | 中国建设银行股份有限公司 | 一种号码选择的方法、装置、设备和存储介质 |
CN114548646A (zh) * | 2021-12-15 | 2022-05-27 | 中南大学 | 一种基于关联规则的疫情风险因子识别方法及系统 |
CN114840577A (zh) * | 2022-04-14 | 2022-08-02 | 四川大学 | 一种基于邻接比特压缩表的频繁闭项集挖掘算法 |
CN114840577B (zh) * | 2022-04-14 | 2023-08-29 | 四川大学 | 一种基于邻接比特压缩表的频繁闭项集挖掘算法 |
CN117688055A (zh) * | 2023-11-08 | 2024-03-12 | 亿保创元(北京)信息科技有限公司 | 一种基于关联网络分析技术的保险黑产识别与应对系统 |
CN117971921A (zh) * | 2024-01-15 | 2024-05-03 | 兵器装备集团财务有限责任公司 | 基于apriori算法检测客户异常操作的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20090055332A1 (en) | 2009-02-26 |
KR100896528B1 (ko) | 2009-05-08 |
US8005769B2 (en) | 2011-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100896528B1 (ko) | 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템 | |
JP3959027B2 (ja) | 情報システムのためのデータ構造 | |
Nanopoulos et al. | Mining patterns from graph traversals | |
KR100812378B1 (ko) | 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법 | |
EP0742524B1 (en) | System and method for mining generalized association rules in databases | |
Liu et al. | Ascending frequency ordered prefix-tree: efficient mining of frequent patterns | |
KR20080049804A (ko) | 클릭 간격 결정 | |
Zhang et al. | Efficient temporal join processing using indices | |
AU2002249161A1 (en) | Data structure for information systems | |
Ouyang et al. | Progressive top-k nearest neighbors search in large road networks | |
Bakar et al. | I-Eclat: Performance enhancement of Eclat via incremental approach in frequent itemset mining | |
Jaysawal et al. | Sohupds: a single-pass one-phase algorithm for mining high utility patterns over a data stream | |
Mallick et al. | Incremental mining of sequential patterns: Progress and challenges | |
KR100913027B1 (ko) | 데이터 마이닝 시스템 및 그 방법 | |
Patel et al. | ACORN: Performant and Predicate-Agnostic Search Over Vector Embeddings and Structured Data | |
Deshpande et al. | Efficient online top-k retrieval with arbitrary similarity measures | |
Wu et al. | The efficient mining of skyline patterns from a volunteer computing network | |
US20090049035A1 (en) | System and method for indexing type-annotated web documents | |
Glake et al. | Hierarchical Semantics Matching For Heterogeneous Spatio-temporal Sources | |
Yang et al. | Efficient mining of frequent XML query patterns with repeating-siblings | |
Yu et al. | Heavy path based super-sequence frequent pattern mining on web log dataset. | |
Timko et al. | Sequenced spatio-temporal aggregation in road networks | |
Li et al. | GraSeq: A novel approximate mining approach of sequential patterns over data stream | |
Dai et al. | DIME: Disposable Index for moving objects | |
Jiang et al. | DKWS: A Distributed System for Keyword Search on Massive Graphs (Complete Version) |
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 | ||
FPAY | Annual fee payment |
Payment date: 20130311 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20140307 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20150429 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20160426 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20170522 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |