KR101187958B1 - Apparatus and method for extracting association rule - Google Patents

Apparatus and method for extracting association rule Download PDF

Info

Publication number
KR101187958B1
KR101187958B1 KR1020110028864A KR20110028864A KR101187958B1 KR 101187958 B1 KR101187958 B1 KR 101187958B1 KR 1020110028864 A KR1020110028864 A KR 1020110028864A KR 20110028864 A KR20110028864 A KR 20110028864A KR 101187958 B1 KR101187958 B1 KR 101187958B1
Authority
KR
South Korea
Prior art keywords
transaction
frequent
conditional
transaction data
association rule
Prior art date
Application number
KR1020110028864A
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 KR1020110028864A priority Critical patent/KR101187958B1/en
Application granted granted Critical
Publication of KR101187958B1 publication Critical patent/KR101187958B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

PURPOSE: An association rules extracting device and a method thereof are provided to extract association rules without lack of a memory. CONSTITUTION: A partitioning unit(330) partitions a transaction population into N transaction segments. A frequent pattern tree generating unit(340) generates frequent pattern trees according to the N transaction segments. A conditional pattern base generating unit(350) generates conditional pattern bases according to the transaction segments. The conditional pattern base generating unit generates the conditional pattern bases about the transaction population. An association rules extracting unit(360) extracts association rules by using the conditional pattern bases. [Reference numerals] (310) Header table generating unit; (320) Arranging unit; (330) Partitioning unit; (340) Frequent pattern tree generating unit; (350) Conditional pattern base generating unit; (360) Association rules extracting unit; (AA) Association rules extracting device

Description

연관 규칙 추출 장치 및 방법{APPARATUS AND METHOD FOR EXTRACTING ASSOCIATION RULE}Association rule extraction device and method {APPARATUS AND METHOD FOR EXTRACTING ASSOCIATION RULE}

본 발명의 실시예들은 연관 규칙 추출 장치 및 방법에 관한 것으로서, 더욱 상세하게는 대용량 데이터 및 제한적인 메모리 용량을 가지는 환경에서 메모리의 부족 없이 연관 규칙을 추출할 수 있도록 하는 연관 규칙 추출 장치 및 방법에 관한 것이다. Embodiments of the present invention relate to an association rule extraction apparatus and method, and more particularly, to an association rule extraction apparatus and method for extracting association rules without running out of memory in an environment having a large amount of data and limited memory capacity. It is about.

연관 규칙(Association Rule)이란 고객의 물품 구매 목록과 같은 트랜잭션 데이터(Transaction Data)에서 추출한 "X⇒Y(s,c)" 형태의 조건-결과(Condition-Conclusion) 식으로 표현되는 유용한 패턴을 말한다. 여기서 X와 Y는 트랜잭션 데이터에 존재하는 항목(Item)이고, "X⇒Y"는 조건에 해당하는 항목 X가 발생할 때 결과에 해당하는 항목 Y가 같이 발생함을 의미한다. 그리고, S는 전체 트랜잭션 데이터에서 항목 X와 항목 Y가 동시에 발생하는 트랜잭션 데이터의 비율인 "지지도(Support)"를 의미하고, C는 항목 X가 포함된 트랜잭션 데이터에서 항목 Y를 함께 포함하고 있는 트랜잭션 데이터의 비율인 "신뢰도(Confidence)"를 의미한다. An association rule is a useful pattern expressed as a conditional-conclusion expression of the form "X⇒Y (s, c)" extracted from transaction data such as a customer's purchase list. . Here, X and Y are items present in the transaction data, and "X⇒Y" means that the item Y corresponding to the result occurs together when the item X corresponding to the condition occurs. And, S means "Support" which is the ratio of transaction data in which item X and item Y occur simultaneously in the total transaction data, and C is a transaction including item Y together in the transaction data including item X. "Confidence" is the ratio of data.

장바구니 분석으로 널리 알려진 연관 규칙 추출 방법은 마트 고객들의 물품 구매 목록, TV 시청자들의 영화 시청 기록 등과 같은 대량의 데이터 내에 존재하는 항목들 사이에 존재하는 유용한 패턴을 찾아내어 상품을 추천하거나 사용자 소비 성향을 분석하는데 활용될 수 있다. 일례로, 미국의 한 마트에서 고객들의 구매 기록 분석을 통하여 "맥주를 구매하는 소비자는 기저귀를 함께 구매한다" 라는 규칙을 추출하고, 이에 따라 맥주와 기저귀의 판매 위치를 가깝게 한 결과 매출이 오르는 효과를 가져온 유명한 사례가 있다. Association rule extraction method, popularly known as shopping cart analysis, finds useful patterns among items that exist within a large amount of data, such as merchandise purchase lists of mart customers and movie watching records of TV viewers. Can be used for analysis. For example, an analysis of customers' purchase records at a US mart extracts the rule "Consumers who buy beer buy diapers together", which leads to a close sales position of beer and diapers. There is a famous example that brought.

이와 같은 연관 규칙 추출 방법의 대표적인 종래기술로, Apriori 알고리즘과 빈발 패턴 트리(FP(Frequent Pattern)-Tree)를 이용한 FP-growth 알고리즘이 있다. Representative prior arts of such association rule extraction methods include the Apriori algorithm and the FP-growth algorithm using a frequent pattern tree (FP).

Apriori 알고리즘은 k개의 빈발 항목 집합을 이용하여 k+1개의 빈발 항목 집합을 발견함으로써 연관 규칙을 추출한다. 즉, Apriori 알고리즘은 k개의 항목 집합이 빈발하다면 그 항목 집합에 포함된 항목을 모두 포함하는 (k+1)개의 항목 집합도 빈발할 가능성이 있지만, k개의 항목집합이 빈발하지 않다면 그 항목 집합에 포함된 항목을 모두 포함하는 k+1개의 항목 집합 역시 빈발하지 않다는 반복적 접근방법을 사용하여 연관 규칙을 추출한다. The Apriori algorithm extracts association rules by finding k + 1 frequent item sets using k frequent item sets. That is, if the k set of items is frequent, the Apriori algorithm may also have (k + 1) sets of items that contain all of the items contained in that set of items, but if the set of k items is not frequent, The association rule is extracted using an iterative approach that the set of k + 1 items that contain all of the included items is also not frequent.

이와 같은 Apriori 알고리즘은 빈발할 가능성이 있는 k+1개의 항목 집합의 후보 항목 집합을 생성하여야 하는데, 이를 위해 반복적으로 데이터베이스에 접근을 해야 할 필요가 있어 많은 저장 공간을 요구하고 처리시간이 길다는 단점이 있다. Such Apriori algorithm has to generate candidate item set of k + 1 item sets that are likely to occur frequently. For this purpose, it is necessary to access database repeatedly, which requires a lot of storage space and long processing time. There is this.

FP-growth 알고리즘은 적어도 하나의 항목을 포함하는 복수의 트랜잭션 데이터 내에서의 항목의 출현 횟수(빈발 정도)를 항목별로 정렬한 후에 빈발 패턴 트리를 생성하고, 생성된 빈발 패턴 트리를 이용하여 연관 규칙을 추출한다. 이러한 FP-growth 알고리즘은 데이터베이스를 반복적으로 접근할 필요가 없고, 빈발 패턴 추출을 위한 후보 항목 집합을 생성하지 않으므로, 연관 규칙 추출 속도가 빠르다는 장점이 있다. The FP-growth algorithm generates a frequent pattern tree after sorting the number of occurrences (the frequency of occurrences) of items in a plurality of transaction data including at least one item by item, and generates an association rule using the generated frequent pattern tree. Extract Since the FP-growth algorithm does not need to access the database repeatedly and does not generate candidate item sets for frequent pattern extraction, the association rule extraction speed is high.

