JP2002351898A - グラフ構造データの処理方法、処理システムおよびプログラム - Google Patents

グラフ構造データの処理方法、処理システムおよびプログラム

Info

Publication number
JP2002351898A
JP2002351898A JP2001154686A JP2001154686A JP2002351898A JP 2002351898 A JP2002351898 A JP 2002351898A JP 2001154686 A JP2001154686 A JP 2001154686A JP 2001154686 A JP2001154686 A JP 2001154686A JP 2002351898 A JP2002351898 A JP 2002351898A
Authority
JP
Japan
Prior art keywords
graph
adjacency matrix
adjacency
frequent
matrix
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2001154686A
Other languages
English (en)
Inventor
Akihiro Inoguchi
明博 猪口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2001154686A priority Critical patent/JP2002351898A/ja
Priority to US10/154,516 priority patent/US6985890B2/en
Publication of JP2002351898A publication Critical patent/JP2002351898A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Abstract

(57)【要約】 【課題】 AGMアルゴリズムの効率性をさらに向上す
る。 【解決手段】 グラフ構造データからなるグラフデータ
ベースから最小支持度以上の支持度を持つグラフデータ
(多頻度グラフ)を効率的に抽出できるAGMアルゴリ
ズムにおいて、グラフの頂点ラベルおよび辺ラベルの順
序付けを行う関数「relabel」を実行する(ステップ
1)。また、大きさkの多頻度グラフの隣接行列集合F
から大きさk+1の多頻度グラフ候補の隣接行列集合
k+1を生成する関数「Newjoin」において、AGMア
ルゴリズムの3つの条件に加えて、第1生成行列が正準
形の場合にのみ第2生成行列と結合するという第4の条
件を付加する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、グラフ構造を持つ
データの処理方法、処理システムおよびプログラムに関
する。特に、グラフ構造データのデータベースからユー
ザが指定する最小支持度以上の支持度を持つグラフを効
率的に抽出する技術に適用して有効なものである。
【0002】
【従来の技術】たとえば、特開平09−297686号
公報には、リレーショナルデータベースの中から、その
データに含まれる属性間に存在する規則性を相関ルール
として抽出するバスケット分析の技術が記載されてい
る。この技術は、小売店において、客が同時にバスケッ
ト(買い物かご)に入れる商品の相関関係を求めるもの
であり、同時購入分析とも呼ばれる。たとえば、「パン
を買う客は、同時に牛乳も購入する」という相関ルール
は、「パン→牛乳」をいう形式で表現される。これらの
ルールはマーケティング戦略を練るのに用いられてい
る。
【0003】バスケット分析では、相関ルールの候補と
して、全商品の組み合わせを列挙し、これが成り立って
いるかどうかを実際の商品購買データベースに検索して
一つずつ調べる必要がある。しかし、全ての相関ルール
の候補を調べるのは、意味のない相関ルールも調べるこ
とになる。相関ルールの中には、1人の客にしか適用で
いないような相関ルールも含まれ、このような相関ルー
ルを考慮することはマーケティング戦略を練るのには意
味がない。たとえば、小売店に10,000種類の商品
が存在した場合、考え得る組合せは210000にもな
る。この全ての組合せの中には前記したような意味のな
い組合せも含まれるため、全ての商品の組み合わせを考
慮したのでは効率が悪く、しかも膨大な計算時間を要し
現実的でない。
【0004】そこで前記公報記載の技術では、支持度と
確信度という基準を用いた枝狩りを行っている。また、
支持度の性質を利用して、高速に頻出する商品の組み合
わせを抽出するアプリオリアルゴリズムという手法が既
に提案されている。アプリオリアルゴリズムについて
は、たとえば、「R.Agrwal and R.Srikant, First algo
rithms for mining association rules, In Proceeding
s of the 20th VLDB Conference, pp.487-499, 1994.」
(文献1)に記載されている。前記公報や文献1の手法
は、スーパーマーケットのマーケット戦略以外にも、工
場での品質管理、膨大なカルテからの知識抽出など様々
なデータ処理に用いられている。
【0005】ところで、前記公報や文献1の手法は、複
数の集合に頻出する部分集合を高速に抽出する手法であ
る。しかし、複数集合が複数のグラフ構造として与えら
れた場合には、上記手法では、複数のグラフ構造から、
効率よく頻繁に出現する部分構造を取り出すことはでき
ない。そのような場合には、グラフ構造からなるデータ
ベースから効率よくグラフパターンを抽出する手法が必
要になる。このような手法として、たとえば、本発明者
の提案によるAGMアルゴリズム(Apriori-based Grap
h Miningアルゴリズム)がある。AGMアルゴリズムに
つては、「猪口明博,鷲尾隆,元田浩:多頻度パターン
抽出方法の有機塩素化合物への適用,第39 回人工知能
学基礎論研究会,1999.No. 6, pp.1052-1063,1994.」
(文献2)、「A. Inokuchi, T. Washio, T. Okada and
H. Motoda: Applying Algebraic Mining Method of Gr
aph Substructures to Mutagenesis Data Analysis, Pr
oc. ofInternational Workshop KDD Challenge on Real
-world Data, pp.41-46, PAKDD-2000 (2000).」(文献
3)、「A. Inokuchi, T. Washio and H. Motoda: An A
priori-based Algorithm for Mining Frequent Substru
ctures from Graph Data, Proc. of the 4th European
Conference on Principles and Practice of Knowledge
Discovery in Databases , pp.13-23, (2000).」(文
献4)あるいは「猪口明博,鷲尾隆,元田浩:多頻度グ
ラフパターンの完全な高速マイニング手法,人工知能学
会誌,Vol. 15, No. 6, pp.1052-1063,1994.」(文献
5)に記載されている。
【0006】AGMアルゴリズムの手法は、たとえば、
化学構造と生理活性などが与えられたときに、構造と活
性の相関関係を求めるのに用いることができる。たとえ
ば前記文献3では、複数のニトロ有機化合物とガンの原
因となる変異原活性を示すデータが与えられたときに、
変異原活性を増幅する可能性のある相関ルールや抑制す
る可能性がある相関ルールが抽出されている。
【0007】
【発明が解決しようとする課題】前記AGMアルゴリズ
ムでは、全探索空間のうち探索が不必要な探索空間を早
い段階で枝狩りすることによって効率化を図っている。
AGMアルゴリズムは効率よく多頻度グラフパターンを
抽出することができるが、効率的であるのは全探索に比
べ効率的であって、設定する支持度によっては膨大な計
算時間を要する問題がある。
【0008】本発明の目的は、AGMアルゴリズムの効
率性をさらに向上することにある。すなわち、不必要な
検索空間の枝狩りの完全性を保ちながら、さらに効率よ
くグラフデータベースから多頻度グラフパターンを抽出
する手法を提供することにある。
【0009】
【課題を解決するための手段】本発明の概要を説明すれ
ば以下の通りである。すなわち、本発明のデータ処理方
法は、グラフ構造データの集合であるグラフデータベー
スから、最小支持度以上の支持度を持つ多頻度グラフを
抽出するグラフ構造データの処理方法であって、大きさ
がk(kは自然数である)の多頻度グラフの隣接行列の
集合Fから大きさがk+1の多頻度グラフ候補の隣接
行列ck+1の集合Ck+1を生成する第1ステップと、
多頻度グラフ候補のうち、大きさがkの誘導部分グラフ
として多頻度グラフでないグラフを含む多頻度グラフ候
補の隣接行列ck+1を、集合C k+1から削除する第2
ステップと、隣接行列ck+1のうち、同一のグラフを
表現する隣接行列の部分集合から唯一の隣接行列c'
k+1を選択する第3ステップと、隣接行列c' k+1
ついてグラフデータベースをスキャンし、多頻度グラフ
である場合は、隣接行列c' k+1および隣接行列c'
k+1が表現するグラフと同一の構造を表す隣接行列c
k+1を、大きさk+1の多頻度グラフの隣接行列の集
合Fk+1に追加する第4ステップと、を有し、第1ス
テップにおける隣接行列ck+1の生成において、生成
の基礎となる多頻度グラフの隣接行列XとY の第k
行k列以外の要素が等しい第1の条件、および、隣接行
列XおよびY が各々表すグラフG(X)およびG
(Y)の、第k頂点以外の頂点ラベルが各々等しく、
かつ、グラフG(X)の第k頂点のラベルの順序がグ
ラフG(Y)の第k頂点のラベルの順序以下である第
2の条件、および、グラフG(X )およびG(Y
の第k頂点の頂点ラベルが等しく、かつ、隣接行列X
のコードが隣接行列Yのコード以下である第3の条
件、および、隣接行列Xが正準形である第4の条件、
の全ての条件を満たしたときに隣接行列XおよびY
を結合するものである。
【0010】このようなグラフ構造データの処理方法に
よって、最小支持度以上の多頻度グラフをグラフデータ
ベースから効果的に抽出できる。特に前記第4条件を付
加することによって、従来技術のAGMアルゴリズムの
完全性を損なうこと無く、さらに高速に、かつ少ないメ
モリ容量で、計算を実行できる。
【0011】なお、前記第2ステップには、多頻度グラ
フ候補の隣接行列から誘導部分グラフの隣接行列を生成
するステップと、誘導部分グラフの隣接行列を正規化す
るステップと、を含み、正規化ステップには、正規化対
象の隣接行列Xにおいて、m≠kである自然数mにつ
き、Xmが正規形であるかを判断するステップと、判断
が真の場合は、隣接行列Xmを正準形に変換する変換行
列Smを用いて隣接行列Xを正準形に変換し、さらに
mを1増加するステップと、判断が偽の場合は、隣接行
列Xのm−1行およびm−1列をm行およびm列と入
れ替え、さらにmを1減ずるステップと、を含む。前記
第4条件を付加したことを考慮した正規化手段を提供で
きる。
【0012】また、前記第1乃至第4ステップに加え
て、グラフ構造データの頂点ラベルまたは辺ラベルの順
序を入れ替えるステップを有することができる。頂点ラ
ベルの入れ替えは、各頂点ラベルがトランザクションに
出現する頻度の平均値の昇順に順序付けることができ
る。また、辺ラベルの入れ替えステップには、辺ラベル
がトランザクションに出現する頻度の平均値と辺が存在
しない場合の出現頻度の平均値とを比較し、平均値の少
ない方のラベルを低く順序づけるステップと、各辺ラベ
ルがトランザクションに出現する頻度の平均値の昇順に
順序付けるステップと、を有することができる。このよ
うなラベル入れ替えによって、計算速度が向上するよう
にラベルの順序づけを行うことができる。これにより、
計算効率の向上とメモリの節約を図ることができる。
【0013】なお、上記方法の発明は、システムの発明
あるいはプログラムの発明として把握することも可能で
ある。
【0014】
【発明の実施の形態】以下、本発明の実施の形態を図面
に基づいて詳細に説明する。ただし、本発明は多くの異
なる態様で実施することが可能であり、本実施の形態の
記載内容に限定して解釈すべきではない。なお、実施の
形態の全体を通して同じ要素には同じ番号を付するもの
とする。
【0015】1.定義 本実施の形態のAGMアルゴリズムで用いる概念を以下
のように定義する。
【0016】(定義1:ラベル付きグラフ)頂点の集合
V(G)、辺の集合E(G)、頂点ラベルの集合L(V
(G))、辺ラベルの集合L(E(G))が数1〜数4
のように与えられたとき、グラフGは数5のように表現
される。
【0017】
【数1】
【0018】
【数2】
【0019】
【数3】
【0020】
【数4】
【0021】
【数5】
【0022】なお、頂点の数|V(G)|を、グラフG
の大きさとする。
【0023】(定義2:隣接行列)定義1のようにグラ
フが与えられたとき、グラフの構造を行列形式で表現で
きる。本明細書では、このようなグラフを表現する行列
を隣接行列と称する。隣接行列の行および列に数1の各
頂点を割り当て、数2の各辺を行列の各要素に割り当て
る。数5のようにグラフGが与えられたとき、その隣接
行列Xの(i,j)要素xijは数6のようになる。
【0024】
【数6】
【0025】ここで、num(lb)はラベルlbに割
り当てられた正の値である。また、隣接行列Xが表すグ
ラフ構造をG(X)とする。
【0026】(定義3:ラベル間順序関係)定義2のよ
うにあるグラフGの隣接行列を定義する場合、グラフの
各頂点を行列の何れの行(列)に割り当てるかによって
行列が相違する。すなわち、1つのグラフは複数の隣接
行列で表現でき、逆に1つの隣接行列表現から必ず1つ
のグラフ構造が導出されるが、複数の隣接行列によって
同一のグラフ構造を表現している場合がある。そこで隣
接行列によるグラフの表現数を減らすために、頂点のラ
ベル間に数7に示すような順序関係を設ける。
【0027】
【数7】
【0028】さらに、グラフGの隣接行列Xは数8の
関係を満たす。
【数8】
【0029】なお、隣接行列の第i行(i列)に相当す
る頂点を第i頂点と呼ぶ。
【0030】(定義4:隣接行列のコード)後述する多
頻度グラフ候補の数を小さくするため、隣接行列のコー
ドを定義する。コードは隣接行列の大小関係を識別する
ためのものであり、隣接行列Xの要素xijを用いて
表現する。無向グラフ、有向グラフに対して各々数9、
数10のように定義する。
【0031】
【数9】
【0032】
【数10】
【0033】(定義5:誘導部分グラフ)数5のように
グラフGが与えられたとき、Gの誘導部分グラフG
数11のように定義される。そして、Gは数12およ
び数13の条件を満たす。
【0034】
【数11】
【0035】
【数12】
【0036】
【数13】
【0037】(定義6:支持度)本実施の形態のAGM
アルゴリズムは、グラフ構造データベースGDが与えら
れたとき、それらの中にある閾値以上の頻度で誘導部分
グラフとして含まれるグラフ構造を効率よく抽出するア
ルゴリズムである。このため、グラフデータベースGD
からグラフを抽出するか否かの判断指標として支持度を
定義する。すなわち、グラフGが与えられたとき、グラ
フGの支持度supは数14のように定義される。
【0038】
【数14】
【0039】2.本実施の形態のAGMアルゴリズム 本実施の形態のAGMアルゴリズムでは従来技術で説明
したアプリオリアルゴリズムと同様に、ユーザが最小支
持度を設定して、最小支持度以上の支持度をもつグラフ
構造のみを抽出する。最小支持度以上の支持度を有する
グラフを多頻度グラフと呼ぶ。
【0040】多頻度グラフの抽出には、以下の性質を利
用する。すなわち、最小支持度に満たない支持度のグラ
フを誘導部分グラフとして含むグラフの支持度は最小支
持度以上になることはない。この性質は数14の定義か
ら明らかである。この性質を利用すれば、大きさ1の多
頻度グラフから順次大きな多頻度グラフの候補を生成す
るアルゴリズムを採用することによって、早い段階で不
要なグラフ候補を削除できる。
【0041】2.1 本実施の形態のAGMアルゴリズ
ムの概要 まず、大きさ1のグラフから処理を開始する。大きさ
1、つまり頂点の数が1のグラフを生成する。グラフは
頂点ラベルの数だけ生成されることになる。この大きさ
1のグラフが多頻度グラフであるかはグラフデータベー
スを参照することにより判断することになる。グラフ毎
に多頻度グラフであるかを判断し、多頻度グラフの集合
を生成する。
【0042】大きさ1の多頻度グラフの集合から、頂点
数が1つ増えた大きさ2の多頻度グラフ候補を生成す
る。ただし、この候補生成の処理は、後に説明するよう
に隣接行列表現を用いる。また後に説明する4つの条件
を満足するように処理する。なお、本明細書では、この
段階で生成された多頻度グラフ候補に相当する隣接行列
を正規形と称する。
【0043】次に、生成した多頻度グラフ候補の誘導部
分グラフが多頻度グラフであるかを判断する。多頻度グ
ラフでないグラフを誘導部分グラフとして含む候補はこ
の段階で削除される。前記したとおり、多頻度グラフで
ないグラフを誘導部分グラフに含むグラフは多頻度グラ
フではないので、以後このグラフに基づく探索操作(候
補の生成)を行う必要がない。これにより膨大な探索空
間のうち、探索する必要がない空間を確定することがで
き、探索空間の一部を探索することによって、全ての候
補を抽出することが可能になる。なお、多頻度グラフ候
補よりも大きさが1つ小さい多頻度グラフは既に求めら
れているため、その誘導部分グラフが多頻度グラフであ
るかの判断は既に求められている多頻度グラフを参照し
て行えばよく、グラフデータベースを参照する必要がな
い。ただし、多頻度グラフ候補の誘導部分グラフの隣接
行列が正規形でない可能性があるので、正規化する必要
がある。
【0044】次に、生成された多頻度グラフ候補の隣接
行列が重複して同一のグラフ構造を表現している可能性
があるので、同一のグラフ構造を表す複数の隣接行列が
ある場合には、そのうち最もコードの小さな行列を選択
する。このように選択された行列を本明細書では正準形
と称する。
【0045】次に、正準形の隣接行列に相当するグラフ
候補について、実際にグラフデータベースを検索し、多
頻度グラフであるかを検査する。多頻度グラフである場
合には多頻度グラフ候補を多頻度グラフとする。
【0046】上記操作をグラフの大きさkを1つずつ順
次増加して行い、多頻度グラフが抽出されない大きさk
まで処理を続ける。このようなアルゴリズムによって、
探索空間の一部を探索することによりグラフデータベー
スから全ての多頻度グラフを抽出することが可能にな
る。
【0047】2.2 多頻度グラフ候補の生成 前記した通り、大きさkの多頻度グラフから、大きさk
+1の多頻度グラフの候補を生成する。生成処理には隣
接行列表現を用い、以下の条件1〜条件4に従う。
【0048】(条件1)大きさがkの多頻度グラフを2
つ考る。その隣接行列を数15、数16に示すようなX
,Yとする。
【0049】
【数15】
【0050】
【数16】
【0051】X,Yのk行及びk列以外の要素が全
て等しいとき、すなわち各々第k頂点を除いて構造が等
しいとき、数17のようにX,Yを結合し、Z
k+1を生成する。
【0052】
【数17】
【0053】ここで、Xk-1は大きさk−1のグラフ
の隣接行列、x,x,y,y は(k−1)×1
の縦ベクトルである。X,YをそれぞれZk+1
第1生成行列、第2生成行列と呼ぶ。
【0054】(条件2)生成されるZk+1の頂点は数
18の関係がある。
【0055】
【数18】
【0056】ただし、隣接行列Zk+1の(k,k+
1)要素、(k+1,k)要素の値をX,Yから決
めることはできない。Zk+1のグラフ構造の可能性と
して、無向グラフの場合、各ラベルを持つ辺が存在する
場合と、辺が存在しない場合が考えられる.そこで、|
L(E(G))|+1個の隣接行列を生成する。有向グ
ラフの場合も同様に考える。
【0057】(条件3)ここでグラフ構造G(X),
G(Y)の第k頂点のラベルが等しい場合、Y,X
をそれぞれ第1生成行列、第2生成行列として、2つ
の隣接行列を結合した場合、この隣接行列は冗長であ
る。このような冗長な生成をさけるため、数19の関係
にある場合にのみ隣接行列を結合する。
【0058】
【数19】
【0059】(条件4)前記条件1〜3に加えて、以下
の条件を付加する。すなわち、第1生成行列となる隣接
行列Xが正準形である場合のみ、第2生成行列Y
結合をする。
【0060】このような条件は、以下のような性質(定
理1)を利用することに基づく。 (定理1) 「正準形の第1生成行列は正準形である」 (証明) ある正準形をX、その第1生成行列、第
2生成行列をそれぞれX k-1,Yk-1とする。もし、
k-1が正準形でないと仮定すると、構造がG(X
k-1)と等しく、コードがcode(Xk-1)より小
さな隣接行列Xc, k-1が存在する。このとき、隣接行
列Xc,k-1と結合の条件を満たし、構造がG(Y
k-1)と等しい隣接行列をY' k-1とすると、X
c,k-1とY' k-1を結合してできる隣接行列X'
コードはXのコードより小さくなる。これはXが正
準形であることに矛盾する。
【0061】以上の4つの条件に従うように隣接行列を
生成する。このように生成された隣接行列は正規形であ
る。
【0062】2.3 誘導部分グラフのチェック 結合してできた隣接行列のグラフ構造G(Zk+1)が
多頻度グラフであるための必要条件はグラフG(Z
k+1)の全ての誘導部分グラフが多頻度グラフである
ことである。そこで、G(Zk+1)の第i頂点(1≦
i≦k−1)を除去した誘導部分グラフの隣接行列が全
て多頻度グラフを表す隣接行列であれば、それを多頻度
グラフの候補とする。このアルゴリズムでは正規形の隣
接行列しか探索生成しないために、第i頂点を除去した
グラフの隣接行列が正規形でなければ、それが多頻度グ
ラフであるかを過去の探索から容易にチェックする事が
できない。よって、非正規形の隣接行列に対して正規化
する手法が必要である。正規化の具体例は後に説明す
る。
【0063】2.4 正準形 全ての多頻度グラフの候補を取り出した後、実際にデー
タベースをスキャンする事によって頻度を求める。しか
し、正規形の中にも同じグラフを表す隣接行列が存在す
る。頻度の計算の前に、どの隣接行列が同じグラフを表
す行列であるかを知る必要がある。そこで、以下のよう
に正準形を定める。
【0064】(定義7)グラフGを表現する正規形の集
合NF(G)が与えられたとき、NF(G)の中で最小
のコードを持つ隣接行列Xを本明細書では正準形とよ
ぶ。Xは数20のように定義される。
【0065】
【数20】
【0066】またXとYのグラフが等しいとき、X
からYへの変換行列Sを考える。Sの要素s
i,jは数21のようになる。
【0067】
【数21】
【0068】よって、Yは隣接行列Xと変換行列S
を用いて数22のように表される。
【0069】
【数22】
【0070】なお、右肩の添字「T」は転置行列である
ことを示す。
【0071】次に正準形への変換行列の効率的な探し方
が必要である。全ての隣接行列は正準形への変換行列を
持ち、Xの正準形とそれへの変換行列を探す際に、大
きさがk−1の多頻度グラフの正準形への変換行列は全
て既知であるとする。G(X )の第m頂点(1≦m≦
k)を除去し、その隣接行列を正規化する。正規形への
変換行列をT k-1とする。正規化された隣接行列の
正準形への変換行列をS k-1とする。Xの変換行
列S ,T をS k-1,T k-1から生成す
る。
【0072】
【数23】
【0073】
【数24】
【0074】ここで、si,j,s i,j
i,j,t i,jはそれぞれS ,S k-1
,T k-1の要素である。Xに対する正準形
のコードは、数25で与えられ、正準形への変換行列は
上記の式を最小にするT である。
【0075】
【数25】
【0076】しかし、式の計算途中で正準形への変換行
列S' が既知である隣接行列(T
(T )が見つかれば、Xの正準形は数26
のように与えられ、全てのkについて計算する必要がな
い。
【0077】
【数26】
【0078】但し、上記の手法では正準形を見つけるこ
とができない場合がある。このときはXの各頂点の順
列を取り正準形とその変換行列を探索する。
【0079】2.5 ラベルの順序関係 定義3で頂点ラベル間に順序関係を設けることを説明し
た。しかし、この順序付けにより生成される正規形の数
が異なる。例えば、データベースに含まれる頂点ラベル
がAとBの2種類であるとする。さらに、数27で示す
隣接行列が表すグラフ構造のみが多頻度グラフでないと
する。
【0080】
【数27】
【0081】頂点ラベルの順序関係がA<Bである場
合、大きさ3の正規形の隣接行列は17個となる。一
方、B<Aである場合には、大きさ3の正規形の隣接行
列は18個となる。つまり頂点ラベルの順序付けによっ
て正規形の数が異なる。ここでは大きさ3の正規形のみ
を考えているので、頂点ラベルの順序付けによる差は1
個であるが、さらに大きな隣接行列を考えていくと、そ
の差は指数的に増加する。
【0082】生成される正規形を少なくするためには、
多頻度グラフでないグラフに多く含まれる頂点ラベルか
ら順に順序付けをすると良いと考えられる。そこで、数
28のように、各ラベルがトランザクションに含まれる
数の平均値の昇順に順序関係を割り当てる。avg(l
)はラベルlbがトランザクションに含まれる数
の平均値である。
【0083】
【数28】
【0084】辺ラベルの場合も、同様に各辺ラベルがト
ランザクションに含まれる数の平均値の昇順に割り当て
る。しかし、疎グラフ(sparce graph)である場合、各
トランザクションを表す隣接隣接行列には、頂点間に辺
がないことを示す「0」が各辺ラベル以上に存在する。
そこで、0以上の整数値を返す関数fを考え、隣接行列
の各要素の値を数29のように再度割り当てる。ここで
avg(0)は、トランザクションを示す隣接行列に含
まれる「0」の数の平均値である。
【0085】
【数29】
【0086】さらに、隣接行列のコードは数30のよう
になる。
【0087】
【数30】
【0088】3.処理フローおよび疑似プログラムコー
ド前記したアルゴリズムに基づく処理フローの一例を以
下に説明する。図1は、本実施の形態のAGMアルゴリ
ズムの処理フローの一例を示したフローチャートであ
る。また、AGMアルゴリズムの疑似プログラムコード
の一例を以下に示す。なお、疑似コードに右側に示す括
弧内の数字は行番号である(以下同様である)。AGM
プログラムの関数名は「AGM+」である。関数「AGM+」に
は、引数として最小支持度(mim_sup)が渡され、戻り値
は多頻度グラフである。
【0089】 (101) AGM+(min_sup) (102) { (103) relabel(); (104) F1={大きさ1の多頻度グラフ} (105) for(k=1;Fk≠Null;k++) (106) Ck+1=Newjoin(Fk); (107) Ck+1=Newckeck(Ck+1,Fk); (108) C'k+1=canonical(Ck+1); (109) forall c'∈C'k+1 (110) forall データベース中のグラフ構造g (111) if gがc'を誘導部分グラフとして含んでいる (112) c'.count++; (113) end (114) end (115) end (116) Fk+1={c∈Ck+1| c'∈C'k+1, G(c)=G(c'), c'.count≧min_sup} (117) end (118) return ∪k Fk (119) }
【0090】AGMプログラムの関数名は「AGM+」であ
る。関数「AGM+」には、引数として最小支持度(mim_su
p)が渡され(行番号101)、戻り値は多頻度グラフであ
る(行番号118)。Fkは大きさkの多頻度グラフを表す
隣接行列の集合であり、Ckは多頻度グラフの候補を表す
隣接行列の集合である。また、C'kは多頻度グラフの候
補を表す正準形の集合である。cはCkの要素、すなわち
隣接行列であり、G(c)はそのグラフ構造を示している。
【0091】行番号103の関数「relabel」は頂点ラ
ベルの順序付け、辺ラベルの順序付けを変更するための
関数である。行番号106の関数「Newjoin」は前記し
た4つの条件に合致する大きさkの隣接行列を結合し
て、多頻度グラフの候補を表す隣接行列の集合を返す関
数である。行番号107の関数「Newcheck」は大きさk
の多頻度グラフの候補に含まれるk個の誘導部分グラフ
が多頻度グラフであるかどうかチェックする関数であ
る。戻り値として、誘導部分グラフが全て多頻度グラフ
である多頻度グラフの候補を表す隣接行列の集合を返
す。行番号108の関数「canonical」は大きさkの多頻
度グラフの候補を表す隣接行列のうち,正準形であるも
のを返す関数である。
【0092】関数「relabel」の実行後(行番号10
3,ステップ1)、大きさ1の多頻度グラフからはじめ
(行番号104,ステップ2)、順次大きな多頻度グラ
フを抽出する(ステップ4〜ステップ16、行番号10
5〜117)。処理は、関数「Newjoin」(行番号10
6,ステップ5),関数「Newcheck」(行番号107,
ステップ6),関数「canonical」(行番号108,ス
テップ7)を経て残った多頻度グラフの候補について、
実際にデータベースをスキャンし(行番号109〜11
5,ステップ8〜13)、実際の多頻度グラフを抽出す
る(行番号118,ステップ14)。
【0093】以下、前記各関数を詳細に説明する。図2
は、ラベル順序化の一例を示したフローチャートであ
る。また、関数「relabel」の疑似プログラムコードの
一例を以下に示す。
【0094】 (201) relabel() (202) { (203) データベースをスキャンし,各ラベルの出現頻度を数え上げる; (204) forall 頂点ラベルL1 (205) forall 頂点ラベル L2 (206) if L1≠L2 (207) if avg(L1)<avg(L2) (208) L1<L2という順序付けをする (209) else (210) L2<L1という順序付けをする (211) end (212) end (213) end (214) end (215) forall 辺ラベルL1 (216) if avg(L1)<avg(0) (217) f(L1)<f(0)となる数値を割り当てる (218) esle (219) f(0)<f(L1)となる数値を割り当てる (220) end (221) forall 辺ラベル L2 (222) if L1≠L2 (223) if avg(L1)<avg(L2) (224) f(L1)<f(L2)となる数値を割り当てる (225) else (226) f(L2)<f(L1)となる数値を割り当てる (227) end (228) end (229) end (230) end (231) }
【0095】まず、データベースをスキャンし、各頂点
ラベルおよび辺ラベルの出現頻度を数え上げる(行番号
203,ステップ20)。
【0096】次に全ての頂点ラベルL1について、ステ
ップ21からステップ28の間の以下の処理を繰り返す
(行番号204〜214)。全ての頂点ラベルL2につ
いて(行番号205〜213,ステップ22〜27)、
L1と相違するかを判断し(行番号206,ステップ2
3)、相違する場合にはその出現頻度の平均値を比較す
る(行番号207,ステップ24)。L1の平均値の方
がL2の平均値より小さい時にはL1<L2という順序
付けを行い(行番号208,ステップ25)、大きい場
合にはL2<L1という順序づけを行う(行番号21
0,ステップ26)。これにより頂点ラベルの順序化が
行われる。
【0097】次に全ての辺ラベルL1について、ステッ
プ29からステップ39の間の以下の処理を繰り返す
(行番号215〜行番号230)。まず、辺ラベルL1
の出現頻度の平均値と辺が無い場合(「0」の時)の出
現頻度の平均値を比較し(ステップ30,行番号21
6)、L1の出現頻度の平均値が0の出現頻度の平均値
より小さいとき、f(L1)<f(0)となる数値を割
り当てる(ステップ31,行番号217)。L1の出現
頻度の平均値が0の出現頻度の平均値より大きいとき
は、f(L1)>f(0)となる数値を割り当てる(ス
テップ32,行番号219)。次に、全ての辺ラベルL
2について(ステップ33〜38、行番号221〜22
9)、L1と相違するかを判断し(行番号222,ステ
ップ34)、相違する場合にはその出現頻度の平均値を
比較する(行番号223,ステップ35)。L1の平均
値の方がL2の平均値より小さい時にはf(L1)<f
(L2)となる数値を割り当て(行番号224,ステッ
プ36)、大きい場合にはf(L2)<f(L1)とな
る数値を割り当てる(行番号226,ステップ37)。
これにより、辺ラベルの順序化が行える。なお、ここで
の関数fは、0以上の整数値を返す任意の関数である。
【0098】図3は、関数「Newjoin」の処理フローの
一例を示したフローチャートである。また、関数「Newj
oin」の疑似プログラムコードの一例を以下に示す。引
数は大きさkの多頻度グラフを表す隣接行列の集合であ
り、戻り値は大きさk+1の多頻度グラフの候補を表す隣
接行列の集合である。
【0099】 (301) Newjoin(Fk) (302) { (303) Ck+1=NULL; (304) forall Xk∈Fk (305) forall Yk∈Fk (306) if Xk-1=Yk-1 (307) if lb(vi;vi∈V(G(Xk)))= lb(vi;vi∈V(G(Yk))) (308) & lb(vk;vk∈V(G(Xk)))≦lb(vk;vk∈V(G(Yk))) (309) if (lb(vk;vk∈V(G(Xk)))<lb(vk;vk∈V(G(Yk)))) || (310) (lb(vk;vk∈V(G(Xk)))=lb(vk;vk∈V(G(Yk))) & code(Xk)< code(Yk)) (311) if Xkが正準形 (312) Z k+1=JOIN(Xk,Yk); (313) C k+1= C k+1∪Zk+1; (314) end (315) end (316) end (317) end (318) end (319) end (320) return Ck+1; (321) }
【0100】前記プログラムコードにおいて、たとえば
行番号304の「forall」コマンドは、前記したプログ
ラムコードの場合と同様である。よって以下の説明で
は、その主要部についてのみ説明を行う。
【0101】関数「Newjoin」は前記した4つの条件に
合致する大きさkの多頻度グラフの2つを結合して、多頻
度グラフの候補として返す関数である。Xk-1,Yk-1はそ
れぞれXk,Ykの第k行k列を除いた隣接行列を表す。関数
「JOIN」は実際に隣接行列Xkと隣接行列Ykを結合して大
きさk+1の隣接行列を生成する。行番号306のif文
が前記条件1であり(ステップ43)、行番号307,
308のif文が前記条件2を示す(ステップ44)。
また、行番号309,310のif文が前記条件3であ
り(ステップ45)、行番号311のif文が前記条件
4である(ステップ46)。これら条件の全てを満たし
た場合に、関数「JOIN」が実行され(行番号312,ス
テップ47)、集合Ck+1に追加される(行番号313,
ステップ48)。
【0102】図4は、関数「Newcheck」の処理フローの
一例を示したフローチャートである。また、関数「Newc
heck」の疑似プログラムコードの一例を以下に示す。関
数「Newcheck」の引数は多頻度グラフの候補を表す隣接
行列の集合であり、戻り値は部分グラフが全て多頻度グ
ラフである多頻度グラフを表す隣接行列の集合である。
【0103】 (401) NewCheck(Ck) (402) { (403) forall Xk ∈Ck (404) for(m=1;m≦k;m++) (405) Xkの第m行,及び第m列を除いた大きさm-1の隣接行列をXk-1(m)と する. (406) X'k-1=Newnormal(Xk-1(m)); (407) If X'k-1がFk-1に含まれない. (408) XkをCkから削除 (409) break; (410) end (411) end (412) end (413) }
【0104】関数「check」は大きさkの多頻度グラフの
候補に含まれるk個の誘導部分グラフが多頻度グラフで
あるかどうかチェックする。誘導部分グラフは隣接行列
の第m行及び第m列を取り除いた行列であり、ここではXk
-1(m)とする(行番号405,ステップ55)。Fk-1に
は正規形の隣接行列しか含まれていないため、Xk-1(m)
が正規形でない場合にはそれが多頻度グラフを表す隣接
行列であるかどうか容易にチェックすることができな
い。このため関数「Newnormal」で正規化を行う(行番
号406,ステップ56)。正規化されたX'k-1が多頻
度グラフを表す隣接行列でなければG(Xk)は多頻度グラ
フではないのでXkをCkから削除する(行番号407,4
08,ステップ57〜59)。
【0105】図5は、関数「Newnormal」の処理フロー
の一例を示したフローチャートである。また、以下に関
数「Newnormal」の疑似プログラムコードを示す。関数
「Newnormal」の引数は隣接行列であり、戻り値は引数
と同じグラフ構造を表す正規形の隣接行列である。
【0106】 (501) Newnormal(Xk) (502) { (503) m=1; (504) while(m≠k) (505) if Xmが正規形 (506) Xmを正準形に変換する変換行列をSmとする. (507) Xk=f(Sm)TXkf(Sm) (508) m++; (509) else (510) m-1行(m-1列)とm行(m列)を入れ替え (511) m--; (512) end (513) end (514) return Xk; (515) }
【0107】関数「Newnormal」は、Xkを正規化するた
めの関数である。ここで用いている正規形は、前記4つ
の条件を満たす条件下で生成された隣接行列である。Xm
が正規形であるかを判断し(行番号505,ステップ6
4)、正規形の場合は、Xmを正準形に変換する変換行列
をSmとし、Xk=f(Sm)TXkf(Sm)とする(行番号506,5
07,ステップ65,66)。その後カウンタを1つ増
加する(行番号508,ステップ67)。ここで,f(S
m)は数31の式で表される行列で、Inは大きさnの単位
行列である。
【0108】
【数31】
【0109】一方、正規形でなければ、m-1行(m-1列)と
m行(m列)を入れ替え(行番号510,ステップ69)、
カウンタを1つ減ずる(行番号511,ステップ7
0)。
【0110】図6は、関数「canonical」の処理フロー
の一例を示したフローチャートである。また、以下に関
数「canonical」の疑似プログラムコードの一例を示
す。関数「canonical」の引数は多頻度グラフの候補を
表す隣接行列の集合であり、戻り値は多頻度グラフの候
補の正準形である。
【0111】 (601) canonical(Ck) (602) { (603) forall Xk ∈Ck (604) X'k=Xk; (605) for(m=1;m≦k;m++) (606) if(lb(vm;vm∈V(G(Xk)))= (lb(vk;vk∈V(G(Xk))) (607) if(code(X'k)>code((Tk(m)Sk(m))TXk(Tk(m)Sk(m))) (608) X'k=(Tk(m)Sk(m))TXk(Tk(m)Sk(m)); (609) If X'kの正準形が既知 (610) X'k=S'TkX'kS'k; (611) break; (612) end (613) end (614) end (615) end (616) If Xk=X'k; (617) X' k=permutation(Xk); (618) end (619) if Xk≠X'k (620) Xkを正準形とする隣接行列が存在すれば,その正準形をX'kに変更 (621) end (622) end (623) }
【0112】関数「canonical」は大きさkの多頻度グラ
フの候補を表す隣接行列のうち、正準形であるものを返
す。隣接行列Xkから第m行及びm列を除いた隣接行列をXk
-1(m)とし、Xk-1(m)を正規形に変換する変換行列をTk-1
(m)、その正規形を正準形の変換する変換行列をSk-1(m)
とする。Xk-1(m)の正規化は関数Newnormalで求めること
ができる。変換行列Tk-1(m),Sk-1(m)から変換行列Tk
(m),Sk(m)を前記した2.4の方法で生成する。また、
関数permutationは頂点の順列で正準形を求める関数で
あり、G(Xk)の正準形を返す。
【0113】以上のような処理によって、最小支持度以
上の支持度を持つグラフ構造データを効率的に抽出する
ことができる。なお、前記実施の形態において、たとえ
ば関数relabelの処理は必須ではない。また、関数relab
elの処理において、頂点ラベルのみの順序化あるいは辺
ラベルのみの順序化も効果的である。
【0114】4.具体的な適用例 以下、化学の構造相関に本発明を適用した具体例を説明
する。たとえば製薬会社などでは、新規化学物質が次々
と合成されているが、実際に薬となって市場に出回るの
はほんの一部である。それは、合成された物質が身体対
しに有害である、化学物質を処方して身体の目的部位に
到達する前に分解されてしまう、土壌を汚染していまい
自然には分解されないなどの理由からである。新規化学
物質が合成されたときは、その物質の生物に対する毒
性、大気・水・土壌など自然環境における蓄積性、濃縮
性など、評価実験をする必要がある。しかし、実験には
長い月日と膨大な資金が必要となり、全ての有害性デー
タを実験的に測定することは時間的、経済的に困難であ
る。例えば、慢性毒性のデータを動物試験で実験するた
めには1物質あたり1億円以上の費用と1年以上の期間
が必要とされる。そこで、すでに実験が終わった物質か
ら知識(構造活性相関)を抽出し、新規に合成された化
学物質の毒性を予測できれば有用である。近年のゲノム
技術の進歩で、コンピューター上で薬をデザインしよう
とする試みがあるが、本発明は重要な役割を果たすこと
ができる。
【0115】具体的の実データの解析例について述べ
る.本解析では、CPUがPentium−III−6
67MHz(ペンティアムはインテルコーポレーション
の商標)及びメモリが196MBのパーソナル・コンピ
ュータを用いて評価実験を行った。用いたデータは国際
会議PAKDD2000 Workshop(KDD Challenge 2000)で提供さ
れた変異原性のデータである(http://www.slab.dnj.yn
u.ac.jp/challenge2000/)。データは化学構造と変異原
活性の数値属性を含み、230種のデータからなる。変
異原活性以外の変異原活性はInactive(activity=-99)、
Low(-99<activity<0.0)、Medium(0.0< activity<3.0)、
High(activity> 3.0)と4つにカテゴリー化して、化学
構造とは連結しない頂点として各グラフに付け加えた。
さらに、頂点間の距離が2から6の頂点間に仮想的な辺
を付け加えた。すなわち、各トランザクションの頂点は
炭素(C)、水素(H)、酸素(O)、活性:無(Inac
tive)などのラベルをもつ頂点からなり、それらの間に
は単結合、2重結合、芳香族結合、距離2などのラベル
を持つ辺が存在するグラフからなる。
【0116】図7は、最小支持度を変化させたときの正
準形の数と正規形の数の比を示すグラフである。1に近
いほうが望ましい。「AGM」は前記文献2〜5に記載
のAGMアルゴリズムであり、「AGM+頂点ラベル」
は頂点ラベルの順序付けを行ってAGMアルゴリズムを
実行させたときの結果である。「AGM+辺ラベル」は
辺ラベルに割り当てられた整数値を一度割り当て直して
実行させたときの結果であり、「AGM+条件4」はA
GMアルゴリズムに条件4を加えた時の結果である。
「AGM+」は頂点、辺のラベル付け、条件4をAGM
に取り入れて(以下、AGM+アルゴリズムと呼ぶ)実
行した結果である。AGM+アルゴリズムの結果は1に
近く、正準形を求めるのに冗長な正規形を生成しなかっ
たことを示している。
【0117】図8は最小支持度を変化させたときのAG
Mアルゴリズムとの計算時間の比を示したグラフであ
る。AGM+アルゴリズムは、AGMアルゴリズムに比
べ計算時間を35%〜65%削減しているのが分かる。
最小支持度が大きい場合、「AGM+頂点ラベル」は正
規形の数、計算時間の両面で効果があらわれるが、最小
支持度を下げていくと、正規形の数をあまり小さくでき
なくなる。一方、「AGM+条件4」は「AGM+頂点
ラベル」に比べ計算時間の面で効果が小さくなるが、正
規形の数は最小支持度を小さくしても、最小支持度が大
きいときと変わらない。AGM+アルゴリズムは、計算
時間の面で頂点ラベルの順序付けの効果を、正規形の数
で条件4による効果を持ち合わせているといえる。
【0118】以上、本発明者によってなされた発明を発
明の実施の形態に基づき具体的に説明したが、本発明は
前記実施の形態に限定されるものではなく、その要旨を
逸脱しない範囲で種々変更可能であることは言うまでも
ない。
【0119】
【発明の効果】本願で開示される発明のうち、代表的な
ものによって得られる効果は、以下の通りである。すな
わち、AGMアルゴリズムの効率性をさらに向上するこ
とができ、不必要な検索空間の枝狩りの完全性を保ちな
がら、さらに効率よくグラフデータベースから多頻度グ
ラフパターンを抽出することができる。
【図面の簡単な説明】
【図1】本発明の一実施の形態であるAGMアルゴリズ
ムの処理フローの一例を示したフローチャートである。
【図2】ラベル順序化の一例を示したフローチャートで
ある。
【図3】関数「Newjoin」の処理フローの一例を示した
フローチャートである。
【図4】関数「Newcheck」の処理フローの一例を示した
フローチャートである。
【図5】関数「Newnormal」の処理フローの一例を示し
たフローチャートである。
【図6】関数「canonical」の処理フローの一例を示し
たフローチャートである。
【図7】最小支持度を変化させたときの正準形の数と正
規形の数の比を示すグラフである。
【図8】最小支持度を変化させたときのAGMアルゴリ
ズムとの計算時間の比を示したグラフである。
【符号の説明】
…多頻度グラフ候補の隣接行列集合、F…多頻度
グラフの隣接行列集合、G…グラフ、GD…グラフデー
タベース、G…誘導部分グラフ、S…変換行列、X
…第1生成行列、Y…第2生成行列、lb…ラベ
ル、sup…支持度。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 猪口 明博 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 東京基礎研究所 内 Fターム(参考) 5B056 BB21 BB42 HH00 5B075 ND20 NS10 PR06 QS20 UU40

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 グラフ構造データの集合であるグラフデ
    ータベースから、最小支持度以上の支持度を持つ多頻度
    グラフを抽出するグラフ構造データの処理方法であっ
    て、 大きさがk(kは自然数である)の多頻度グラフの隣接
    行列の集合Fから大きさがk+1の多頻度グラフ候補
    の隣接行列ck+1の集合Ck+1を生成する第1ステッ
    プと、 前記多頻度グラフ候補のうち、大きさがkの誘導部分グ
    ラフとして多頻度グラフでないグラフを含む多頻度グラ
    フ候補の隣接行列ck+1を、前記集合Ck+1から削除
    する第2ステップと、 前記隣接行列ck+1のうち、同一のグラフを表現する
    隣接行列の部分集合から唯一の隣接行列c' k+1を選択
    する第3ステップと、 前記隣接行列c' k+1について前記グラフデータベース
    をスキャンし、多頻度グラフである場合は、前記隣接行
    列c' k+1および前記隣接行列c' k+1が表現するグラ
    フと同一の構造を表す隣接行列ck+1を、大きさk+
    1の多頻度グラフの隣接行列の集合Fk+1に追加する
    第4ステップと、を有し、 前記第1ステップにおける前記隣接行列ck+1の生成
    において、 前記生成の基礎となる多頻度グラフの隣接行列XとY
    の第k行k列以外の要素が等しい第1の条件、およ
    び、 前記隣接行列XおよびYが各々表すグラフG
    (X)およびG(Y)の、第k頂点以外の頂点ラベ
    ルが各々等しく、かつ、グラフG(X)の第k頂点の
    ラベルの順序がグラフG(Y)の第k頂点のラベルの
    順序以下である第2の条件、および、 前記グラフG(X)およびG(Y)の第k頂点の頂
    点ラベルが等しく、かつ、前記隣接行列Xのコードが
    前記隣接行列Yのコード以下である第3の条件、およ
    び、 前記隣接行列Xが正準形である第4の条件、 の全ての条件を満たしたときに前記隣接行列Xおよび
    を結合するグラフ構造データの処理方法。
  2. 【請求項2】 前記第2ステップには、前記多頻度グラ
    フ候補の隣接行列から前記誘導部分グラフの隣接行列を
    生成するステップと、 前記誘導部分グラフの隣接行列を正規化するステップ
    と、を含み、 前記正規化ステップには、 正規化対象の隣接行列Xにおいて、m≠kである自然
    数mにつき、Xmが正規形であるかを判断するステップ
    と、 前記判断が真の場合は、前記隣接行列Xmを正準形に変
    換する変換行列Smを用いて前記隣接行列Xを正準形
    に変換し、さらにmを1増加するステップと、 前記判断が偽の場合は、前記隣接行列Xのm−1行お
    よびm−1列をm行およびm列と入れ替え、さらにmを
    1減ずるステップと、 を含む請求項1記載のグラフ構造データの処理方法。
  3. 【請求項3】 前記第1乃至第4ステップに加えて、 前記グラフ構造データの頂点ラベルまたは辺ラベルの順
    序を入れ替えるステップを有する請求項1記載のグラフ
    構造データの処理方法。
  4. 【請求項4】 前記頂点ラベルの入れ替えは、前記各頂
    点ラベルがトランザクションに出現する頻度の平均値の
    昇順に順序付ける請求項3記載のグラフ構造データの処
    理方法。
  5. 【請求項5】 前記辺ラベルの入れ替えステップには、 前記辺ラベルがトランザクションに出現する頻度の平均
    値と前記辺が存在しない場合の出現頻度の平均値とを比
    較し、平均値の少ない方のラベルを低く順序づけるステ
    ップと、 前記各辺ラベルがトランザクションに出現する頻度の平
    均値の昇順に順序付けるステップと、 を有する請求項3記載のグラフ構造データの処理方法。
  6. 【請求項6】 グラフ構造データの集合であるグラフデ
    ータベースから、最小支持度以上の支持度を持つ多頻度
    グラフを抽出するグラフ構造データの処理システムであ
    って、 大きさがk(kは自然数である)の多頻度グラフの隣接
    行列の集合Fから大きさがk+1の多頻度グラフ候補
    の隣接行列ck+1の集合Ck+1を生成する第1手段
    と、 前記多頻度グラフ候補のうち、大きさがkの誘導部分グ
    ラフとして多頻度グラフでないグラフを含む多頻度グラ
    フ候補の隣接行列ck+1を、前記集合Ck+1から削除
    する第2手段と、 前記隣接行列ck+1のうち、同一のグラフを表現する
    隣接行列の部分集合から唯一の隣接行列c' k+1を選択
    する第3手段と、 前記隣接行列c' k+1について前記グラフデータベース
    をスキャンし、多頻度グラフである場合は、前記隣接行
    列c' k+1および前記隣接行列c' k+1が表現するグラ
    フと同一の構造を表す隣接行列ck+1を、大きさk+
    1の多頻度グラフの隣接行列の集合Fk+1に追加する
    第4手段と、を有し、 前記第1手段における前記隣接行列ck+1の生成にお
    いて、 前記生成の基礎となる多頻度グラフの隣接行列XとY
    の第k行k列以外の要素が等しい第1の条件、およ
    び、 前記隣接行列XおよびYが各々表すグラフG
    (X)およびG(Y)の、第k頂点以外の頂点ラベ
    ルが各々等しく、かつ、グラフG(X)の第k頂点の
    ラベルの順序がグラフG(Y)の第k頂点のラベルの
    順序以下である第2の条件、および、 前記グラフG(X)およびG(Y)の第k頂点の頂
    点ラベルが等しく、かつ、前記隣接行列Xのコードが
    前記隣接行列Yのコード以下である第3の条件、およ
    び、 前記隣接行列Xが正準形である第4の条件、 の全ての条件を満たしたときに前記隣接行列Xおよび
    を結合するグラフ構造データの処理システム。
  7. 【請求項7】 前記第2手段には、前記多頻度グラフ候
    補の隣接行列から前記誘導部分グラフの隣接行列を生成
    する手段と、 前記誘導部分グラフの隣接行列を正規化する手段と、を
    含み、 前記正規化手段には、 正規化対象の隣接行列Xにおいて、m≠kである自然
    数mにつき、Xmが正規形であるかを判断する手段と、 前記判断が真の場合は、前記隣接行列Xmを正準形に変
    換する変換行列Smを用いて前記隣接行列Xを正準形
    に変換し、さらにmを1増加する手段と、 前記判断が偽の場合は、前記隣接行列Xのm−1行お
    よびm−1列をm行およびm列と入れ替え、さらにmを
    1減ずる手段と、 を含む請求項6記載のグラフ構造データの処理システ
    ム。
  8. 【請求項8】 前記第1乃至第4手段に加えて、 前記グラフ構造データの頂点ラベルまたは辺ラベルの順
    序を入れ替える手段を有する請求項6記載のグラフ構造
    データの処理システム。
  9. 【請求項9】 前記頂点ラベルの入れ替えは、前記各頂
    点ラベルがトランザクションに出現する頻度の平均値の
    昇順に順序付ける請求項8記載のグラフ構造データの処
    理システム。
  10. 【請求項10】 前記辺ラベルの入れ替え手段には、 前記辺ラベルがトランザクションに出現する頻度の平均
    値と前記辺が存在しない場合の出現頻度の平均値とを比
    較し、平均値の少ない方のラベルを低く順序づける手段
    と、 前記各辺ラベルがトランザクションに出現する頻度の平
    均値の昇順に順序付ける手段と、 を有する請求項8記載のグラフ構造データの処理システ
    ム。
  11. 【請求項11】 グラフ構造データの集合であるグラフ
    データベースから、最小支持度以上の支持度を持つ多頻
    度グラフを抽出する機能をコンピュータに実現させるた
    めのプログラムであって、 大きさがk(kは自然数である)の多頻度グラフの隣接
    行列の集合Fから大きさがk+1の多頻度グラフ候補
    の隣接行列ck+1の集合Ck+1を生成する第1の機能
    と、 前記多頻度グラフ候補のうち、大きさがkの誘導部分グ
    ラフとして多頻度グラフでないグラフを含む多頻度グラ
    フ候補の隣接行列ck+1を、前記集合Ck+1から削除
    する第2の機能と、 前記隣接行列ck+1のうち、同一のグラフを表現する
    隣接行列の部分集合から唯一の隣接行列c' k+1を選択
    する第3の機能と、 前記隣接行列c' k+1について前記グラフデータベース
    をスキャンし、多頻度グラフである場合は、前記隣接行
    列c' k+1および前記隣接行列c' k+1が表現するグラ
    フと同一の構造を表す隣接行列ck+1を、大きさk+
    1の多頻度グラフの隣接行列の集合Fk+1に追加する
    第4の機能と、を有し、 前記第1の機能における前記隣接行列ck+1の生成に
    おいて、 前記生成の基礎となる多頻度グラフの隣接行列XとY
    の第k行k列以外の要素が等しい第1の条件、およ
    び、 前記隣接行列XおよびYが各々表すグラフG
    (X)およびG(Y)の、第k頂点以外の頂点ラベ
    ルが各々等しく、かつ、グラフG(X)の第k頂点の
    ラベルの順序がグラフG(Y)の第k頂点のラベルの
    順序以下である第2の条件、および、 前記グラフG(X)およびG(Y)の第k頂点の頂
    点ラベルが等しく、かつ、前記隣接行列Xのコードが
    前記隣接行列Yのコード以下である第3の条件、およ
    び、 前記隣接行列Xが正準形である第4の条件、 の全ての条件を満たしたときに前記隣接行列Xおよび
    を結合する、コンピュータが実行可能なプログラ
    ム。
JP2001154686A 2001-05-23 2001-05-23 グラフ構造データの処理方法、処理システムおよびプログラム Pending JP2002351898A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001154686A JP2002351898A (ja) 2001-05-23 2001-05-23 グラフ構造データの処理方法、処理システムおよびプログラム
US10/154,516 US6985890B2 (en) 2001-05-23 2002-05-23 Graph structured data processing method and system, and program therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001154686A JP2002351898A (ja) 2001-05-23 2001-05-23 グラフ構造データの処理方法、処理システムおよびプログラム
US10/154,516 US6985890B2 (en) 2001-05-23 2002-05-23 Graph structured data processing method and system, and program therefor

Publications (1)

Publication Number Publication Date
JP2002351898A true JP2002351898A (ja) 2002-12-06

Family

ID=32109406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001154686A Pending JP2002351898A (ja) 2001-05-23 2001-05-23 グラフ構造データの処理方法、処理システムおよびプログラム

Country Status (2)

Country Link
US (1) US6985890B2 (ja)
JP (1) JP2002351898A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237869A (ja) * 2009-03-30 2010-10-21 Nec Corp ネットワークデータ管理装置、ネットワークデータ管理システム、データ管理方法、及びそのプログラム
JP2010277332A (ja) * 2009-05-28 2010-12-09 Nippon Telegr & Teleph Corp <Ntt> 共通クエリグラフパターン生成方法、共通クエリグラフパターン生成装置及び共通クエリグラフパターン生成プログラム
JP2017097698A (ja) * 2015-11-26 2017-06-01 富士通株式会社 グラフ処理プログラム、グラフ処理方法、および情報処理装置

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7171339B2 (en) * 2000-07-12 2007-01-30 Cornell Research Foundation, Inc. Method and system for analyzing multi-variate data using canonical decomposition
US7308469B2 (en) * 2001-06-15 2007-12-11 Robert Joseph Harley Method for generating secure elliptic curves using an arithmetic-geometric mean iteration
KR100500329B1 (ko) * 2001-10-18 2005-07-11 주식회사 핸디소프트 워크플로우 마이닝 시스템 및 방법
US7974978B2 (en) * 2004-04-30 2011-07-05 International Business Machines Corporation System and method for graph indexing
WO2008044242A2 (en) * 2006-07-28 2008-04-17 Persistent Systems Private Limited Gene expression analysis using genotype-pheontype based programming
US7627432B2 (en) 2006-09-01 2009-12-01 Spss Inc. System and method for computing analytics on structured data
US7925564B2 (en) * 2008-07-31 2011-04-12 Hartford Fire Insurance Company Computer system and method for determining optimal asset allocation
US8126833B2 (en) * 2008-09-11 2012-02-28 Behavioral Recognition Systems, Inc. Detecting anomalous events using a long-term memory in a video analysis system
US8121968B2 (en) * 2008-09-11 2012-02-21 Behavioral Recognition Systems, Inc. Long-term memory in a video analysis system
US20100293203A1 (en) * 2009-05-18 2010-11-18 Henry Roberts Williams User interface for graph database data
US8674993B1 (en) 2009-10-14 2014-03-18 John Fleming Graph database system and method for facilitating financial and corporate relationship analysis
US8819078B2 (en) * 2012-07-13 2014-08-26 Hewlett-Packard Development Company, L. P. Event processing for graph-structured data
US8996492B2 (en) 2012-12-13 2015-03-31 Sap Se Graph traversal operator inside a column store
US9430443B1 (en) * 2015-05-08 2016-08-30 Norwegian University Of Science And Technology Systematic coding technique
US10437810B2 (en) 2016-09-30 2019-10-08 Microsoft Technology Licensing, Llc Systems and methods for maintaining cardinality schema to prevent corruption in databases indifferent to cardinality
US10324961B2 (en) 2017-01-17 2019-06-18 International Business Machines Corporation Automatic feature extraction from a relational database
US10540398B2 (en) * 2017-04-24 2020-01-21 Oracle International Corporation Multi-source breadth-first search (MS-BFS) technique and graph processing system that applies it
US11036797B2 (en) * 2017-10-12 2021-06-15 Adtran, Inc. Efficient storage and utilization of a hierarchical data set
US10740935B2 (en) * 2019-01-11 2020-08-11 International Business Machines Corporation Molecular structure generation with substructure representations
US10621235B1 (en) * 2019-05-13 2020-04-14 Redis Labs Ltd. Methods, systems, and media for resolving database queries using algebraic expressions using matrix-matrix multiplication
CN115294402B (zh) * 2022-08-24 2023-08-11 合肥市正茂科技有限公司 一种基于去冗余多阶混合训练的半监督车辆分类方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328186A (ja) * 1997-11-11 1999-11-30 Mitsubishi Electric Corp 相関ルール生成方法および相関ルール生成装置
JP2001202383A (ja) * 2000-01-21 2001-07-27 Mitsubishi Electric Corp データマイニング装置、データマイニング方法および記録媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3193658B2 (ja) * 1997-02-19 2001-07-30 インターナショナル・ビジネス・マシーンズ・コーポレ−ション データ間結合ルール導出方法及び装置、及び直交凸領域切出方法及び装置
JPH11345124A (ja) * 1998-05-29 1999-12-14 Ibm Japan Ltd データベース内のルール決定方法及び装置
US6311179B1 (en) * 1998-10-30 2001-10-30 International Business Machines Corporation System and method of generating associations
US6711577B1 (en) * 2000-10-09 2004-03-23 Battelle Memorial Institute Data mining and visualization techniques
US20020174087A1 (en) * 2001-05-02 2002-11-21 Hao Ming C. Method and system for web-based visualization of directed association and frequent item sets in large volumes of transaction data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328186A (ja) * 1997-11-11 1999-11-30 Mitsubishi Electric Corp 相関ルール生成方法および相関ルール生成装置
US6385608B1 (en) * 1997-11-11 2002-05-07 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for discovering association rules
JP2001202383A (ja) * 2000-01-21 2001-07-27 Mitsubishi Electric Corp データマイニング装置、データマイニング方法および記録媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237869A (ja) * 2009-03-30 2010-10-21 Nec Corp ネットワークデータ管理装置、ネットワークデータ管理システム、データ管理方法、及びそのプログラム
JP2010277332A (ja) * 2009-05-28 2010-12-09 Nippon Telegr & Teleph Corp <Ntt> 共通クエリグラフパターン生成方法、共通クエリグラフパターン生成装置及び共通クエリグラフパターン生成プログラム
JP2017097698A (ja) * 2015-11-26 2017-06-01 富士通株式会社 グラフ処理プログラム、グラフ処理方法、および情報処理装置

Also Published As

Publication number Publication date
US6985890B2 (en) 2006-01-10
US20030225743A1 (en) 2003-12-04

Similar Documents

Publication Publication Date Title
JP2002351898A (ja) グラフ構造データの処理方法、処理システムおよびプログラム
Delmelle Differentiating pathways of neighborhood change in 50 US metropolitan areas
Wang et al. Towards heterogeneous temporal clinical event pattern discovery: a convolutional approach
Strehl et al. Distance based clustering of association rules
Stanisz et al. Linguistic data mining with complex networks: A stylometric-oriented approach
Christensen et al. Comparing community detection algorithms in psychological data: A Monte Carlo simulation
de Castro et al. Applying biclustering to text mining: an immune-inspired approach
Mackinnon et al. Applications: Data mining and knowledge discovery in databases–an overview
Bell Tree-based methods: The use of classification trees to predict species distributions
JP2007004233A (ja) 文章分類装置、文章分類方法、およびプログラム
Abdulsalam et al. Data mining in market basket transaction: An association rule mining approach
Chen et al. Improved heuristics for minimum-flip supertree construction
US20050021554A1 (en) Classification factor detection
Quantin et al. Classification and regression trees on aggregate data modeling: an application in acute myocardial infarction
Ojala et al. Randomization methods for assessing data analysis results on real‐valued matrices
Cvek et al. Multidimensional visualization tools for analysis of expression data
Höppner Association rules
Chavalarias et al. The reconstruction of science phylogeny
Banerji et al. An efficient classification algorithm for real estate domain
KR20170001171A (ko) 소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법
Abari et al. Privacy preserving in association rule mining
Stattner et al. How to extract frequent links with frequent itemsets in social networks?
Biplob et al. Hybrid Feature Selection Algorithm to Support Health Data Warehousing
Sonkar et al. An algorithm frequently mines a set of items for big data to enhance efficiency
Ojala Randomization algorithms for assessing the significance of data mining results

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050428

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050802

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051019

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20051026