JP4530235B2 - 知識発見方法 - Google Patents
知識発見方法 Download PDFInfo
- Publication number
- JP4530235B2 JP4530235B2 JP16521699A JP16521699A JP4530235B2 JP 4530235 B2 JP4530235 B2 JP 4530235B2 JP 16521699 A JP16521699 A JP 16521699A JP 16521699 A JP16521699 A JP 16521699A JP 4530235 B2 JP4530235 B2 JP 4530235B2
- Authority
- JP
- Japan
- Prior art keywords
- rule
- cases
- condition part
- condition
- knowledge discovery
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、大規模データベースからif−thenルールを抽出して提示する知識発見方法および知識発見装置に関する。
【0002】
【従来の技術】
従来から、大規模データベースからif−thenルールを発見するいわゆるデータマイニングに関し、様々な手法が提案されている。このような手法としては、例えば、Agrawal等によるaprioriが有名である。
【0003】
この従来の手法では、支持度および精度という2つの尺度を用いる。なお、上記の支持度とは、すべての事例中で、ユーザが与えたルールの条件部を満足する事例の数として定義できる。あるいは、すべての事例数に対する、ユーザが与えたルールの条件部を満足する事例数の割合として定義することもできる。また、精度とは、ユーザが与えたルールの条件部を満足する事例中の、ルールの結論となるクラスに属する事例の割合として定義できる。上記従来の手法は、支持度の下限および精度の下限を設定し、これらの下限値を上回るルールをユーザに提示するようになっている。
【0004】
【発明が解決しようとする課題】
しかし、上記従来の手法は、支持度および精度の下限の設定が難しいという問題を有する。例えば、支持度や精度の下限値をある程度大きい値に設定した場合に得られるルールは、ユーザにとって自明なルールであることが多い。知識発見の観点からは、ユーザが知らないであろう意外性の高いルールを得ることに意義があるので、自明なルールはあまり有用なものではない。
【0005】
その逆に、支持度や精度の下限値を小さい値に設定した場合は、ごく限られた事例にしか成り立たないルール等も含む大量のルールが得られることとなる。従って、それらの大量のルールの中から、ユーザにとって自明でない、意外性の高いルールだけをさらに選択する作業が必要となる。
【0006】
本発明は、ユーザにとって自明でなく、興味深いと予想される知識のみを効率的に探索して出力する知識発見方法を提供することを目的とする。
【0007】
【課題を解決するための手段】
上記の目的を達成するために、本発明にかかる知識発見方法は、複数のテストの連言からなる条件部と結論とを有する知識を事例集合から抽出するステップと、前記知識の条件部から一部のテストを取り除いた条件部を有する知識の精度と、前記一部のテストを条件部とする知識の精度とに基づいて、前記各知識の予測精度を算出するステップと、実際の精度と前記予測精度との差に基づいて前記知識の意外性を評価するステップと、前記意外性が所定のレベルより高いと評価された知識のみを提示するステップとを含むことを特徴とする。
【0008】
この方法によれば、事例集合から抽出した知識の意外性が、この知識よりも単純な条件部を持つ2つの知識の精度、すなわち、前記知識の条件部から一部のテストを取り除いた条件部を有する知識の精度と、前記一部のテストを条件部とする知識の精度とに基づいて評価される。なお、知識の精度とは、知識の条件部を満足する事例の中の、前記知識の結論を満足する事例の割合として定義することができる。これにより、意外性が高いと思われる知識のみを選択して出力することができるので、ユーザにとって自明でないと予想される興味深い知識を提示することが可能な知識発見方法を提供できる。
【0009】
上記の知識発見方法は、前記事例集合から抽出した知識の支持度を算出するステップをさらに含み、前記意外性が所定のレベルより高く、かつ前記支持度が所定のレベルよりも高いと評価された知識のみを提示することが好ましい。
【0010】
この方法によれば、意外性および支持度が共に所定のレベルよりも高い知識が選択して提示される。なお、支持度とは、知識の条件部を満足する事例の数、あるいは、知識の条件部を満足する事例数の全事例数に対する割合、として定義することができる。これにより、汎用性が高く、しかも、ユーザにとって自明でないと予想される興味深い知識を提示することが可能となる。
【0011】
上記の知識発見方法は、前記事例集合から前記知識を抽出するステップにおいて、前記複数のテストをノードとする探索木を用いた深さ優先探索を行って前記条件部にテストを順次追加することにより、前記知識の条件部を生成することが好ましい。
【0012】
この方法によれば、条件部に含まれ得る複数のテストをノードとする深さ優先の木探索を行って条件部を生成することにより、あり得る知識のすべてを網羅的に生成することが可能となる。
【0013】
上記の知識発見方法は、前記事例集合から前記知識を抽出するステップにおいて、前記条件部に追加可能なテストのそれぞれについて知識の精度に対する影響度を算出し、前記影響度が最も高いテストを選択して前記条件部に追加することにより、前記知識の条件部を生成することが好ましい。
【0014】
この方法によれば、知識の精度に対する影響度が高いテストを優先的に追加することによって知識の条件部が生成される。知識の意外性は知識の精度に基づいて算出されるので、知識の意外性に対する影響度が高いテストを条件部に含む知識が、事例集合から優先的に抽出されることとなる。この結果、ユーザにとって自明でないと予想される興味深い知識を効率的に発見することが可能となる。
【0015】
上記の知識発見方法において、前記事例集合から前記知識を抽出するステップが、前記条件部に含まれ得るテストのそれぞれについて知識の精度に対する影響度を算出する第1のステップと、前記条件部に追加可能なテストの中から、バックトラックの回数の上限値を超えない範囲で選択したテストを前記条件部に順次追加することにより、前記知識の条件部を生成する第2のステップと、前記上限値を増加させて前記第2のステップに戻る第3のステップとを含むことが好ましい。
【0016】
なお、バックトラックの回数とは、知識の条件部に含まれるすべてのテストについて、各テストがこの条件部に追加されたときの、追加可能な全テスト中の前記各テストの影響度の順位の和をとったものから、この条件部に含まれるテストの数を引いた値として定義することができる。この方法によれば、最初にバックトラックの回数の上限値を小さく設定し、この上限値を徐々に増加させて第2のステップを繰り返すことにより、知識の精度に対する影響度が比較的高いテストの組み合わせを条件部に持つ知識が、事例集合から優先的に抽出されることとなる。この結果、ユーザにとって自明でないと予想される興味深い知識を効率的に発見することが可能となる。
【0017】
【発明の実施の形態】
(実施の形態1)
以下、本発明の実施の一形態について、図面を参照しながら説明する。
【0018】
本実施形態にかかる知識発見方法は、事例の集合が与えられたときに、これらの事例の集合から、ユーザにとって有用であると予想される、意外性のあるif−thenルールを発見して提示する方法について説明する。
【0019】
なお、事例の各々は、複数のテストの各々を満足するか否かと、所属クラスとによって表現される。また、発見されるif−thenルールは、
if B then C
の形式をなす。上式のBを条件部と呼び、複数のテストの連言からなる。例えば、m個のテストをA1〜Amとすると、Bは、
B=A1&A2&…&Am
と表される。また、上式におけるCを結論と呼び、所属クラスが入る。
【0020】
本知識発見方法は、事例の集合から、可能なif−thenルールを順次生成し、生成したルールの各々について意外性を評価し、意外性のレベルが高いルールのみを提示する。
【0021】
ここで、ルールの意外性の算出方法について説明する。例えば、m個のテストの連言を条件部とし、結論がクラスCである以下のようなルールを考える。
【0022】
if A1&A2&…&Am then C (1)
なお、以下では、簡単のために、上記のルール(1)の条件部をB、条件部からテストAi(1≦i≦m)を取り除いたものをBiと表すことにする。すなわち、
B=A1&A2&…&Am
Bi=A1&…&Ai−1&Ai+1&…&Am
である。
【0023】
このとき、すべてのi(1≦i≦m)について、
(条件1)
P(C|B)≧P(C|Ai)+δ1
(条件2)
P(C|B)≧P(C|Bi)+δ2
(条件3)
P(C|B)≧P(C|Ai)×P(C|Bi)÷P(C)+δ3
の3つの条件のすべてが満たされるとき、ルール(1)を、ユーザに提示すべき、意外性の高いルールであるものと判断する。
【0024】
なお、δ1、δ2、δ3は、それぞれ0以上1以下の範囲の値をとるパラメータである。また、P(C|B)は、テストの連言Bを満足する事例の中でクラスCに属する事例の割合であり、P(C|Ai)は、テストの連言Aiを満足する事例の中でクラスCに属する事例の割合であり、P(C|Bi)は、テストの連言Biを満足する事例の中でクラスCに属する事例の割合である。また、P(C)は、事例全体の中でクラスCに属する事例の割合である。
【0025】
すなわち、条件1は、ルール(1)の条件部に含まれる各テストを条件とするルール、
if Ai then C (2)
の精度と比較して、ルール(1)の精度の方がある程度(δ1)以上高くなければならないことを要求する。
【0026】
また、条件2は、ルール(1)の条件部からテストの一部(Ai)を取り除いて得られるより単純なルール、
if Bi then C (3)
の精度と比較して、ルール(1)の精度の方がある程度(δ2)以上高くなければならないことを要求する。
【0027】
また、条件3は、事例集合全体およびクラスCに属する事例集合の中でAiとBiとが独立であると仮定したときに、ルール(2)の精度およびルール(3)の精度から条件付き確率によって予測される精度よりも、ルール(1)の精度の方がある程度(δ3)以上高くなければならないことを要求する。
【0028】
以下、説明を分かりやすくするために、キノコに関するデータが登録されたデータベースからルールを発見する場合を例に挙げて具体的に説明する。ここで知識発見の対象となるデータベースには、種々のキノコについて、形や色、生えている場所、食べられるか否か等についてのデータが登録されている。すなわち、このデータベースに登録されているデータは、データ属性として、stalk-shape(キノコの柄の形状)、ring-shape(キノコの傘の形状)、habitat(キノコが生えている場所)、cap-color(傘の色)、gill-spacing(ひだの間隔)、class(食用か否か)等を持つ。
【0029】
このようなデータベースからルールを発見する場合、登録されているデータの各々が1つの事例に相当する。また、ルールの条件部の各テストは、データの属性とその属性値との組み合わせに相当する。
【0030】
以下では、キノコの形状等の特徴点と、キノコが食用(edible)かそれとも毒キノコ(poisonus)かとの間に成り立つif−thenルールを発見する場合について説明する。
【0031】
例えば、上記のデータベースから下記のルール、
if stalk-shape=t & ring-type=p & habitat=g then class=poisonus (a)
を抽出し、このルールがユーザに提示すべき意外性に高いルールであるか否かを、上述した条件1〜条件3に基づいて判断する場合について説明する。なお、以下では、条件1〜条件3について、δ1=δ2=δ3=0.4と設定されているものとする。
【0032】
上記のルール(a)は、前述のルール(1)と対応させると、
C:poisonus
B:stalk-shape=t & ring-type=p & habitat=g
A1:stalk-shape=t
A2:ring-type=p
A3:habitat=g
B1:ring-type=p & habitat=g
B2:stalk-shape=t & habitat=g
B3:stalk-shape=t & ring-type=p
となる。なお、このルール(a)の精度は、100%であるものとする。すなわち、
P(C|B)=1
である。
【0033】
まず、ルール(a)が条件1を満たすか否かを調べる。前提として、条件部Bに含まれる個々のテストA1〜A3を条件部とするルールおよびその精度は、次のとおりであるものとする。
【0034】
if stalk-shape=t then class=poisonus : 44%
if ring-type=p then class=poisonus : 21%
if habitat=g then class=poisonus : 34%
すなわち、
P(C|A1)=0.44
P(C|A2)=0.21
P(C|A3)=0.34
である。
【0035】
この場合、条件1の右辺は、i=1〜3のそれぞれの場合について、次のようになる。
【0036】
i=1: P(C|A1)+δ1=0.44+0.4=0.84
i=2: P(C|A2)+δ1=0.21+0.4=0.61
i=3: P(C|A3)+δ1=0.34+0.4=0.74
一方、条件1の左辺であるP(C|B)の値は前述のとおり1であるので、ルール(a)は、i=1〜3のすべての場合について、条件1を満たすことが分かる。
【0037】
次に、ルール(a)が条件2を満たすか否かを調べる。前提として、個々のテストA1〜A3を条件部Bから取り除くことによって得られるルールと、その精度とが、以下のとおりであるものとする。
【0038】
if ring-type=p & habitat=g then class=poisonus : 33%
if stalk-shape=t & habitat=g then class=poisonus : 16%
if stalk-shape=t & ring-type=p then class=poisonus : 14%
すなわち、
P(C|B1)=0.33
P(C|B2)=0.16
P(C|B3)=0.14
である。
【0039】
この場合、条件2の右辺は、i=1〜3のそれぞれの場合について、次のようになる。
【0040】
i=1: P(C|B1)+δ2=0.33+0.4=0.74
i=2: P(C|B2)+δ2=0.16+0.4=0.56
i=3: P(C|B3)+δ2=0.14+0.4=0.54
一方、条件2の左辺であるP(C|B)の値は前述のとおり1であるので、ルール(a)は、i=1〜3のすべての場合について、条件2を満たすことが分かる。
【0041】
次に、ルール(a)が条件3を満たすか否かを調べる。ここで、前提として、このデータベースに登録されているキノコの半分が毒キノコであるとする。すなわち、
P(C)=0.5
であるとする。
【0042】
このとき、条件3の右辺の値は、i=1〜3のそれぞれについて、
i=1: P(C|A1)×P(C|B1)÷P(C)+δ3=0.69
i=2: P(C|A2)×P(C|B2)÷P(C)+δ3=0.47
i=3: P(C|A3)×P(C|B3)÷P(C)+δ3=0.60
となる。
【0043】
一方、条件3の左辺であるP(C|B)の値は前述のとおり1であるので、ルール(a)は、i=1〜3のすべての場合について、条件3も満たすことが分かる。
【0044】
以上のように、ルール(a)は、条件1ないし条件3のすべてを満たすので、意外性の高いルールであると判定される。
【0045】
また、同じデータベースから得られる下記のルール(b)について、同様に条件1ないし条件3に基づいて意外性の判定を行うものとする。
【0046】
if cap-color=w & gill-spacing=c & stalk-shape=t then class=poisonus
前提として、このルール(b)の条件部に含まれる個々のテストを条件部とするルールおよびその精度は、次のとおりであるものとする。
【0047】
if cap-color=w then class=poisonus : 31%
if gill-spacing=c then class=poisonus : 56%
if stalk-shape=t then class=poisonus : 44%
また、個々のテストを条件部から取り除くことによって得られるルールと、その精度とが、以下のとおりであるものとする。
【0048】
if gill-spacing=c & stalk-shape=t then class=poisonus : 54%
if cap-color=w & stalk-shape=t then class=poisonus : 24%
if cap-color=w & gill-spacing=c then class=poisonus : 51%
また、ルール(b)の精度も100%、すなわち、
P(C|B)=1
であり、
δ1=δ2=δ3=0.4
であるとすると、このルール(b)について、条件1の右辺は、i=1〜3のそれぞれの場合、次のようになる。
【0049】
i=1: P(C|A1)+δ1=0.31+0.4=0.71
i=2: P(C|A2)+δ1=0.56+0.4=0.96
i=3: P(C|A3)+δ1=0.44+0.4=0.84
一方、条件1の左辺であるP(C|B)の値は前述のとおり1であるので、ルール(b)は、i=1〜3のすべての場合について、条件1を満たす。
【0050】
また、このルール(b)について、条件2の右辺は、i=1〜3のそれぞれの場合、次のようになる。
【0051】
i=1: P(C|B1)+δ2=0.54+0.4=0.94
i=2: P(C|B2)+δ2=0.24+0.4=0.64
i=3: P(C|B3)+δ2=0.51+0.4=0.91
一方、条件2の左辺であるP(C|B)の値は前述のとおり1であるので、ルール(b)は、i=1〜3のすべての場合について、条件2を満たす。
【0052】
さらに、このルール(b)について、条件3の右辺は、i=1〜3のそれぞれの場合、次のようになる。
【0053】
i=1: P(C|A1)×P(C|B1)÷P(C)+δ3=0.73
i=2: P(C|A2)×P(C|B2)÷P(C)+δ3=0.67
i=3: P(C|A3)×P(C|B3)÷P(C)+δ3=0.85
一方、条件3の左辺であるP(C|B)の値は前述のとおり1であるので、ルール(b)は、i=1〜3のすべての場合について、条件3も満たす。
【0054】
以上のように、ルール(b)は、条件1〜条件3のすべてを満たすので、意外性の高いルールと判断される。
【0055】
なお、各ルールの意外性の高さを、条件1〜条件3をどれだけの余裕を持ってクリアしているかによって表すことができる。すなわち、条件1〜条件3の右辺の値の最大値と、左辺の値であるルールの精度との差によって、ルールの意外性の高さをはかることができる。
【0056】
上記のルール(a)の場合は、意外性の高さは、
1-max(0.84,0.61,0.74,0.78,0.56,0.54,0.69,0.47,0.60)=0.16
となる。また、ルール(b)の場合は、意外性の高さは、
1-max(0.71,0.96,0.84,0.94,0.64,0.91,0.73,0.67,0.85)=0.04
となる。すなわち、ルール(b)は意外性は高いが、ルール(a)ほど意外性が高くないということができる。発見したルールを出力する際に、このようにして求めた意外性の高さに基づいて、ルールをランク付けして提示してもよい。
【0057】
また、同じデータベースから得られる下記のルール(c)を考える。なお、このルール(c)の精度は100%であるとする。
【0058】
if stalk-shape=e & ring-type=c & habitat=g then class=poisonus (c)
また、このルール(c)の条件部から最後のテスト、すなわち、habitat=gを取り除いた条件部をもつルール、
if stalk-shape=e & ring-type=c then class=poisonus
の精度が73%であったとすると、条件2の右辺の値が、i=3の場合、
P(C|B3)+δ2=0.73+0.4=1.13
となる。一方、左辺の値すなわちルール(c)の精度は前述したように1であるから、ルール(c)は条件2を満足しない。すなわち、ルール(c)は、意外性が低いルールであると判断され、出力されない。
【0059】
次に、本知識発見方法に基づいてデータベースから知識(ルール)を発見して出力する知識発見装置の概略構成の一例を、図1に示す。図1に示すように、本実施形態の知識発見装置は、データ入力部11と、ルール生成部12と、ルール評価部13と、データ出力部14とを備えている。
【0060】
データ入力部11は、知識を抽出する対象となるデータベースからデータ(事例)を入力する。ルール生成部12は、入力したデータに基づいて、成り立ち得るルールを順次生成する。ルール評価部13は、ルール生成部12で生成されたルールの各々について、上述したような意外性の算出を行うことにより、ユーザに提示すべきか否かの評価を行う。データ出力部14は、ルール評価部13によってユーザに提示すべきであると評価されたルールの集合を、発見した知識として出力する。
【0061】
ここで、図2のフローチャートに基づいて、本知識発見装置の動作について説明する。
【0062】
まず、ルールの集合Rを空集合として処理を開始する(図2に示すステップS1)。なお、これに先立って、ルール生成部12からルール評価部13へ、評価すべきルール“if B then C”が1つ与えられている。次に、この処理の終了条件が満足されているか否かをチェックする(ステップS2)。なお、終了条件の例については後述する。処理を続行する場合には(ステップS2にてnoの場合)、すべての事例の中から、ルール生成部12から与えられたルールの条件部Bを満足する事例を探索し、それらの事例の集合を集合IBとする(ステップS3)。そして、この集合IBの要素数が支持度の最小値以上であるか否かを判断する(ステップS4)。
【0063】
集合IBの要素数が最小値よりも小さければ(ステップS4にてyes)、ステップS7へ進み、ルール生成部12から、条件部Bまたは結論Cを変更した別のルールを受け取る。
【0064】
一方、集合IBの要素数が最小値以上であれば(ステップS4にてno)、ルール生成部12から与えられたルールが、最小精度以上の精度を持つか否かと、このルールが意外性に関する上記の条件1〜条件3のすべてを満足するか否かとを判定する(ステップS5)。
【0065】
ステップS5の判定結果がyesであれば、このルールを集合Rに追加し(ステップS6)、ステップS7へ進み、条件部Bまたは結論Cを変更した別のルールをルール生成部12から受け取り、ステップS2へ戻る。
【0066】
なお、ステップS2において終了条件が満足されていれば、データ出力部14へルール集合Rが渡される。そして、データ出力部14が、ルール集合Rに含まれるルールをユーザに提示することにより(ステップS8)、処理が終了する。
【0067】
なお、ステップS2の終了条件としては、種々の条件を設定することが可能である。例えば、処理時間が所定の時間を超えたとき、意外性の判定を行ったルールの数が所定値を超えたとき、あるいは、ルール集合Rの要素数が所定値に達したとき等に、終了条件が満たされたものとすることができるが、終了条件はこれらに限られない。
【0068】
以上に説明したように、本実施形態の知識発見方法および知識発見装置は、複数の事例から成り立ち得るif−thenルールを抽出し、抽出した各ルールに対して条件1〜条件3に基づいた意外性の評価を行い、意外性が高いと判断されたルールのみを選択してユーザに提示するようになっている。これにより、ユーザにとって既知の自明なルールや、ごく限られた事例にしか成り立たないルールを含む大量のルールを出力することがなく、ユーザにとって有用であると予想される興味深いルールのみを選択的に提示することができる。
【0069】
(実施の形態2)
以下に、本発明の他の実施形態について図面を参照しながら説明する。なお、前記した実施の形態1で説明した構成と同様の構成については、実施の形態1で用いた参照符号と同一の符号を付し、詳細な説明を省略する。
【0070】
本実施形態では、事例からのルールの生成を網羅的かつ効率的に行うために、深さ優先の木探索を用いて複数のテストの可能な組み合わせを生成することにより、if−thenルールの条件部を生成する。このために、本実施形態にかかる知識発見装置は、図3に示すように、実施の形態1において図1に示した構成に、木探索制御部15が追加された構成になっている。
【0071】
木探索制御部15が深さ優先の木探索を行うことにより、例えばA1〜A4の4個のテストが存在する場合、ルールの条件部Bは、図4に示すような順序で生成されることとなる。
【0072】
ここで、本実施形態における知識発見処理の手順について、図5のフローチャートを参照しながら説明する。ここでは、本知識発見処理を、ルールの条件部Bと集合Fとを与えられて、以下の処理を行う手続き(RuleDiscovery2)として表現した。
【0073】
最初は、ルールの条件部Bとして恒真(true)、集合Fとして空集合が与えられ、処理を開始する。なお、集合Fは、使用できないテストの集合であり、例えば、「A1&A2」と「A2&A1」のように、テストの順序が異なるが論理的に同じ条件部を持つルールを重複して生成することを避けるために用いられる。
【0074】
まず、ルールの集合Rを空集合とすると共に、すべての事例の中から、条件部Bを満足する事例を探索し、それらの事例の集合を集合IBとする(ステップS11)。そして、この集合IBの要素数が支持度の最小値以上であるか否かを判断する(ステップS12)。
【0075】
集合IBの要素数が最小値よりも小さければ(ステップS12にてyes)、ステップS18へ進む。一方、集合IBの要素数が最小値以上であれば(ステップS12にてno)、条件部Bを満足する事例の中で最も多くの事例が所属するクラスを、条件部Bに対応する結論Cとする(ステップS13)。
【0076】
そして、上記の条件部Bと結論Cからなるルール“if B then C”が最小精度以上の精度を持つか否かと、このルールが意外性に関する上記の条件1〜条件3のすべてを満足するか否かとを判定する(ステップS14)。ステップS14の判定結果がyesであれば、集合Rにこのルールを追加する(ステップS15)。
【0077】
そして、集合NFを空集合とし(ステップS16)、続いて、集合Fに含まれないすべてのテストAiについて、
NF:=NF∪{Ai}
R:=R∪RuleDiscovery2(B&Ai,F∪NF)
なる演算を行う(ステップS17)。なお、RuleDiscovery2(B&Ai,F∪NF)は、条件部BとしてB&Aiを与え、集合Fとして集合Fと集合NFとの和集合を与えて、本手続きを再帰的に呼び出すことを意味する。
【0078】
ステップS17の処理が終了すると、ルール集合Rを出力し、処理を終了する(ステップS18)。
【0079】
以上に説明したように、本実施形態の知識発見方法および知識発見装置は、深さ優先の木探索を用いることにより、複数のテストから、網羅的かつ効率的にルールを生成することができる。また、深さ優先の木探索を用いることにより、広さ優先の木探索に比較して、知識発見装置のメモリ容量を節約することができるという利点がある。
【0080】
(実施の形態3)
以下、本発明にかかるさらに他の実施形態について図面を参照しながら説明する。
【0081】
前述の実施の形態2では、ルールの精度に対する各テストの影響度に無関係に網羅的にルールを生成するので、図4に示したような例では、テストA1を含む条件部を持つルールが優先的に生成される。従って、例えばこのテストA1がクラスに全く関連しないテストであったとすると、テストA1を含む条件部を持つルールの生成および評価は、処理時間を増大させるだけの結果に終わる可能性が高い。
【0082】
これを改善するために、本実施形態では、ルールの精度に対する各テストの影響度を評価し、影響度が高いテストを優先的に用いてルールを生成することにより、ユーザにとって有用である可能性が高いルールを優先的に生成する。
【0083】
このため、本実施形態にかかる知識発見装置は、図6に示すように、実施の形態2において図3に示した構成に、テスト評価部16をさらに追加した構成である。テスト評価部16は、ルールの生成を行う際に、所定の関数を用いてルールの精度に対する各テストの影響度を評価し、評価値を木探索制御部15へ渡すようになっている。木探索制御部15は、テスト評価部16から渡された評価値に基づいて、条件部へ追加すべきテストを選択する。
【0084】
本実施形態にかかる知識発見処理の手順について、図7のフローチャートを用いて説明する。なお、ここでも、実施の形態2と同様に、ルールの条件部Bと集合Fとが与えられる手続き(RuleDiscovery3)として、本知識発見処理を表現した。
【0085】
最初は、ルールの条件部Bとして恒真(true)、集合Fとして空集合が与えられ、処理を開始する。
【0086】
まず、ルールの集合Rを空集合とすると共に、すべての事例の中から、条件部Bを満足する事例を探索し、それらの事例の集合を集合IBとする(ステップS21)。そして、この集合IBの要素数が支持度の最小値以上であるか否かを判断する(ステップS22)。
【0087】
集合IBの要素数が最小値よりも小さければ(ステップS22にてyes)、ステップS29へ進む。一方、集合IBの要素数が最小値以上であれば(ステップS22にてno)、条件部Bを満足する事例の中で最も多くの事例が所属するクラスを、条件部Bに対応する結論Cとする(ステップS23)。
【0088】
そして、上記の条件部Bと結論Cからなるルール“if B then C”が最小精度以上の精度を持つか否かと、このルールが意外性に関する上記の条件1〜条件3のすべてを満足するか否かとを判定する(ステップS24)。ステップS24の判定結果がyesであれば、集合Rにこのルールを追加する(ステップS25)。
【0089】
続いて、集合Fに含まれないすべてのテストAiの各々について、その有効性を評価する(ステップS26)。各テストの有効性は、条件部がBであるルールと、このルールの条件部BにテストAiを追加して生成される新たなルールとの間でクラス分布の変化がどの程度変化するか、すなわち、ルールの精度に対する各テストの影響度によって評価され、クラス分布の変化が大きいほど、テストAiの有効性は高いとされる。テストAiの有効性の評価関数としては、例えば次の(数1)に示すような関数を用いることができる。
【0090】
【数1】
【0091】
上記の(数1)において、Bはテストを追加する前のルールの条件部、Aiが条件部Bに新たに追加すべきテストである。また、(数1)中のΣは、
P(c|B)>0
となるクラスcについてのみ和をとるものとする。
【0092】
なお、追加すべきテストの有効性を評価するために用いる関数は、上記の(数1)に限定されず、エントロピーの変化を評価できる関数であれば、任意の関数を用いることが可能である。
【0093】
次に、集合NFを空集合とし(ステップS27)、集合Fに含まれないすべてのテストAiについて、上記した(数1)による有効性の評価値が高い順に、
NF:=NF∪{Ai}
R:=R∪RuleDiscovery3(B&Ai,F∪NF)
なる演算を行う(ステップS28)。なお、RuleDiscovery3(B&Ai,F∪NF)は、条件部BとしてB&Aiを与え、集合Fとして集合Fと集合NFとの和集合を与えて、本手続きを再帰的に呼び出すことを意味する。
【0094】
ステップS28の処理が終了すると、ルール集合Rを出力し、処理を終了する(ステップS29)。
【0095】
以上の処理によれば、例えば、ルールの条件部に現れ得るテストがA1〜A6の6個存在し、これらの評価値が、
A1>A2>A3>A4>A5>A6
であった場合、生成されるルールの条件部Bは、図8に示すような順になる。
【0096】
以上のように、本実施形態では、ステップS28において条件部BにテストAiを追加することによりルールを順次生成する際に、追加するテストAiとして、有効性の評価値が高いものを順に選択するようになっている。この結果、短時間で効率的に有用な知識を発見することが可能となる。
【0097】
(実施の形態4)
以下、本発明にかかるさらに他の実施形態について、図面を参照しながら説明する。
【0098】
前述の実施の形態3では、テストの各々の有効性を評価し、評価値が高いテストを優先的に用いてルールを生成する。このため、図8に示した例では、例えば、条件部BがA2&A3であるルールは、条件部BがA1&A6のような、評価値が最も低いテストを含むルールよりも後に生成されることとなる。しかし、処理効率の点では、評価値の高いテストの組み合わせを条件部に持つルールが優先的に生成されることが好ましい。
【0099】
そこで、本実施形態では、深さ優先の木探索を用いてルールの生成を行う際に、後に詳述するようにバックトラックの回数の上限値を設定することによって、条件部に含めるテストを制限し、この上限値を次第に大きくしていくことにより、評価値の高いテストの組み合わせを条件部に持つルールを優先的に生成する。
【0100】
このため、本実施形態にかかる知識発見装置は、図9に示すように、実施の形態3において図6に示した構成に、探索範囲制限部17をさらに追加した構成である。探索範囲制限部17は、バックトラックの回数の上限値を木探索制御部15に与える。
【0101】
上記のバックトラックの回数とは、ルールの条件部に含まれる各テストが選択されたときの評価値の順位の和から、この条件部に含まれるテストの数を引いた値として定義することができる。
【0102】
例えば、条件部にテストを追加して新たなルールを生成する際に、追加可能なテストの中で評価値が最も高いテストを選択して追加する場合には、追加されるテストの評価値の順位は常に1位であるので、条件部にm個のテストが含まれているとすると、ルールの条件部に含まれる各テストが選択されたときの評価値の順位の和はmであり、バックトラックの回数は0となる。
【0103】
従って、探索範囲制限部17によってバックトラックの回数の上限値が0回に設定された場合、条件部に新たに追加することができるテストは、条件部に含まれていないすべてのテストの内で評価値が最も高いテストのみである。また、バックトラックの回数の上限値が1回に設定された場合は、条件部に含まれていないすべてのテストの内で2番目に評価値の高いテストを一度だけ選択して追加することが許される。
【0104】
ここで、図10および図11を参照しながら、本実施形態の知識発見処理の手順について説明する。
【0105】
本実施形態の知識発見処理では、図10に示すように、まず、ルールの集合Rを空集合とし、バックトラック回数の上限値MaxBTを0に設定して、処理を開始する(ステップS31)。そして、所定の終了条件が満足されるまで、図11のフローチャートに示す手続き(RuleDiscovery4)の処理結果を集合Rに追加し(ステップS33)、MaxBTの値を1ずつ増加させる(ステップS34)処理を繰り返す。
【0106】
上記の手続き(RuleDiscovery4)の手順は、以下のとおりである。最初は、ルールの条件部Bとして恒真(true)、集合Fとして空集合が与えられ、MaxBT=0として、処理を開始する。
【0107】
まず、ルールの集合Rを空集合とすると共に、すべての事例の中から、条件部Bを満足する事例を探索し、それらの事例の集合を集合IBとする(ステップS41)。そして、この集合IBの要素数が支持度の最小値以上であるか否かを判断する(ステップS42)。
【0108】
集合IBの要素数が最小値よりも小さければ(ステップS42にてyes)、ステップS49へ進む。一方、集合IBの要素数が最小値以上であれば(ステップS42にてno)、条件部Bを満足する事例の中で最も多くの事例が所属するクラスを、条件部Bに対応する結論Cとする(ステップS43)。
【0109】
そして、上記の条件部Bと結論Cからなるルール“if B then C”が最小精度以上の精度を持つか否かと、このルールが意外性に関する上記の条件1〜条件3のすべてを満足するか否かとを判定する(ステップS44)。ステップS44の判定結果がyesであれば、集合Rにこのルールを追加する(ステップS45)。
【0110】
続いて、集合Fに含まれないすべてのテストAiのそれぞれについて、その有効性を評価する(ステップS46)。テストAiの有効性の評価関数としては、実施の形態3において(数1)に示すような関数を用いることができるが、これに限定されない。
【0111】
次に、集合NFを空集合、変数nを0とし(ステップS47)、集合Fに含まれないすべてのテストAiについて、有効性の評価値が高い順に、
NF:=NF∪{Ai}
R:=R∪RuleDiscovery4(B&Ai,F∪NF,MaxBT−n)
n:=n+1
なる演算を行う(ステップS48)。なお、RuleDiscovery4(B&Ai,F∪NF,MaxBT−n)は、条件部BとしてB&Aiを与え、集合Fとして集合Fと集合NFとの和集合を与え、MaxBTとして(MaxBT−n)を与えて、本手続きを再帰的に呼び出すことを意味する。
【0112】
ステップS48の処理が終了すると、ルール集合Rを出力し、処理を終了する(ステップS49)。
【0113】
これにより、例えば、6個のテストA1〜A6があり、その評価値が、
A1>A2>A3>A4>A5>A6
である場合、図10に示したステップS33の処理が最初に行われることにより、図12に示すような順で、条件部Bが生成される。
【0114】
また、図10に示したステップS34においてMaxBTの値が1だけ増やされた後に、ステップS33の処理が2回目に行われることにより、図13に示すような順で、条件部Bが生成される。なお、これ以降も、図10のステップS32において終了条件が満たされるまで、MaxBTの値をさらに増やしながら処理が続行されるが、その結果についての詳細な説明は省略する。
【0115】
実施の形態3において図8に示した例と、図13とを比較することから分かるように、実施の形態3では、A2&A3を条件部Bとするルールは、A1&A6を条件部とする評価値の最も低いテストを含むルールよりも後の33番目に生成されているのに対し、本実施形態では、A2&A3を条件部Bとするルールは26番目に生成され、A1&A6を条件部とするルールよりも早く生成される。
【0116】
なお、本実施形態では、図12および図13から分かるように、図10のステップS33を実行する度に同じルールを重複して生成することになるので、処理が終了するまでの時間は実施の形態3と比較して長くなる。しかし、評価値が比較的高いテストの組み合わせからなる条件部を持つルールを優先的に生成することができる。この結果、ユーザにとって有用な知識を効率的に発見することが可能となる。
【0117】
【発明の効果】
以上のように、本発明によれば、事例集合から抽出される知識のうち、意外性が高いと思われる知識のみを選択して出力することができるので、ユーザにとって自明でなく、興味深いと予想される知識を提示することが可能な知識発見方法を提供できる。
【図面の簡単な説明】
【図1】 本発明の実施形態1にかかる知識発見装置の概略構成を示すブロック図
【図2】 本発明の実施形態1における知識発見処理の手順を示すフローチャート
【図3】 本発明の実施形態2にかかる知識発見装置の概略構成を示すブロック図
【図4】 本発明の実施形態2における知識発見処理において生成されるルールの条件部を、生成される順に示す説明図
【図5】 本発明の実施形態2における知識発見処理の手順を示すフローチャート
【図6】 本発明の実施形態3にかかる知識発見装置の概略構成を示すブロック図
【図7】 本発明の実施形態3における知識発見処理の手順を示すフローチャート
【図8】 本発明の実施形態3における知識発見処理において生成されるルールの条件部を、生成される順に示す説明図
【図9】 本発明の実施形態4にかかる知識発見装置の概略構成を示すブロック図
【図10】 本発明の実施形態4における知識発見処理の手順を示すフローチャート
【図11】 図10に示した知識発見処理で呼び出される手続きの処理手順を示すフローチャート
【図12】 本発明の実施形態4における知識発見処理において、バックトラックの回数の上限値を0とした場合に生成されるルールの条件部を、生成される順に示す説明図
【図13】 本発明の実施形態4における知識発見処理において、バックトラックの回数の上限値を1とした場合に生成されるルールの条件部を、生成される順に示す説明図
【符号の説明】
11 データ入力部
12 ルール生成部
13 ルール評価部
14 データ出力部
15 木探索制御部
16 テスト評価部
17 探索範囲制御部
Claims (5)
- 満足するテストおよび所属クラスを表す情報を含む事例の集合が登録されたデータベースから、知識発見装置が、知識を発見して提示する知識発見方法であって、
前記知識発見装置のルール生成部が、前記データベースから、事例の集合に含まれるテストおよび所属クラスを抽出して、m個のテストA1、A2、…、Amの組み合わせである条件部B(=A1&A2&…&Am)と、結論となるクラスCとを含むデータで表されるルールを生成するステップと、
前記知識発見装置のルール評価部が、
前記ルールの条件部Bを満足する事例のうち前記ルールの結論となるクラスCに属する事例の割合である前記ルールの精度P(C|B)、
前記ルールの条件部の一部のテストAiを満足する事例のうちクラスCに属する事例の割合P(C|Ai)、
前記ルールの条件部Bから前記一部のテストAiを取り除いたテストBi(=A1&A2&…&Ai−1&Ai+1&…&Am)を満足する事例のうちクラスCに属する事例の割合P(C|Bi)、並びに
前記事例の集合全体におけるクラスCに属する事例の割合P(C)を計算し、
すべてのi(1≦i≦m)について下記条件1〜条件3の全てを満足するルールを意外性が高いと判断するステップと、
(条件1)
P(C|B)≧P(C|Ai)+δ1
(条件2)
P(C|B)≧P(C|Bi)+δ2
(条件3)
P(C|B)≧P(C|Ai)×P(C|Bi)÷P(C)+δ3
(δ1、δ2、δ3は、それぞれ0以上1以下の範囲の値をとるパラメータ)
前記知識発見装置のデータ出力部が、前記意外性が高いと評価されたルールのみを提示するステップとを含む、知識発見方法。 - 前記知識発見装置が、前記ルールの条件部を満足する事例の数、あるいは、前記ルールの条件部を満足する事例数の前記事例の集合における割合である支持度を算出するステップをさらに実行し、
前記提示するステップで、前記意外性が高く、かつ前記支持度が所定のレベルよりも高いと評価されたルールのみを提示する請求項1に記載の知識発見方法。 - 前記データベースから、事例の集合に含まれるテストおよび所属クラスを抽出して、前記ルールを生成するステップにおいて、前記知識発見装置が、前記複数のテストをノードとする探索木を用いた深さ優先探索を行って前記条件部にテストを順次追加することにより、前記ルールを生成する請求項1に記載の知識発見方法。
- 前記データベースから、事例の集合に含まれるテストおよび所属クラスを抽出して、前記ルールを生成するステップにおいて、前記知識発見装置が、前記条件部にテストを追加して生成されるルールと、元のルールとの間の、前記事例の集合における所属クラス分布の変化度合いを示す影響度を算出し、前記影響度が最も高いテストを選択して前記条件部に追加することにより、前記ルールの条件部を生成する請求項1に記載の知識発見方法。
- 前記データベースから、事例の集合に含まれるテストおよび所属クラスを抽出して、前記ルールを生成するステップは、
前記知識発見装置が、前記条件部にテストを追加して生成されるルールと、元のルールとの間の、前記事例の集合における所属クラス分布の変化度合いを示す影響度を算出する第1のステップと、
前記条件部に追加可能なテストの中から、バックトラックの回数が上限値を超えない範囲で選択したテストを前記条件部に前記影響度の高い順に順次追加することにより、前記ルールの条件部を生成する第2のステップと、
前記上限値を増加させて前記第2のステップに戻る第3のステップとを前記知識発見装置が実行することを特徴とする請求項1に記載の知識発見方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16521699A JP4530235B2 (ja) | 1999-06-11 | 1999-06-11 | 知識発見方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16521699A JP4530235B2 (ja) | 1999-06-11 | 1999-06-11 | 知識発見方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000353095A JP2000353095A (ja) | 2000-12-19 |
JP4530235B2 true JP4530235B2 (ja) | 2010-08-25 |
Family
ID=15808064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16521699A Expired - Fee Related JP4530235B2 (ja) | 1999-06-11 | 1999-06-11 | 知識発見方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4530235B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005107743A (ja) | 2003-09-29 | 2005-04-21 | Nec Corp | 学習システム |
JP4746850B2 (ja) | 2004-06-21 | 2011-08-10 | 富士通株式会社 | パターン生成プログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04260932A (ja) * | 1990-09-28 | 1992-09-16 | Pentel Kk | 推論機構 |
JPH06161756A (ja) * | 1992-11-26 | 1994-06-10 | Toyota Central Res & Dev Lab Inc | 制約緩和推論方法 |
-
1999
- 1999-06-11 JP JP16521699A patent/JP4530235B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04260932A (ja) * | 1990-09-28 | 1992-09-16 | Pentel Kk | 推論機構 |
JPH06161756A (ja) * | 1992-11-26 | 1994-06-10 | Toyota Central Res & Dev Lab Inc | 制約緩和推論方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2000353095A (ja) | 2000-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sourd et al. | A multiobjective branch-and-bound framework: Application to the biobjective spanning tree problem | |
Miyazaki | The complexity of McKay's canonical labeling algorithm. | |
CN110928986B (zh) | 法律证据的排序和推荐方法、装置、设备及存储介质 | |
US9674083B2 (en) | Path calculation order deciding method, program and calculating apparatus | |
Li et al. | An extended depth-first search algorithm for optimal triangulation of Bayesian networks | |
Madsen | Improvements to message computation in lazy propagation | |
Li et al. | Failure based variable ordering heuristics for solving CSPs (short paper) | |
JP4530235B2 (ja) | 知識発見方法 | |
US11669727B2 (en) | Information processing device, neural network design method, and recording medium | |
CN108052743B (zh) | 一种阶梯接近中心度确定方法及系统 | |
JP5964781B2 (ja) | 検索装置、検索方法および検索プログラム | |
Liu et al. | Estimating the optimal number of communities by cluster analysis | |
CN112819160B (zh) | 一种神经网络模型的可视化方法、装置、设备及存储介质 | |
Petrican et al. | Ontology-based skill matching algorithms | |
CN115146022A (zh) | 用于知识图中的关键词搜索的计算机实现方法 | |
Xiong et al. | Study of Bayesian network structure learning | |
JP2008209977A (ja) | 重要度算出装置,重要度算出方法,その方法を実装した重要度算出プログラム及びそのプログラムを格納した記録媒体 | |
CN106960064B (zh) | 一种基于自学习的几何辅助线添加方法 | |
JP2008234482A (ja) | 文書分類装置、文書分類方法、プログラムおよび記録媒体 | |
Eberlein et al. | Finding the Loops that Matter | |
JP2735866B2 (ja) | データベースのデータ検索方法 | |
JPH0668153A (ja) | データベース類似検索方法 | |
Doshi et al. | Towards effective structure learning for large Bayesian networks | |
Zhou et al. | Class association rules mining with time series and its application to traffic prediction | |
Wang et al. | Mining association rules uses fuzzy weighted FP-growth |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090317 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090518 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100218 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100419 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100603 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100603 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130618 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140618 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |