Nothing Special   »   [go: up one dir, main page]

KR20080026943A - Method for association rule mining - Google Patents

Method for association rule mining Download PDF

Info

Publication number
KR20080026943A
KR20080026943A KR1020060092201A KR20060092201A KR20080026943A KR 20080026943 A KR20080026943 A KR 20080026943A KR 1020060092201 A KR1020060092201 A KR 1020060092201A KR 20060092201 A KR20060092201 A KR 20060092201A KR 20080026943 A KR20080026943 A KR 20080026943A
Authority
KR
South Korea
Prior art keywords
item
header table
transaction
items
transactions
Prior art date
Application number
KR1020060092201A
Other languages
Korean (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 KR1020060092201A priority Critical patent/KR20080026943A/en
Publication of KR20080026943A publication Critical patent/KR20080026943A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

An association rule mining method is provided to reduce an execution time by mining association rules on the basis of an ARCS(Association Rule mining in Compressed Space) algorithm. An association rule mining method comprises the following several steps. Items of all the transactions in an original transaction database are counted and a header table(310) is generated. The items of all the transactions in an original transaction database are recounted, are compared with items of the header table, and are registered at a filtered transaction if the recounted items of the transactions are the same as those of the header table. Filtered transactions are counted and a compressed transaction(320) is generated. The items registered at the filtered transaction are connected to the header table.

Description

연관규칙 탐사 방법{Method for Association Rule Mining}Method for Association Rule Mining}

도 1은 종래 기술인 FP-자료구조의 실시예,1 is an embodiment of a prior art FP-data structure,

도 2는 종래 기술인 H-자료구조의 실시예,2 is an embodiment of a prior art H-data structure,

도 3은 본 발명에 따른 CT-자료구조의 실시예,3 is an embodiment of a CT-data structure according to the present invention;

도 4는 본 발명에 따른 ARCS 알고리즘을 이용한 조건적 헤더 테이블 생성의 실시예,4 is an embodiment of conditional header table generation using an ARCS algorithm according to the present invention;

도 5는 본 발명에 따른 ARCS 알고리즘을 이용한 조건적 헤더 테이블 생성의 다른 실시예,5 is another embodiment of conditional header table generation using an ARCS algorithm according to the present invention;

도 6은 본 발명에 따른 ARCS 알고리즘에서 모든 빈발항목집합을 발견하기 위한 탐색 경로를 나타낸 도면.6 is a diagram illustrating a search path for finding all frequent item sets in an ARCS algorithm according to the present invention.

도 7은 본 발명에 따른 연관규칙 탐사 방법과 종래 기술을 비교한 일실시예를 나타낸 그래프.Figure 7 is a graph showing an embodiment comparing the conventional rules exploration method according to the present invention.

도 8은 본 발명에 따른 연관규칙 탐사 방법과 종래 기술을 비교한 다른 일실시예를 나타낸 그래프.Figure 8 is a graph showing another embodiment comparing the related art rule search method according to the present invention.

도 9는 본 발명에 따른 연관규칙 탐사 방법과 종래 기술을 비교한 또 다른 일실시예를 나타낸 그래프.Figure 9 is a graph showing another embodiment comparing the conventional rules exploration method according to the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

310: 헤더 테이블 320: 압축된 트랜잭션들310: header table 320: compressed transactions

본 발명은 연관규칙 탐사 방법에 관한 것으로, 보다 자세하게는 CT-자료구조를 이용하여 저장공간을 적게 차지함으로써 많은 양의 데이터를 처리하고, ARCS 알고리즘을 이용하여 연관규칙을 탐사함으로써 실행시간을 단축시키는 연관규칙 탐사 방법에 관한 것이다.The present invention relates to a method for exploring association rules, and more particularly, to process a large amount of data by using a small amount of storage space using a CT-data structure, and to reduce execution time by exploring association rules using an ARCS algorithm. It is about exploration of association rules.

연관규칙(Association Rule)이란 데이터의 항목들 간의 조건-결과 식으로 표현되는 유용한 패턴을 말한다. 연관규칙의 탐사는 기업의 활동, 특히 마케팅에서 가장 널리 사용되고 있다. 일예로, 미국의 슈퍼마켓에서 목요일 기저귀를 사는 고객은 맥주도 동시에 구매한다는 연관성을 알아냈다고 한다. 이때, 조건은 '목요일, 기저귀'이며 결과는 '맥주'라 할 수 있다. 이와 같은 연관규칙의 탐사가 가능하게 된 것은 컴퓨터기술의 발전을 들 수 있다. 고객들이 슈퍼마켓의 계산대에서 계산할 때 쇼핑카트에 담긴 물품들이 바코드를 통하여 컴퓨터에 데이터베이스 형태로 입력되고 이로부터 고객들의 구매행태를 분석할 수 있게 되었다. 이때 한 고객의 정보를 하나의 트랜잭션(Transaction)이라 하고, 수많은 트랜잭션을 분석하여 빈번히 나타나는 규칙을 찾아내고 마케팅에 활용한다. 예를 들어, 상기의 기저귀-맥주의 규칙을 활용하여 기저귀와 맥주를 가까운 곳에 진열함으로써 매출 신장을 기할 수 있다. 이런 연관규칙은 근거확률, 신뢰확률, 리프트 등의 확률을 이용하여 생성하며 장바구니 분석, 교차판매 전략, 카탈로그 디자인, 상품 배치, 웹에서의 사용자 접근 패턴 분석 등의 상업분야뿐만 아니라, 최근에는 생명공학 등의 과학연구분야에서도 적극 활용되고 있다.Association rules are useful patterns that are expressed as condition-results between items of data. Exploration of the rules of association is most widely used in corporate activities, especially in marketing. For example, a customer who buys diapers on Thursday in a supermarket in the United States has found a link to buying beer at the same time. At this time, the condition is 'Thursday, diaper' and the result can be referred to as 'beer'. The exploration of these rules allows the development of computer technology. When customers check out at the supermarket checkout, the items in the shopping cart are entered into the database in the form of a computer via a bar code, from which they can analyze their purchasing behavior. At this time, the information of a customer is called a transaction, and a lot of transactions are analyzed to find out the rules that appear frequently and use them for marketing. For example, the above diaper-beer rules can be used to increase sales by displaying diapers and beer in close proximity. These association rules are generated using probabilities such as Evidence Probability, Confidence Probability, and Lift. It is also actively used in scientific research fields.

연관규칙 탐사방법은 거래(사건)속에 포함된 품목(항목)간의 연관관계를 찾아내는 방법으로, 자율학습을 기반으로 하는 지식발견시스템의 핵심이다. 연관규칙 탐사문제는 최소 지지도 이상의 트랜잭션 지지도를 갖는 항목집합들인 빈발항목집합(Frequent itemset)을 찾아내는 단계와 그것들로부터 연관규칙을 생성하는 단계로 구분된다. 연관관계를 관찰하고자 하는 품목의 수와 트랜잭션의 수가 증가할 경우, 분석을 위해 필요한 계산의 수는 기하급수적으로 증가하며, 그에 필요한 저장구조의 크기 또한 급격히 증가한다. 그러므로 대용량 데이터에 대해 고속으로 연관규칙 탐사를 수행하기 위해서는 저장공간과 실행 시간을 동시에 고려한 알고리즘이 필요하다.Association rule exploration is a method of finding associations between items included in a transaction and is the core of a knowledge discovery system based on self-learning. The association rule exploration problem is divided into finding the frequent itemsets, which are sets of items having transaction support above the minimum support level, and generating association rules from them. As the number of items and transactions to be observed increases, the number of calculations required for analysis increases exponentially, and the size of the storage structure required increases drastically. Therefore, in order to perform association rule search on a large amount of data at high speed, an algorithm considering both storage space and execution time is required.

종래 기술인 FP-growth 알고리즘은 트랜잭션 데이터베이스(Transaction Database)에서 정렬된 트랜잭션 집합에 대해 헤더 테이블(Header Table)과 공통된 이전(prefix) 항목들에 대해 같은 노드(Node)를 사용하는 FP-트리(tree)로 이루어진 FP-자료구조(struct)를 이용한다. FP-growth는 FP-자료구조로부터 패턴-성장 방법을 사용하여 후보빈발항목집합 발생 및 테스트 없이 빈발항목집합을 발견한다.Prior art FP-growth algorithms use FP-trees that use the same node for prefix entries that are common to the header table for a sorted set of transactions in a transaction database. Use an FP-struct consisting of FP-growth uses a pattern-growth method from FP-data structures to detect frequent item sets without generating and testing candidate frequent item sets.

표 1은 원본 트랜잭션 데이터베이스와 최소 지지도가 3일 때 빈도 수에 대한 내림차순으로 정렬된 여과 트랜잭션 집합을 나타낸다.Table 1 shows a set of filtered transactions sorted in descending order of frequency when the original transaction database and minimum support are 3.

[표 1] 트랜잭션 데이터베이스와 정렬된 여과 트랜잭션 집합Table 1. Filtration transaction set aligned with transaction database

TIDTID 트랜잭션 데이터베이스Transactional database 빈도 수에 대한 내림차순으로 정렬된 여과 트랜잭션 집합Filtered transaction set sorted in descending order by frequency 100100 f, a, c, d, g, i, m, pf, a, c, d, g, i, m, p <f, c, a, m, p><f, c, a, m, p> 200200 a, b, c, f, l, m, oa, b, c, f, l, m, o <f, c, a, b, m><f, c, a, b, m> 300300 b, f, h, j, ob, f, h, j, o <f, b><f, b> 400400 b, c, k, s, pb, c, k, s, p <c, b, p><c, b, p> 500500 a, f, c, e, l, p, m, na, f, c, e, l, p, m, n <f, c, a, m, p><f, c, a, m, p>

도 1은 종래 기술인 FP-자료구조의 실시예로써, 이는 상기 표 1의 트랜잭션 데이터를 이용하여 생성된 것이다. 빈발항목집합 탐사시 헤더 테이블(110)의 각 항목들에 대한 조건적 FP-트리와 헤더 테이블(110)을 FP-트리(120)가 단일 경로(path)로 구성될 때까지 분할 생성한 후, 항목과 각 트리 노드와의 모든 조합을 통해 빈발항목집합을 발견한다. 예를 들어서, 항목 m을 포함하는 모든 빈발항목집합을 발견하기 위해 항목 m의 조건적 패턴집합인 {(f:2, c:2, a:2), (f:1, c:1, a:1, b:1)}을 통해 m의 조건적 FP-트리 {(f:3, c:3, a:3)}|m을 생성한다. m의 조건적 FP-트리와 m의 조합을 통해 m을 포함하는 모든 빈발항목집합을 발견한다.1 is an embodiment of a prior art FP-data structure, which is generated using the transaction data of Table 1 above. After exploring the frequent itemsets, the conditional FP-tree and the header table 110 for each item of the header table 110 are split and generated until the FP-tree 120 is configured as a single path. All combinations of items and each tree node find a frequent set of items. For example, to find all frequent itemsets that include item m, the conditional pattern sets of item m are {(f: 2, c: 2, a: 2), (f: 1, c: 1, a : 1, b: 1)} yields a conditional FP-tree {(f: 3, c: 3, a: 3)} | m of m. The combination of m's conditional FP-tree and m finds all frequent itemsets including m.

FP-growth는 빈발항목집합 발견시 반복적인 조건적 FP-트리와 헤더 테이블의 생성으로 인해 공간적, 시간적 낭비를 초래한다. 또한 데이터의 밀집도가 낮거나, 동일 데이터에 대해 최소 지지도가 매우 낮을 경우 FP-트리의 압축률이 낮아져 원 본 트랜잭션 데이터베이스보다 FP-자료구조가 더 커질 경우가 발생할 수 있다.FP-growth is a waste of space and time due to the generation of repetitive conditional FP-trees and header tables when frequent itemsets are found. In addition, when data density is low or minimum support for the same data is very low, the compression rate of the FP-tree may be low, resulting in a larger FP-data structure than the original transaction database.

다른 종래 기술인 H-mine 알고리즘은 여과된 트랜잭션 집합에 대해 헤더 테이블과 빈발 투영도(Frequent Projection)들로 이루어진 H-자료구조를 생성한 후 패턴-성장 방법을 사용하여 후보빈발항목집합 발생 및 테스트 없이 빈발항목집합을 발견한다. 헤더 테이블의 각 항목은 이름, 빈도 수, 링크로 구성되며 빈발 투영도의 항목은 이름, 링크로 구성된다. FP-growth가 반복적으로 조건적 FP-자료구조를 생성하는데 비해, H-mine은 조건적 헤더 테이블만을 반복적으로 생성하며, 데이터의 밀집도가 낮으면 H-자료구조를 사용하고, 높으면 FP-자료구조를 생성하여 빈발항목집합을 발견한다.Another prior art H-mine algorithm generates an H-data structure consisting of header tables and frequent projections for a filtered set of transactions, and then uses a pattern-growth method to generate candidate frequent item sets without frequent occurrence and testing. Find a set of items. Each item in the header table consists of a name, frequency, and a link, and an item in a frequent projection view consists of a name and a link. While FP-growth repeatedly generates conditional FP-data structures, H-mine generates only conditional header tables repeatedly, using H-data structures at low data densities, and FP-data structures at high FP-data structures. Create a frequent item set by generating.

도 2는 종래 기술인 H-자료구조의 실시예로써, 마찬가지로 상기 표 1의 트랜잭션 데이터를 이용하여 생성된 것이다. 빈발항목집합 발견시, 해당 항목에 대한 링크 집합이 완전하지 않을 경우, 이전 항목들의 큐를 다시 탐사하여 부족한 링크들을 찾는 역추적(backtracking)이 필요하다. 도 2에서 'c'를 포함하는 모든 빈발항목집합을 발견하기 위해서는 'c'에 대한 링크가 하나밖에 없기 때문에 이전 항목인 'f'의 큐를 다시 탐사하여 나머지 링크 3개를 찾아 연결한 후, 'c'에 대한 탐사를 수행한다.Figure 2 is an embodiment of the prior art H-data structure, which is similarly generated using the transaction data of Table 1 above. If a frequent item set is found, if the set of links to that item is incomplete, backtracking is needed to search the queue of previous items to find the missing links. In order to find all the frequent item sets including 'c' in FIG. 2, since there is only one link to 'c', the queue of the previous item 'f' is searched again to find and connect the remaining three links. Conduct an exploration on 'c'

H-mine은 입력 데이터 밀집도에 대한 명확한 기준 제시가 어려울 뿐더러, 밀집도가 높아 FP-자료구조를 사용할 경우 FP-growth가 가지고 있는 단점을 내재하게 되고, 밀집도가 낮아 H-자료구조를 사용할 경우 압축 효과를 얻을 수 없다. 또한 H-자료구조를 사용할 경우 사용하지 않는 링크공간으로 인한 저장공간의 낭비가 발 생하고, 빈발항목집합 발견 과정 시 해당 항목에 대한 링크가 부족할 경우 역추적을 해야 하는 문제점이 있다.H-mine is not only difficult to provide a clear standard for input data density, but also has a high density, which implies the disadvantage of FP-growth. When H-mine is used, H-mine has a compression effect. Can not get. In addition, when using the H-data structure, there is a problem of waste of storage space due to unused link space and backtracking if there is a lack of link to the corresponding item during the frequent item set discovery process.

따라서, 본 발명은 종래 기술의 문제점을 해결하기 위한 것으로, CT-자료구조를 이용하여 저장공간을 적게 차지함으로써, 많은 양의 데이터를 처리할 수 있도록 함에 목적이 있다.Accordingly, an object of the present invention is to solve the problems of the prior art, and to achieve a large amount of data by using a small amount of storage space using a CT data structure.

또한, ARCS 알고리즘을 이용하여 연관규칙을 탐사함으로써 실행시간을 단축시키기 위한 다른 목적이 있다.In addition, there is another purpose to reduce the execution time by exploring the association rules using the ARCS algorithm.

본 발명의 목적은 원본 트랜잭션 데이터베이스에서 모든 트랜잭션의 항목을 확인하는 제 1단계; 상기 확인된 제 1항목이 헤더 테이블에 없으면 추가하고, 빈도 수를 하나 증가시키는 제 2단계; 상기 헤더 테이블의 제 1항목이 최소 지지도를 만족하지 않으면 삭제하는 제 3단계; 상기 원본 트랜잭션 데이터베이스에서 모든 트랜잭션의 항목을 재확인하는 제 4단계; 상기 확인된 제 2항목이 상기 헤더 테이블이 있으면 여과된 트랜잭션에 추가시키는 제 5단계; 상기 여과된 트랜잭션이 압축된 트랜잭션에 없으면 추가하고, 빈도 수를 하나 증가시키는 제 6단계; 및 상기 여과된 트랜잭션에 추가된 상기 제 2항목이 첫 번째 항목일 경우 상기 헤더 테이블에 링크를 연결하는 제 7단계를 포함하는 연관규칙 탐사 방법에 의해 달성된다.An object of the present invention is the first step of identifying items of all transactions in the original transaction database; Adding the identified first item if it is not present in the header table, and increasing the frequency by one; A third step of deleting if the first item of the header table does not satisfy the minimum support level; A fourth step of reconfirming the items of all transactions in the original transaction database; A fifth step of adding the checked second item to the filtered transaction if the header table exists; Adding the filtered transaction if it is not in the compressed transaction and increasing the frequency by one; And a seventh step of connecting a link to the header table when the second item added to the filtered transaction is the first item.

본 발명의 다른 목적은 루트 헤더 테이블의 모든 항목을 확인하는 제 1단계; 상기 확인된 제 1항목의 빈발항목집합을 생성하는 제 2단계; 상기 제 1항목이 가리키는 모든 압축된 트랜잭션을 읽어, 상기 제 1항목의 조건적 헤더 테이블을 생성하는 제 3단계; 생성된 상기 조건적 헤더 테이블의 항목 중 최소 지지도를 만족하지 않는 항목은 삭제하고, 최소 지지도를 만족하는 제 2항목의 빈발항목집합을 생성하는 제 4단계; 및 상기 최소 지지도를 만족하는 제 2항목이 가리키는 모든 압축된 트랜잭션을 읽어 제 2항목의 조건적 헤더 테이블을 생성하는 제 5단계를 포함하는 연관규칙 탐사 방법이 의해 달성된다.Another object of the present invention is a first step of identifying all items of the root header table; Generating a frequent item set of the identified first items; Reading all the compressed transactions indicated by the first item and generating a conditional header table of the first item; A fourth step of deleting items that do not satisfy the minimum support among the generated items of the conditional header table and generating a frequent item set of the second items that satisfy the minimum support; And a fifth step of reading all the compressed transactions indicated by the second item satisfying the minimum support, and generating a conditional header table of the second item.

이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Prior to this, terms or words used in the specification and claims should not be construed as having a conventional or dictionary meaning, and the inventors should properly explain the concept of terms in order to best explain their own invention. Based on the principle that can be defined, it should be interpreted as meaning and concept corresponding to the technical idea of the present invention.

따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Therefore, the embodiments described in the specification and the drawings shown in the drawings are only the most preferred embodiment of the present invention and do not represent all of the technical idea of the present invention, various modifications that can be replaced at the time of the present application It should be understood that there may be equivalents and variations.

CT(Compressed Transactions)-자료구조는 압축된 트랜잭션들(Compressed Transactions)과 헤더 테이블로 구성된다. 탐사 중 변하지 않는 압축된 트랜잭션들 은 가급적 적은 정보만으로 구성하고, 나머지 정보는 탐사 중 생성/삭제될 수 있는 헤더 테이블에 포함할 수 있도록 설계되었다. 압축된 트랜잭션들은 항목이름으로만 구성된 2차원 스트링 배열로 표현하며, 공통된 항목으로 구성된 여과 트랜잭션에 대해서는 트랜잭션의 빈도수와 함께 하나의 압축된 트랜잭션으로 표현한다. 헤더 테이블은 항목들의 집합으로 구성되며, 각 항목은 항목이름, 빈도 수, 트랜잭션링크집합으로 구성된다.Compressed Transactions (CT) data structure consists of Compressed Transactions and a header table. Compressed transactions that do not change during exploration consist of as little information as possible, and the rest of the information is designed to be included in header tables that can be created / deleted during exploration. Compressed transactions are represented as a two-dimensional string array consisting of only item names. For filtered transactions composed of common items, they are represented as one compressed transaction along with the frequency of transactions. The header table consists of a set of items, and each item consists of item name, frequency, and transaction link set.

FP-자료구조의 경우 데이터의 밀집도가 높거나, 동일 데이터에 대해 지지도를 높게 할 경우 FP-트리의 노드 개수가 줄어들어 적은 공간을 사용하지만, 그렇지 못한 경우 FP-트리를 구성하는 노드의 크기가 다른 자료구조에 비해 상대적으로 크기 때문에 많은 공간을 사용하게 된다. H-자료구조의 경우 FP-트리의 노드보다 적은 크기를 사용하지만 압축기능이 없으며, 빈발 투영도의 각 노드가 항목이름과 노드 링크로 구성되어있기 때문에 사용하지 않는 링크 공간으로 인한 저장공간의 낭비가 발생한다.In the case of FP-data structure, if the data density is high or if the support for the same data is high, the number of nodes in the FP-tree is reduced, which uses less space. Otherwise, the nodes constituting the FP-tree have different sizes. It uses a lot of space because it is relatively large compared to the data structure. H-data structure uses less size than FP-tree node, but there is no compression function, and since each node of frequent projection is composed of item name and node link, waste of storage space is caused by unused link space. Occurs.

CT-자료구조는 헤더 테이블이 트랜잭션링크집합으로 구성되어 다른 자료구조의 헤더 테이블보다 크지만, 탐사가 종료된 항목을 헤더 테이블로부터 삭제함으로써 헤더 테이블의 커짐을 해결한다.The CT-data structure resolves the growth of the header table by deleting the item from the header table, although the header table is composed of transaction link sets and is larger than the header table of other data structures.

표 2는 CT-자료구조의 생성 알고리즘으로써, 실행시간 개선을 위해 후보항목집합 발생과정 없이 2번의 트랜잭션 데이터베이스 스캔을 통해 빈발항목집합을 발견하며, 같은 항목들로 구성된 빈발 투영도에 대해 같은 저장공간을 사용함으로써 검색횟수의 감소와 저장공간 축소 효과를 얻는다.Table 2 shows the CT-data structure generation algorithm, which finds frequent itemsets through two transactional database scans without generating candidate items for improved execution time, and uses the same storage space for frequent projections of the same items. This reduces the number of searches and reduces the storage space.

[표 2] CT-자료구조의 생성 알고리즘[Table 2] Generation algorithm of CT data structure

Algorithm1 (CT-자료구조 생성) 헤더 테이블과 압축된 트랜잭션들을 생성한다. Input : 트랜잭션 데이터베이스, 최소 지지도 임계치(

Figure 112006068654571-PAT00001
); Output : 헤더 테이블, 압축된 트랜잭션들; Method : Call CT-자료구조(트랜잭션 데이터베이스,
Figure 112006068654571-PAT00002
) Procedure CT-자료구조(트랜잭션 데이터베이스,
Figure 112006068654571-PAT00003
) { for( 트랜잭션 데이터베이스의 모든 트랜잭션 ) for( 트랜잭션의 모든 항목 ) if( 헤더 테이블에 해당 항목이 있을 경우 ) 빈도 수 증가; else 헤더 테이블에 항목 추가; for( 헤더 테이블의 모든 요소 ) if( 요소의 빈도 수 <
Figure 112006068654571-PAT00004
) 헤더 테이블로부터 항목 제거; for( 트랜잭션 데이터베이스의 모든 트랜잭션 ) for( 트랜잭션의 모든 항목 ) { if( 헤더 테이블에 해당 항목이 있을 경우 ) 여과된 트랜잭션에 항목 추가; } if( 압축된 트랜잭션들에 여과된 트랜잭션이 있을 경우 ) 여과된 트랜잭션의 빈도 수 증가; else { 압축된 트랜잭션들에 여과된 트랜잭션 추가; if( 항목이 여과된 트랜잭션의 첫 번째 항목일 경우 ) 헤더 테이블에 링크 연결 } return 헤더 테이블, 압축된 트랜잭션들; } Algorithm1 ( Generate CT-data structures ) Creates header tables and compressed transactions. Input : Transaction database, minimum support threshold (
Figure 112006068654571-PAT00001
); Output : header table, compressed transactions; Method : Call CT-data structure (transaction database,
Figure 112006068654571-PAT00002
Procedure CT-data structures (transaction databases,
Figure 112006068654571-PAT00003
) {for (all transactions in a transactional database) for (all items in a transaction) if (if there is an entry in the header table) Increase frequency; adding entries to the else header table; for (all elements in header table) if (frequency of element <
Figure 112006068654571-PAT00004
) Remove entries from the header table; for (all transactions in a transactional database) for (all items in a transaction) {if (if there is an entry in the header table) Add an item to a filtered transaction; } if (if there are filtered transactions in compressed transactions) increasing the frequency of filtered transactions; else {add filtered transaction to compressed transactions; if (if item is the first item in a filtered transaction) Link to header table} return header table, compressed transactions; }

도 3은 본 발명에 따른 CT-자료구조의 실시예로써, 상기 표 1의 트랜잭션 데이터와 표 2의 알고리즘을 이용하여 생성된 것이다.3 is an embodiment of a CT data structure according to the present invention, which is generated using the transaction data of Table 1 and the algorithm of Table 2.

상기 표 1의 트랜잭션 데이터베이스로부터 첫 항목인 'f'를 읽은 후 헤더 테이블(310)에 'f'가 있는지 확인한다. 'f'가 헤더 테이블(310)에 없으므로 'f'를 추 가하고 항목 빈도 수를 1 증가시킨다. 이와 같은 방법으로 전체 트랜잭션 데이터를 읽어서 헤더 테이블(310)을 생성한다. 이때 빠른 탐색을 수행하기 위해 헤더 테이블을 항목이름을 키 값으로 갖는 해쉬 테이블(Hash Table)로 구현한다. 트랜잭션 데이터베이스에 대한 첫 번째 스캔이 끝나면 헤더 테이블(310)에는 각 항목에 대한 빈도 수 정보가 저장된다. 헤더 테이블(310)을 스캔하여 최소 지지도 임계치를 만족하지 않는 요소인 <e:1>, <n:1>, <s:1>, <d:1>, <g:1>, <i:1>, <l:1>, <o:1>, <h:1>, <j:1> 및 <k:1>을 헤더 테이블(310)에서 제거한다. 이후 압축된 트랜잭션들(320)의 생성과 헤더 테이블과의 링크 연결을 수행하기 위해 트랜잭션 데이터베이스에 대한 두 번째 스캔을 수행한다.After reading the first item 'f' from the transaction database of Table 1, it is checked whether there is 'f' in the header table 310. Since 'f' is not in the header table 310, 'f' is added and the item frequency is increased by one. In this way, the header table 310 is generated by reading the entire transaction data. In this case, the header table is implemented as a hash table with the item name as the key value for quick search. After the first scan of the transaction database, the header table 310 stores frequency information for each item. The header table 310 is scanned to see elements <e: 1>, <n: 1>, <s: 1>, <d: 1>, <g: 1>, and <i: that do not meet the minimum support threshold. 1>, <l: 1>, <o: 1>, <h: 1>, <j: 1>, and <k: 1> are removed from the header table 310. Afterwards, a second scan of the transaction database is performed to generate the compressed transactions 320 and perform a link connection with the header table.

상기 표 1에서 TID 100 트랜잭션의 항목을 차례대로 읽어 헤더 테이블(310)에 항목이 존재하는, 즉 최소 지지도 임계치를 만족하는 항목만으로 여과된 트랜잭션 <a, c, f, m, p>을 구성하고 임의의 순서(알파벳순)로 정렬한 후 압축된 트랜잭션들(320)에 해당 트랜잭션이 있는지를 확인한다. 압축된 트랜잭션들(320)이 항목이름으로만 구성되기 때문에 압축된 트랜잭션들(320)을 항목이름집합을 키 값으로 갖는 해쉬 테이블로 구현할 수 있으며, 따라서 탐사 시간이 0(1) 만큼 걸린다. <a, c, f, m, p>가 압축된 트랜잭션에 없기 때문에 추가하고, 여과된 트랜잭션의 첫 번째 아이템인 항목 'a'를 헤더 테이블(310)에 연결한다. 이와 같은 방법으로 표 1의 전체 트랜잭션 데이터베이스를 읽으면 도 3과 같은 CT-자료구조가 생성된다. TID 100과 500 트랜잭션의 여과된 트랜잭션은 모두 동일한 항목으로 구성되어 있기 때문에 <a, c, f, m, p : 2>로 표현된다.In Table 1, the items of the TID 100 transaction are read in order to configure the filtered transactions <a, c, f, m, and p> with only items that exist in the header table 310, that is, satisfying the minimum support threshold. After sorting in an arbitrary order (alphabetical order), it is checked whether there is a corresponding transaction in the compressed transactions 320. Since the compressed transactions 320 are composed of only item names, the compressed transactions 320 can be implemented as a hash table having a set of item names as a key value, so that the exploration time takes 0 (1). Since <a, c, f, m, and p> are not in the compressed transaction, they are added and the item 'a', which is the first item of the filtered transaction, is linked to the header table 310. In this way, reading the entire transaction database in Table 1 creates a CT-data structure as shown in Figure 3. Since the filtered transactions of TID 100 and 500 transactions are all composed of the same items, they are represented as <a, c, f, m, p: 2>.

CT-자료구조 생성 알고리즘의 시간 복잡도(Time Complexity)는 다음과 같다. 헤더 테이블을 항목이름을 키 값으로 갖는 해쉬 테이블로 구현하고, 빠른 링크 추가를 위해 기존의 H-자료구조의 헤더 테이블에 마지막 링크위치를 기억하기 위한 필드를 추가한다는 조건하에, H-자료구조와 CT-자료구조의 생성시 단일 트랜잭션을 H-자료구조 또는 CT-자료구조에 삽입하는데 걸리는 시간은 모두 0(|Trans|)이다(|Trans| = 1 - 단일 트랜잭션에 포함된 빈발항목 개수). 또한 CT-자료구조의 경우 압축된 트랜잭션들을 키 값으로 갖는 해쉬 테이블을 사용하므로 동일한 압축된 트랜잭션들을 찾는데 걸리는 시간은 0(1)이다. 그러므로 H-자료구조와 CT-자료구조 생성 시간은 모두 0(N*|Trans|)이다(N=트랜잭션의 수).The time complexity of the CT-data structure generation algorithm is as follows. Implement the header table as a hash table with the item name as the key value, and add a field to remember the last link position in the header table of the existing H-data structure for quick link addition. The time taken to insert a single transaction into an H-data structure or CT-data structure when generating a CT-data structure is all 0 (| Trans |) (| Trans | = 1-the number of frequent items included in a single transaction). In addition, since the CT-data structure uses a hash table with compressed transactions as a key value, the time taken to find the same compressed transactions is 0 (1). Therefore, the H-data and CT-data creation time are both 0 (N * | Trans |) (N = number of transactions).

CT-자료구조의 공간 복잡도(Space Complexity)의 경우, 헤더 테이블은 H-자료구조와 CT-자료구조가 모두 같은 개수의 요소를 가지면서 CT-자료구조의 헤더 테이블 요소가 트랜잭션링크집합으로 인해 더 크기 때문에 CT-자료구조의 헤더 테이블 크기가 H-자료구조의 헤더 테이블 크기보다 크다. 하지만 H-자료구조의 빈발 투영도가 2*|Trans|이고, CT-자료구조의 압축된 트랜잭션들이 (|Trans| + 빈도 수)이므로 H-자료구조의 빈발 투영도 크기가 CT-자료구조의 압축된 트랜잭션들 크기보다 더 크다. 또한 헤더 테이블의 크기가 빈발 투영도나 압축된 트랜잭션들에 비해 상대적으로 훨씬 작고, CT-자료구조의 경우 탐사가 종료된 항목을 헤더 테이블에서 제거하므로 CT-자료구조의 저장공간크기가 H-자료구조의 저장공간크기보다 작다.In the case of the space complexity of the CT-data structure, the header table has the same number of elements as both the H-data structure and the CT-data structure, and the header table elements of the CT-data structure are more likely to be caused by transactional link sets. Because of the size, the header table size of the CT-data structure is larger than that of the H-data structure. However, since the frequent projection of the H-data structure is 2 * | Trans |, and the compressed transactions of the CT-data structure are (| Trans | + frequency), the frequent projection size of the H-data structure is the compressed size of the CT-data structure. Larger than transactions size. In addition, the size of the header table is much smaller than that of frequent projections or compressed transactions, and the CT-data structure removes the expiration of items from the header table. Is less than the storage size of.

CT-자료구조를 기반으로 하여 연관 규칙을 탐사하는 ARCS(Association Rule mining in Compressed Space) 알고리즘은 FP-growth와 H-mine과 같이 패턴-성장 방법을 사용하여 빈발항목집합을 발견한다. 즉 아이템집합 I= i1, i2, ... , im 이 있을 경우 i1을 포함하는 모든 빈발항목집합, i1을 포함하지 않으면서 i2을 포함하는 모든 빈발항목집합, i1...ik -1을 포함하지 않으면서 ik을 포함하는 모든 빈발항목집합(3≤k≤m)을 찾는 방식으로 탐사를 수행한다. Association Rule mining in Compressed Space (ARCS) algorithms, which explore association rules based on CT-data structures, detect frequent itemsets using pattern-growth methods such as FP-growth and H-mine. That is the item set I = i 1, i 2, ..., i m all frequent itemsets containing i 1 If there are, all the frequent itemsets containing i stand 2 does not contain a i 1, i 1. ..i will perform exploration in a way to find all frequent itemsets (3≤k≤m) comprising a stand i k If you do not include a k -1.

FP-growth는 빈발항목집합 탐사 중 조건적 FP-트리와 헤더테이블을 생성한다는 단점이 있으며, H-mine은 해당 항목에 대한 링크 집합이 완전하지 않을 경우, 탐사가 수행됐던 이전 항목들의 큐를 다시 탐사하여 부족한 링크들을 찾는 역추적이 필요하다는 단점이 있다. FP-growth has the disadvantage of creating conditional FP-trees and header tables during frequent item set exploration, while H-mine re-queues the previous item's queue if the set of links to that item is incomplete. The disadvantage is that you need to trace back and find the missing links.

ARCS 알고리즘은 이러한 문제를 해결하기 위해 빈발항목집합 탐사 시 조건적 헤더 테이블만을 생성하며, 역추적을 피하기 위해 각 트랜잭션의 두 번째 아이템에 대한 링크를 헤더 테이블에 추가한다. 또한 탐사 중 반복적인 헤더 테이블의 생성으로 인한 메모리 부족 현상을 방지하기 위해 탐사가 종료된 항목을 헤더 테이블로부터 제거한다. 이는 역추적이 필요 없기 때문에 가능할 수 있다.To solve this problem, the ARCS algorithm generates only conditional header tables during frequent item set exploration, and adds a link to the header table for the second item of each transaction to avoid traceback. Also, in order to prevent the memory shortage caused by the repetitive generation of the header table during the exploration, the terminated item is removed from the header table. This may be possible because no backtracking is required.

표 3 은 ARCS 알고리즘이다.Table 3 shows the ARCS algorithm.

[표 3] ARCS 알고리즘[Table 3] ARCS algorithm

Algorithm2 (ARCS) CT-자료구조로부터 모든 빈발항목집합을 찾는다. Input : 헤더 테이블, 압축된 트랜잭션들, 최소 지지도 임계치

Figure 112006068654571-PAT00005
; Output : 모든 빈발항목집합; Method : Call ARCS(헤더 테이블, 압축된 트랜잭션들,
Figure 112006068654571-PAT00006
) Procedure ARCS(헤더 테이블, 압축된 트랜잭션들,
Figure 112006068654571-PAT00007
) { for( 헤더 테이블의 모든 항목 ) if( 항목의 지지도 <
Figure 112006068654571-PAT00008
) { for( 항목의 링크집합이 가르키는 모든 압축된 트랜잭션들) 각 압축된 트랜잭션들의 두 번째 아이템을 헤더 테이블에 연결; } else { 이름(헤더 테이블의 이름∪항목의 이름)과 지지도(항목의 지지도)를 갖는 빈발 항목 집합 생성 및 추가; 조건적 헤더 테이블 = TraverseLinkSet(빈발항목의 이름, 요소, 헤더 테이블, 압축된 트랜잭션들); 헤더 테이블로부터 요소 제거; if( 조건적 헤더 테이블 != null ) ARCS(조건적 헤더 테이블, 압축된 트랜잭션들,
Figure 112006068654571-PAT00009
); } } Procedure TraverseLinkSet(빈발항목의 이름, 요소, 헤더 테이블, 압축된 트랜잭션들) { 빈발항목을 이름으로 갖는 조건적 헤더 테이블 생성; for( 요소가 가르키는 모든 압축된 트랜잭션들 ) for( 압축된 트랜잭션들의 첫 번째 항목을 제외한 모든 항목 ) 조건적 헤더 테이블에 해당 항목이 있을 경우 빈도 수를 증가시키고, 없을 경우 추가; if( 항목이 압축된 트랜잭션들의 두 번째 항목일 경우 ){ 조건적 헤더 테이블에 링크 연결; 원본 헤더 테이블에 링크 연결; } return 조건적 헤더 테이블; } Algorithm2 (ARCS) Finds all frequent itemsets from a CT-data structure. Input : header table, compressed transactions, minimum support threshold
Figure 112006068654571-PAT00005
; Output : all frequent itemsets; Method : Call ARCS (header table, compressed transactions,
Figure 112006068654571-PAT00006
Procedure ARCS (Header Tables, Compressed Transactions,
Figure 112006068654571-PAT00007
) {for (all items in header table) if (support for item <
Figure 112006068654571-PAT00008
) {for (all compressed transactions pointed to by link set of items) linking the second item of each compressed transaction to the header table; } else {Create and add a frequent set of items with a name (name of the header table ∪ item) and support (item support); Conditional header table = TraverseLinkSet (name of frequent item, element, header table, compressed transactions); Removing elements from the header table; if (conditional header table! = null) ARCS (conditional header table, compressed transactions,
Figure 112006068654571-PAT00009
); }} Procedure TraverseLinkSet (name of frequent item, element, header table, compressed transactions) {create conditional header table with frequent item by name; for (all compressed transactions pointed to by the element) for (all items except the first item in the compressed transactions) Increases the frequency if there is an entry in the conditional header table, adds none; if (if item is the second item in compressed transactions) {Link to conditional header table; Linking to the original header table; } return conditional header table; }

빈발항목집합 탐사는 헤더 테이블의 첫 번째 항목인 'a'부터 시작된다. 루트 헤더 테이블의 이름이 null이므로 a:3 빈발항목집합을 생성한다. 그리고 표 3의 TraverseLinkSet 함수에서 항목 'a'가 가리키는 모든 압축된 트랜잭션들을 읽어 'a'의 조건적 헤더 테이블을 생성한다. 즉 <a, c, f, m, p:2>의 두 번째 항목인 'c'를 읽은 후 'a'의 조건적 헤더 테이블에 'c'가 있는지 확인하는데, 'c'가 없으므로 'c'롤 추가하고 항목 빈도 수를 1 증가시킨다. 이때 압축된 트랜잭션의 두 번째 아이템인 항목 'c'를 'a'의 조건적 헤더 테이블에 연결하고, 역추적을 방지하기 위해 루트 헤더 테이블에 연결한다. <a, b, c, f, m:1>도 같은 방법으로 읽은 후, 'a'의 조건적 헤더 테이블이 생성되면 루트 헤더 테이블에서 항목 'a'를 삭제한다.The frequent item set exploration starts with 'a', the first item in the header table. Since the name of the root header table is null, create a: 3 frequent itemsets. The TraverseLinkSet function in Table 3 reads all the compressed transactions indicated by item 'a' and creates a conditional header table of 'a'. That is, after reading 'c', which is the second item of <a, c, f, m, p: 2>, it checks whether 'c' is in the conditional header table of 'a'. Add a roll and increase the item frequency by 1. At this time, item 'c', which is the second item of the compressed transaction, is connected to the conditional header table of 'a' and to the root header table to prevent backtracking. After reading <a, b, c, f, m: 1> in the same way, delete the item 'a' from the root header table when the conditional header table of 'a' is created.

도 4는 본 발명에 따른 ARCS 알고리즘을 이용한 조건적 헤더 테이블 생성의 실시예이다. 상기 표 1의 트랜잭션 데이터베이스의 항목들 중 'a'의 조건적 헤더테이블(420)을 나타내며 점선은 추가된 링크를 나타낸다. 'a'의 조건적 헤더 테이블(420)의 첫 번째 항목인 'b'가 최소지지도를 만족하지 않으므로 두 번째 아이템인 'c'를 'a'의 조건적 헤더 테이블(420)에 연결하고 'a'의 조건적 헤더 테이블(420)에서 'b'를 삭제한다. 두 번째 항목인 'c'는 최소지지도를 만족하고 'a'의 조건적 헤더 테이블(420)의 이름이 'a'이므로 ac:3 빈발항목집합을 생성한다.4 is an embodiment of conditional header table generation using an ARCS algorithm according to the present invention. The conditional header table 420 of 'a' among the items of the transaction database of Table 1 above and the dotted line represents the added link. Since the first item 'b' in the conditional header table 420 of 'a' does not satisfy the minimum map, the second item 'c' is connected to the conditional header table 420 of 'a' and 'a' 'B' is deleted from the conditional header table 420 of '. Since the second item 'c' satisfies the minimum map and the name of the conditional header table 420 of 'a' is 'a', an ac: 3 frequent item set is generated.

도 5는 본 발명에 따른 ARCS 알고리즘을 이용한 조건적 헤더 테이블 생성의 다른 실시예이다. 상기 표 3의 TraverseLink 함수에서 항목 'c'가 가리키는 모든 압축된 트랜잭션들을 읽어 ‘ac'의 조건적 헤더 테이블(530)을 생성한다. 즉 <c, f, m, p:2>의 두 번째 항목인 'f'를 읽은 후 'ac'의 조건적 헤더 테이블(530)에 'f'가 있는지 확인하여 'f'가 헤더 테이블에 없으므로 'f'를 추가하고 항목 빈도 수를 1 증가시킨다. 이때 압축된 트랜잭션(540)의 두 번째 아이템인 항목 'f'를 'a'의 조건적 헤더 테이블(520)과 'ac'의 조건적 헤더 테이블(530)에 각각 연결한 다. <c, f, m:1>도 같은 방법으로 읽은 후, 'ac'의 헤더 테이블(530)이 생성되면 'a'의 조건적 헤더 테이블(520)에서 항목 'a'를 삭제한다.5 is another embodiment of conditional header table generation using the ARCS algorithm according to the present invention. In the TraverseLink function of Table 3, all the compressed transactions indicated by the item 'c' are read to generate the conditional header table 530 of 'ac'. That is, after reading 'f', which is the second item of <c, f, m, p: 2>, it checks whether the conditional header table 530 of 'ac' contains 'f', so 'f' is not in the header table. Add 'f' and increase the item frequency by 1. At this time, the second item of the compressed transaction 540, 'f', is connected to the conditional header table 520 of 'a' and the conditional header table 530 of 'ac', respectively. After reading <c, f, m: 1> in the same manner, when the header table 530 of 'ac' is generated, the item 'a' is deleted from the conditional header table 520 of 'a'.

이런 방법으로 'a'를 포함하는 빈발항목집합인 a:3, ac:3, acf:3, acfm:3, af:3, afm:3 및 am:3을 모두 찾은 후, 'b'를 포함하는 모든 빈발항목을 집합을 탐사한다. 루트 헤더 테이블에서 'b'의 트랜잭션 링크 집합이 완전하기 때문에 역추적을 수행할 필요가 없다.In this way, it finds all the frequent itemsets a: 3, ac: 3, acf: 3, acfm: 3, af: 3, afm: 3, and am: 3 that contain 'a' and then include 'b'. Exploring a set of all frequent items. Since the set of transaction links of 'b' in the root header table is complete, there is no need to backtrack.

도 6은 본 발명에 따른 ARCS 알고리즘에서 모든 빈발항목집합을 발견하기 위한 탐색 경로를 나타낸 도면이다. 상기와 같은 'a'를 포함하는 모든 빈발항목집합에 대한 탐사와 같이 'b', 'c', 'f', 'm' 및 'p'를 포함하는 빈발항목집합에 대한 탐사도 분할정복방법에 의해 찾아지며 깊이 우선 탐사(Depth-first Search)로 진행된다.6 is a diagram illustrating a search path for finding all frequent itemsets in the ARCS algorithm according to the present invention. Exploration and partitioning methods for exploration of frequent itemsets including 'b', 'c', 'f', 'm' and 'p' like exploration of all frequent itemssets including 'a' And then proceed to Depth-first Search.

다음은 본 발명에 의한 연관규칙 탐사 방법과 종래 기술을 비교한 일실시예이다.The following is an embodiment comparing the conventional rules exploration method and the related art according to the present invention.

표 4는 3개의 실험데이터로 이들에 대해 각각 FP-자료구조, H-자료구조 및 CT-자료구조 간의 저장공간 크기와 FP-growth, H-mine 및 ARCS 알고리즘간의 실행시간을 실험하였으며, 모든 실험데이터는 실제 데이터(Real Data)를 사용하였다.Table 4 shows three experimental data for the storage space between FP-data structure, H-data structure and CT-data structure, and the execution time between FP-growth, H-mine and ARCS algorithms. Data used real data.

[표 4] 실험데이터[Table 4] Experimental data

데이터data 항목 수Number of items 트랜잭션 당 평균 항목 수Average number of items per transaction 트랜잭션 수Number of transactions 레코드 수Number of records 데이터 크기Data size 상대적 특징 (데이터크기, 밀집성)Relative features (data size, density) 영화 데이터(D1)Movie data (D1) 326개326 39개39 936개936 36,875개36,875 426Kb426Kb 소(小), 대(大)Small and large 백화점 데이터(D2)Department store data (D2) 6619개6619 7개7 26580개26580 197,519개197,519 4830Kb4830 Kb 중(中), 소(小)Medium, small 백화점 데이터(D3)Department store data (D3) 12,506개12,506 41개41 11,279개11,279 468,621개468,621 13,800Kb13,800Kb 대(大), 대(大)Large, large

성능 비교를 위하여 FP-growth와 H-mine을 ARCS 알고리즘과 동일한 JAVA 환경에서 재구현하였고, 실험은 450MHz 펜티엄 주기억장치, 192MB 메모리, 40G 하드디스크로 구성된 환경에서 이루어졌다.For performance comparison, FP-growth and H-mine were re-implemented in the same JAVA environment as the ARCS algorithm, and the experiment was conducted in an environment consisting of 450MHz Pentium main memory, 192MB memory and 40G hard disk.

FP-자료구조와 CT-자료구조의 압축률은 다음 수학식 1과 같이 산출하였고 각 알고리즘을 통해 발견된 연관규칙 집합의 개수와 각 연관규칙의 지지도, 신뢰도, 흥미도는 모두 같다. 또한 링크 연결을 빠르게 수행하기 위해, FP-자료구조와 H-자료구조의 헤더 테이블에 각각 마지막 링크 위치를 기억하는 필드(Field)를 추가하였다.The compression ratio of the FP-data structure and the CT-data structure was calculated as shown in Equation 1 below. The number of association rule sets found through each algorithm and the support, reliability, and interest of each association rule are the same. Also, to speed up link linking, we added a field to remember the last link position in the header tables of the FP- and H-data structures, respectively.

[수학식 1][Equation 1]

FP-자료구조의 압축률Compression rate of FP-data structures

Figure 112006068654571-PAT00010
Figure 112006068654571-PAT00010

CT-자료구조의 압축률Compression rate of CT data structure

Figure 112006068654571-PAT00011
Figure 112006068654571-PAT00011

도 7은 본 발명에 따른 연관규칙 탐사 방법과 종래 기술을 비교한 일실시예를 나타낸 그래프로써, 표 4의 실험데이터 D1에 대한 FP-자료구조, H-자료구조 및 CT-자료구조와 FP-growth, H-mine 및 CT-알고리즘의 최소 지지도 임계치 변화에 따른 실행시간과 저장공간크기 결과를 보여준다.FIG. 7 is a graph illustrating an example in which an association rule exploration method according to the present invention is compared with a conventional technology. The FP-data structure, H-data structure, and CT-data structure and FP- for experimental data D1 of Table 4 The results show the execution time and storage size according to the change of minimum support threshold of growth, H-mine and CT-algorithm.

실행 시간의 경우, 도 7의 왼쪽 그래프에서 ARCS 알고리즘이 전 구간에 걸쳐 FP-growth와 H-mine에 비해 우수한 성능을 보이며, 지지도가 작아질수록 차이가 가중되고 있음을 확인할 수 있다. FP-growth의 경우 조건적 FP-트리의 생성으로 인하여 가장 많은 시간이 걸렸고, H-mine의 경우 역추적의 수행으로 인하여 ARCS 알고리즘보다 탐색 횟수가 증가하였고, 이 때문에 더 많은 시간을 소비하였다.In the case of execution time, in the left graph of FIG. 7, the ARCS algorithm shows superior performance compared to FP-growth and H-mine over the entire interval, and it can be seen that the difference is increased as the support becomes smaller. In the case of FP-growth, it took the most time due to the generation of conditional FP-trees, and in the case of H-mine, the number of searches increased more than the ARCS algorithm due to the backtrace.

저장 공간의 경우, 도 7의 오른쪽 그래프에서 CT-자료구조가 전 구간에 걸쳐 FP-자료구조와 H-자료구조에 비해 가장 적은 저장공간을 사용하고 있으며, 지지도가 낮아질 경우 차이가 가중되고 CT-자료구조의 경우 지지도가 낮아지더라도 증가율이 매우 적음을 확인할 수 있다.In the case of the storage space, the CT-data structure in the graph on the right side of FIG. 7 uses the least amount of storage space over the entire interval compared to the FP-data structure and the H-data structure. In the case of the data structure, the growth rate is very small even if the support is low.

표 5는 실험데이터 D1에 대한 H-mine 및 ARCS의 탐사회수를 나타낸다.Table 5 shows the number of probes of H-mine and ARCS for experimental data D1.

[표 5]TABLE 5

H-mine의 탐사횟수H-mine exploration frequency 49961614996161 21419552141955 11096691109669 624747624747 405641405641 288031288031 ARCS의 탐사회수Exploratory number of ARCS 43871644387164 18818831881883 984435984435 548142548142 354406354406 248851248851 지지도 임계치Support threshold 44 66 88 1010 1212 1414

실험 데이터 D1의 경우 크기가 작고, 트랜잭션의 개수가 적어서 차이의 폭은 크지 않았다.For experimental data D1, the difference was small because of the small size and the small number of transactions.

표 6은 실험데이터 D1에 대한 FP-자료구조, H-자료구조 및 CT-자료구조의 압축률이다.Table 6 shows the compression ratios of the FP data structure, H data structure, and CT data structure for experimental data D1.

[표 6]TABLE 6

H-자료구조의 압축률Compression rate of H-data structure 0%0% 0%0% 0%0% 0%0% 0%0% 0%0% CT-자료구조의 압축률Compression rate of CT data structure 0%0% 0%0% 0%0% 0%0% 0%0% 0%0% FP-트리의 압축률Compression rate of FP-tree 4.78%4.78% 5.59%5.59% 6.57%6.57% 7.83%7.83% 9.45%9.45% 10.97%10.97% 지지도 임계치Support threshold 44 66 88 1010 1212 1414

표 6에서 상대적으로 높은 평균 항목 수와 적은 트랜잭션 수로 인해 전 구간에서 CT-자료구조의 압축된 트랜잭션의 압축률이 0%임에도 불구하고, 도 7의 왼쪽 그래프에서 가장 적은 저장공간을 사용하였다. FP-자료구조의 경우 FP-트리 압축률이 4.78~10.97%로 압축된 트랜잭션의 압축률보다 좋지만 노드 자체의 크기로 인하여 더 많은 저장공간을 사용하였다. H-자료구조는 압축효과가 없으므로 압축률이 0%이다.In Table 6, although the compression ratio of the compressed transaction of the CT-data structure was 0% due to the relatively high average number of items and the small number of transactions, the smallest storage space was used in the left graph of FIG. In the case of FP-data structure, the FP-tree compression ratio is 4.78 ~ 10.97%, which is better than the compression ratio of the compressed transactions, but more storage space is used due to the size of the node itself. H-data structure has no compression effect, so the compression ratio is 0%.

도 8은 본 발명에 따른 연관규칙 탐사 방법과 종래 기술을 비교한 다른 일실 시예를 나타낸 그래프로써, 표 4의 실험데이터 D2에 대한 실행시간과 저장공간크기 결과이다.FIG. 8 is a graph illustrating another exemplary embodiment in which a related rule exploration method according to the present invention is compared with a conventional technology, and shows execution time and storage space size of the experimental data D2 of Table 4. FIG.

도 9는 본 발명에 따른 연관규칙 탐사 방법과 종래 기술을 비교한 또 다른 일실시예를 나타낸 그래프로써, 표 4의 실험데이터 D3에 대한 실행시간과 저장공간크기 결과이다.FIG. 9 is a graph illustrating another embodiment in which an association rule exploration method according to the present invention is compared with a conventional technology, and is a result of execution time and storage space size of experimental data D3 of Table 4. FIG.

도 8과 도 9의 왼쪽 그래프와 오른쪽 그래프는 각각 실험 데이터 D2와 D3에 대한 실행시간 및 저장공간크기 결과를 나타내고 있으며, 실험데이터 D1과 마찬가지로 실행 시간 및 저장공간 측면에서 ARCS 알고리즘과 CT-자료구조가 FP-growth와 H-mine 및 FP-자료구조와 H-자료구조에 비해 우수한 성능을 보이고 있음을 확인할 수 있다.The left and right graphs of FIGS. 8 and 9 show results of execution time and storage size for experimental data D2 and D3, respectively. ARCS algorithm and CT-data structure in terms of execution time and storage space are similar to experimental data D1. Shows better performance than FP-growth, H-mine, and FP- and H-data structures.

본 발명은 이상에서 살펴본 바와 같이 바람직한 실시예를 들어 도시하고 설명하였으나, 상기한 실시예에 한정되지 아니하며 본 발명의 정신을 벗어나지 않는 범위 내에서 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변경과 수정이 가능할 것이다.Although the present invention has been shown and described with reference to the preferred embodiments as described above, it is not limited to the above embodiments and those skilled in the art without departing from the spirit of the present invention. Various changes and modifications will be possible.

따라서, 본 발명의 연관규칙 탐사 방법은 CT-자료구조를 이용하여 저장공간을 적게 차지함으로써, 많은 양의 데이터를 처리할 수 있다.Therefore, the association rule exploration method of the present invention can process a large amount of data by using a small amount of storage space using a CT-data structure.

또한, ARCS 알고리즘을 이용하여 연관규칙을 탐사함으로써 실행시간을 단축시키는 현저하고도 유리한 효과가 있다.In addition, there is a significant and advantageous effect of reducing execution time by exploring association rules using the ARCS algorithm.

Claims (7)

원본 트랜잭션 데이터베이스 내의 모든 트랜잭션의 항목을 카운트하여 헤더 테이블을 생성하는 제 1단계;Generating a header table by counting items of all transactions in the original transaction database; 상기 원본 트랜잭션 데이터베이스 내의 모든 트랜잭션의 항목을 재카운트한 이후, 상기 제 1단계의 헤더 테이블의 항목과 일치하는 경우, 여과된 트랜잭션에 등록하는 제 2단계;A second step of registering the filtered transaction if it matches an item of the header table of the first step after recounting all transaction items in the original transaction database; 상기 여과된 트랜잭션을 카운트하여 압축된 트랜잭션을 생성하는 제 3단계; 및Counting the filtered transaction to generate a compressed transaction; And 상기 제 2단계에서 여과된 트랜잭션에 등록한 상기 항목을 헤더 테이블에 연결하는 제 4단계A fourth step of linking the item registered in the filtered transaction in the second step to a header table; 를 포함하는 연관규칙 탐사 방법Association rule exploration method comprising a 제 1항에 있어서,The method of claim 1, 상기 헤더 테이블에 속한 트랜잭션들의 항목 중에서 임의의 지지도를 만족하지 않는 트랜잭션 항목을 삭제하는 것을 특징으로 하는 연관규칙 탐사 방법.Association rule exploration method, characterized in that for deleting a transaction item that does not satisfy any support among the items of the transactions belonging to the header table. 제 2항에 있어서,The method of claim 2, 상기 임의의 지지도는 사용자에 의해 지정된 카운트 횟수를 나타내는 것인 연관규칙 탐사 방법.And wherein said any degree of support represents a number of counts specified by a user. 제 1항에 있어서,The method of claim 1, 상기 헤더 테이블은 상기 항목이름을 키 값으로 갖는 해쉬 테이블로 구현하는 것을 특징으로 하는 연관규칙 탐사 방법.And the header table is implemented as a hash table having the item name as a key value. 루트 헤더 테이블의 제 1항목을 포함하는 모든 압축된 트랜잭션을 카운트하여, 상기 제 1항목의 조건적 헤더 테이블을 생성하는 제 1단계;Counting all the compressed transactions including the first item of the root header table and generating a conditional header table of the first item; 생성된 상기 제 1항목의 조건적 헤더 테이블 내의 다음 항목 중 임의의 지지도를 만족하는 항목으로 조건적 헤더 테이블을 생성하는 제 2단계A second step of generating a conditional header table with an item satisfying any of the following items in the generated conditional header table of the first item 를 포함하는 연관규칙 탐사 방법.Association rule exploration method comprising a. 제 5 항에 있어서, 상기 제 1단계는,The method of claim 5, wherein the first step, 상기 제 1항목을 포함하는 모든 압축된 트랜잭션의 두 번째 이후 항목들을 카운트하여 제 1항목의 조건적 헤더 테이블을 생성하는 단계;Counting the second and subsequent items of every compressed transaction including the first item to generate a conditional header table of the first item; 상기 압축된 트랜잭션의 두 번째 항목을 상기 제 1항목의 조건적 헤더 테이 블에 연결하는 단계; 및Linking a second item of the compressed transaction to the conditional header table of the first item; And 상기 제 1항목의 조건적 헤더 테이블이 생성되면 상기 두 번째 항목을 상기 루트 헤더 테이블에서 삭제하는 단계Deleting the second item from the root header table when the conditional header table of the first item is generated 를 포함하는 연관규칙 탐사 방법.Association rule exploration method comprising a. 제 5 항에 있어서, 상기 제 2단계 수행 후,The method of claim 5, wherein after performing the second step, 상기 다음 항목의 조건적 헤더 테이블이 생성되면 임의의 지지도를 만족하는 다음 항목을 상기 제 1항목의 조건적 헤더 테이블에서 삭제하는 단계Deleting the next item satisfying any support from the conditional header table of the first item when the conditional header table of the next item is generated. 를 더 포함하는 연관규칙 탐사 방법.Association rule exploration method further comprising.
KR1020060092201A 2006-09-22 2006-09-22 Method for association rule mining KR20080026943A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060092201A KR20080026943A (en) 2006-09-22 2006-09-22 Method for association rule mining

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060092201A KR20080026943A (en) 2006-09-22 2006-09-22 Method for association rule mining

Publications (1)

Publication Number Publication Date
KR20080026943A true KR20080026943A (en) 2008-03-26

Family

ID=39414146

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060092201A KR20080026943A (en) 2006-09-22 2006-09-22 Method for association rule mining

Country Status (1)

Country Link
KR (1) KR20080026943A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101317540B1 (en) * 2011-11-30 2013-10-15 충북대학교 산학협력단 Method for mining maximal weighted frequent patterns
US11520804B1 (en) 2021-05-13 2022-12-06 International Business Machines Corporation Association rule mining
US11762867B2 (en) 2021-10-07 2023-09-19 International Business Machines Corporation Association rule mining using max pattern transactions

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101317540B1 (en) * 2011-11-30 2013-10-15 충북대학교 산학협력단 Method for mining maximal weighted frequent patterns
US11520804B1 (en) 2021-05-13 2022-12-06 International Business Machines Corporation Association rule mining
US11762867B2 (en) 2021-10-07 2023-09-19 International Business Machines Corporation Association rule mining using max pattern transactions

Similar Documents

Publication Publication Date Title
US7979473B2 (en) Association rule extraction method and system
Tiwari et al. Association rule mining: A graph based approach for mining frequent itemsets
JP2002278761A (en) Method and system for extracting correlation rule including negative item
Kumar et al. Utility-driven graph summarization
CN105260387B (en) A kind of Association Rule Analysis method towards magnanimity transaction database
Tseng et al. Generating frequent patterns with the frequent pattern list
Pramod et al. Survey on frequent item set mining algorithms
Leung et al. Mining ‘following’patterns from big sparse social networks
KR20100099378A (en) A effective method for frequent itemsets mining on very large transaction database environment
Davashi UP-tree & UP-Mine: A fast method based on upper bound for frequent pattern mining from uncertain data
KR20080026943A (en) Method for association rule mining
CN107609110B (en) Mining method and device for maximum multiple frequent patterns based on classification tree
Zhao et al. A new efficient data cleansing method
De Knijf Fat-cat: Frequent attributes tree based classification
Tseng et al. Advances in knowledge discovery and data mining
Chang et al. An efficient algorithm of frequent XML query pattern mining for ebXML applications in e-commerce
Ahola Mining sequential patterns
KR20080008573A (en) Method for extracting association rule from xml data
Liu et al. Post-processing of associative classification rules using closed sets
Sharma et al. A probabilistic approach to apriori algorithm
Rai et al. Partial weighted count tree for discovery of rare and frequent itemsets
Agapito et al. A pipeline for mining association rules from large datasets of retailers invoices
Sun et al. Mining actionable repetitive positive and negative sequential patterns
Tohidi et al. Using Unique-Prime-Factorization Theorem to Mine Frequent Patterns without Generating Tree
Stanisi et al. A new data structure for frequent itemset mining: Ts-tree

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid