(57)【特許請求の範囲】
【請求項１】
データベースを記憶する記憶装置と、
データ処理装置と、
出力装置と、
を備え、
前記データ処理装置は、
前記データベースにおける属性と値のペアであるアイテムからなり、前記データベースでの頻度が、予め定められた所定の閾値以上のフリーアイテムセットを生成するフリーアイテムセット生成手段と、
ルール候補として、
条件部を、前記フリーアイテムセットとし、
帰結部を、前記条件部の前記フリーアイテムセットと属性を共有しないアイテムとし、
前提部を、前記条件部の前記フリーアイテムセットにも前記帰結部の前記アイテムにも含まれない属性としたルールを生成して記憶部に保持するルール候補生成手段と、
前記ルール候補生成手段により生成されたルールを、前記データベースと照合し、予め定められた所定の確信度の閾値以上でマッチしている場合、妥当であると判定するルールの妥当性判定手段と、
前記ルールの妥当性判定手段で妥当であると判定されたルールに対して極小であるか否か判定し、極小である場合、前記出力装置に出力するルールの極小性判定手段と、
を備えた、ことを特徴とするルール発見システム。
【請求項２】
前記ルール候補生成手段は、前記条件部を前記フリーアイテムセットとし、前記帰結部を前記条件部に含まれない属性に固定した上で、前記前提部の属性集合を、深さ優先探索で求める、ことを特徴とする請求項１記載のルール発見システム。
【請求項３】
前記ルールの極小性判定手段は、
前記ルールの妥当性判定手段で妥当であると判定されたルール自体が極小であるか、あるいは、前記ルールの条件部から一つのアイテムを除いて得られるルールが妥当でない場合に、極小と判定して、前記ルールを前記出力装置に出力し、
前記ルールの妥当性判定手段で妥当であると判定されたルールが、既知のルールに対して冗長である場合には、前記妥当であると判定されたルールを、前記出力装置に出力しない、
ように制御する、ことを特徴とする請求項１又は２記載のルール発見システム。
【請求項４】
前記頻度の閾値と前記確信度の閾値を、設定パラメータとして入力する入力装置を備えている、ことを特徴とする請求項１又は２記載のルール発見システム。
【請求項５】
前記ルールは、ＣＦＤ（Conditional Functional Dependency）で表現されたルールである、ことを特徴とする請求項１乃至４のいずれか１項に記載のルール発見システム。
【請求項６】
フリーアイテムセット生成手段と、ルール候補生成手段と、妥当なルール候補生成手段と、ルールの極小性判定手段とを備えたデータ処理装置により、データベースからルールを発見するにあたり、
（ａ）前記フリーアイテムセット生成手段が、前記データベースを読み込み、前記データベースにおける属性と値のペアであるアイテムからなり、前記データベースでの頻度が、予め定められた所定の閾値以上のフリーアイテムセットを生成して記憶部に記憶し、
（ｂ）前記ルール候補生成手段は、ルール候補として、
条件部を、前記フリーアイテムセットとし、
帰結部を、前記条件部の前記フリーアイテムセットと属性を共有しないアイテムとし、
前提部を、前記条件部の前記フリーアイテムセットにも前記帰結部の前記アイテムにも含まれない属性としたルールを生成して記憶部に保持し、
（ｃ）前記ルールの妥当性判定手段は、前記ルール候補生成手段で生成されたルールを、前記データベースと照合し、予め定められた所定の確信度の閾値以上でマッチしている場合、妥当であると判定し、
（ｄ）前記ルールの極小性判定手段は、前記妥当なルール候補生成手段によって妥当であると判定されたルールに対して極小であるか否か判定し、極小である場合、出力装置に出力する、ことを特徴とするルール発見方法。
【請求項７】
前記ルール候補生成手段は、前記条件部を前記フリーアイテムセットとし、前記帰結部を前記条件部に含まれない属性に固定した上で、前記前提部の属性集合を、深さ優先探索で求める、ことを特徴とする請求項６記載のルール発見方法。
【請求項８】
前記ルールの極小性判定手段は、前記ルールの妥当性判定手段で妥当であると判定されたルール自体が極小であるか、あるいは、前記ルールの条件部から一つのアイテムを除いて得られるルールが妥当でない場合に、極小と判定して前記出力装置に出力し、
前記ルールの妥当性判定手段で妥当であると判定されたルールが、既知のルールに対して冗長である場合には、前記妥当であると判定されたルールを前記出力装置に出力しない、ことを特徴とする請求項６又は７記載のルール発見方法。
【請求項９】
（ａ）データベースを読み込み、前記データベースにおける属性と値のペアであるアイテムからなり、前記データベースでの頻度が、予め定められた所定の閾値以上のフリーアイテムセットを生成して記憶部に記憶する処理と、
（ｂ）ルール候補として、
条件部を、前記フリーアイテムセットとし、
帰結部を、前記条件部の前記フリーアイテムセットと属性を共有しないアイテムとし、
前提部を、前記条件部の前記フリーアイテムセットにも前記帰結部の前記アイテムにも含まれない属性としたルールを生成して記憶部に保持する処理と、
（ｃ）前記生成されたルールを、前記データベースと照合し、予め定められた所定の確信度の閾値以上でマッチしている場合、妥当であると判定する処理と、
（ｄ）前記妥当であると判定されたルールに対して、極小であるか否か判定し、極小である場合、出力装置に出力する処理と、
をコンピュータに実行させるプログラム。
【請求項１０】
データベースを読み出し、前記データベースにおける属性と値のペアであるアイテムからなり、前記データベースでの頻度が、予め定められた所定の閾値以上のフリーアイテムセットを生成するフリーアイテムセット生成手段と、
ルール候補として、条件部をフリーアイテムセットとし、帰結部を前記条件部に含まれない属性に固定し、前記条件部の前記フリーアイテムセットにも前記帰結部の前記アイテムにも含まれない前提部の属性集合を深さ優先探索で求めたルールを、記憶部に保持するルール候補生成手段と、
前記ルール候補生成手段により生成された前記ルールを前記データベースと照合し、予め定められた所定の確信度の閾値以上でマッチしている場合、妥当であると判定するルールの妥当性判定手段と、
前記ルールの妥当性判定手段で妥当であると判定されたルール自体が極小であるか、あるいは、前記ルールの条件部から一つのアイテムを除いて得られるルールが妥当でない場合に、極小と判定して出力装置に出力し、前記妥当であると判定されたルールが、既知のルールに対して冗長である場合には、前記妥当であると判定されたルールを前記出力装置に出力しないルールの極小性判定手段と、
を備えた、ことを特徴とするルール発見装置。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についての記載）
本発明は、日本国特許出願：特願２０１２−１１０９２３号（２０１２年５月１４日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。【０００２】
本発明は、ルールの発見を行う技術に関し、特にデータベースのルールの発見を行うシステムと方法と装置並びにプログラムに関する。
【背景技術】
【０００３】
データベースのルールの発見は、例えばルールをＣＦＤ（Conditional Function Dependency：条件付関数従属性）として表現するものとし、生成されたＣＦＤルールの候補から、データベースの内容に合致したＣＦＤルールを出力する。以下では、発明の理解の前提となるＣＦＤについて概説する。
【０００４】
ＣＦＤは、データ属性間の従属性を表す関数従属性（Functional Dependency：「ＦＤ」と略記される）が、条件によって指定されたタプル集合について成立することを表すルールである。ルールの左辺（ＬＨＳ：Left Hand Side）である条件部、前提部と、ルールの右辺（ＲＨＳ：Right Hand Side）の帰結部における属性値の指定からなる。なお、条件部、帰結部は、それぞれ条件節、従属節ともいう。
【０００５】
条件部は、データの部分集合（タプル集合）を指定し、属性Ｘが属性値ｘであるということを「Ｘ＝ｘ」と表す。ここで、「ｘ」は属性値がある特定の値であることを意味する。このような、属性値の表現を「コンスタント（Constant）である」という（なお、「コンスタント（Constant）」は例えば「定数」を意味する）。【０００６】
また、前提部は、属性のみの指定からなり、属性値は特定の値をとらない（すなわち、任意の値とマッチすることを表すワイルドカード）ことを「Ｘ＝ _ 」と表す。このような属性値の表現を「バリアブル（Variable）である」という（なお、「バリアブル（Variable）」は例えば「変数」を意味する）。ここで、‘＿’は「unnamed variable」（無名変数）ともいう。【０００７】
帰結部には、２種類ある。
（Ａ）属性と属性値の指定からなるもの（例えば、以下のルール１）と、
（Ｂ）属性のみを指定するもの（例えば、以下のルール２）
である。【０００８】
（Ａ）の場合、例えば「Ａ＝ａ」、
（Ｂ）の場合、例えば「Ａ＝＿」等と表される。なお、帰結部に、属性値の指定がある場合には、前提部は省略することができる。また、前提部、帰結部は、複数の属性とそれぞれの属性値の指定からなることもある。以下にルールの例を示す。【０００９】
ルール１：Ｘ１ → Ａ（ｘ１ || ａ）
ルール２：Ｘ１, Ｘ２ → Ａ（ｘ１, _ || _ ）【００１０】
ルール１は、「属性Ｘ１が属性値ｘ１のとき、属性Ａは属性値ａである」という意味のルールである。ルール１が成り立つとき、条件部に当てはまるタプル集合において、帰結部が指定された値であることを表す。つまり、条件Ｘ１＝ｘ１を満たすタプル集合の全てのタプルにおいて、ｔ［Ａ］＝ａである（なお、ｔ［Ａ］は、属性Ａのタプルを表している）。このように、帰結部が指定された値に決まるルールを、「コンスタントＣＦＤ」(Constant CFD)という。【００１１】
ルール２は、「属性Ｘ１が属性値ｘ１のとき、属性Ｘ２によって属性Ａが決まる」という意味のルールである。ルール２が成り立つとき、条件部に当てはまるタプル集合において、前提部と帰結部で指定された属性間に従属性があることを表す。つまり、条件「Ｘ１＝ｘ１」を満たすタプル集合の中の任意のタプルペアｔ１、ｔ２について、ｔ１［Ｘ２］＝ｔ２［Ｘ２］であれば、ｔ１［Ａ］＝ｔ２［Ａ］となる。このように帰結部が指定された値に決まらないが、属性間に従属性を持つようなルールを「バリアブルＣＦＤ」（variable CFD）という。すなわち、パタンタプルの||の右側が「unnamed variable」‘＿’の場合（ｔｐ［Ａ］＝＿）、バリアブルＣＦＤという。
【００１２】
ルール１のパタンタプル（ｘ1 || ａ）における記号‘||’は、左辺のＸ１と右辺のＡの属性値を分離する。なお、ルール１の“Ｘ１→Ａ（ｘ１ || ａ）”を、“（Ｘ→Ａ，（ｘ || ａ））”と表記する例もあるが、外側の括弧とカンマの有無が相違するだけであり、同一のルールを表すものであることは自明である。同様に、ルール２の“Ｘ１，Ｘ２→Ａ（ｘ１，_|| _ )”を“（［Ｘ１，Ｘ２］→Ａ，（ｘ１，_|| _ )）”とも表記する。【００１３】
与えられたデータに対してＣＦＤがどれだけ有効なルールであるかを示す指標として、例えば支持度（Support）や確信度（Confidence）が用いられている。支持度（Support）は、ＣＦＤの条件部と前提部が一致するタプル数である。【００１４】
確信度（Confidence）は、条件部と前提部が一致するタプル数の中で、ＣＦＤのルールが成立するタプル数の割合である。【００１５】
複数のＣＦＤが与えられた時、「left-reduced」（レフト・レデュースト）、且つ、「most-general」（モストジェネラル）の２つの条件を満たすＣＦＤを、「minimaｌ」（ミニマル）であるという。【００１６】
「left-reduced」について説明する。複数のＣＦＤが与えられた時、いかなるＣＦＤの左辺（ＬＨＳ）の属性セットも、他のＣＦＤの左辺の属性セットを包含しないＣＦＤを「left-reduced」であるという。【００１７】
例えば、以下のルール３、ルール４が与えられた時、ルール４の左辺は、ルール３の左辺を包含している（Ｘ１⊂Ｘ１，Ｘ２）ことから、ルール４は、「left-reduced」ではない。逆に、ルール３の左辺は、ルール４の左辺を包含しないので、ルール３は「left-reduced」であるという。この場合、ルール４は、ルール３に対して、冗長なＣＦＤとして削除することができる。【００１８】
ルール３：  Ｘ１，Ｙ→Ａ（ｘ１，＿ || ＿）
ルール４：  Ｘ１，Ｘ２，Ｙ→Ａ（ｘ１，ｘ２ || ＿）【００１９】
次に、「most-general」について説明する。複数のＣＦＤが与えられた時、いかなるＣＦＤの左辺に含まれる属性値の定数も‘＿’（Variable）に更新できない場合、「most-general」であるという。【００２０】
例えば、以下のルール５、ルール６が与えられた時、ルール６の属性値ｘ２をバリアブル（Variable）に置き換えることで、ルール５を得ることができる。このため、ルール６は「most-general」でない。逆に、ルール５は「most-general」であるという。この場合、ルール６は、ルール５に対して冗長なＣＦＤとして削除することができる。【００２１】
ルール５：  Ｘ１，Ｘ２→Ａ（ｘ１，＿ || ａ）
ルール６：  Ｘ１，Ｘ２→Ａ（ｘ１，ｘ２ || ａ）【００２２】
以上でＣＦＤの概説を終える。【００２３】
データベースからルールを発見する装置は、ＣＦＤを保存する磁気ディスク等の記憶手段（記憶部）と、ＣＦＤの候補を生成し、ＣＦＤ候補がデータベースの内容に合致しているか判定する演算手段（演算部）と、内容に合致していると判定されたＣＦＤを記憶装置に保存する保存手段（保存部）から構成される。記憶手段は、ルール発見アルゴリズムで得られたＣＦＤを保存する。演算手段は、チェックの対象とするＣＦＤの候補を生成し、それがデータベースの内容に合致しているかどうか調べ、合致している場合、妥当（ｖａｌｉｄ）なＣＦＤとして出力する。保存手段は、得られた妥当なＣＦＤを、記憶装置に保存する。【００２４】
データベースのルールの発見手法として、例えば非特許文献１に記載されているように、
（１）フリーアイテムセット（free itemset）と、それに対応するクローズド・アイテムセット（closed itemset）からコンスタントＣＦＤ（constant CFD)の候補を生成する手法、
（２）属性と値のペアのリストを、幅優先探索（Breadth First Search）により生成し、そのうちの１つの項を従属項（Ａとする）とし、残りを条件部（Ｘとする）に置き、
式：Ｘ→Ａ
を得ることによって、ＣＦＤの候補を生成する手法、
（３）フリーアイテムセット（free itemset）を、条件項（条件部）とし、フリーアイテムセット（free itemset）に含まれない１つの属性を従属項（帰結部）に置き、それ以外に条件項に加える属性を深さ優先探索（Depth First Search）することで、ＣＦＤの候補を生成する手法、
等がある。【００２５】
フリーアイテムセット（free itemset）とは、アイテム（item）の集合であり、任意の１つ以上のアイテム（item）を除去することで、頻度が真に増加してしまうものである。データベース中に出現している属性と値のペアを「アイテム」（item）と呼び、アイテムの集合をアイテムセット（itemset）という。【００２６】
前述したように、データベースの内容とＣＦＤがどの程度一致しているかを表す指標として、確信度がある。【００２７】
データベースの内容と完全には一致していないが、高い確信度（confidence）を持つルール（ＣＦＤ）の発見手法として、非特許文献２には、幅優先探索（breadth first search）を用いて、確信度（confidence）が閾値以上のＣＦＤ（以下、「approximate CFD」という）（「ほぼ成り立つ」ＣＦＤ）を発見する、手法が開示されている。【００２８】
なお、ルールの妥当性のチェックとして、例えば特許文献１には、条件部と結論部からなるルールを格納するルールベースと、ルールの適用結果に関する事例情報を格納する事例情報データベースと、ルールとルールを満たす事例情報を関係付ける関係付け部と、妥当性チェック対象のルールの条件部をキーとして事例情報データベースから事例情報集合を事例検索部に検索させ、事例情報集合において該ルールの結論部を満たす事例情報の割合を算出し、該割合に基づき、ルールの妥当性をチェックする妥当性チェック部と、を備えたルールベース管理装置が開示されている。また、特許文献２には、リレーションの属性間の関数従属性（ＦＤ）を見つけ出し、リレーション分割による正規化を行う構成が開示されている。
【先行技術文献】
【特許文献】
【００２９】
【特許文献１】国際公開第２００４／３６４９６号公報
【特許文献２】特開平６−１１０７４９号公報
【非特許文献】
【００３０】
【非特許文献１】Wenfei Fan et al., “Discovering Conditional Functional Dependencies,” pp.1231-1234, IEEE International Conference on Data Engineering, 2009  ［2012年4月9日検索］インターネットURL＜http://homepages.inf.ed.ac.uk/fgeerts/pdf/icde09.pdf＞
【非特許文献２】Chiang et al., “Discovering Data Quality Rules,” in VLDB, 2008、［2012年4月9日検索］インターネットURL＜http://dblab.cs.toronto.edu/~fchiang/docs/vldb08.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【００３１】
以下に、本発明者によって為された関連技術の分析を記載する。【００３２】
第１の問題点は、非特許文献１に開示されているＣＦＤ発見アルゴリズムにより得られるＣＦＤは、データベースに対して完全に成り立つ、つまり、確信度が１のもののみであり、データベースに対して「ほぼ成り立つ」ものを列挙できない、ということである。【００３３】
第２の問題点は、非特許文献２に開示されている「approximate CFD」発見アルゴリズムは、計算時間が極端に長くなる、ということである。その理由は、大規模な、特に、属性数の大きいデータベースに対して、生成されるＣＦＤ（approximate CFD）の候補の個数が組合せ爆発（combinational explosion）を起こしてしまうためである。【００３４】
本発明は、上記問題点に鑑みて創案されたものであって、その目的は、データベースの内容を把握し、あるいは修正を行うために有用なルールの集合を効率よく得ることができるシステム、装置、方法、プログラムを提供することにある。
【課題を解決するための手段】
【００３５】
本発明によれば、データベースを記憶する記憶装置と、データ処理装置と、出力装置と、を備え、前記データ処理装置は、前記データベースにおける属性と値のペアであるアイテムからなり、前記データベースでの頻度が、予め定められた所定の閾値以上のフリーアイテムセットを生成するフリーアイテムセット生成手段と、
ルール候補として、
条件部を、前記フリーアイテムセットとし、
帰結部を、前記条件部の前記フリーアイテムセットと属性を共有しないアイテムとし、
前提部を、前記条件部の前記フリーアイテムセットにも前記帰結部の前記アイテムにも含まれない属性としたルールを生成して記憶部に保持するルール候補生成手段と、
前記ルール候補生成手段により生成されたルールを、前記データベースと照合し、予め定められた所定の確信度の閾値以上でマッチしている場合、妥当であると判定するルールの妥当性判定手段と、
前記ルールの妥当性判定手段で妥当であると判定されたルールに対して極小であるか否か判定し、極小である場合、前記出力装置に出力するルールの極小性判定手段と、を備えたルール発見システムが提供される。【００３６】
本発明の別の側面によれば、フリーアイテムセット生成手段と、ルール候補生成手段と、妥当なルール候補生成手段と、ルールの極小性判定手段とを備えたデータ処理装置によりデータベースからルールを発見するにあたり、
（ａ）前記フリーアイテムセット生成手段が、前記データベースを読み込み、前記データベースにおける属性と値のペアであるアイテムからなり、前記データベースでの頻度が、予め定められた所定の閾値以上のフリーアイテムセットを生成して記憶部に記憶し、
（ｂ）前記ルール候補生成手段は、ルール候補として、
条件部を、前記フリーアイテムセットとし、
帰結部を、前記条件部の前記フリーアイテムセットと属性を共有しないアイテムとし、
前提部を、前記条件部の前記フリーアイテムセットにも前記帰結部の前記アイテムにも含まれない属性としたルールを生成して記憶部に保持し、
（ｃ）前記ルールの妥当性判定手段は、前記ルール候補生成手段で生成されたルールを、前記データベースと照合し、予め定められた所定の確信度の閾値以上でマッチしている場合、妥当であると判定し、
（ｄ）前記ルールの極小性判定手段は、前記妥当なルール候補生成手段によって妥当であると判定されたルールに対して極小であるか否か判定し、極小である場合、出力装置に出力する、ルール発見方法が提供される。【００３７】
本発明の別の側面によれば、
（ａ）データベースを読み込み、前記データベースにおける属性と値のペアであるアイテムからなり、前記データベースでの頻度が、予め定められた所定の閾値以上のフリーアイテムセットを生成して記憶部に記憶する処理と、
（ｂ）ルール候補として、
条件部を、前記フリーアイテムセットとし、
帰結部を、前記条件部の前記フリーアイテムセットと属性を共有しないアイテムとし、
前提部を、前記条件部の前記フリーアイテムセットにも前記帰結部の前記アイテムにも含まれない属性としたルールを生成して記憶部に保持する処理と、
（ｃ）前記生成されたルールを前記データベースと照合し、予め定められた所定の確信度の閾値以上でマッチしている場合、妥当であると判定する処理と、
（ｄ）前記妥当であると判定されたルールに対して、極小であるか否か判定し、極小である場合、出力装置に出力する処理と、
をコンピュータに実行させるルール発見プログラムが提供される。本発明によれば、ルール発見プログラムを記録したメモリデバイス（半導体ストレージ）、磁気／光ストレージ媒体（デバイス）が提供される。【００３８】
本発明の別の側面によれば、データベースを読み出し、前記データベースにおける属性と値のペアであるアイテムからなり、前記データベースでの頻度が、予め定められた所定の閾値以上のフリーアイテムセットを生成するフリーアイテムセット生成手段と、
ルール候補として、条件部をフリーアイテムセットとし、帰結部を前記条件部に含まれない属性に固定し、前記条件部の前記フリーアイテムセットにも前記帰結部の前記アイテムにも含まれない前記前提部の属性集合を深さ優先探索で求めたルールを、記憶部に保持するルール候補生成手段と、
前記ルール候補生成手段により生成された前記ルール候補を、前記データベースと照合し、前記生成されたルールに対して、予め定められた所定の確信度の閾値以上でマッチしている場合、前記ルールを妥当と判断するルールの妥当性判定手段と、
前記ルールの妥当性判定手段で妥当であると判定されたルール自体が極小であるか、あるいは、前記ルールの条件部から一つのアイテムを除いて得られるルールが妥当でない場合に、極小と判定して出力装置に出力し、前記妥当であると判定されたルールが、既知のルールに対して冗長である場合には、前記妥当であると判定されたルールを前記出力装置に出力しないルールの極小性判定手段と、
を備えたルール発見装置が提供される。
【発明の効果】
【００３９】
本発明によれば、データベースの内容を把握し、あるいは修正を行うために有用なルールの集合を、効率よく得ることができる。
【図面の簡単な説明】
【００４０】
【図１】本発明の例示的な第１の実施の形態の構成を示す図である。
【図２】本発明の例示的な第１の実施の形態の動作を示す流れ図である。
【図３】本発明の例示的な第１の実施の形態の動作の具体例を説明するための図である。
【図４】本発明の例示的な第２の実施の形態の構成を示す図である。
【発明を実施するための形態】
【００４１】
次に、本発明の実施の形態について図面を参照して詳細に説明する。本発明によれば、データベースと、ユーザが入力したパラメータに基づき、データベースの内容に合致したapproximate CFDの集合を計算する。より具体的には、データベース（図１のデータベース記憶部３１に記憶されるデータベース）の内容と、入力装置（図１の１）から与えるパラメータに基づきフリーアイテムセット（free itemset）を計算するフリーアイテムセット（free itemset）生成部（図１の２１）と、得られたフリーアイテムセット（free itemset）に基づきルール候補を生成するルール候補生成部（図１のルール候補生成手段２２）と、生成されたルール候補が妥当であるか判定するルールの妥当性判定部（図１のルールの妥当性判定手段２３）と、得られた妥当なルールが、既に得られた妥当なルールに対して、冗長なものでないか否かをチェックするルールの極小性判定部（図１のルールの極小性判定手段２４）と、を有する。
【００４２】
実施形態によれば、データベースにおける属性と値のペアであるアイテム（item）からなるフリーアイテムセットであって、前記データベースでの頻度が、予め定められた所定の閾値以上のフリーアイテムセット（frequent free itemsets）を生成するフリーアイテムセット生成部（図１のフリーアイテムセット生成手段２１）と、ルール（ＣＦＤ）候補として、前記フリーアイテムセット（α）を条件部とし、前記フリーアイテムセットと属性を共有しないアイテム（ｘ）を帰結部とし、前記αにも前記ｘにも含まれない属性を前提部としたルールを生成して記憶部に保持するルール候補生成部（図１のルール候補生成手段２２）と、前記ルール候補生成部（図１の２２）により生成された前記ルールを、前記データベースと照合し、予め定められた所定の確信度の閾値以上でマッチしている場合、妥当であると判定するルールの妥当性判定部（図１のルールの妥当性判定手段２３）と、前記ルールの妥当性判定部（図１のルールの妥当性判定手段２３）で妥当とされたルールに対して極小であるか否かチェックし、極小である場合、出力装置（図１の４）に出力するルールの極小性判定部（図１のルールの極小性判定手段２４）を備えている。
【００４３】
前記ルールの極小性判定部（図１のルールの極小性判定手段２４）は、前記ルールの妥当性判定部（図１のルールの妥当性判定手段２３）で妥当とされたルール自体が極小（minimal）であるか、前記ルールの条件部から唯一のアイテムを除いて得られるルールが妥当でない場合に、極小（minimal）と判定し、前記出力装置（４）に出力し、前記ルールの妥当性判定部（図１のルールの妥当性判定手段２３）で妥当とされたルールが既知のルールに対して冗長である場合には、出力装置（４）に出力しない。
【００４４】
本発明によれば、最初に、フリーアイテムセット（free itemset）を計算することにより、ルール（ＣＦＤ）の条件項の一部となり得る候補を、高速に求めることができる。また、
・ルール（ＣＦＤ）の条件部を、フリーアイテムセットとし、
・ルール（ＣＦＤ）の帰結部を、前記条件部に含まれない属性に固定し、
・ルール（ＣＦＤ）の前提部の属性集合を、深さ優先探索(DFS: Depth First Search)で求める、
ことで、極小なルール（approximate CFD）のみを効率良く得ることができる。すなわち、ユーザがデータベースの内容を把握し、修正を行うために有用なルール（approximate CFD）の集合を、効率よく得ることができる。以下、実施形態に即して説明する。
【００４５】
＜実施形態１＞
図１を参照すると、本発明の第１の実施の形態は、キーボード等の入力装置１と、プログラム制御により動作するデータ処理装置２と、情報を記憶する記憶装置３と、ディスプレイ装置や印刷装置等の出力装置４を含む。
【００４６】
記憶装置３は、データベース記憶部３１を備えている。データベース記憶部３１には、それ自体からルールを抽出するためのデータベースが予め記憶されている。
【００４７】
データ処理装置２は、フリーアイテムセット（free itemset）生成手段２１と、ルール候補生成手段２２と、ルールの妥当性判定手段２３と、ルールの極小性判定手段２４とを備える。
【００４８】
フリーアイテムセット（free itemset）生成手段２１は、入力装置１から与えられたパラメータ（頻度の閾値ｋ、確信度の閾値ｐ）を用い、データベース記憶部３１に記憶されたデータベースのフリーアイテムセット（free itemset）を生成する。フリーアイテムセット（free itemset）生成手段２１は、生成したフリーアイテムセット（free itemset）を、データ処理装置２内の不図示の記憶部又はフリーアイテムセット（free itemset）生成手段２１内の不図示の記憶部、又は記憶装置３の所定の記憶領域に記憶する。データベース中に出現している属性と値のペアを「アイテム」（item）と呼び、アイテムの集合をアイテムセット（itemset）という。
【００４９】
ルール候補生成手段２２は、ルール候補として、
・フリーアイテムセット（free itemset）生成手段２１によって生成されたフリーアイテムセット（free itemset）αを条件部とし、
・前記フリーアイテムセット（free itemset）αと属性を共有しないアイテムｘを帰結部に置き、
・上記αにもｘにも含まれない属性の部分集合βを前提部に置くルールを深さ優先探索（DFS: Depth First Search）で生成する。
【００５０】
ルール候補生成手段２２は、ルール候補として生成したルールを、データ処理装置２内の不図示の記憶部又は、妥当なルール候補生成手段２２内の不図示の記憶部、又は記憶装置３の所定の記憶領域に記憶する。
【００５１】
ルールの妥当性判定手段２３は、ルール候補生成手段２２によって生成されたルールに対して、それが妥当な（例えば頻度ｋ、確信度ｐ以上の）ルールであるかチェックし、妥当なものである場合、該ルールを極小性判定手段２４に渡し、それ以上深い探索を行わない。
【００５２】
ルールの極小性判定手段２４は、ルールの妥当性判定手段２３で妥当と判定されたルールが極小なものであるか否かの判定を行い、極小である場合、出力装置４に出力を行う。ここで、「極小である」とは、条件部又は前提部から、任意のアイテム（item）を除去して得られるＣＦＤ、及び、条件部のアイテム（item）の値を変化し、前提部に置くことで得られるＣＦＤがどれも妥当でない、という意味である。すべてのフリーアイテムセット（free itemset）、及び、帰結部の属性の組合せについて探索が完了したとき、アルゴリズムを終了する。
【００５３】
次に、図１及び図２を参照して本実施の形態の動作について詳細に説明する。
【００５４】
入力装置１から与えられたパラメータ（頻度閾値ｋ、確信度閾値ｐ）、及び、データベース記憶部３１から与えられたデータベースの内容は、フリーアイテムセット（free itemset）生成手段２１に供給される。
【００５５】
フリーアイテムセット（free itemset）生成手段２１は、データベース中に出現している属性と値のペア（このペアをアイテム（item）と呼ぶ）から、その頻度がパラメータｋ以上のフリーアイテムセット（free itemset）（frequent  free itemset）を抽出する（ステップＡ１）。ここで、フリーアイテムセット（free itemset）とは、アイテム（item）の集合であり、任意の１つ以上のアイテム（item）を除去することで、頻度(frequency)が真に増加してしまうものである。
【００５６】
フリーアイテムセット（free itemset）生成手段２１では、すべてのフリーアイテムセット（free itemset）が得られた後、それらをサイズ（含まれるitemの個数）の昇順に並べておく。
【００５７】
次に、ルール候補生成手段２２は、フリーアイテムセット（free itemset）生成手段２１により生成された各フリーアイテムセット（free itemset）から、ルール候補を生成する。具体的には、
・フリーアイテムセット（free itemset）αを条件部とし、
・フリーアイテムセット（free itemset）αと属性を共有しないアイテムｘを、帰結部に固定し、
・αにもｘにも含まれない属性の部分集合βを前提部に置いたルール（ＣＦＤ）候補
ψ：（α，β＝＿）→ｘ
を、βに対して、深さ優先探索(DFS)を行うことで生成する（ステップＡ２）。
【００５８】
次に、ルールの妥当性判定手段２３は、ルール候補生成手段２２により生成されたルール（ルール候補）
ψ：（α，β＝＿）→ｘ
を、データベース記憶部３１に記憶されているデータベースと照合し、当該ルール候補ψが妥当なものであるかチェックを行う（例えば、当該ルールψの確信度が、設定された閾値０．６６以上であるか否かをチェックする）。
【００５９】
ルールの妥当性判定手段２３は、ルール候補ψが妥当である場合、該ルール候補ψを、ルールの極小性判定手段２４に渡し、深さ優先探索においてそれ以上深い探索を行わない（ステップＡ２）。
【００６０】
次に、ルールの極小性判定手段２４は、ルールの妥当性判定手段２３により得られたルール候補（確信度が閾値以上であるapproximate CFD）ψについて、極小(minimal)であるか否か判定する（ステップＡ３）。
【００６１】
ルールの極小性判定手段２４は、ルール候補ψが極小(minimal)である場合、該ルール候補ψを、出力装置４に出力する（ステップＡ４）。
【００６２】
ルールの極小性判定手段２４において、すべてのフリーアイテムセット（free itemset）α、及び属性ｘの組合せに対して、上記チェックが終了していない場合、ステップＡ２に戻る。
【００６３】
上記チェックが完了した時、ルール発見アルゴリズムは終了する。この結果、それまでに得られた極小（minimal）なルール（approximate CFD）が出力装置４に出力されている。
【００６４】
次に、本実施の形態の効果について説明する。
【００６５】
本実施の形態では、最初にフリーアイテムセット（free itemset）を列挙することで、全てのapproximate CFDの条件部の候補を列挙し、条件部及び帰結部を固定して、前提部の属性集合を深さ優先探索にて探索するため、必要とするメモリ容量の増大を抑えることができる。またapproximate CFD候補の生成が最小限に抑えられ、ルールを効率よく発見することが可能になる。
【００６６】
次に、具体的な実施例を用いて本実施の形態の動作を説明する。図３（Ｂ）（以下の表１）に示すように、例えば、データベース記憶部３１には、以下の表１の属性・タプルからなるデータ集合が登録されている。なお、データベースの例は、あくまで説明のために簡易化した例である。図３（Ａ）は、図２のステップに対応して、フリーアイテムセット（frequent  free itemsets）、アイテムｘ＝属性１、２、３のルール（ＣＦＤ）候補の具体例を例示したものである。図３（Ｃ）は、図２の計算の結果、出力装置４から出力されたルール（approximate CFD）の一例を示す図である。なお、図３において、“属性１：＿”、“属性１：１”等の記号：は、“属性１＝＿”、“属性１＝１”の記号＝と同義（同一）である。
【００６７】
＜表１＞
0005532189.tif 000002
【００６８】
フリーアイテムセット（free itemset）生成手段２１は、上記の表１、及びパラメータとしてｋ＝２、ｐ＝０．６６を受け取る。ここで、ｋは妥当なルールと判定するための頻度の下限、ｐは確信度の下限である。そして、データベース中の出現頻度がｋ＝２以上である、すべてのフリーアイテムセット（free itemset）のリスト｛empty（４），“属性１＝１”（２），“属性２＝Ｐ”（３），“属性３＝Ｓ”（２），“属性３＝Ｔ”（２）｝（括弧の中の数値はそのitemsetの頻度）を抽出する（図２、図３（Ａ）のステップＡ１）。出現頻度がｋ以上のフリーアイテムセット（free itemset）を「frequent  free itemset」ともいう。
【００６９】
この５つのフリーアイテムセット（free itemset）を、サイズの昇順にソートすることで、empty（空）が最初に現れる（図３（Ａ）のステップＡ１のfrequent  free itemsets参照）。
【００７０】
ルール候補生成手段２２は、続いて、属性１、２、３を、それぞれ帰結部ｘに持つルール候補を生成する。
【００７１】
ルール候補生成手段２２において、
ｘ＝属性１（帰結部）に対しては、条件部となるフリーアイテムセット（free itemset）αをemptyとして、深さ優先探索を行い、前提部β＝属性３としたルール（ＣＦＤ）
ψ：“属性３：＿”→“属性１：＿”（頻度＝４、確信度＝０．７５）
が生成される。
【００７２】
また、条件部となるフリーアイテムセット（free itemset）αを“属性３＝Ｓ”として、深さ優先探索を行い、
前提部“β＝empty”としたルール（ＣＦＤ）
ψ：“属性３：Ｓ”→”属性１：１”（頻度＝２、確信度＝１）
が生成される。
【００７３】
同様に、ｘ＝属性２（帰結部）に対して、
条件部となるフリーアイテムセット（free itemset）αをemptyとして、深さ優先探索を行い、
前提部“β＝empty”としたルール
ψ：empty→”属性２：Ｐ”（頻度＝３、確信度＝０．７５）
が生成される。
【００７４】
また、ｘ＝属性２（帰結部）に対して、条件部となるフリーアイテムセット（free itemset）αを“属性３＝Ｔ”として、深さ優先探索を行い、
前提部“β＝empty”としたルール
ψ’：“属性３：Ｔ”→“属性２：Ｐ”
が生成される（ただし、極小（minimal）ではない）。
【００７５】
ｘ＝属性３（帰結部）に対しては、条件部となるフリーアイテムセット（free itemset）α＝emptyに対して、深さ優先探索を行い、
前提部“β＝empty”としたルール
ψ：“属性１：＿”→“属性３：＿”（頻度＝４、確信度＝１）
ψ：“属性２：＿”→“属性３：＿”（頻度＝４、確信度＝０．７５）
が生成される。
【００７６】
また、ｘ＝属性３（帰結部）に対しては、条件部となるフリーアイテムセット（free itemset）αを“属性１＝１”として、深さ優先探索を行い、
前提部“β＝empty”としたルール
ψ：“属性１：１”→“属性３：Ｓ”  （頻度＝２、確信度＝１）
が生成される。さらに、
αを“属性２＝Ｐ”として、深さ優先探索を行い、
前提部“β＝empty”としたルール
ψ：“属性２：Ｐ”→“属性３：Ｔ”（頻度＝２、確信度＝０．６６７）
が生成される（図２、図３（Ａ）のステップＡ２）。
【００７７】
図２、図３（Ａ）のステップＡ２で生成されたルールについて、それらが生成された直後に、極小性の判定を行う。具体的には、
ψ：“属性３：＿”→“属性１：＿”
については、ルール自体が極小である。
【００７８】
ψ：“属性３：Ｓ”→“属性１：１”
については、
条件部から、唯一のアイテム（item）を除いて得られるＣＦＤ
ψ’：empty→“属性１：１”  
が妥当ではないため、極小である。
【００７９】
さらに
ψ：empty→“属性２：Ｐ”
も極小である。
【００８０】
ψ’：“属性３：Ｔ”→“属性２：Ｐ”  
は、既知のルール
ψ：empty→“属性２：Ｐ”に対して冗長であるため、極小ではなく、出力を行わない。
【００８１】
他のＣＦＤ  
ψ：“属性１：＿”→“属性３：＿”、
ψ：“属性２：＿”→“属性３：＿”
はルール自体が極小である。
【００８２】
ψ：“属性１：１”→“属性３：Ｓ”、
ψ：“属性２：Ｐ”→“属性３：Ｔ”  
は、条件部から唯一のアイテム（item）を除いて得られるＣＦＤ
empty→“属性３：Ｓ”、
empty→“属性３：Ｔ”  
は妥当ではないため、それぞれ極小であり、出力装置４に出力する（図２、図３（Ａ）のステップＡ４）。
【００８３】
＜実施の形態２＞
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。図４を参照すると、本実施の形態は、ルール発見用プログラム５を備える。ルール発見用プログラム５は、データ処理装置６に読み込まれ、データ処理装置６の動作を制御する。データ処理装置６はルール発見用プログラム５の制御により以下の処理、すなわち第１の実施の形態におけるデータ処理装置２による処理と同一の処理、を実行する。
【００８４】
入力装置１からユーザの興味が与えられると、まず、記憶装置３内のデータベース記憶部３１に記憶されているデータベースを用い、初期ルール候補の生成を行う。次に、生成されたルール候補が妥当であるかチェックし、そうならば、そのルールをリストに追加する。
【００８５】
リストに保存されたルールの集合により、データベースのカバー度が打ち切り条件を満たした時、リスト内のルール集合を、出力装置４に表示させる。
【００８６】
なお、上記の特許文献、非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００８７】
１  入力装置
２、６  データ処理装置
３  記憶装置
４  出力装置
５  ルール発見用プログラム
２１  フリーアイテムセット（free itemset）生成手段
２２  ルール候補生成手段
２３  ルールの妥当性判定手段
２４  ルールの極小性判定手段
３１  データベース記憶部
【図１】
0005532189.tif 000003
【図２】
0005532189.tif 000004
【図３】
0005532189.tif 000005
【図４】
0005532189.tif 000006