도 1 내지 도 2를 참조하여 FP-growth 알고리즘에 따른 연관 규칙 추출 방법(즉, 빈발 패턴 트리를 이용한 연관 규칙 추출 방법)에 대해 보다 상세하게 설명하면 아래와 같다. 1 to 2, the association rule extraction method (that is, the association rule extraction method using the frequent pattern tree) according to the FP-growth algorithm will be described in detail below.

먼저, 트랜잭션 모집단(Population)에 속하는 복수의 트랜잭션 데이터에 포함되는 모든 항목에 대하여, 원하는(기 설정된) 최소 지지도 이상 트랜잭션 데이터에서 출현한 항목(즉, 빈발 항목)에 대한 빈발 정도를 산출한다. First, for all items included in a plurality of transaction data belonging to a transaction population, a frequency of frequency for items (that is, frequent items) appearing in the transaction data above a desired (preset) minimum support degree is calculated.

도 1의 (a)에 도시된 표는 적어도 하나의 항목을 포함하는 복수의 트랜잭션 데이터(트랜잭션 모집단)의 일례이다. 여기서, 'TID'는 각각의 트랜잭션 데이터를, 'List of Item_IDs'는 각각의 트랜잭션 데이터에 포함된 항목을 의미한다. 이 경우, 만약 최소 지지도가 전체 트랜잭션 데이터의 20%라고 가정하면, 총 9개의 트랜잭션 중 2개 이상의 트랜잭션에 출현한 항목이 빈발 항목으로 추출된다. The table shown in FIG. 1A is an example of a plurality of transaction data (transaction population) including at least one item. Here, 'TID' means each transaction data, and 'List of Item_IDs' means an item included in each transaction data. In this case, if the minimum support is 20% of the total transaction data, items appearing in two or more of the total nine transactions are extracted as frequent items.

다음으로, 빈발 항목을 출현 횟수(빈발 정도)에 따라 정렬하여 헤더 테이블(Header Table)을 생성한다. 헤더 테이블은 최소 지지도 이상 출현한 빈발 항목을 출현 횟수에 따라 정렬한 표를 의미하는 것으로서, 'Item_ID'는 빈발 항목을, 'Support count'는 각 항목의 출현 횟수를 의미한다. 도 1의 (b)에서는 상기의 일례에서의 헤더 테이블을 도시하고 있다. Next, a header table is generated by sorting the frequent items according to the number of occurrences (frequency). The header table refers to a table in which frequent items appearing more than the minimum support are sorted according to the number of appearances. 'Item_ID' means frequent items and 'Support count' means number of occurrences of each item. FIG. 1B shows a header table in the above example.

헤더 테이블이 완성되면, 복수의 트랜잭션 데이터에서 헤더 테이블에 포함되지 않은 항목(즉, 비 빈발 항목)을 제거하고, 남은 빈발 항목을 트랜잭션 데이터 별로 헤더 테이블의 순서에 맞게 정렬하는 트랜잭션 데이터 정렬/정제 과정을 수행한다. 도 1의 (c)에서는 상기의 일례에서의 정렬/정제 과정이 수행된 결과를 도시하고 있다. When the header table is completed, the transaction collation / purification process removes items (that is, non-frequent items) not included in the header table from the plurality of transaction data and sorts the remaining frequent items in the order of the header table by transaction data. Do this. Figure 1 (c) shows the results of the alignment / purification process in the above example.

상기의 과정을 통해 트랜잭션 데이터 별로 빈발 항목만이 남게 되면, 각각의 트랜잭션 데이터 내의 항목들을 순서대로 노드로 삽입하여 빈발 패턴 트리를 생성한다. 생성되는 빈발 패턴 트리의 루트(Root) 노드는 null 노드이고, 각각의 항목은 루트 노드로부터 시작하여 아래와 같은 과정을 통해 트리에 삽입된다. If only frequent items remain for each transaction data through the above process, items in each transaction data are inserted into nodes in order to generate a frequent pattern tree. The root node of the generated frequent pattern tree is a null node, and each item is inserted into the tree starting from the root node through the following process.

제1 단계: 루트 노드를 현재 노드로 선택한다.Step 1: Select the root node as the current node

제2 단계: 현재 노드의 자식 노드 중 트랜잭션 데이터 내 포함된 정렬된 항목 중 처음의 항목(즉, 출현 횟수가 가장 많은 항목)을 노드 값으로 하는 자식 노드가 존재하는지를 판단한다. Step 2: It is determined whether there is a child node whose node value is the first item (that is, the item with the most occurrence number) among the sorted items included in the transaction data among the child nodes of the current node.

제3-1 단계: 만약, 상기와 같은 자식 노드가 존재하지 않으면, 상기 처음의 항목을 노드 값으로 하는 노드를 현재 노드의 자식 노드로 추가하고, 추가된 자식 노드의 출현 횟수를 1로 설정한 후 추가된 자식 노드를 현재 노드로 선택한다. Step 3-1: If there is no child node as described above, adding the node having the first item as a node value as a child node of the current node, and setting the number of occurrences of the added child node to 1 After that, select the added child node as the current node.

제3-2 단계: 만약, 상기와 같은 자식 노드가 존재하면, 해당 자식 노드의 출현 횟수를 1만큼 증가시키고, 해당 자식 노드를 현재 노드로 선택한다. Step 3-2: If the above child node exists, the number of occurrences of the child node is increased by one, and the child node is selected as the current node.

제4 단계: 상기의 처음의 항목을 트랜잭션 데이터 내에 포함된 항목 목록에서 제거한다. Step 4: Remove the first item from the item list included in the transaction data.

이 후, 제2 단계 내지 제4 단계가 복수의 트랜잭션 데이터에 포함된 항목들이 모두 제거될 때까지 반복적으로 수행된다. Thereafter, the second to fourth steps are repeatedly performed until all items included in the plurality of transaction data are removed.

도 2의 (a)는 상기의 일례에 있어서, 앞서 설명한 과정을 거쳐 생성된 빈발 패턴 트리의 일례를 도시한 도면이다. FIG. 2A illustrates an example of a frequent pattern tree generated through the above-described process in the above example.

계속하여, 생성된 빈발 패턴 트리를 이용하여 연관 규칙을 추출한다. Subsequently, the association rule is extracted using the generated frequent pattern tree.

이를 위해서, 먼저 빈발 패턴 트리로부터 헤더 테이블내의 항목에 대한 조건부 패턴 베이스를 추출한다. 소정 항목에 대한 조건부 패턴 베이스는 빈발 패턴 트리 내에서 어떤(조건) 항목의 부모 노드에서 루트 노드의 자식 노드까지의 항목 집합을 의미한다. 이러한 항목 집합은 빈발 패턴 트리에서 하나 이상 추출될 수 있다. 그리고, 조건부 패턴 베이스는 조건 항목과 패턴 베이스가 함께 출현한 횟수를 포함하여 구성되며, 조건부 패턴 베이스의 출현 횟수는 빈발 패턴 트리에서 조건 노드의 빈도수로 설정된다. To do this, first extract a conditional pattern base for an item in the header table from the frequent pattern tree. A conditional pattern base for a given item means a set of items from a parent node of a (condition) item to a child node of the root node in the frequent pattern tree. One or more such sets of items may be extracted from the frequent pattern tree. The conditional pattern base includes a number of times the condition item and the pattern base appear together, and the number of occurrences of the conditional pattern base is set as the frequency of the condition node in the frequent pattern tree.

예를 들면 도 2의 (a)에 도시된 빈발 패턴 트리에서, I5의 조건부 패턴 베이스는 (I2, I1)과 (I2, I1, I3)의 2개가 있으며 빈발 패턴 트리에서의 I5의 빈도가 각각 1이므로, 이를 포함하는 두 개의 경로의 빈도수 역시 1이 된다. 도 2의 (b)에서는 상기의 일례에서 추출된 조건부 패턴 베이스를 도시하고 있다. For example, in the frequent pattern tree shown in (a) of FIG. 2, the conditional pattern base of I5 has two (I2, I1) and (I2, I1, I3), and the frequency of I5 in the frequent pattern tree is respectively Since it is 1, the frequency of the two paths including it is also 1. FIG. 2B shows the conditional pattern base extracted in the above example.

도 2의 (b)에 도시된 조건부 패턴 베이스를 살펴보면, 조건 항목이 다른 항목들과 같이 출현하는 횟수가 어느 정도인지를 쉽게 파악할 수 있다. 예를 들어 I5의 조건부 패턴 베이스를 살펴보면, I5는 각각 (I2, I1, I3)와는 1번 (I2, I1)과는 2번, (I2)와는 2번, (I1)과는 2번 함께 출현하였음을 알 수 있다. 여기서 출현 횟수는 트랜잭션 데이터 내에서의 출현 횟수(빈도수)와 동일하므로, 앞서 가정한 20%(2회) 이상 출현하고 I5를 포함하는 빈발 항목 집합은 (I2, I5), (I1, I5), (I2, I1, I5)로 결정되며 이로부터 조건 또는 결론부에 I5를 포함하는 연관 규칙을 생성할 수 있다.Looking at the conditional pattern base shown in (b) of FIG. 2, it is easy to determine how many times the condition item appears like other items. For example, looking at the conditional pattern base of I5, I5 appears with (I2, I1, I3), 1 times (I2, I1), 2 with (I2), and 2 with (I1), respectively. It can be seen that. Here, the number of occurrences is the same as the number of occurrences (frequency) in the transaction data, so the frequent item set that appears more than 20% (twice) and includes I5 as (I2, I5), (I1, I5), It is determined by (I2, I1, I5), from which an association rule can be generated that includes I5 at the condition or conclusion.

그러나, 상기와 같은 종래의 FP-growth 알고리즘에 따른 연관 규칙 추출 방법은 트랜잭션 데이터의 양이 방대하여 이를 표현하기 위한 빈발 패턴 트리의 크기가 큰 경우, 빈발 패턴 트리를 저장하고 이에 접근하기 위해 충분히 큰 용량의 메모리를 사용하여야 한다는 단점이 있었다. However, the association rule extraction method according to the conventional FP-growth algorithm is large enough to store and access the frequent pattern tree when the amount of transaction data is huge and the size of the frequent pattern tree for expressing it is large. The disadvantage of using memory is that.

상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 대용량 데이터 및 제한적인 메모리 용량을 가지는 환경에서 메모리의 부족 없이 연관 규칙을 추출할 수 있도록 하는 연관 규칙 추출 장치 및 방법을 제안하고자 한다. In order to solve the problems of the prior art as described above, the present invention proposes an association rule extraction apparatus and method for extracting association rules without running out of memory in an environment having a large amount of data and limited memory capacity.

본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.Other objects of the present invention may be derived by those skilled in the art through the following examples.

상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 연관 규칙의 추출에 이용되는 메모리의 용량에 기초하여 복수의 트랜잭션 데이터(Transaction Data)로 구성된 트랜잭션 모집단(Population)을 하나 이상의 트랜잭션 데이터를 각각 포함하는 N(2 이상의 정수임)개의 트랜잭션 세그먼트로 분할하는 분할부; 상기 N개의 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성하는 빈발 패턴 트리 생성부; 상기 트랜잭션 세그먼트 별로 생성된 빈발 패턴 트리를 이용하여 상기 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성하고, 상기 트랜잭션 세그먼트 별로 생성된 조건부 패턴 베이스를 통합하여 상기 트랜잭션 모집단에 대한 조건부 패턴 베이스를 생성하는 조건부 패턴 베이스 생성부; 및 상기 트랜잭션 모집단에 대한 조건부 패턴 베이스를 이용하여 연관 규칙을 추출하는 연관 규칙 추출부를 포함하는 연관 규칙 추출 장치가 제공된다. According to a preferred embodiment of the present invention to achieve the above object, based on the capacity of the memory used for the extraction of the association rule (Population) consisting of a plurality of transaction data (Transaction Data) of one or more transaction data A divider for dividing into N (the integers of 2 or more) transaction segments each including; A frequent pattern tree generation unit generating a frequent pattern tree for each of the N transaction segments; Create a conditional pattern base for each transaction segment by using the frequent pattern tree generated for each transaction segment, and generate a conditional pattern base for the transaction population by integrating the conditional pattern base generated for each transaction segment. part; And an association rule extracting unit extracting an association rule using a conditional pattern base for the transaction population.

상기 분할부는 상기 복수의 트랜잭션 데이터의 개수 및 상기 메모리의 용량에 기초하여 상기 트랜잭션 세그먼트의 개수(N)를 결정할 수 있다. The division unit may determine the number N of the transaction segments based on the number of the plurality of transaction data and the capacity of the memory.

적어도 하나의 항목(Item)을 각각 포함하는 상기 복수의 트랜잭션 데이터를 분석하여 기 설정된 최소 지지도(Support) 이상 상기 트랜잭션 데이터 내에서 출현하는 2 이상의 빈발 항목을 추출하고, 상기 2 이상의 빈발 항목을 해당 빈발 항목의 출현 횟수와 매칭시킨 후 상기 출현 횟수에 따라 정렬한 헤더 테이블을 생성하는 헤더 테이블 생성부를 더 포함하되, 상기 조건부 패턴 베이스 생성부는 상기 헤더 테이블을 더 이용하여 상기 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성할 수 있다. Analyzing the plurality of transaction data each including at least one item, extracting two or more frequent items appearing in the transaction data more than a predetermined minimum support, and extracting the two or more frequent items And a header table generator for generating a header table arranged according to the number of occurrences after matching the occurrence number of items, wherein the conditional pattern base generator further generates the conditional pattern base for each transaction segment by using the header table. can do.

상기 빈발 패턴 트리 생성부는 상기 2 이상의 빈발 항목이 아닌 항목(비 빈발 항목)을 상기 복수의 트랜잭션 데이터에서 제거하고, 상기 비 빈발 항목이 제거된 복수의 트랜잭션 데이터를 이용하여 상기 N개의 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성할 수 있다. The frequent pattern tree generation unit removes an item (non-frequent item) that is not two or more frequent items from the plurality of transaction data, and frequently occurs for each of the N transaction segments by using a plurality of transaction data from which the non-frequent item is removed. You can create a pattern tree.

또한, 본 발명의 다른 실시예에 따르면, 연관 규칙의 추출에 이용되는 메모리의 용량에 기초하여 복수의 트랜잭션 데이터로 구성된 트랜잭션 모집단을 하나 이상의 트랜잭션 데이터를 각각 포함하는 N(2 이상의 정수임)개의 트랜잭션 세그먼트로 분할하는 단계; 상기 N개의 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성하는 단계; 상기 트랜잭션 세그먼트 별로 생성된 빈발 패턴 트리를 이용하여 상기 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성하는 단계; 상기 트랜잭션 세그먼트 별로 생성된 조건부 패턴 베이스를 통합하여 상기 트랜잭션 모집단에 대한 조건부 패턴 베이스를 생성하는 단계; 및 상기 트랜잭션 모집단에 대한 조건부 패턴 베이스를 이용하여 연관 규칙을 추출하는 단계를 포함하는 연관 규칙 추출 방법이 제공된다. In addition, according to another embodiment of the present invention, the transaction population consisting of a plurality of transaction data based on the capacity of the memory used for the extraction of association rules, N (integer of 2 or more) each containing one or more transaction data Dividing into; Generating a frequent pattern tree for each of the N transaction segments; Generating a conditional pattern base for each transaction segment using the frequent pattern tree generated for each transaction segment; Generating a conditional pattern base for the transaction population by integrating the conditional pattern base generated for each transaction segment; And extracting an association rule using a conditional pattern base for the transaction population.

본 발명에 따른 연관 규칙 추출 장치 및 방법은 대용량 데이터 및 제한적인 메모리 용량을 가지는 환경에서 메모리의 부족 없이 연관 규칙을 추출할 수 있는 장점이 있다. An apparatus and method for extracting association rules according to the present invention has an advantage of extracting association rules without running out of memory in an environment having a large amount of data and a limited memory capacity.

도 1 및 도 2는 FP-growth 알고리즘에 따른 종래의 연관 규칙 추출 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 연관 규칙 추출 장치의 개략적인 구성을 도시한 블록도이다.
도 4 내지 도 7은 본 발명의 일 실시예에 따른 연관 규칙 추출 장치를 통해 연관 규칙을 추출하는 개념을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 연관 규칙 추출 방법의 전체적인 흐름을 도시한 순서도이다..
1 and 2 are diagrams for explaining a conventional association rule extraction method according to the FP-growth algorithm.
3 is a block diagram showing a schematic configuration of an association rule extraction apparatus according to an embodiment of the present invention.
4 to 7 are views for explaining a concept of extracting an association rule through the association rule extraction apparatus according to an embodiment of the present invention.
8 is a flowchart illustrating the overall flow of the association rule extraction method according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명의 일 실시예에 따른 연관 규칙 추출 장치의 개략적인 구성을 도시한 블록도이다. 3 is a block diagram showing a schematic configuration of an association rule extraction apparatus according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 연관 규칙 추출 장치(300)는 헤더 테이블 생성부(310), 정렬/정제부(320), 분할부(330), 빈발 패턴 트리 생성부(340), 조건부 패턴 베이스 생성부(350) 및 연관 규칙 추출부(360)를 포함할 수 있다. 이하, 각 구성 요소 별로 그 기능을 상술하기로 한다. Referring to FIG. 3, the association rule extracting apparatus 300 according to an embodiment of the present invention may include a header table generator 310, an alignment / purifier 320, a divider 330, and a frequent pattern tree generator ( 340, a conditional pattern base generator 350, and an association rule extractor 360. Hereinafter, the function of each component will be described in detail.

헤더 테이블 생성부(310)는 적어도 하나의 항목(Item)을 각각 포함하고, 트랜잭션 모집단(Population)에 속하는 복수의 트랜잭션 데이터를 분석하여 기 설정된 최소 지지도(Support) 이상 트랜잭션 데이터 내에서 출현하는 2 이상의 빈발 항목을 추출하고, 추출된 2 이상의 빈발 항목을 해당 빈발 항목의 출현 횟수와 매칭시킨 후 출현 횟수에 따라 정렬한 헤더 테이블을 생성한다. 그리고, 정렬/정제부(320)는 복수의 트랜잭션 데이터에서 헤더 테이블에 포함되지 않은 비 빈발 항목을 제거하고, 남은 빈발 항목을 트랜잭션 데이터 별로 헤더 테이블의 순서에 맞게 정렬하는 트랜잭션 데이터 정렬/정제 과정을 수행한다. The header table generating unit 310 includes at least one item each, and analyzes a plurality of transaction data belonging to a transaction population to analyze two or more items appearing in transaction data more than a predetermined minimum support. The frequent items are extracted, the extracted two or more frequent items are matched with the number of occurrences of the corresponding frequent items, and a header table is generated according to the number of occurrences. The sorting / purging unit 320 removes the non-frequent items not included in the header table from the plurality of transaction data and performs a transaction data sorting / purifying process of sorting the remaining frequent items in the order of the header table for each transaction data. To perform.

헤더 테이블 생성부(310) 및 정렬/정제부(320)의 동작은 앞서 설명한 종래의 FP-growth 알고리즘에 따른 연관 규칙 추출 방법에서의 헤더 테이블의 생성 및 정렬/정제 동작과 동일하므로, 이에 대한 상세한 설명은 생략하기로 한다. The operations of the header table generator 310 and the sorter / purifier 320 are the same as the operation of generating and sorting / purging the header table in the association rule extraction method according to the conventional FP-growth algorithm described above. The description will be omitted.

분할부(330)는 연관 규칙의 추출에 이용되는 메모리의 용량에 기초하여 복수의 트랜잭션 데이터로 구성된 트랜잭션 모집단을 하나 이상의 트랜잭션 데이터를 각각 포함하는 N(2 이상의 정수임)개의 트랜잭션 세그먼트로 분할한다. The divider 330 divides a transaction population consisting of a plurality of transaction data into N transaction segments each including one or more transaction data, based on a capacity of a memory used for extracting an association rule.

즉, 분할부(330)에서는 메모리에서 한 번에 처리할 수 있는 용량만큼만 구분하여 트랜잭션 모집단을 분할(즉, 복수의 트랜잭션 데이터를 그룹핑)하여 2 이상의 트랜잭션 세그먼트를 생성한다. 이렇게 나누어진 트랜잭션 세그먼트에는 트랜잭션 모집단과는 다르게, 빈발하는 것으로 결정된 헤더 테이블내의 항목이 모두 포함되지 않을 수 있다. 도 4에서는 분할부(330)가 트랜잭션 모집단을 2개의 트랜잭션 세그먼트로 분할하는 일례를 도시하고 있다. That is, the division unit 330 divides the transaction population by dividing only the capacity that can be processed at one time in the memory (that is, grouping a plurality of transaction data) to generate two or more transaction segments. Unlike the transaction population, the divided transaction segment may not include all the items in the header table determined to be frequent. 4 illustrates an example in which the division unit 330 divides a transaction population into two transaction segments.

본 발명의 일 실시예에 따르면, 분할부(330)는 트랜잭션 모집단에 포함된 복수의 트랜잭션 데이터의 개수 및 메모리의 용량에 기초하여 분할하고자 하는 트랜잭션 세그먼트의 개수(N)를 결정할 수 있다. According to an embodiment of the present invention, the divider 330 may determine the number N of transaction segments to be divided based on the number of transaction data and the memory capacity included in the transaction population.

즉, 분할부(330)는 트랜잭션 데이터의 전체 개수와 메모리의 용량을 적절히 고려하여 동적으로 트랜잭션 세그먼트의 개수를 결정할 수 있다. 일례로서, 분할되는 트랜잭션 세그먼트의 개수(N)은 트랜잭션 모집단에 포함된 트랜잭션 데이터의 개수와는 비례하고 메모리의 용량과는 반비례할 수 있다. That is, the divider 330 may dynamically determine the number of transaction segments in consideration of the total number of transaction data and the memory capacity. As an example, the number N of divided transaction segments may be proportional to the number of transaction data included in the transaction population and inversely proportional to the capacity of the memory.

한편, 만약 현재의 메모리 용량이 현재의 트랜잭션 모집단에 포함된 모든 트랜잭션 데이터를 처리할 수 있을 정도로 충분한 경우, 분할부(330)는 트랜잭션 세그먼트의 생성(즉, 트랜잭션 모집단의 분할)을 수행하지 않을 수 있다. On the other hand, if the current memory capacity is sufficient to process all the transaction data included in the current transaction population, the partition unit 330 may not perform the creation of the transaction segment (that is, division of the transaction population). have.

빈발 패턴 트리 생성부(340)는 분할(생성)된 N개의 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성한다. The frequent pattern tree generation unit 340 generates a frequent pattern tree for each of the N transaction segments divided (created).

일례로서, 빈발 패턴 트리 생성부(340)는 각각의 트랜잭션 데이터 내의 항목들을 순서대로 노드로 삽입하여 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성할 수 있다. 이 경우, 빈발 패턴 트리 생성부(340)는 null 노드를 루트 노드로 하고, 아래에서 설명하는 제1 단계 내지 제4 단계를 트랜잭션 세그먼트 별로 수행하여 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성할 수 있다. As an example, the frequent pattern tree generator 340 may insert items in each transaction data into nodes in order to generate a frequent pattern tree for each transaction segment. In this case, the frequent pattern tree generation unit 340 may generate a frequent pattern tree for each transaction segment by performing a null node as a root node and performing the first to fourth steps described below for each transaction segment.

제1 단계: 루트 노드를 현재 노드로 선택한다.Step 1: Select the root node as the current node

제2 단계: 현재 노드의 자식 노드 중 트랜잭션 데이터 내 포함된 정렬된 항목 중 처음의 항목(즉, 출현 횟수가 가장 많은 항목)을 노드 값으로 하는 자식 노드가 존재하는지를 판단한다. Step 2: It is determined whether there is a child node whose node value is the first item (that is, the item with the most occurrence number) among the sorted items included in the transaction data among the child nodes of the current node.

제3-1 단계: 만약, 상기와 같은 자식 노드가 존재하지 않으면, 상기 처음의 항목을 노드 값으로 하는 노드를 현재 노드의 자식 노드로 추가하고, 추가된 자식 노드의 출현 횟수를 1로 설정한 후 추가된 자식 노드를 현재 노드로 선택한다. Step 3-1: If there is no child node as described above, adding the node having the first item as a node value as a child node of the current node, and setting the number of occurrences of the added child node to 1 After that, select the added child node as the current node.

제3-2 단계: 만약, 상기와 같은 자식 노드가 존재하면, 해당 자식 노드의 출현 횟수를 1만큼 증가시키고, 해당 자식 노드를 현재 노드로 선택한다. Step 3-2: If the above child node exists, the number of occurrences of the child node is increased by one, and the child node is selected as the current node.

제4 단계: 상기의 처음의 항목을 트랜잭션 데이터 내에 포함된 항목 목록에서 제거한다. Step 4: Remove the first item from the item list included in the transaction data.

이 후, 제2 단계 내지 제4 단계가 각각의 트랜잭션 세그먼트 내에 존재하는 모든 트랜잭션 데이터에 포함된 항목들이 모두 제거될 때까지 반복적으로 수행된다. Thereafter, the second to fourth steps are repeatedly performed until all items included in all the transaction data present in each transaction segment are removed.

이와 같이 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성하는 경우, 특정 트랜잭션 세그먼트에 대한 빈발 패턴 트리의 생성 절차는 다른 트랜잭션 세그먼트 내지 이에 대한 빈발 패턴 트리의 생성 절차에 영향을 미치지 않으므로, 상기의 다른 트랜잭션 세그먼트 내지 이에 대한 빈발 패턴 트리는 메모리에 저장될 필요가 없게 된다. 따라서, 본 발명의 일 실시예에 따른 연관 규칙 추출 장치(300)가 보다 작은 용량의 메모리를 사용하여서도 트랜잭션 모집단에 포함된 모든 트랜잭션 데이터를 이용하여 연관 규칙을 추출할 수 있게 된다. As described above, when the frequent pattern tree is generated for each transaction segment, the generation of the frequent pattern tree for a specific transaction segment does not affect other transaction segments or the procedure for generating the frequent pattern tree. The frequent pattern tree does not need to be stored in memory. Accordingly, the association rule extracting apparatus 300 according to an embodiment of the present invention may extract the association rule using all the transaction data included in the transaction population even using a smaller memory.

본 발명의 일 실시예에 따르면, 빈발 패턴 트리 생성부(340)는 N개의 트랜잭션 세그먼트에 대해 소정의 시간 격차를 두고 순차적으로 빈발 패턴 트리를 생성할 수 있다. According to an embodiment of the present invention, the frequent pattern tree generator 340 may sequentially generate the frequent pattern tree with a predetermined time gap for the N transaction segments.

도 5에서는 상기 도 4의 일례에서, 빈발 패턴 트리 생성부(340)가 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성하는 일례를 도시하고 있다. In FIG. 5, the frequent pattern tree generation unit 340 generates an frequent pattern tree for each transaction segment in the example of FIG. 4.

조건부 패턴 베이스 추출부(350)는 트랜잭션 세그먼트 별로 생성된 빈발 패턴 트리를 이용하여 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성한다. The conditional pattern base extractor 350 generates a conditional pattern base for each transaction segment by using the frequent pattern tree generated for each transaction segment.

보다 상세하게, 본 발명의 일 실시예에 따르면, 조건부 패턴 베이스 생성부(350)는 트랜잭션 세그먼트 별 빈발 패턴 트리와 헤더 테이블 생성부(310)에서 생성된 트랜잭션 모집단에 대한 헤더 테이블(원본 헤더 테이블)을 이용하여 트랜잭션 세그먼트 별 조건부 패턴 베이스를 생성할 수 있다. More specifically, according to an embodiment of the present invention, the conditional pattern base generator 350 may include a header table (original header table) for a transaction population generated by the frequent pattern tree and header table generator 310 for each transaction segment. Conditional pattern base for each transaction segment can be created by using.

즉, 조건부 패턴 베이스 생성부(350)는 빈발 패턴 트리로부터 조건부 패턴 베이스를 생성하는 종래의 기법을 이용하여 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성한다. 이 경우, 조건부 패턴 베이스 생성부(350)는 트랜잭션 세그먼트에 대한 헤더 테이블이 아닌 분할 전의 트랜잭션 모집단을 이용하여 생성된 헤더 테이블(원본 헤더 테이블)을 이용하여 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성할 수 있다. 따라서 헤더 테이블에는 존재하는 빈발 항목이라 하더라도 분할된 트랜잭션 세그먼트에 포함되지 않는 항목은 해당 트랜잭션 세그먼트에 대한 조건부 패턴 베이스에 포함되지 않게 된다. That is, the conditional pattern base generator 350 generates the conditional pattern base for each transaction segment by using a conventional technique of generating the conditional pattern base from the frequent pattern tree. In this case, the conditional pattern base generator 350 may generate a conditional pattern base for each transaction segment by using a header table (original header table) generated by using a transaction population before splitting rather than a header table for the transaction segment. . Therefore, even if a frequent item exists in the header table, an item not included in the divided transaction segment is not included in the conditional pattern base for the transaction segment.

도 6에서는 상기 도 5의 일례에서 생성된 빈발 패턴 트리를 이용하여 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성하는 일례를 도시하고 있다. FIG. 6 illustrates an example of generating a conditional pattern base for each transaction segment by using the frequent pattern tree generated in the example of FIG. 5.

또한, 조건부 패턴 베이스 생성부(350)는 트랜잭션 세그먼트 별로 생성된 조건부 패턴 베이스를 통합하여 트랜잭션 모집단에 대한 조건부 패턴 베이스를 생성한다. In addition, the conditional pattern base generation unit 350 generates a conditional pattern base for the transaction population by integrating the conditional pattern base generated for each transaction segment.

즉, 조건부 패턴 베이스 생성부(350)는 트랜잭션 세그먼트 별 조건부 패턴 베이스를 항목별로 융합하여, 종래의 빈발 패턴 트리를 이용한 연관 규칙 추출 방법에 따라 한 번에 추출되는 트랜잭션 모집단에 대한 조건부 패턴 베이스와 동일한 조건부 패턴 베이스를 생성한다. 일례로서, 조건부 패턴 베이스 생성부(350)는 아래와 같이 트랜잭션 세그먼트 별 조건부 패턴 베이스를 통합할 수 있다. That is, the conditional pattern base generation unit 350 fuses the conditional pattern base for each transaction segment by item, and is identical to the conditional pattern base for the transaction population extracted at one time according to the association rule extraction method using a conventional frequent pattern tree. Create a conditional pattern base. As an example, the conditional pattern base generator 350 may integrate the conditional pattern base for each transaction segment as follows.

(1) 트랜잭션 세그먼트 별 조건부 패턴 베이스의 조건 항목들 중, 어느 하나의 트랜잭션 세그먼트의 조건부 패턴 베이스에만 포함된 조건 항목이 있는 경우, 해당 조건 항목을 최종 조건부 패턴 베이스 목록에 포함시킨다. (1) Among the condition items of the conditional pattern base of each transaction segment, if there is a condition item included only in the conditional pattern base of one transaction segment, the condition item is included in the final conditional pattern base list.

(2) 2 이상의 트랜잭션 세그먼트의 조건부 패턴 베이스에 포함된 조건 항목에 대해서는 각각의 트랜잭션 세그먼트의 조건부 패턴 베이스에서 해당 항목을 조건으로 하는 모든 패턴 베이스를 취합하여 다음과 같이 융합한다.(2) For the condition items included in the conditional pattern base of two or more transaction segments, all pattern bases subject to the item in the conditional pattern base of each transaction segment are collected and fused as follows.

(2-1) 취합된 패턴 베이스 목록에 동일한 패턴 베이스가 있는 경우, 해당 패턴 베이스를 조건 항목에 대한 최종 조건부 패턴 베이스 목록에 추가하되, 최종 빈도수는 해당 패턴 베이스가 출현한 모든 트랜잭션 세그먼트의 조건부 패턴 베이스에서의 빈도수 합으로 결정한다.(2-1) If the collected pattern base list has the same pattern base, add the pattern base to the final conditional pattern base list for the condition item, but the final frequency is the conditional pattern of all transaction segments in which the pattern base appears. Determined by the sum of frequencies at the base.

(2-2) (2-1)을 통해 추가한 패턴 베이스를 제외한 취합된 패턴 베이스 목록에 있는 모든 패턴 베이스를 조건 항목에 대한 최종 조건부 패턴 베이스 목록에 추가한다.(2-2) Add all the pattern bases in the collected pattern base list except the pattern base added in (2-1) to the final conditional pattern base list for the condition item.

(3) 트랜잭션 모집단에 대한 헤더 테이블(원본 헤더 테이블)에 있는 모든 항목에 대하여 (1) 내지 (2)를 반복하여 최종 조건부 패턴 베이스 목록을 구성한다.(3) Repeat (1) to (2) for all items in the header table (original header table) for the transaction population to form the final conditional pattern base list.

도 7에서는 상기 도 6의 일례에서 생성된 트랜잭션 세그먼트 별 조건부 패턴 베이스를 통합하여 트랜잭션 모집단에 대한 조건부 패턴 베이스를 생성하는 일례를 도시하고 있다. FIG. 7 illustrates an example of generating a conditional pattern base for a transaction population by integrating the conditional pattern base for each transaction segment generated in the example of FIG. 6.

마지막으로, 연관 규칙 추출부(360)는 통합된 조건부 패턴 베이스(즉, 트랜잭션 모집단에 대한 조건부 패턴 베이스)를 이용하여 연관 규칙을 추출한다. Finally, the association rule extractor 360 extracts the association rule using the integrated conditional pattern base (ie, the conditional pattern base for the transaction population).

조건부 패턴 베이스에서 연관 규칙을 추출하는 동작은 널리 알려진 공지 기술이므로 이에 대한 상세한 설명은 생략하기로 한다. Extracting the association rule from the conditional pattern base is a well known technique, and thus a detailed description thereof will be omitted.

한편, 도 3을 통해 설명한 각 구성 요소는 소프트웨어(Software), 또는 FPGA(Field-Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(hardware)를 의미할 수 있다. 그렇지만 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)이 가능한 저장 매체에 기록되도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 내에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현할 수도 있다.
Meanwhile, each component described with reference to FIG. 3 may mean software or hardware such as a field-programmable gate array (FPGA) or an application-specific integrated circuit (ASIC). However, the above components are not limited to software or hardware, and may be configured to be recorded in an addressable storage medium and may be configured to execute one or more processors. The functions provided in the above components may be implemented by more detailed components, or may be implemented as one component that performs a specific function by combining a plurality of components.

도 8은 본 발명의 일 실시예에 따른 연관 규칙 추출 방법의 전체적인 흐름을 도시한 순서도이다. 이하, 각 단계 별로 수행되는 과정을 설명하기로 한다. 8 is a flowchart illustrating the overall flow of the association rule extraction method according to an embodiment of the present invention. Hereinafter, a process performed for each step will be described.

먼저, 단계(S810)에서는 적어도 하나의 항목을 각각 포함하는 복수의 트랜잭션 데이터로 구성된 트랜잭션 모집단을 분석하여 기 설정된 최소 지지도 이상 트랜잭션 데이터 내에서 출현하는 2 이상의 빈발 항목을 추출한다. First, in step S810, a transaction population composed of a plurality of transaction data each including at least one item is analyzed to extract two or more frequent items appearing in the transaction data with a predetermined minimum support or more.

그리고, 단계(S820)에서는 추출된 2 이상의 빈발 항목을 해당 빈발 항목의 출현 횟수와 매칭시킨 후 출현 횟수에 따라 정렬한 헤더 테이블을 생성한다. In operation S820, the extracted two or more frequent items are matched with the number of occurrences of the corresponding frequent items, and then a header table is generated according to the number of occurrences.

계속하여, 단계(S830)에서는 연관 규칙의 추출에 이용되는 메모리의 용량에 기초하여 복수의 트랜잭션 데이터로 구성된 트랜잭션 모집단을 하나 이상의 트랜잭션 데이터를 각각 포함하는 N개의 트랜잭션 세그먼트로 분할한다. Subsequently, in step S830, a transaction population consisting of a plurality of transaction data is divided into N transaction segments each containing one or more transaction data based on the capacity of the memory used for extracting the association rule.

일례로서, 단계(S830)에서는 트랜잭션 모집단에 포함된 복수의 트랜잭션 데이터의 개수 및 메모리의 용량에 기초하여 분할하고자 하는 트랜잭션 세그먼트의 개수(N)를 결정하고, 결정된 개수에 따라 트랜잭션 모집단을 트랜잭션 세그먼트로 분할할 수 있다. As an example, in step S830, the number (N) of transaction segments to be divided is determined based on the number of transaction data and the memory capacity included in the transaction population, and the transaction population is converted into transaction segments according to the determined number. Can be divided

다음으로, 단계(S840)에서는 N개의 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성한다. Next, in step S840, a frequent pattern tree is generated for each N transaction segments.

본 발명의 일 실시예에 따르면, 단계(S840)에서는 상기 2 이상의 빈발 항목이 아닌 항목(비 빈발 항목)을 복수의 트랜잭션 데이터에서 제거하고, 비 빈발 항목이 제거된 복수의 트랜잭션 데이터를 이용하여 N개의 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성할 수 있다. According to an embodiment of the present invention, in step S840, the two or more non-frequent items (non-frequent items) are removed from a plurality of transaction data, and N is obtained by using a plurality of transaction data from which non-frequent items are removed. A frequent pattern tree can be created for each transaction segment.

이 후, 단계(S850)에서는 트랜잭션 세그먼트 별로 생성된 빈발 패턴 트리를 이용하여 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성한다. Thereafter, in step S850, the conditional pattern base is generated for each transaction segment by using the frequent pattern tree generated for each transaction segment.

본 발명의 일 실시예에 따르면, 단계(S850)에서는 트랜잭션 세그먼트에 대한 헤더 테이블이 아닌 분할 전의 트랜잭션 모집단에 대한 헤더 테이블을 이용하여 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성할 수 있다.According to an embodiment of the present invention, in step S850, the conditional pattern base may be generated for each transaction segment by using the header table for the transaction population before the partition rather than the header table for the transaction segment.

한편, N개의 트랜잭션 세그먼트 별 빈발 패턴 트리의 생성하는 단계(S840) 및 N개의 트랜잭션 세그먼트 별 조건부 패턴 베이스를 생성하는 단계(S850)는 빈발 패턴 트리의 생성하는 조건부 패턴 베이스의 생성은 하나의 처리 장치에서 순차적으로 진행될 수도 있고, N개의 처리 장치에서 동시에 수행될 수도 있다.Meanwhile, the generating of the frequent pattern tree for each N transaction segments (S840) and the generating of the conditional pattern base for each N transaction segments (S850) may include generating a conditional pattern base of the frequent pattern tree. May be sequentially performed at, or may be performed simultaneously in N processing apparatuses.

계속하여, 단계(S860)에서는 트랜잭션 세그먼트 별로 생성된 조건부 패턴 베이스를 통합하여 트랜잭션 모집단에 대한 조건부 패턴 베이스를 생성한다. 즉, 단계(S860)에서는 트랜잭션 세그먼트 별 조건부 패턴 베이스를 항목별로 융합하여, 종래의 빈발 패턴 트리를 이용한 연관 규칙 추출 방법에 따라 한 번에 추출되는 트랜잭션 모집단에 대한 조건부 패턴 베이스와 동일한 조건부 패턴 베이스를 생성한다.In operation S860, the conditional pattern base generated for each transaction segment is integrated to generate a conditional pattern base for the transaction population. That is, in step S860, the conditional pattern base for each transaction segment is fused for each item, and the same conditional pattern base as the conditional pattern base for the transaction population extracted at one time is extracted according to the association rule extraction method using a conventional frequent pattern tree. Create

마지막으로, 단계(S870)에서는 트랜잭션 모집단에 대한 조건부 패턴 베이스를 이용하여 연관 규칙을 추출한다. Finally, in step S870, the association rule is extracted using the conditional pattern base on the transaction population.

지금까지 본 발명에 따른 연관 규칙 추출 방법의 실시예들에 대하여 설명하였고, 앞서 도 3에서 설명한 연관 규칙 추출 장치(300)에 관한 구성이 본 실시예에도 그대로 적용 가능하다. 이에, 보다 상세한 설명은 생략하기로 한다.Embodiments of the association rule extraction method according to the present invention have been described so far, and the configuration of the association rule extraction device 300 described above with reference to FIG. 3 is also applicable to the present embodiment. Hereinafter, a detailed description will be omitted.

또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Examples of program instructions, such as magneto-optical and ROM, RAM, flash memory and the like, can be executed by a computer using an interpreter or the like, as well as machine code, Includes a high-level language code. The hardware device described above may be configured to operate as one or more software modules to perform the operations of one embodiment of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described with reference to particular embodiments, such as specific elements, and limited embodiments and drawings. However, it should be understood that the present invention is not limited to the above- Various modifications and variations may be made thereto by those skilled in the art to which the present invention pertains. Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .

300: 연관 규칙 추출 장치 310: 헤더 테이블 생성부
320: 정렬/정제부 330: 분할부
340: 빈발 패턴 트리 생성부 350: 조건부 패턴 베이스 생성부
360: 연관 규칙 추출부
300: association rule extraction apparatus 310: header table generation unit
320: alignment / purification part 330: division part
340: frequent pattern tree generator 350: conditional pattern base generator
360: association rule extractor

Claims (8)

연관 규칙의 추출에 이용되는 메모리의 용량에 기초하여 복수의 트랜잭션 데이터(Transaction Data)로 구성된 트랜잭션 모집단(Population)을 하나 이상의 트랜잭션 데이터를 각각 포함하는 N(2 이상의 정수임)개의 트랜잭션 세그먼트로 분할하는 분할부;
상기 N개의 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성하는 빈발 패턴 트리 생성부;
상기 트랜잭션 세그먼트 별로 생성된 빈발 패턴 트리를 이용하여 상기 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성하고, 상기 트랜잭션 세그먼트 별로 생성된 조건부 패턴 베이스를 통합하여 상기 트랜잭션 모집단에 대한 조건부 패턴 베이스를 생성하는 조건부 패턴 베이스 생성부; 및
상기 트랜잭션 모집단에 대한 조건부 패턴 베이스를 이용하여 연관 규칙을 추출하는 연관 규칙 추출부
를 포함하는 것을 특징으로 하는 연관 규칙 추출 장치.
Partitioning a transaction population consisting of a plurality of transaction data into N (integer or greater) two transaction segments each containing one or more transaction data based on the amount of memory used to extract the association rule. Installment;
A frequent pattern tree generation unit generating a frequent pattern tree for each of the N transaction segments;
Create a conditional pattern base for each transaction segment by using the frequent pattern tree generated for each transaction segment, and generate a conditional pattern base for the transaction population by integrating the conditional pattern base generated for each transaction segment. part; And
Association rule extraction unit for extracting an association rule using a conditional pattern base for the transaction population
Association rule extraction apparatus comprising a.
제1항에 있어서,
상기 분할부는 상기 복수의 트랜잭션 데이터의 개수 및 상기 메모리의 용량에 기초하여 상기 트랜잭션 세그먼트의 개수(N)를 결정하는 것을 특징으로 하는 연관 규칙 추출 장치.
The method of claim 1,
And the division unit determines the number (N) of the transaction segments based on the number of the plurality of transaction data and the capacity of the memory.
제1항에 있어서,
적어도 하나의 항목(Item)을 각각 포함하는 상기 복수의 트랜잭션 데이터를 분석하여 기 설정된 최소 지지도(Support) 이상 상기 트랜잭션 데이터 내에서 출현하는 2 이상의 빈발 항목을 추출하고, 상기 2 이상의 빈발 항목을 해당 빈발 항목의 출현 횟수와 매칭시킨 후 상기 출현 횟수에 따라 정렬한 헤더 테이블을 생성하는 헤더 테이블 생성부
를 더 포함하되,
상기 조건부 패턴 베이스 생성부는 상기 헤더 테이블을 더 이용하여 상기 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성하는 것을 특징으로 하는 연관 규칙 추출 장치.
The method of claim 1,
Analyzing the plurality of transaction data each including at least one item, extracting two or more frequent items appearing in the transaction data more than a predetermined minimum support, and extracting the two or more frequent items A header table generation unit that matches a number of occurrences of an item and generates a header table sorted according to the number of occurrences
Further comprising:
And the conditional pattern base generator further generates a conditional pattern base for each transaction segment using the header table.
제3항에 있어서,
상기 빈발 패턴 트리 생성부는 상기 2 이상의 빈발 항목이 아닌 항목(비 빈발 항목)을 상기 복수의 트랜잭션 데이터에서 제거하고, 상기 비 빈발 항목이 제거된 복수의 트랜잭션 데이터를 이용하여 상기 N개의 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성하는 것을 특징으로 하는 연관 규칙 추출 장치.
The method of claim 3,
The frequent pattern tree generation unit removes an item (non-frequent item) that is not two or more frequent items from the plurality of transaction data, and frequently occurs for each of the N transaction segments by using a plurality of transaction data from which the non-frequent item is removed. Association rule extraction apparatus, characterized in that for generating a pattern tree.
연관 규칙의 추출에 이용되는 메모리의 용량에 기초하여 복수의 트랜잭션 데이터로 구성된 트랜잭션 모집단을 하나 이상의 트랜잭션 데이터를 각각 포함하는 N(2 이상의 정수임)개의 트랜잭션 세그먼트로 분할하는 단계;
상기 N개의 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성하는 단계;
상기 트랜잭션 세그먼트 별로 생성된 빈발 패턴 트리를 이용하여 상기 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성하는 단계;
상기 트랜잭션 세그먼트 별로 생성된 조건부 패턴 베이스를 통합하여 상기 트랜잭션 모집단에 대한 조건부 패턴 베이스를 생성하는 단계; 및
상기 트랜잭션 모집단에 대한 조건부 패턴 베이스를 이용하여 연관 규칙을 추출하는 단계
를 포함하는 것을 특징으로 하는 연관 규칙 추출 방법.
Dividing a transaction population consisting of a plurality of transaction data into N transaction segments each comprising one or more transaction data based on a capacity of a memory used for extracting an association rule;
Generating a frequent pattern tree for each of the N transaction segments;
Generating a conditional pattern base for each transaction segment using the frequent pattern tree generated for each transaction segment;
Generating a conditional pattern base for the transaction population by integrating the conditional pattern base generated for each transaction segment; And
Extracting an association rule using a conditional pattern base on the transaction population
Association rule extraction method comprising a.
제5항에 있어서,
적어도 하나의 항목을 각각 포함하는 상기 복수의 트랜잭션 데이터를 분석하여 기 설정된 최소 지지도 이상 상기 트랜잭션 데이터 내에서 출현하는 2 이상의 빈발 항목을 추출하고, 상기 2 이상의 빈발 항목을 해당 빈발 항목의 출현 횟수와 매칭시킨 후 상기 출현 횟수에 따라 정렬한 헤더 테이블을 생성하는 단계
를 더 포함하되,
상기 조건부 패턴 베이스를 생성하는 단계는 상기 헤더 테이블을 더 이용하여 상기 트랜잭션 세그먼트 별로 조건부 패턴 베이스를 생성하는 것을 특징으로 하는 연관 규칙 추출 방법.
The method of claim 5,
Analyzing the plurality of transaction data each including at least one item, extracting two or more frequent items appearing in the transaction data by a predetermined minimum support degree, and matching the two or more frequent items with the number of occurrences of the frequent items. Generating a header table sorted according to the number of occurrences
Further comprising:
The generating of the conditional pattern base may further include generating a conditional pattern base for each transaction segment using the header table.
제6항에 있어서,
상기 빈발 패턴 트리를 생성하는 단계는 상기 2 이상의 빈발 항목이 아닌 항목(비 빈발 항목)을 상기 복수의 트랜잭션 데이터에서 제거하고, 상기 비 빈발 항목이 제거된 복수의 트랜잭션 데이터를 이용하여 상기 N개의 트랜잭션 세그먼트 별로 빈발 패턴 트리를 생성하는 것을 특징으로 하는 연관 규칙 추출 방법.
The method according to claim 6,
The generating of the frequent pattern tree may include removing the two or more non-frequent items (non-frequent items) from the plurality of transaction data, and using the plurality of transaction data from which the non-frequent items are removed, the N transactions. An association rule extraction method comprising generating a frequent pattern tree for each segment.
제5항 내지 제7항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium having recorded thereon a program for performing the method of any one of claims 5 to 7.
KR1020110028864A 2011-03-30 2011-03-30 Apparatus and method for extracting association rule KR101187958B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110028864A KR101187958B1 (en) 2011-03-30 2011-03-30 Apparatus and method for extracting association rule

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110028864A KR101187958B1 (en) 2011-03-30 2011-03-30 Apparatus and method for extracting association rule

Publications (1)

Publication Number Publication Date
KR101187958B1 true KR101187958B1 (en) 2012-10-08

Family

ID=47287408

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110028864A KR101187958B1 (en) 2011-03-30 2011-03-30 Apparatus and method for extracting association rule

Country Status (1)

Country Link
KR (1) KR101187958B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101595961B1 (en) * 2014-10-22 2016-02-22 충북대학교 산학협력단 Associative classification approach for prediction target data in the large data
KR20190049536A (en) * 2017-10-30 2019-05-09 서울대학교산학협력단 Apparatus and method of extracting association rules in phases

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100812378B1 (en) 2005-11-28 2008-03-11 이원석 estDec+ method for finding frequent itemsets over data streams using compressed-Prefix trees

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100812378B1 (en) 2005-11-28 2008-03-11 이원석 estDec+ method for finding frequent itemsets over data streams using compressed-Prefix trees

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101595961B1 (en) * 2014-10-22 2016-02-22 충북대학교 산학협력단 Associative classification approach for prediction target data in the large data
KR20190049536A (en) * 2017-10-30 2019-05-09 서울대학교산학협력단 Apparatus and method of extracting association rules in phases
KR102071702B1 (en) 2017-10-30 2020-01-30 서울대학교산학협력단 Apparatus and method of extracting association rules in phases

Similar Documents

Publication Publication Date Title
Rathee et al. R-Apriori: an efficient apriori based algorithm on spark
KR101079063B1 (en) Apparatus and method for association rule mining using frequent pattern-tree for incremental data processing
US9892187B2 (en) Data analysis method, data analysis device, and storage medium storing processing program for same
US20160203156A1 (en) Method, apparatus and system for data analysis
US20150032759A1 (en) System and method for analyzing result of clustering massive data
JP4893624B2 (en) Data clustering apparatus, clustering method, and clustering program
KR20070011432A (en) Processing data in a computerised system
KR101535813B1 (en) System and method for dynamic updating of event composition rule for complex event processing
US20180089270A1 (en) Pipeline dependent tree query optimizer and scheduler
CN105608135A (en) Data mining method and system based on Apriori algorithm
CN104778252B (en) The storage method and device of index
US20230401281A1 (en) Matrix operation-based method for modifying mobile social network graph
KR101187958B1 (en) Apparatus and method for extracting association rule
KR101601820B1 (en) Method and program for similar user index
CN107451204B (en) Data query method, device and equipment
KR101660584B1 (en) Method and apparatus for processing graph compression
CN112765288A (en) Knowledge graph construction method and system and information query method and system
US12013855B2 (en) Trimming blackhole clusters
George et al. DRL-Prefixspan: A novel pattern growth algorithm for discovering downturn, revision and launch (DRL) sequential patterns
Shayegan et al. An approach to improve apriori algorithm for extraction of frequent itemsets
JP6535591B2 (en) Image recognition apparatus and operation method of image recognition apparatus
JP2021039488A (en) Dictionary creation device and dictionary creation method
KR102098253B1 (en) System and method for large-scale frequent pattern mining on distributed systems
JP6457290B2 (en) Method for pruning a graph, non-transitory computer-readable storage medium storing instructions for causing a computer to perform the method for pruning the graph, and a computer system for pruning a graph
KR101815968B1 (en) Malicious code classification system for providing group dividing function and method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150609

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160627

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee