【文献】
櫻井 茂明,多様なデータに対する系列パターンマイニングの適用,人工知能学会誌,日本,社団法人人工知能学会,2012年 3月 1日,Vol.27 No.2,pp.128-135
【文献】
Rakesh Agrawal, Ramakrishnan Srikant,Mining Sequential Patterns,Proceedings of the Eleventh International Conference on Data Engineering,IEEE,1995年 3月 6日,pp.3-14,2015年6月15日検索,URL,http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=380415
(58)【調査した分野】(Int.Cl.,DB名)
前記評価値は、選択したパターンを前記集合から除いた集合が、前記集合に比べて、アイテムの頻度が平均化された状態に、より近づくほど、大きい、または、小さい値である、請求項1に記載のパターン発見装置。
前記所定の条件は、前記集合に含まれるパターン同士の包含関係、前記集合に含まれるパターンの頻度を示す値、前記集合に含まれるパターンを構成するアイテムの数、前記集合に含まれるパターンを構成するアイテムの種類の数とのうち、少なくとも1つを用いた条件である、
請求項4に記載のパターン発見装置。
前記集合に含まれるパターンであって、構成するアイテムの数が同じものからなる同種集合の中から、選択したパターンを除くことによる前記同種集合におけるアイテムの分布状況の変化を表す評価値を参照して、パターンを選択し、前記パターン格納部から削除することを、前記同種集合に含まれるパターンの数が予め決められた数になるまで繰り返す同種パターン選択部と、
前記集合に含まれるパターンのうち、前記集合に含まれるパターンのいずれかに包含されているパターンを、前記パターン格納部から削除する被含意パターン削除部と、
を備える、請求項1から請求項5のいずれかに記載のパターン発見装置。
【発明を実施するための形態】
【0008】
以下、実施形態のパターン発見装置、およびプログラムを、図面を参照して説明する。
【0009】
(第1の実施形態)
図1は、第1の実施形態のパターン発見装置10の構成を示す概略ブロック図である。パターン発見装置10は、データ格納部11、パラメータ格納部12、パターン生成部13、パターン発見制御部14、パターン格納部15、パターン選択部16、パターン削除部17、パターン出力部18を含む。
【0010】
データ格納部11は、本装置のパターン検出の対象となるデータを記憶する。本装置で対象とするデータは離散的なアイテムの組み合わせで構成されたアイテム集合であり、多数の当該アイテム集合から構成されている。ヘルスケア分野のアイテムとしては、例えば、健診項目「血圧」の検診結果「正常」というように、特定の健診項目の検査結果が正常値である、特定の健診項目の検査結果が異常値であるといったものがアイテムとなる。さらに、特定の受信者に関する複数の健診項目の健診結果をまとめたものがアイテム集合となる。このようなアイテム集合を複数の受診者について収集したものが対象のデータとなる。
【0011】
また、リテール分野においては、例えば、購買された商品がアイテムであり、特定の顧客が特定の日に購入した商品の集合がアイテム集合となる。このようなアイテム集合を、複数の顧客および複数の日に渡って収集したものが対象のデータとなる。
以下の説明においては、アイテムは便宜上小文字のアルファベットによって表現する。
【0012】
パラメータ格納部12は、パターン生成部13がパターンを生成する際に参照するパラメータを記憶する。パラメータ格納部12は、パターン生成部13が参照するパラメータとして、最小支持度と、最大パターン数とを記憶する。最小支持度は、パターン生成部13が生成するパターンが有すべき支持度の最小値である。最大パターン数は、データ格納部11が記憶するデータから検出するパターンの最大数である。なお、i番目のパターンの支持度D
iは、そのパターンの頻出性に関する評価値であり、式(1)で表されるように、データ中の、そのパターンの出現回数n
iを、データの件数N
Tで割った値である。出現回数n
iは、i番目のパターンを含むアイテム集合の数であり、データの件数N
Tは、データに含まれているアイテム集合の数である。
【0014】
パターン生成部13は、パラメータ格納部12が記憶するパラメータを参照し、データ格納部11が記憶するデータからパターンを生成する。パターン生成部13は、生成したパターンをパターン格納部15に格納する。なお、パターン生成部13は、アイテム数の少ないパターンから順に生成するが、あるアイテム数のパターンを生成する際に、そのアイテム数よりもアイテム数の少ないパターンを、パターン格納部15から読み出す。
【0015】
パターン発見制御部14は、パターン発見装置10の各部の処理順序などを制御する。パターン格納部15は、パターン生成部13が生成したパターンを記憶する。パターン選択部16は、パターン格納部15が記憶するパターンの集合に含まれる、互いに類似するパターンが少なくなるように、パターン格納部15から削除するパターンを選択する。パターン選択部16は、削除するパターンを選択する際に、パターン格納部15に格納されているパターンの集合から、選択したパターンを除くことによる、その集合におけるアイテムの分布状況の変化を表す評価値を参照する。パターン選択部16によるパターン選択の詳細は、後述する。
【0016】
パターン削除部17は、パターン選択部16が選択したパターンを、パターン格納部15から削除する。パターン出力部18は、パターン発見制御部14による制御に従い、パターン格納部15が記憶するパターンを出力する。
【0017】
図2は、パラメータ格納部12の記憶内容例を示すテーブルである。パラメータ格納部12は、予め設定された最小支持度と、最大パターン数とを記憶する。
図2の例では、パラメータ格納部12は、最小支持度「0.1」と、最大パターン数「100」とを記憶している。
【0018】
図3は、データ格納部11の記憶内容例を示すテーブルである。データ格納部11は、アイテム集合を識別するデータIDと、1つまたは複数のアイテムからなるアイテム集合とを対応付けて記憶している。
図3の例では、例えば、データID「t1」と対応付けて、アイテム「a」、「b」、「c」、「f」からなるアイテム集合を記憶している。また、データID「t2」と対応付けて、アイテム「a」、「b」、「d」からなるアイテム集合を記憶している。同様にして、データID「tn」までの各データIDに対応付けて、アイテム集合を記憶している。パターン発見装置10は、このようなデータの中から、データを特徴付けるアイテムの組み合わせであるパターンを、最大パターン数以下だけ発見する。
【0019】
図4は、パターン発見装置10の動作を説明するフローチャートである。まず、ステップSa1では、パターン発見制御部14がパターン生成部13にパラメータの読み込み開始を通知する。この通知を受けたパターン生成部13は、パラメータ格納部12に格納されているパラメータの読み込みを行う。また、パラメータの読み込みが終了した段階で、パターン生成部13はパターン発見制御部14にパラメータの読み込みが終了したことを通知する。
【0020】
次に、ステップSa2では、パターン発見制御部14がパターン生成部13にデータの読み込み開始を通知する。この通知を受けたパターン生成部13は、データ格納部11に格納されているデータの読み込みを行う。また、データの読み込みが終了した段階で、パターン生成部13は、パターン発見制御部14にデータの読み込みが終了したことを通知する。
【0021】
次に、ステップSa3では、パターン発見制御部14がパターン数を0に初期化し、パターン生成部13にパターン生成の開始を通知する。次に、ステップSa4では、パターン生成の開始通知を受けて、パターン生成部13がパターンの候補を1つ生成する。このとき、パターンの候補を作成できない場合には(Sa4−失敗)、パターン生成部13は、パターンの生成処理の終了をパターン発見制御部14に通知し、パターン発見制御部14は、処理を終了する。
【0022】
一方、ステップSa4にてパターンの候補を生成できる場合には(Sa4−成功)、パターン生成部13は、パターンの候補が生成できたことをパターン発見制御部14に通知する。パターン発見制御部14はパターン生成部13に、ステップSa5の処理を実施することを通知する。なお、ステップSa4におけるパターンの候補の生成には、例えば、非特許文献1("Mining Sequential Patterns", Proceedings of the 11th International Conference on Data Engineering, p3-14, March 6, 1995)に記載の方法を用いることができるが、その他の方法を用いてもよい。
【0023】
ステップSa5では、パターン生成部13は、生成したパターンの候補を含むアイテム集合の頻度n
iを算出し、式(1)を用いて、当該候補の支持度を算出する。パターン生成部13は、この支持度がステップSa1にて読み込んだ最小支持度以上となっている場合には、パターンの生成に成功したと判定し(Sa5−成功)、パターンの生成に成功したことをパターン発見制御部14に通知する。この通知を受けたパターン発見制御部14は、ステップSa6の処理を実施することをパターン生成部13に通知する。一方、ステップSa5にて、算出した支持度が最小支持度未満となっている場合には、パターン生成部13は、パターンの生成に失敗したと判定し(Sa5−失敗)、パターンの生成に失敗したことをパターン発見制御部14に通知する。この通知を受けたパターン発見制御部14はパターン生成部13に、ステップSa4の処理を実施することを通知する。
【0024】
ここで、パターンの候補を含むアイテム集合の頻度の算出方法について簡単に説明する。データ格納部11は、
図3の例を記憶しているとして説明する。パターンの候補として、「a,f」が生成されている場合、アイテム集合t1及びt3には、アイテム「a」、「f」がともに存在するため、アイテム集合t1及びt3はパターンの候補を含んでいると判定される。一方、アイテム集合t2及びtnには「a」及び「f」の一方しか存在しないため、アイテム集合t2及びtnはパターンの候補を含んでいないと判定される。また、アイテム集合t4には「a」、「f」のいずれも存在していないため、アイテム集合t4はパターンの候補を含んでいないと判定される。パターンを含んでいると判定されたデータの個数がパターンの候補を含むアイテム集合の頻度となる。
【0025】
上記のようにして算出したパターンの頻度に基づいて、パターン生成部13は、パターンの候補の支持度を、式(1)によって算出する。
例えば、最小支持度が0.5である場合に、「a,f」の支持度が0.6と算出されるとすれば、支持度は最小支持度以上であるため、ステップSa5へと処理が進むことになる。一方、「a,f」の支持度が0.4と算出されるとすれば、ステップSa4へと処理が進むことになる。
【0026】
ステップSa6では、パターン生成部13は、生成したパターンとその支持度をパターン格納部15に格納して、パターンの数を1積算する。また、パターン生成部13は、パターン発見制御部14にパターンを格納したことを通知する。パターン発見制御部14は、パターン生成部13にステップSa7の処理を実施することを通知する。
例えば、パターンの候補「a,f」の支持度が0.6であるとすれば、
図5に示すように、当該候補がパターンとして、その支持度とともに格納されることになり、パターンの数が1積算されることになる。
【0027】
ステップSa7では、パターン生成部13は、パターン格納部15に登録されているパターンの数が、ステップSa1にて読み込んだ最大パターン数を超えているかどうかを判定し、判定結果をパターン発見制御部14に通知する。パターン発見制御部14は、最大パターン数を超えていない場合には(Sa7−以下)、ステップSa4を実施することをパターン生成部13に通知する。一方、最大パターン数を超えている場合には(Sa7−超える)、パターン発見制御部14は、ステップSa8を実施することをパターン生成部13に通知する。
【0028】
例えば、最大パターン数が100である場合に、
図5に示すパターンが格納されている場合には、パターンの最大数を超えていないので(m<100)、ステップSa4へと処理が進むことになる。一方、
図6に示すような101個のパターンがパターン格納部15に格納されている場合には、最大パターン数以上であるため、ステップSa8へと処理が進むことになる。
【0029】
ステップSa8では、パターン選択部16は、パターン格納部15に格納されているパターン集合から、選択したパターンを除くことによる、この集合におけるアイテムの分布状況の変化を表す評価値を参照して、削除するパターンを選択する。これにより、パターン選択部16は、パターン格納部15に格納されているパターン間で、類似するものが減るように、削除するパターンを選択している。
【0030】
また、本実施形態では、この選択の際に、パターン選択部16は、分布状況の変化を表す評価値以外に、パターンの頻度、パターンの含意関係なども参照する。なお、パターンの選択方法に関する詳細は後述する。パターン選択部16は、選択したパターンを、パターン発見制御部14に通知する。この通知を受けたパターン発見制御部14は、パターン削除部17に、パターン選択部16が選択したパターンの削除を通知して、処理をステップSa9へと進める。
【0031】
ステップSa9では、パターン削除部17は、パターン発見制御部14に通知されたパターン、すなわちパターン選択部16が選択したパターンをパターン格納部15から削除し、パターン数を1減らす。さらに、パターン削除部17は、パターン発見制御部14にパターンの削除が終了したことを通知する。この通知を受けたパターン発見制御部14は、ステップSa4の処理を実施することを、パターン生成部13に通知する。
【0032】
例えば、
図6のパターンがパターン格納部15に格納されている場合に、パターン選択部16によりパターン「a,b」が選択されているときは、パターン削除部17は、パターンID「p1」のパターン「a,b」をパターン格納部15から削除する。これにより、パターン格納部15に格納されているパターンは、
図7のようになる。
【0033】
図8は、パターン選択部16の動作を説明するフローチャートである。
図8のフローチャートは、
図4のステップSa8におけるパターン選択処理の詳細である。まず、ステップSb1では、パターン選択部16は、パターン格納部15に格納されているパターンの集合の中からパターンを1つ取り出して、処理をステップSb2へと進める。取り出すパターンは、例えば、パターン格納部15の先頭に格納されているものなど、どのような基準で決められてもよい。このとき、最大パターン数は1以上に設定されているため、取り出すパターンが存在しないといったことは生じない。
【0034】
次に、ステップSb2では、パターン選択部16は、パターン格納部15に格納されているパターンの集合の中から選択したパターンを取り除いた場合における残存パターン集合に対して、パターンの評価値を算出して、処理をSb2へと進める。この評価値は、パターン格納部15に格納されているパターンの集合から、選択したパターンを除くことによる、この集合におけるアイテムの分布状況の変化を表す評価値である。例えば、パターン選択部16は、パターン格納部15のi番目のパターンに関する、この評価値E
iを、式(2)により算出する。
【0036】
ここで、σ
iは、パターン格納部15に格納されているパターンの集合からi番目のパターンを除いた集合におけるアイテムの頻度の分散である。また、σ
Tは、パターン格納部15に格納されているパターンの集合におけるアイテムの頻度の分散である。この評価値がより大きいということは、そのパターンを削除することにより、パターン格納部15に格納されているパターンの集合におけるアイテムの頻度の分散が、より小さくなることを表している。
【0037】
したがって、この評価値がより大きいパターンを削除することで、よりアイテムの頻度が平均化された集合にすることができる。集合に類似したパターンが含まれていると、アイテムの頻度に偏りが発生するため、この評価値を参照して、アイテムの頻度の偏りがより小さい集合とすることで、類似したパターンの少ない集合となることが期待できる。
【0038】
パターン格納部15に格納されているパターンの集合に含まれているアイテムの頻度分布が
図9のように与えられているときを例に説明する。選択されているパターンは、パターン「a,b」であるとする。パターン「a,b」を
図9のアイテムの頻度分布から削除することにより、アイテム「a」、「b」それぞれの頻度が1ずつ減り、アイテムの頻度分布は
図10のようになる。
図9、
図10の頻度分布におけるアイテムの頻度の分散は、それぞれ、685.7143、668.7755である。式(2)よって算出されるパターン「a,b」の評価値は、0.024702(≒1−668.7755/685.7143)である。
【0039】
図8の説明に戻って、ステップSb3では、パターン選択部16は、パターン格納部15に格納されているパターン集合のうち、まだ選択されていないパターンを1つ取り出す。このとき、取り出すパターンが存在しない場合には(Sb3−失敗)、パターン選択部16における処理は終了する。一方、パターンが取り出された場合には(Sb3−成功)、ステップSb4へと処理を進める。
【0040】
ステップSc4では、パターン選択部16は、選択されている2つのパターンに対して、パターンの含意関係を判定する。前に選択されているパターンが、後に選択されているパターンに被含意であるときは(Sb4−被含意)、処理は、ステップSb3に進む。また、前に選択されているパターンが、後に選択されているパターンを含意しているときは(Sb4−含意)、処理は、ステップSb8に進む。前に選択されているパターンと、後に選択されているパターンとの間に含意関係がないときは(Sb4−非含意)、処理は、ステップSb5に進む。
【0041】
ここで、パターンの含意関係は、パターンを構成するアイテムによって評価される。具体的には、パターン選択部16は、一方のパターンに含まれるアイテムの集合がもう一方のパターンに含まれるアイテムの集合の部分集合になっている場合に、含意関係が存在すると判定する。例えば、前に選択されているパターンが「a,b」であり、その後に選択されているパターンが「a,b,c」である場合には、前に選択されているパターンは、後に選択されているパターンに含まれることになる。この場合、前に選択されているパターンは、後に選択されているパターンに被含意であると判定され、ステップSb3へと処理が進むことになる。
【0042】
その逆に、前に選択されているパターンが「a,b,c」であり、後に選択されているパターンが「a,b」の場合には、前に選択されているパターンは、後に選択されているパターンを含むことになる。このため、前に選択されているパターンは、後に選択されているパターンを含意していると判定され、ステップSb8へと処理が進むことになる。一方、前に選択されているパターンが「a,b」であり、後に選択されているパターンが「a,f」の場合には含意関係は存在していないため、非含意と判定されることになり、ステップSb5へと処理を進めることになる。
【0043】
ステップSb5では、パターン選択部16は、選択されている2つのパターン各々に付随するパターンの支持度を比較し、その大小関係を評価する。前に選択されているパターンの支持度が、後に選択されているパターンの支持度よりも小さいときは(Sb5−小さい)、処理は、ステップSb3に進む。逆に、前に選択されているパターンの支持度が、後に選択されているパターンの支持度よりも大きいときは(Sb5−大きい)、処理は、ステップSb8に進む。また、前に選択されているパターンの支持度と、後に選択されているパターンの支持度とが等しいときは(Sb5−等しい)、処理は、ステップSb6に進む。なお、ステップSb5において、パターン選択部16は、予め決められた所定以上の差があるときのみ、大きい、または、小さいと判定し、差が所定以内のときは、等しいと判定してもよい。
【0044】
例えば、前に選択されているパターンが「a,b」であり、後に選択されているパターンが「a,e」であり、各パターンには
図6に示す支持度がそれぞれ与えられているとする。このとき、パターン「a,b」の支持度が0.6、パターン「a,e」の支持度が0.7と与えられているため、前に選択されているパターン「a,b」の支持度の方が小さいと判定される。その結果、ステップSb3へと処理が進む。
【0045】
その逆に、前に選択されているパターンが「a,e」、後に選択されているパターンが「a,b」の場合には、前に選択されているパターンの支持度の方が大きいと判定され、処理は、ステップSc8へと進むことになる。一方、前に選択されているパターンが「a,b」、後に選択されているパターンが「a,f」の場合には、支持度が0.6と等しくなるため、等しいと判定され、ステップSb6へと処理が進むことになる。
【0046】
ステップSb6では、パターン選択部16は、選択されている2つのパターン各々を構成するアイテムの種類数を比較し、アイテムの種類数の大小関係を評価する。アイテムの種類は、アイテムの項目名と値との組み合わせであってもよいし、アイテムの項目名であってもよいし、アイテムの項目名の種類であってもよい。ヘルスケア分野では、例えば、健診項目とその結果との組み合わせ、あるいは健診項目などがアイテムの種類である。また、リテール分野では、例えば、購買された商品の種類が、アイテムの種類である。
【0047】
ステップSb6において、前に選択されているパターンのアイテムの種類数が、後に選択されているパターンのアイテムの種類数よりも少ないときは(Sb6−少ない)、処理は、ステップSb3に進む。逆に、前に選択されているパターンのアイテムの種類数が、後に選択されているパターンのアイテムの種類数よりも多いときは(Sb6−多い)、処理は、ステップSb8に進む。また、前に選択されているパターンのアイテムの種類数と、後に選択されているパターンのアイテムの種類数とが等しいときは(Sb6−等しい)、処理は、ステップSb7に進む。
【0048】
例えば、前に選択されているパターンが「a,b」、後に選択されているパターンが「a,e,f」であり、各パターンを構成するアイテムの種類数が2、3であるとする。このときは、前に選択されているパターンのアイテムの種類数の方が少なくなり、ステップSb3へと処理が進むことになる。その逆に、前に選択されているパターンが「a,e,f」、後に選択されているパターンが「a,b」の場合には、前に選択されているパターンのアイテムの種類数の方が多いと判定され、ステップSb6へと処理が進む。一方、前に選択されているパターンが「a,b」、後に選択されているパターンが「a,f」であり、アイテムの種類数がともに2であるときは、等しいと判定されるため、ステップSb7へと処理は進む。
【0049】
ステップSb7では、選択されている2つのパターン各々を構成するアイテムの数を比較し、アイテムの数の大小関係を評価する。前に選択されているパターンのアイテムの数が、後に選択されているパターンのアイテムの数よりも少ないときは(Sb7−少ない)、処理は、ステップSb3に進む。逆に、前に選択されているパターンのアイテムの数が、後に選択されているパターンのアイテムの数よりも多いときは(Sb7−多い)、処理は、ステップSb8に進む。また、前に選択されているパターンのアイテムの数と、後に選択されているパターンのアイテムの数とが等しいときは(Sb7−等しい)、処理は、ステップSb10に進む。
【0050】
例えば、前に選択されているパターンが「a,b」、後に選択されているパターンが「a,e,f」である場合、各パターンを構成するアイテムの数は2、3となる。このため、前に与えられているパターンのアイテムの数の方が少なくなり、ステップSb3へと処理が進むことになる。その逆に、前に与えられているパターンが「a,e,f」、後に与えられているパターンが「a,b」の場合には、前に与えられているパターンのアイテムの数の方が多いと判定され、ステップSb8へと処理が進むことになる。
【0051】
一方、前に選択されているパターンが「a,b」、後に選択されているパターンが「a,f」である場合には、アイテムの数はともに2となり、等しいと判定されるため、ステップSb10へと処理が進む。ただし、パターン発見問題において、パターンを構成するアイテムの重複が認められていない場合など、アイテムの種類数とアイテムの数は同一となる場合は、ステップSb6及びステップSb7のいずれかを行うだけで十分である。
【0052】
ステップSb8では、パターン選択部16は、前に選択されているパターンを除いたパターン集合に対して算出されているパターンの評価値を初期化する。次に、ステップSb9では、パターン選択部16は、現在の後に選択されているパターンを、新たな前に選択されているパターンとすることで、選択パターンを更新した後、ステップSb2に進む。これにより、新たな前に選択されているパターンの評価値が算出される。
【0053】
一方、ステップSb10では、パターン選択部16は、パターン格納部15に格納されているパターン集合の中から、後に選択されているパターンを除いた場合の評価値を、式(2)を用いて、算出する。例えば、
図9に示す頻度分布のパターン集合がパターン格納部15に格納されており、後に選択されているパターンがパターン「a,f」であるとする。このとき、パターンの評価値は、0.028869(≒1−665.9184/685.7143)となる。
【0054】
図8に戻って、ステップSb11では、パターン選択部16は、前に選択されているパターンの評価値と、後に選択されているパターンの評価値の大小関係を評価する。前に選択されているパターンの評価値が、後に選択されているパターンの評価値以上であるときは(Sb11−以上)、処理は、ステップSb3に進む。前に選択されているパターンの評価値が、後に選択されているパターンの評価値より小さいときは(Sb11−小さい)、処理は、ステップSb12に進む。
【0055】
例えば、前に選択されているパターンが「a,b」であり、後に選択されているパターンが「a,f」の場合には、ステップSb2とステップSb10にて説明したように、評価値は、それぞれ0.024702及び0.028869である。したがって、前に選択されているパターンの評価値の方が小さいと判定され、ステップSb12へと処理が進む。その逆に、前に選択されているパターンが「a,f」、後に選択されているパターンが「a,b」の場合には、前に選択されているパターンの評価値が後に選択されているパターンの評価値以上となる。したがって、ステップSb3へと処理が進む。本実施形態においては、評価値が等しい場合には、ステップSb3に進み、前に選択されているパターンを残すようにしているが、ステップSb12に進み、後に選択されているパターンを残すようにしてもよい。
【0056】
ステップSb12では、パターン選択部16は、現在の後に選択されているパターンを、新たな前に選択されているパターンとすることで、選択パターンを更新する。次に、ステップSb13では、パターン選択部16は、新たな前に選択されているパターンの評価値を、元の後に選択されているパターンの評価値とすることにより、評価値の更新を行う。次に、処理は、ステップSb3に進む。
【0057】
以上のようにして、
図8のステップSb11にて、前に選択されているパターンの評価値の方が小さいときは、より評価値が大きい、後に選択されているパターンを、新たな前に選択されているパターンとしている。これにより、より評価値の大きいパターンが、削除される対象となる。したがって、パターン格納部15に格納されているパターンを構成するアイテムの多様性を保った、互いに非類似なパターンをパターン格納部15に格納されるパターン集合に残すことができる。
【0058】
また、パターン発見装置10は、最小支持度によって出現頻度が少な過ぎて意味がないパターンを削除しつつ、含意関係にあるパターンや、アイテムの多様性が低いパターンを削除することにより、似通ったパターンが多数発見されるのを抑制することができる。また、発見されるパターンの上限を指定することにより、パターンが大量に発見されるのを抑止することができ、計算時間の過大な増加やメモリ不足によるパターン発見の失敗を回避することができる。
【0059】
このように、パターン選択部16は、パターン格納部15に格納されているパターンの集合から、選択したパターンを除くことによる、この集合におけるアイテムの分布状況の変化を表す評価値を参照して、この集合からパターンを選択する。そして、パターン削除部17は、パターン選択部16が選択したパターンを、パターン格納部15から削除する。
【0060】
これにより、パターン格納部15に格納されているパターンの集合において、よりアイテムの頻度が平均化されている状態となるパターンを削除することができる。集合に類似したパターンが含まれていると、アイテムの頻度に偏りが発生するため、よりアイテムの頻度が平均化されている状態となるパターンを削除することで、発見したパターンの集合が、類似したパターンの少ない集合となることが期待できる。
【0061】
(第2の実施形態)
図12は、第2の実施形態のパターン発見装置10aの構成を示す概略ブロック図である。同図において、
図1の各部に対応する部分には、同一の符号を付し、説明を省略する。パターン発見装置10aは、データ格納部11a、パラメータ格納部12、パターン生成部13、パターン発見制御部14a、パターン格納部15、同種パターン選択部16a、異種パターン選択部16b、被含意パターン選択部16c、パターン削除部17、パターン出力部18を含む。
【0062】
データ格納部11aは、パターン発見装置10aのパターン検出の対象となるデータを記憶する。このデータは、アイテムの集合として構成されるとともに、アイテムの出現する順序も有する。
図13は、データ格納部11aの記憶内容例を示すテーブルである。
図13の例においては、「>」で区切られた単位において、同じ順序で発生したことが表されており、異なる順序においては、右に行く程その順序が後になることが表されている。従って、データID「s1」のアイテム集合においては、アイテム「a」、「b」が同順序で発生しており、その後で、アイテム「c」、アイテム「f」が異なる順序で、順に発生している。
【0063】
また、データID「sn」及び「sn+1」のアイテム集合は、構成するアイテムは全く同じになっているものの、アイテムの出現する順序が異なっている。したがって、同一のアイテム集合ではない。また、データID「sn+2」の例に示すように、同一のアイテムが異なる順位において複数回出現することが可能となっている。
【0064】
パターン発見制御部14aは、
図1のパターン発見制御部14と同様に、パターン発見装置10aの各部の処理順序などを制御する。ただし、パターン発見制御部14とは、処理順序が異なる。これにより、パターン格納部15に格納されているパターンに含まれる、アイテムの部分集合の数が同じパターンの数は、予め決められた最大同種パターン数以下となる。また、パターン格納部15に格納されているパターンに含まれるパターンの数は、予め決められた最大パターン数以下となる。
同種パターン選択部16a(パターン選択部)は、パターン格納部15に格納されているパターンのうち、アイテム数が同じパターンの集合(同種集合)から、削除するパターンを選択する。同種パターン選択部16aは、
図1のパターン選択部16と同様にして、削除するパターンを選択する。
【0065】
異種パターン選択部16b(パターン選択部)は、パターン格納部15に格納されているパターン全体の集合から、削除するパターンを選択する。異種パターン選択部16bは、
図1のパターン選択部16と同様にして、削除するパターンを選択する。ただし、後述するように、被含意のパターンが削除された状態で、処理が行われるため、異種パターン選択部16bの処理は、ステップSb4を有していなくてもよい。
被含意パターン選択部16cは、パターン格納部15が格納しているパターンのうち、いずれかのパターンに含意されている被含意のパターンを、削除するために選択する。
【0066】
図14は、パターン発見装置10aの動作を説明するフローチャートである。ステップSc1、Sc2は、
図4のステップSa1、Sa2と同様であるので、説明を省略する。次に、ステップSb3では、パターン生成部13は系列の長さが短いものから順にパターンを発見していくため、パターン発見制御部14aは、系列の長さを1に設定する。ここで、系列の長さとは、パターンを構成するアイテムの組み合わせにおいて、同順位に発生するアイテムの部分集合の個数のことである。例えば、
図13のデータID「s1」のアイテム集合の場合、「{a, b}」、「c」、「f」と3つの異なる順序に属するアイテムの部分集合が存在するため、その長さは3である。
【0067】
ステップSc4では、パターン発見制御部14aがパターン数を0に初期化し、設定された系列長におけるパターンの生成開始をパターン生成部13に通知する。次に、ステップSc5では、設定された系列長におけるパターン生成の開始の通知を受けて、パターン生成部13は、パターンの候補を生成する。生成に失敗したときは(Sc5−失敗)、処理は、ステップSc11に進む。生成に成功したときは(Sc5−成功)、処理は、ステップSc6に進む。
【0068】
ステップSc6では、パターン生成部13は、データ格納部11aに格納されているデータを参照して、生成したパターンの候補を含むデータの頻度を算出し、式(1)によって支持度を算出する。このとき、パターン生成部13は、算出した支持度がパラメータ格納部12から読み込まれた最小支持度以上になっているかどうかを判定し、判定結果をパターン発見制御部14aに通知する。パターン発見制御部14aは、判定結果を受けて、最小支持度以上になっている場合には、ステップSc7へと処理を進める。一方、最小支持度より小さくなっている場合には、パターン発見制御部14aは、ステップSc5へと処理を進める。
【0069】
ただし、パターンの頻度の算出において、パターンを構成するアイテムの順序関係を含めて一致するかどうかを考慮してデータとパターンとの間の含意関係を評価する。例えば、パターンの候補として、「a>b」が生成されているとする。このとき、
図13のデータにおいて、パターンの候補を含んでいるデータを説明する。データID「s1」のアイテム集合の場合においては、「a」、「b」は同時に発生したアイテムとなっているため、パターンの候補におけるアイテム「a」と「b」との順序関係と異なっているため含んでいないと判定される。同様に、データID「sn+3」のアイテム集合は、アイテムの出現順序がパターンの候補のものと逆順となっているために、含んでいないと判定される。
【0070】
一方、データID「sn+4」のアイテム集合においては、途中の順序にアイテム「f」を含んではいるものの、アイテム「a」とアイテム「b」の順序関係は保たれているため、パターンの候補を含んでいると判定される。また、データID「sn+5」のアイテム集合においては、アイテム「a」とアイテム「b」が、「a」の次に「b」といった順に、2度出現しているものの、アイテム集合単位に含んでいるかどうかを判定することになるため、このアイテム集合に対するパターンの候補の頻度は1と判定される。この他、データID「s2」のアイテム集合がパターンの候補を含んでいると判定されることになる。
【0071】
ステップSc7及びステップSc8では、
図4におけるステップSa6のパターン登録及びステップSa7のパターン数判定と同様な処理を行うことにより、ステップSb4あるいはステップSb9のいずれかに処理を進めることになる。ただし、ステップSa6のパターン登録およびステップSa7のパターン数判定においては、現在生成対象になっている系列長におけるパターンの数と、現在の系列長よりも短い系列長のパターンは別々に管理されている。
【0072】
例えば、現在の系列長の長さが3であり、101個目の長さ3のパターン「g>f>f」が登録された場合には、
図15に示すようにパターンが登録されていることになる。
図15の例においては、系列長が2以下となるk(≦100)個のパターンが、系列長3のパターンの他に登録されていることになる。
【0073】
ステップSc9では、
図4におけるステップSa8のパターン選択と同様な処理を、現在の系列長に一致するパターンの集合に対して、同種パターン選択部16aが実施することにより、削除するパターンを選択する。
【0074】
例えば、支持度が等しいパターン「a>f>b」及び「b>f>{a,f}」という2つのパターンの内からいずれかのパターンを選択する場合の例を説明する。このとき、パターンを構成するアイテムの種類は「a」、「b」、「f」となり、どちらパターンの場合においても3種類であるものの、前者のアイテムの数は4となっているため、前者のパターン「a>f>b」が削除対象のパターンとして選択されることになる。
【0075】
また、支持度が等しい「a>b」及び「a>f」という2つのパターンの内からいずれかのパターンを選択する場合の例を説明する。このとき、パターン集合のアイテムの頻度分布が
図9のように与えられているとすれば、パターン「a>b」を除いた場合及びパターン「a>f」を除いた場合のアイテムの頻度分布は、
図10、
図11に示すようにそれぞれ与えられることになる。このため、パターン「a>b」及び「a>f」の評価値は、
図4の場合における例と同様に、0.024702、0.028869となる。このため、パターン「a>f」が削除対象のパターンとして選ばれる。
【0076】
ステップSc10では、
図4におけるステップSa9のパターン削除と同様な処理を実施することにより、同種パターン選択部16aにより選択されたパターンを、パターン格納部15に格納されているパターンから削除する。また、パターンの数を1減らし、ステップSc5へと処理を進める。
【0077】
一方、ステップSc11では、被含意パターン選択部16cが、パターン格納部15に格納されているパターンのうち、現在の系列長のパターンのいずれかと包含関係にあるパターン、すなわち被含意のパターンを判定する。パターン削除部17は、被含意と判定されたパターンを削除する。パターン生成部13によるパターンの生成では、現在の系列長のパターンの候補を生成するために、系列長が現在の系列長より1つ短い下位のパターンが必要となる。このため、現在の系列長のパターンを生成している段階では、パターン格納部15には、1つ短い下位のパターンが保存されている。
【0078】
一方、現在の系列長の生成が終了した段階では、1つ下位のパターンは不要となるため、現在の系列長に含意されるパターンを削除することにより、パターン格納部15に格納されるパターンの数を少なくする。なお、被含意パターン選択部16cの詳細に関しては、後述する。
【0079】
ステップSc12では、パターン生成部13は、系列長を考慮せずに、パターン格納部15に登録されているパターンの数が最大パターン数以下になっているかどうかを判定し、判定結果をパターン発見制御部14aに通知する。パターン発見制御部14aは、最大パターン数以下になっている場合には(Sc12−以下)、処理をステップSc15に進める。一方、最大パターン数を超えている場合には(Sc12−超える)、処理をステップSb13へと処理を進める。なお、ステップSc8における最大パターン数と、ステップSc12における最大パターン数は同じであってもよいし、異なっていてもよい。
【0080】
ステップSc13では、異種パターン選択部16bは、系列の長さを考慮せずに、
図4におけるステップSa8のパターン選択と同様な処理を実施することにより、削除対象となるパターンを1つ選択する。異種パターン選択部16bは、選択したパターンをパターン発見制御部14aに通知する。パターン発見制御部14aは、処理をステップSc14へと進める。
【0081】
ステップSc14では、パターン削除部17は、
図4におけるステップSa9のパターン削除と同様な処理を実施する。これにより、異種パターン選択部16bによって選択されたパターンを、パターン格納部15に格納されているパターンから削除する。また、パターンの数を1減らして、処理をステップSc12へと進む。これらのステップSc12からステップSc14の一連の処理は、パターン格納部15に格納されているパターンの数が最大数以下になるまで繰り返されることになる。
【0082】
ステップSc15では、現在の系列長を延伸可能かどうかを、パターン生成部13が判定し、結果をパターン発見制御部14aに通知する。パターン発見制御部14aは、系列長が延伸できる場合には(Sc15−成功)、系列長を1加算して処理をステップSc4へと進める。一方、延伸できない場合には(Sc15−失敗)、本装置の処理を終了する。
【0083】
ここで、系列長が延伸できるかどうかは、現在の系列長に一致するパターンがパターン格納部15に少なくとも1つ存在するかどうかによって判断することができ、少なくとも1つ存在する場合には、パターン生成部13は、系列長の延伸が可能と判定する。
【0084】
図16は、被含意パターン選択部16cの動作を説明するフローチャートである。
図16のフローチャートは、
図14のステップSc11の詳細を説明する。まず、ステップSd1では、被含意パターン選択部16cが、パターン格納部15に格納されている現在の系列長のパターンで、まだ抽出されていないパターンの中から、上位パターンとしてパターンを1つ取り出す。このとき、被含意パターン選択部16cは、パターンを取り出せたかどうかを、パターン発見制御部14aに通知する。パターン発見制御部14aは、上位パターンが取り出せた場合には(Sd1−成功)、処理をステップSd2へと進める一方、上位パターンが抽出できない場合には(Sd1−失敗)、ステップSc11の被含意パターン削除を終了する。
【0085】
ステップSd2では、被含意パターン選択部16cは、パターン格納部15に格納されている、現在の系列長よりも1つ短く、まだ抽出されていないパターンの中から、下位パターンとしてパターンを1つ取り出す。このとき、被含意パターン選択部16cは、パターンを取り出せたかどうかを、パターン発見制御部14aに通知する。パターン発見制御部14aは、下位パターンが取り出せた場合には(Sd2−成功)、処理をステップSd3へと進める一方、下位パターンが抽出できない場合には(Sd2−失敗)、処理をステップSd1へと進める。
【0086】
ステップSd3では、被含意パターン選択部16cは、上位パターンが下位パターンを含意するかどうかを判定し、結果をパターン発見制御部14aに通知する。パターン発見制御部14aは、含意関係の判定結果に従って、含意する場合には(Sd4−被含意)、処理をステップSd4へと進める。一方、非含意の場合には(Sd4−非含意)、処理をステップSd2へと進める。
【0087】
例えば、上位パターンとして「a>b>f」が選択されており、下位パターンとして「a>b」、「a>f」、「b>f」のいずれかが選択されている場合には、被含意パターン選択部16cは、含意していると判定する。一方、上位パターンが同じで、下位パターンとして、「b>a」、「f>a」、「f>b」のいずれかが選択されている場合には、被含意パターン選択部16cは、非含意と判定する。
【0088】
ステップSd4では、パターン削除部17は、ステップSd3にて含意すると判定されたときの下位パターンをパターン格納部15から削除し、パターンの数を1減らす。また、パターンを削除したことをパターン発見制御部14aに通知する。パターン発見制御部14aは、処理をステップSd2へと進める。
【0089】
以上のような処理を実施することにより、パターン発見装置10aは、データやパターンを構成するアイテムの出現順序を考慮した、最大パターン数以下の特徴的なパターンを発見することができる。
【0090】
上述の各実施形態では、パターン選択部16、同種パターン選択部16a、異種パターン選択部16bは、
図8のフローチャートに示すよう動作するが、含意関係判定、支持度判定、アイテム種類数判定、アイテム数判定、評価値判定の順序は、異なる順序であってもよい。
【0091】
また、パターンの評価値としては、パターン間の類似性を評価する他の基準を利用することも可能であるとともに、パターンの出現順序を考慮した類似性を評価することもできる。
また、パターン選択部16、同種パターン選択部16a、異種パターン選択部16bにおいては、含意、被含意、非含意といった3種類のタイプの判定が行われているが、パターン格納部15に格納されているパターンをアイテムの出現順及び系列の長さ順といった基準でソートしておくことにより、含意か非含意のいずれかを判定するかでよいように構成することもできる。
【0092】
また、上述の各実施形態において、評価値E
iは、選択したパターンを、パターン格納部15から除いた集合(削除後集合)が、パターン格納部15に格納されている集合(削除前集合)に比べて、アイテムの頻度が平均化された状態に、より近づくほど、大きい値であればよい。例えば、削除後集合におけるアイテムの頻度の分散への、削除前集合におけるアイテムの頻度の分散からの減少を表す値であればよい。そのような評価値E
iとしては、式(2)以外に、例えば、式(3)によって算出したものがある。
【0094】
また、上述の各実施形態において、評価値E
iは、選択したパターンを、パターン格納部15から除いた集合が、パターン格納部15に格納されている集合に比べて、アイテムの頻度が平均化された状態に、より近づくほど、小さい値であってもよい。例えば、評価値E
iは、式(4)により算出されてもよい。ただし、この場合、
図8のステップSb11における判定で、前に選択されているパターンの評価値が、後に選択されているパターンの評価値より大きいときに、処理は、ステップSb12に進む。
【0096】
また、上述の各実施形態において、パターン選択部16、同種パターン選択部16a、異種パターン選択部16bは、パターン同士の包含関係、パターンの頻度を示す値、パターンを構成するアイテムの数、パターンを構成するアイテムの種類の数などを用いた所定の条件を満たすパターンの内、評価値が最も大きいパターンを選択しているが、これらのうち、一部を参照してもよいし、全てを参照しなくてもよい。
【0097】
以上説明した少なくとも1つの実施形態によれば、上述の評価値を参照して、パターン格納部15からパターンを選択するパターン選択部と、パターン選択部が選択したパターンを、パターン格納部15から削除するパターン削除部17を持つことにより、パターン格納部15に格納されているパターンの集合が、類似したパターンの少ない集合となるようにすることができる。
【0098】
また、
図1におけるパターン発見装置10、もしくは
図12におけるパターン発見装置10aの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、パターン発見装置10、10aを実現するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0099】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0100】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。