(57)【特許請求の範囲】
【請求項１】
ベイジアンネットワークモデルを構築するモデル構築装置であって、
制御部が、入力部を介して入力されるデータ、または記憶部に記憶される変数単位の順序情報定義データを用いて、ノード候補である変数群を、一つまたは複数の変数の集合であるブロックに分割する変数分割手段と、
制御部が、入力部を介して入力されるデータ、または記憶部に記憶される変数単位の順序情報定義データを用いて、ブロック間の因果の順序情報を定義する順序情報定義手段と、
制御部が、前記順序情報定義手段によって定義された因果の順序情報を制約として、一つまたは複数のブロック内に含まれる変数群の構造探索を行う構造探索手段と、
制御部が、前記構造探索手段による構造探索ごとにモデル評価を行い、構造を確定する構造確定手段と、
を具備し、
制御部が、前記順序情報定義手段によって定義された順序情報に基づいて、最下流のブロックから世代の遠い順に、一つまたは複数ずつのブロックを構造探索の対象として追加していき、前記構造探索手段による構造探索を繰り返し行い、かつ前記構造確定手段による構造の確定を繰り返し行う
ことを特徴とするモデル構築装置。
【請求項２】
前記順序情報定義データは、同一の変数群からなる行項目の変数及び列項目の変数によって構成される表形式のデータであって、各セルの値が、順序関係に何も制約を置かないことを意味する値と、行項目が列項目よりも上流であることを意味する値のいずれかであることを特徴とする請求項１に記載のモデル構築装置。
【請求項３】
前記順序情報定義手段は、更に、一部のブロック間の因果関係を確定したものとして定義し、前記構造探索手段は、更に、前記順序情報定義手段によって定義した一部のブロック間の確定した因果関係を制約として、変数群の構造探索を行うことを特徴とする請求項１または請求項２に記載のモデル構築装置。
【請求項４】
ベイジアンネットワークモデルを構築するモデル構築装置であって、
制御部が、入力部を介して入力されるデータ、または記憶部に記憶される変数単位の順序情報定義データを用いて、ノード候補である変数群の中で少なくとも一部の変数間の因果の順序情報を定義する順序情報定義手段と、
制御部が、前記順序情報定義手段によって定義された因果の順序情報を制約として、変数群の構造探索を行う構造探索手段と、
制御部が、前記構造探索手段による構造探索ごとにモデル評価を行い、構造を確定する構造確定手段と、
を具備し、
制御部が、前記順序情報定義手段によって定義された順序情報に基づいて、最下流の変数から世代の遠い順に、一つまたは複数ずつの変数を構造探索の対象として追加していき、前記構造探索手段による構造探索を繰り返し行い、かつ前記構造確定手段による構造の確定を繰り返し行う
ことを特徴とするモデル構築装置。
【請求項５】
前記順序情報定義データは、同一の変数群からなる行項目の変数及び列項目の変数によって構成される表形式のデータであって、各セルの値が、順序関係に何も制約を置かないことを意味する値と、行項目が列項目よりも上流であることを意味する値のいずれかであることを特徴とする請求項４に記載のモデル構築装置。
【請求項６】
前前記順序情報定義手段は、更に、一部の変数間の因果関係を確定したものとして定義し、前記構造探索手段は、更に、前記順序情報定義手段によって定義した一部の変数間の確定した因果関係を制約として、変数群の構造探索を行うことを特徴とする請求項４または請求項５に記載のモデル構築装置。
【請求項７】
商品に対する販売施策と消費者の商品購入行動との関係を表すベイジアンネットワークモデルを構築することを特徴とする請求項１から請求項６のいずれかに記載のモデル構築装置。
【請求項８】
コンピュータを請求項１から請求項７のいずれかに記載のモデル構築装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベイジアンネットワークモデルを構築するモデル構築装置、およびプログラムに関する。
【背景技術】
【０００２】
近年、商品の販売施策（消費者に対象の商品を購入してもらうことを目的とするあらゆる施策）の手段が多様化し、一つの商品に対して複数の販売施策手段を組み合わせることが一般的となっている。複数の販売施策手段を組み合わせる場合、どの販売施策手段にどの程度の費用をかけると、その商品を購入する消費者が増えるかを考える必要がある。例えば、自動車を商品とする場合、マスメディア広告、試乗イベントなどの販売施策と、消費者の購入行動との因果関係を考える必要がある。そして、このような関係をモデル化する手法の一つとして、ベイジアンネットワークモデルの構築が考えられる。
【０００３】
ベイジアンネットワークとは、ノード（変数）とリンク（変数間の依存関係）とからなり、方向を持った非循環グラフである。ベイジアンネットワークは、原因と結果の結びつきを視覚化し、条件付確率を用いて、結びつきの度合いを表現する。また、ベイジアンネットワークモデルを用いることによって、観測データを基に、未観測の事象の状態の確率を計算することが可能となる。
【０００４】
ベイジアンネットワークモデルの構築アルゴリズムとしては、（１）全数探索アルゴリズム、（２）Ｋ２アルゴリズム、（３）ＣＩｔｅｓｔアルゴリズム、等が知られている。全数探索アルゴリズムは、最も単純なアルゴリズムであり、全てのノード候補（変数）の全ての組合せに対してモデル評価を行い、最良の組合せを算出し、モデルを構築する。Ｋ２アルゴリズムは、欲張り法とも呼ばれ、ノード単位で、注目ノードと親ノード候補との間にリンクを張るべきかをモデル評価の一つである情報量基準評価などで局所的に探索し、探索した結果である局所的構造を統合することによってモデルを構築する（非特許文献１参照）。情報量基準評価は、例えば、ＡＩＣ（Ａｋａｉｋｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｃｒｉｔｅｒｉｏｎ）、ＢＩＣ（Ｓｈｗａｒｔｚ‘ｓ  Ｂａｙｅｓｉａｎ  Ｉｎｆｒｏｍａｔｉｏｎ Ｃｒｉｔｅｒｉｏｎ）などがあり、モデルの当てはまりの良さと同時に、モデルの単純さ（ベイジアンネットワークモデルの場合、リンクが少ない程、モデルが単純であると言える。）をも評価する。ＣＩｔｅｓｔアルゴリズムは、ノード間の条件付独立性の判定を基に全体の構造を探索し、モデルを構築する（非特許文献２参照）。また、Ｋ２アルゴリズムを改良し、親ノード選択の際、因果関係の強さに関する情報を用いる仕組みも公開されている（特許文献１参照）。
【特許文献１】特開２００７−２４９８７３号公報
【非特許文献１】Ｃｏｏｐｅｒ，Ｇ．ａｎｄ  Ｈｅｒｓｋｏｖｉｔｓ，Ｅ．、“Ａ  Ｂａｙｅｓｉａｎ  ｍｅｔｈｏｄ  ｆｏｒ  ｔｈｅ  ｉｎｄｕｃｔｉｏｎ  ｏｆ  ｐｒｏｂａｂｉｌｉｓｔｉｃ  ｎｅｔｗｏｒｋｓ  ｆｒｏｍ  Ｄａｔａ” 、Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ，Ｖｏｌ．９，ｐｐ．３０９−３４７、１９９２．
【非特許文献２】Ｃｈｅｎｇ，Ｊ．，Ｂｅｌｌ，ＤＡ，Ｌｉｕ，Ｗ．、“Ａｎ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  Ｂａｙｅｓｉａｎ  Ｎｅｔｗｏｒｋ  ｃｏｎｓｔｒｕｃｔｉｏｎ  ｆｒｏｍ  ｄａｔａ” 、ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ６ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ  ａｎｄ  Ｓｔａｔｉｓｔｉｃｓ、１９９７．
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述した従来技術には、それぞれ問題がある。以下、従来技術の問題点について簡単に述べる。
【０００６】
全数探索アルゴリズムは、変数が多い場合、組合せの数が膨大になり、実用的な時間で探索できないという問題がある。ここで、組合せの数は、変数の数をＮとすると、３＾（Ｎ×（Ｎ−１）／２）（ｘ＾ｙは、ｘのｙ乗を意味する。）のオーダーで増える。
【０００７】
Ｋ２アルゴリズムは、親ノードの候補決めのための順序付けを制約として用いないので、選択される構造の解が一意に定まらない場合がある。また、実用的な時間でモデルを構築するためには、親ノードの候補とする変数の数を少なくする必要があるが、その場合、構築したモデルの精度が低くなるという問題がある。例えば、最も因果関係の強い変数を親ノードにし損なう場合がある。
【０００８】
Ｋ２アルゴリズムを改良した特許文献１の仕組みは、Ｋ２アルゴリズムにおける上記の問題を解決できる可能性がある。しかしながら、Ｋ２アルゴリズムの他の問題、すなわち「偽相関」により真の因果関係の構造が抽出できない場合があるという問題は解決できない。「偽相関」とは、見せかけの相関のことである。「偽相関」により真の因果関係の構造が抽出できないという問題は、「個別の変数間の相関係数が高い」ならば「個別の変数間に因果関係がある」という誤った判断をすることによって起こると考えられる。
【０００９】
ここで、図２５から図３２までを参照しながら、Ｋ２アルゴリズム（特許文献１の仕組みを含む。）における「偽相関」により真の因果関係の構造が抽出できない場合があるという問題について説明する。以下では、発明者らが、Ｋ２アルゴリズムとＣＩｔｅｓｔアルゴリズムの両方によってベイジアンネットワークモデルを構築したときの例を用いる。
【００１０】
図２５は、クロス集計表の一例を示す図である。図２５は、アンケートの回答結果である。例えば、「年間所得１０００万円超＝０」（「０」は質問に対する答えが「Ｎｏ」であることを示す。）、かつ「３０代以下」の場合、高級車を買いたいと答えた人が１３０人、高級車を買いたいと答えなかった人が１３０人であることを示している。また、例えば、「年間所得１０００万円超＝１」（「１」は、質問に対する答えが「Ｙｅｓ」であることを示す。）、かつ「４０代以上」の場合、高級車を買いたいと答えた人が１５０人、高級車を買いたいと答えなかった人が５０人であることを示している。
【００１１】
図２５のクロス集計表について、「高級車購入願望」変数と、他の２つの変数との関係をそれぞれ観察する。
図２６は、「年間所得」変数を条件としたときの「高級車購入願望」変数の分布を示す図である。図２６を見ると、「年間所得１０００万円超＝１」の場合、「高級車を買いたい＝１」となる傾向が強いことが分かる。
また、図２７は、「年齢」変数を条件としたときの「高級車購入願望」変数の分布を示す図である。図２７を見ると、「４０代以上」の場合、「高級車を買いたい＝１」となる傾向が強いことが分かる。
【００１２】
図２８は、モデル構築の仮定を示す図である。図２８に示すように、最下流ノードが「高級車購入願望」変数であると仮定する。
図２９は、Ｋ２アルゴリズムによるモデル構築結果を示す図である。図２９に示す結果は、発明者らがＫ２アルゴリズムを実装しているソフトウェアを用いて実験を行ったものである。図２９に示すように、「年齢」変数に係るノードから「年間所得」変数に係るノードに対してリンクが張られ、「年齢」変数に係るノードおよび「年間所得」変数に係るノードの両方から「高級車購入願望」変数に係るノードに対してリンクが張られる結果となった。
【００１３】
図３０は、「年齢」変数かつ「年間所得」変数の両方を条件としたときの「高級車購入願望」変数の分布を示す図である。図３０を見ると、「年齢」変数による「高級車購入願望」変数の分布の偏りは無く、「年間所得」変数によって「高級車購入願望」変数の分布が偏っていることが分かる。このように、Ｋ２アルゴリズムでは、本実験においては「偽相関」により真の因果関係の構造が抽出できていない。これは、注目している子ノード（「高級車購入願望」変数）とそれぞれの親候補ノード（「年齢」変数および「年間所得」変数）との関係だけを捉えて構造探索をすることによって起こる問題である。
【００１４】
図３１は、ＣＩｔｅｓｔアルゴリズムによるモデル構築結果を示す図である。図３１に示す結果は、発明者らがＣＩｔｅｓｔアルゴリズムを実装しているソフトウェアを用いて実験を行ったものである。図３１に示すように、「年齢」変数に係るノードから「年間所得」変数に係るノードに対してリンクが張られ、「年間所得」変数に係るノードのみから「高級車購入願望」変数に係るノードに対してリンクが張られる結果となった。
【００１５】
ＣＩｔｅｓｔアルゴリズムにおいても、基本的には、図１に示すクロス集計表の偏りが大きい変数間にリンクが張られる。しかし、ＣＩｔｅｓｔアルゴリズムでは、他の変数による条件を付けると独立とみなせる場合、直接のリンクは張られない。本実験例では、「高級車購入願望」変数と「年齢」変数とは、「年間所得」変数を条件とすると、独立（因果関係が無い）とみなせるので、直接のリンクは張られない。このように、ＣＩｔｅｓｔアルゴリズムでは、本実験においては図１に示すクロス集計表の傾向を正しく表現できる結果となった。
【００１６】
図３２は、モデルの評価を示す図である。図３２は、Ｋ２アルゴリズムとＣＩｔｅｓｔアルゴリズムによるモデル構築結果に対して、対数尤度、ＡＩＣ、ＢＩＣの算出を行った結果である。対数尤度は、モデルの当てはまりの良さを評価する。対数尤度、ＡＩＣ、ＢＩＣのいずれも、絶対値が小さい方が良い評価となる。図３２に示すように、モデルの当てはまりの良さを示す対数尤度は、両方のアルゴリズムともに違いはない。しかしながら、モデルの当てはまりの良さと同時に、モデルの単純さをも評価するＡＩＣ、ＢＩＣに関しては、ＣＩｔｅｓｔアルゴリズムの方が良い評価となった。
【００１７】
前述したように、Ｋ２アルゴリズムが有する問題は、ＣＩｔｅｓｔアルゴリズムによって解決できることが分かる。しかしながら、ＣＩｔｅｓｔアルゴリズムにも問題がある。ＣＩｔｅｓｔアルゴリズムでは、リンクを張るかどうかの判定において閾値を用いる。この閾値を変更すると、異なる構造を持つモデルが構築される。すなわち、閾値に依存し解が一意ではない。これは、モデル構築者が恣意的に閾値を変更することで、モデル構築者が望むモデルを構築できてしまうという問題がある。また、モデル全体の中で、他の変数との因果関係が強い変数に対しては、リンクが集中する傾向がある。そして、リンクが集中している変数については、予測に用いるパラメータが過剰な状態となり、予測精度が低下するという問題がある。
【００１８】
以上から、実用的な時間内に真の因果関係を精度良く抽出するという問題は、従来技術において解決されていない。
【００１９】
本発明は、前述した問題点に鑑みてなされたもので、その目的は、ベイジアンネットワークモデルの構築において、実用的な時間内に真の因果関係を精度良く抽出できるモデル構築装置等を提供することである。
【課題を解決するための手段】
【００２０】
前述した目的を達成するために第１の発明は、ベイジアンネットワークモデルを構築するモデル構築装置であって、制御部が、入力部を介して入力されるデータ、または記憶部に記憶される変数単位の順序情報定義データを用いて、ノード候補である変数群を、一つまたは複数の変数の集合であるブロックに分割する変数分割手段と、制御部が、入力部を介して入力されるデータ、または記憶部に記憶される変数単位の順序情報定義データを用いて、ブロック間の因果の順序情報を定義する順序情報定義手段と、制御部が、前記順序情報定義手段によって定義された因果の順序情報を制約として、一つまたは複数のブロック内に含まれる変数群の構造探索を行う構造探索手段と、制御部が、前記構造探索手段による構造探索ごとにモデル評価を行い、構造を確定する構造確定手段と、を具備し、制御部が、前記順序情報定義手段によって定義された順序情報に基づいて、最下流のブロックから世代の遠い順に、一つまたは複数ずつのブロックを構造探索の対象として追加していき、前記構造探索手段による構造探索を繰り返し行い、かつ前記構造確定手段による構造の確定を繰り返し行うことを特徴とするモデル構築装置である。第１の発明によって、ベイジアンネットワークモデルの構築において、実用的な時間内に真の因果関係を精度良く抽出できる。
【００２１】
第１の発明における前記順序情報定義データは、同一の変数群からなる行項目の変数及び列項目の変数によって構成される表形式のデータであって、各セルの値が、順序関係に何も制約を置かないことを意味する値と、行項目が列項目よりも上流であることを意味する値のいずれかである。
【００２２】
第２の発明は、ベイジアンネットワークモデルを構築するモデル構築装置であって、制御部が、入力部を介して入力されるデータ、または記憶部に記憶される変数単位の順序情報定義データを用いて、ノード候補である変数群の中で少なくとも一部の変数間の因果の順序情報を定義する順序情報定義手段と、制御部が、前記順序情報定義手段によって定義された因果の順序情報を制約として、変数群の構造探索を行う構造探索手段と、制御部が、前記構造探索手段による構造探索ごとにモデル評価を行い、構造を確定する構造確定手段と、を具備し、制御部が、前記順序情報定義手段によって定義された順序情報に基づいて、最下流の変数から世代の遠い順に、一つまたは複数ずつの変数を構造探索の対象として追加していき、前記構造探索手段による構造探索を繰り返し行い、かつ前記構造確定手段による構造の確定を繰り返し行うことを特徴とするモデル構築装置である。第２の発明によって、ベイジアンネットワークモデルの構築において、実用的な時間内に真の因果関係を精度良く抽出できる。
【００２３】
第２の発明における前記順序情報定義データは、同一の変数群からなる行項目の変数及び列項目の変数によって構成される表形式のデータであって、各セルの値が、順序関係に何も制約を置かないことを意味する値と、行項目が列項目よりも上流であることを意味する値のいずれかである。
【００２４】
第１の発明または第２の発明に係るモデル構築装置は、例えば、商品に対する販売施策と消費者の商品購入行動との関係を表すベイジアンネットワークモデルを構築する。
【００２５】
第３の発明は、コンピュータを第１の発明または第２の発明のモデル構築装置として機能させるプログラムである。
【発明の効果】
【００２６】
本発明により、ベイジアンネットワークモデルの構築において、実用的な時間内に真の因果関係を精度良く抽出できるモデル構築装置等を提供することができる。
【発明を実施するための最良の形態】
【００２７】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
【００２８】
図１は、本発明の実施形態に係るモデル構築装置１を実現するコンピュータのハードウェア構成図である。尚、図１のハードウェア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
【００２９】
モデル構築装置１は、制御部３、記憶部５、メディア入出力部７、通信制御部９、入力部１１、表示部１３、周辺機器Ｉ／Ｆ部１５等が、バス１７を介して接続される。
【００３０】
制御部３は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される。
【００３１】
ＣＰＵは、記憶部５、ＲＯＭ、記録媒体等に格納されるプログラムをＲＡＭ上のワークメモリ領域に呼び出して実行し、バス１７を介して接続された各装置を駆動制御し、モデル構築装置１が行う後述する処理を実現する。
ＲＯＭは、不揮発性メモリであり、コンピュータのブートプログラムやＢＩＯＳ等のプログラム、データ等を恒久的に保持している。
ＲＡＭは、揮発性メモリであり、記憶部５、ＲＯＭ、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部３が各種処理を行う為に使用するワークエリアを備える。
【００３２】
記憶部５は、ＨＤＤ（ハードディスクドライブ）であり、制御部３が実行するプログラム、プログラム実行に必要なデータ等が格納される。プログラムに関しては、ＯＳ（オペレーティングシステム）に相当する制御プログラムや、後述する処理をコンピュータに実行させるためのアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部３により必要に応じて読み出されてＲＡＭに移され、ＣＰＵに読み出されて各種の手段として実行される。
【００３３】
メディア入出力部７（ドライブ装置）は、データの入出力を行い、例えば、ＣＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＤＶＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＭＯドライブ等のメディア入出力装置を有する。
【００３４】
通信制御部９は、通信制御装置、通信ポート等を有し、コンピュータとネットワーク１９間の通信を媒介する通信インタフェースであり、ネットワーク１９を介して、他のコンピュータ間との通信制御を行う。
【００３５】
入力部１１は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部１１を介して、コンピュータに対して、操作指示、動作指示、データ入力等を行うことができる。
【００３６】
表示部１３は、ＣＲＴモニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してコンピュータのビデオ機能を実現するための論理回路等（ビデオアダプタ等）を有する。
【００３７】
周辺機器Ｉ／Ｆ（インタフェース）部１５は、コンピュータに周辺機器を接続させるためのポートであり、周辺機器Ｉ／Ｆ部１５を介してコンピュータは周辺機器とのデータの送受信を行う。周辺機器Ｉ／Ｆ部１５は、ＵＳＢやＩＥＥＥ１３９４やＲＳ−２３２Ｃ等で構成されており、通常複数の周辺機器Ｉ／Ｆを有する。周辺機器との接続形態は有線、無線を問わない。
【００３８】
バス１７は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【００３９】
＜第１の実施形態＞
次に、図２から図１２を参照しながら、第１の実施形態について説明する。
【００４０】
図２は、第１の実施形態に係るモデル構築装置１の機能の概要を示すブロック図である。図２に示すように、第１の実施形態に係るモデル構築装置１は、サンプルデータ入力手段２１、サンプルデータ保持手段２３、変数データ入力手段２５、変数分割手段２７、順序情報定義手段２９、構造探索手段３１、構造確定手段３３、モデル構築結果出力手段３５等を備える。
【００４１】
サンプルデータ入力手段２１は、メディア入出力部７、通信制御部９、入力部１１、周辺機器Ｉ／Ｆ部１５等を介して、サンプルデータを入力する。サンプルデータとは、ベイジアンネットワークモデル（以下、単に「モデル」という。）の構築に用いるデータであり、モデル化対象から観測されたものである。サンプルデータ保持手段２３は、サンプルデータ入力手段２１によって入力されたサンプルデータ４１を記憶部５に記憶する。
【００４２】
図３は、サンプルデータ４１の一例を示す図である。図３に示すように、サンプルデータ４１は、サンプルＩＤごとに、変数群４３（Ｘ１、Ｘ２、Ｘ３等）の観測データを含む。変数群４３は、モデルのノード候補群である。図３に示す例では、サンプルＩＤが「１」のデータは、Ｘ１が「０」、Ｘ２が「１」、Ｘ３が「０」、・・・である。当然ながら、変数群４３の取りうる値は、「０」と「１」に限定されるものではない。サンプルデータ４１がアンケートの回答である場合、データを扱い易いように、例えば、ＹＥＳまたはＮＯで答える質問については、ＹＥＳであれば「１」、ＮＯであれば「０」と記号化する。また、例えば、三つ以上の選択肢がある質問については、それぞれの選択肢を異なる数値に記号化する。
【００４３】
変数データ入力手段２５は、メディア入出力部７、通信制御部９、入力部１１、周辺機器Ｉ／Ｆ部１５等を介して、変数データを入力する。変数データとは、モデルのノード候補のデータである。変数分割手段２７は、変数データ入力手段２５によって入力された変数データを、一つまたは複数の変数の集合であるブロックに分割する。ここで、変数分割手段２７は、事前に変数単位の順序情報を定義し、定義した変数単位の順序情報を用いてブロックに分割しても良い。順序情報定義手段２９は、変数分割手段２７による分割結果に基づいて、ブロック間の因果の順序情報を定義する。
【００４４】
図４は、ブロック間の因果関係を示す図である。図４に示す例では、Ｘ１、Ｘ２、・・・、Ｘ５が変数データである。図４に示すように、変数分割手段２７は、Ｘ１とＸ２をブロックＡ、Ｘ３とＸ４をブロックＢ、Ｘ５をブロックＣに分割する。具体的には、例えば、表示部１３に表示されている変数データＸ１に対して、ユーザが、入力部１１を介して、ブロックＡに分割することを指定入力すると、制御部３は、変数データＸ１がブロックＡに分割されたことをＲＡＭ上のワークメモリに記憶する。
【００４５】
また、順序情報定義手段２９は、ブロックＡとブロックＢとの間の順序情報４５、ブロックＢとブロックＣとの間の順序情報４５を定義する。具体的には、例えば、ユーザが、入力部１１を介して、ブロックＡからブロックＢへの順序を定義することを指定入力すると、制御部３は、ブロックＡからブロックＢへの順序を定義したことをＲＡＭ上のワークメモリに記憶する。
【００４６】
図５は、順序情報定義データ４７の一例を示す図である。図５に示す順序情報定義データ４７は、変数単位の順序情報である。図５に示すセルの値が「１」の場合、行項目の変数は列項目の変数の上流であることを示す。また、図５に示すセルの値が「０」の場合、行項目の変数は列項目の変数の上流でない、すなわち、同じブロックに属する、または下流であることを示す。
【００４７】
図５に示す例では、行項目の変数がＸ１、列項目の変数がＸ２のセルの値は、「０」となっている。従って、Ｘ１はＸ２の上流でない、すなわち、同じブロックに属する、または下流である。また、行項目の変数がＸ２、列項目の変数がＸ１のセルの値は、「０」となっている。従って、Ｘ２はＸ１の上流でない、すなわち、同じブロックに属する、または下流である。そして、これらの両方が成り立つことから、制御部３は、Ｘ１とＸ２が同じブロックに属すると判断する。このように、変数分割手段２７は、変数をブロックに分割するために、図５に示す変数単位の順序情報定義データ４７を利用しても良い。また、順序情報定義手段２９は、図５に示す変数単位の順序情報定義データ４７を利用して、ブロック間の因果の順序情報を定義しても良い。
【００４８】
構造探索手段３１は、順序情報定義手段２９によって定義された因果の順序情報を制約として、一つまたは複数のブロック内に含まれる変数群の構造探索を行う。構造確定手段３３は、構造探索手段３１による構造探索ごとにモデル評価を行い、構造を確定する。モデル評価の方法は、例えば、モデルの複雑さを考慮しない「尤度」による評価、モデルの複雑さを考慮する情報量基準（ＡＩＣ、ＢＩＣなど）による評価、モデルの予測誤差を評価するクロスバリデーション法による評価などがある。本発明の実施の形態では、モデル評価の方法はいずれを用いても良い。
【００４９】
更に、モデル構築装置１は、順序情報定義手段２９によって定義された順序情報に基づいて、最下流のブロックから世代の遠い順に、一つまたは複数ずつのブロックを構造探索の対象として追加していき、構造探索手段３１による構造探索を繰り返し行い、かつ構造確定手段３３による構造の確定を繰り返し行うことが望ましい。また、構造探索手段３１は、複数のアルゴリズム（例えば、全数探索アルゴリズムおよびＣＩｔｅｓｔアルゴリズム等）に従って構造探索手段３１による構造探索を行い、モデル評価が最も高い組合せを選択するようにしても良い。
【００５０】
図６は、最下流のブロックからの距離を示す図である。図６に示すように、ブロックＡは、最下流のブロックであるブロックＣからの距離が「２」（中括弧「()」内に図示）である。また、ブロックＢは、ブロックＣからの距離が「１」である。構造探索手段３１は、最下流のブロックであるブロックＣから世代の遠い順に、一つまたは複数ずつのブロックを構造探索の対象として追加していく。すなわち、図６に示す例では、構造探索手段３１は、（１）ブロックＡのみ、（２）ブロックＡとブロックＢ、（３）ブロックＡとブロックＢとブロックＣ、という順に、構造探索の対象とする。
【００５１】
図７は、ブロックＡのみを構造探索の対象とした状態を示す図である。図７では、ブロックＡのみが太字で囲まれており、構造探索の対象であることを示している。
【００５２】
Ｘ１とＸ２との間は、方向を有さない点線で結ばれている。これは、Ｘ１とＸ２との因果関係として、（ａ）Ｘ１からＸ２へのリンク、（ｂ）Ｘ２からＸ１へのリンク、（ｃ）Ｘ１とＸ２との間にリンクなし、の３つのパターンがあることを示している。従って、構造探索手段３１は、例えば、全数探索アルゴリズムに従う場合には、３つのパターンがあることを特定する。そして、構造確定手段３３は、３つのパターンについてモデル評価を行い、最も評価の良いパターンを決定し、局所的な構造を確定する。
【００５３】
図８は、ブロックＡとブロックＢを構造探索の対象とした状態を示す図である。図８では、ブロックＡとブロックＢが太字で囲まれており、構造探索の対象であることを示している。
【００５４】
Ｘ１とＸ２との間は、Ｘ２からＸ１への方向を有する実線で結ばれている。これは、Ｘ２からＸ１へのリンクが確定していることを示している。
【００５５】
Ｘ１とＸ３との間は、Ｘ１からＸ３への方向を有する点線で結ばれている。これは、Ｘ１とＸ３との因果関係として、（ａ）Ｘ１からＸ３へのリンク、（ｂ）Ｘ１とＸ３との間にリンクなし、の２つのパターンがあることを示している。同様に、Ｘ１とＸ４との間、Ｘ２とＸ３との間、Ｘ２とＸ４との間も、一方から他方への方向を有する点線で結ばれている。
Ｘ３とＸ４との間は、方向を有さない点線で結ばれている。これは、図７に示したＸ１とＸ２との因果関係と同様であり、３つのパターンがあることを示している。
従って、構造探索手段３１は、例えば、全数探索アルゴリズムに従う場合には、（２＾４）×３（＝４８）個のパターンがあることを特定する。そして、構造確定手段３３は、４８個のパターンについてモデル評価を行い、最も評価の良いパターンを決定し、局所的な構造を確定する。
【００５６】
前述の通り、互いに同じブロックに分割された変数間の因果関係は、３つのパターンがある。一方、異なるブロックに分割された変数間の因果関係は、前述の通り、２つのパターンがある。
【００５７】
図９は、ブロックＡとブロックＢとブロックＣを構造探索の対象とした状態を示す図である。図９では、ブロックＡとブロックＢとブロックＣが太字で囲まれており、構造探索の対象であることを示している。
【００５８】
Ｘ１とＸ２との間は、Ｘ２からＸ１への方向を有する実線で結ばれている。これは、Ｘ２からＸ１へのリンクが確定していることを示している。同様に、Ｘ１とＸ３との間はＸ１からＸ３への方向を有する実線、Ｘ１からＸ４との間はＸ１からＸ４への方向を有する実線で結ばれている。
【００５９】
Ｘ１とＸ５との間は、Ｘ１からＸ５への方向を有する点線で結ばれている。同様に、Ｘ２とＸ５との間、Ｘ３とＸ５との間、Ｘ４とＸ５との間も、一方から他方への方向を有する点線で結ばれている。
従って、構造探索手段３１は、例えば、全数探索アルゴリズムに従う場合には、２＾４（＝１６）個のパターンがあることを特定する。そして、構造確定手段３３は、１６個のパターンについてモデル評価を行い、最も評価の良いパターンを決定し、局所的な構造を確定する。
【００６０】
尚、構造探索手段３１は、ＣＩｔｅｓｔアルゴリズムなど、全数探索アルゴリズムと異なるアルゴリズムに従うようにしても良い。また、モデル構築装置１は、複数のアルゴリズムに従って構造探索を行い、モデル評価が最も高い組合せを選択するようにしても良い。
【００６１】
モデル構築結果出力手段３５は、モデル構築結果を出力する。例えば、モデル構築結果出力手段３５は、表示部１３にモデル構築結果を表示する。また、例えば、モデル構築結果出力手段３５は、メディア入出力部７を介してモデル構築結果を各種のメディアに出力する。また、例えば、モデル構築結果出力手段３５は、通信制御部９を介してモデル構築結果を他のコンピュータに送信する。また、例えば、モデル構築結果出力手段３５は、通信制御部９または周辺機器Ｉ／Ｆ部１５等を介してモデル構築結果をプリンタ等に送信する。
【００６２】
図１０は、モデル構築結果を示す図である。図１０に示す例では、Ｘ２からＸ１、Ｘ２からＸ４、Ｘ１からＸ３、Ｘ１からＸ４、Ｘ１からＸ５、Ｘ３からＸ５、Ｘ４からＸ５のリンクが張られている。モデル構築結果出力手段３５は、少なくとも、図１０に示す情報を出力する。また、必要に応じて、モデル全体に対するＡＩＣまたはＢＩＣなどモデル評価の値を算出し、出力する。
【００６３】
図３から図１０に示した例（ノード候補の変数が５つであり、図４に示したブロック分割の場合）では、本発明における構造探索のパターンは、３＋（２＾４）×３＋２＾４（＝６７）通りとなる。一方、同様の例（ノード候補の変数が５つの場合）に対して、モデル全体に全数探索アルゴリズムを適用した場合、３＾（５×４／２）（＝５９０４９）通りとなる。このように、本発明では、構造探索のパターンを大幅に減らすことができる。
【００６４】
次に、図１１を参照しながら、第１の実施形態に係るモデル構築装置１の動作の詳細について説明する。図１１は、第１の実施形態に係るモデル構築装置１の処理の流れを示すフローチャートである。
【００６５】
図１１に示すように、モデル構築装置１の制御部３は、サンプルデータ入力手段２１の機能によってサンプルデータを入力し、サンプルデータ保持手段２３の機能によってサンプルデータを保持する（ステップ１０１）。
【００６６】
次に、制御部３は、変数データ入力手段２５の機能によって変数データを入力し、変数分割手段２７の機能によって変数群をブロックに分割する（ステップ１０２）。
【００６７】
次に、制御部３は、順序情報定義手段２９の機能によってブロック間の因果の順序情報を定義する（ステップ１０３）。
【００６８】
次に、制御部３は、最下流のブロックから最も世代の遠いブロックを特定する（ステップ１０４）。尚、最下流のブロックから最も世代の遠いブロックが複数ある場合（＝最下流のブロックからの最大の距離を有するブロックが複数ある場合）には、適宜順番を定めて処理を行えば良い。
【００６９】
次に、制御部３は、構造探索の対象を特定する（ステップ１０５）。ステップ１０５の１回目の処理では、ステップ１０４において特定したブロックのみが構造探索の対象となる。２回目以降の処理では、構造探索の対象に含めていないブロックの中で、最下流のブロックから最も世代の遠いブロックを一つ、構造探索の対象に含める。
【００７０】
次に、制御部３は、構造探索手段３１の機能によって局所的な構造探索を行う（ステップ１０６）。ここで、既にステップ１０７において構造を確定した箇所は確定したものとして扱う。
【００７１】
次に、制御部３は、構造確定手段３３の機能によってモデル評価による構造の確定を行う（ステップ１０７）。
【００７２】
次に、制御部３は、最下流のブロックが構造探索の対象に含まれているかどうか確認する（ステップ１０８）。
含まれていない場合、制御部３は、ステップ１０５から処理を繰り返す（ステップ１０８のＮｏ）。
含まれている場合、制御部３は、ステップ１０９に進む（ステップ１０８のＹｅｓ）。
【００７３】
最後に、制御部３は、モデル構築結果出力手段３５によってモデル構築結果の出力を行う（ステップ１０９）。
【００７４】
次に、図１２を参照しながら、最下流のブロックから世代の遠い順に、一つまたは複数ずつのブロックを構造探索の対象として追加していく技術的意義について説明する。図１２は、ブロック間の順序情報を定義した状態の一例を示す図である。図１２に示すＡ〜Ｇは、ブロックである。但し、Ａ〜Ｇを変数に置き換えても、同様のことが言える。
【００７５】
まず、最上流のブロックから順に探索する方法について考える。最上流のブロックから順に探索する場合、最初に、ＡからＢへの探索、ＤからＧへの探索、ＦからＧへの探索が同時に行われる（探索を同時に行うと、同時にモデル評価の対象となる。）。次に、ＢからＥへの探索、ＣからＥへの探索が同時に行われる。最後に、ＥからＧへの探索が行われる。しかしながら、最初の時点で、ＤからＧへのリンク、および／またはＦからＧへのリンクを選択し、ＥからＧへのリンクを選択しないことも考えられる。従って、この方法では、Ａ、Ｂ、Ｃに係る情報を用いずに、ＥがＧに対して因果関係が強い変数かどうかを判断することになり、結果として精度の低いモデルが構築される可能性が高い。
【００７６】
一方、本発明のように、最下流のブロックから世代の遠い順に、一つまたは複数ずつのブロックを構造探索の対象として追加していく方法であれば、最初に、ＡからＢへの探索が行われる。そして、最後に、Ａ、Ｂ、Ｃ、Ｅのブロック群からＧへの探索、ＤからＧへの探索、ＦからＧへの探索を同時に行う。従って、本発明の方法では、Ａ、Ｂ、Ｃに係る情報を用いて、ＥがＧに対して因果関係が強い変数かどうかを判断するため、結果として精度の高いモデルが構築される。
【００７７】
＜第２の実施形態＞
次に、図１３から図１４を参照しながら、第２の実施形態について説明する。尚、第１の実施形態と同様の要素については同一の符号を付し、重複した説明を避ける。
【００７８】
図１３は、第２の実施形態に係るモデル構築装置１の機能の概要を示すブロック図である。図１３に示すように、第２の実施形態に係るモデル構築装置１は、サンプルデータ入力手段２１、サンプルデータ保持手段２３、変数データ入力手段２５、順序情報定義手段２９ａ、構造探索手段３１ａ、構造確定手段３３、モデル構築結果出力手段３５等を備える。
【００７９】
順序情報定義手段２９ａは、ノード候補である変数群の中で少なくとも一部の変数間の因果の順序情報を定義する。構造探索手段３１ａは、順序情報定義手段２９ａによって定義された因果の順序情報を制約として、変数群の構造探索を行う。第１の実施形態と異なる点は、ブロックに分割することなく、変数単位で処理を行うことである。
【００８０】
次に、図１４を参照しながら、第２の実施形態に係るモデル構築装置１の動作の詳細について説明する。図１４は、第２の実施形態に係るモデル構築装置１の処理の流れを示すフローチャートである。
【００８１】
図１４に示すように、モデル構築装置１の制御部３は、サンプルデータ入力手段２１の機能によってサンプルデータを入力し、サンプルデータ保持手段２３の機能によってサンプルデータを保持する（ステップ２０１）。
【００８２】
次に、制御部３は、順序情報定義手段２９ａの機能によって変数間の因果の順序情報を定義する（ステップ２０２）。
【００８３】
次に、制御部３は、最下流の変数から最も世代の遠い変数を特定する（ステップ２０３）。尚、最下流の変数から最も世代の遠い変数が複数ある場合（＝最下流の変数からの最大の距離を有する変数が複数ある場合）には、適宜順番を定めて処理を行えば良い。
【００８４】
次に、制御部３は、構造探索の対象を特定する（ステップ２０４）。ここでは、前回の処理までに構造探索の対象に含めていない変数の中で、最下流の変数から最も世代の遠い変数を一つ、構造探索の対象に含める。
【００８５】
次に、制御部３は、構造探索手段３１ａの機能によって局所的な構造探索を行う（ステップ２０５）。ここで、既にステップ２０６において構造を確定した箇所は確定したものとして扱う。
【００８６】
次に、制御部３は、構造確定手段３３の機能によってモデル評価による構造の確定を行う（ステップ２０６）。
【００８７】
次に、制御部３は、最下流の変数が構造探索の対象に含まれているかどうか確認する（ステップ２０７）。
含まれていない場合、制御部３は、ステップ２０４から処理を繰り返す（ステップ２０７のＮｏ）。
含まれている場合、制御部３は、ステップ２０８に進む（ステップ２０７のＹｅｓ）。
【００８８】
次に、制御部３は、モデル構築結果出力手段３５によってモデル構築結果の出力を行う（ステップ２０８）。
【実施例】
【００８９】
次に、図１５から図２４を参照しながら、第２の実施形態に係る実施例について説明する。本実施例では、商品を自動車等とし、マスメディア広告、試乗イベント等の販売施策と、消費者の購入行動との因果関係のモデルを構築する。
【００９０】
図１５は、実施例に係る変数群４３ａを示す図である。図１５に示すように、本実施例では、（１）宣伝を見た、（２）宣伝に好印象、（３）商品を知った、（４）商品情報を見た、（５）商品情報に好印象、（６）興味を持った、（７）お店に行った、（８）実物に好印象、（９）購入した、といった変数をノード候補とする。
【００９１】
図１６は、実施例に係るサンプルデータ４１ａの一例を示す図である。図１６に示すサンプルデータ４１ａは、アンケートの回答結果である。例えば、サンプルＩＤが「１」のサンプルデータ４１ａは、「宣伝を見た」変数が「ＹＥＳ」、「商品情報を見た」変数が「ＮＯ」、・・・、「購入した」変数が「ＮＯ」である。
【００９２】
図１７は、実施例に係る順序情報４５ａの一例を示す図である。図１７に示す順序情報４５ａは変数間の順序関係であり、モデル構築の制約として、ユーザの事前知識などから定義する。図１７に示す記号「＞」は、左の変数が右の変数の原因である（モデル上は未確定な関係がある）ことを示している。また、図１７に示す記号「−＞」（矢印）は、左の変数と右の変数とは確定した因果関係があることを示している。また、図１７に示す記号「×」は、因果関係がないことを示している。
【００９３】
図１７（ａ）は、「宣伝を見た」、「宣伝に好印象」の２つの変数が、「商品情報を見た」、「商品情報に好印象」の２つの変数の原因であることを示している。また、図１７（ａ）は、「商品情報を見た」、「商品情報に好印象」の２つの変数が、「お店に行った」、「実物に好印象」の２つの変数の原因であることを示している。
【００９４】
図１７（ｂ）は、「商品を知った」変数と「興味を持った」変数とは確定した因果関係があることを示している。また、図１７（ｂ）は、「興味を持った」変数と「購入した」変数とは確定した因果関係があることを示している。
【００９５】
図１７（ｃ）は、「宣伝を見た」変数が、「他の全ての変数」の原因であることを示している。また、図１７（ｃ）は、「他の全ての変数」が、「商品を知った」変数の原因であることを示している。
【００９６】
図１７（ｄ）は、「宣伝に好印象」、「商品情報に好印象」、「実物に好印象」の３つの変数が、「商品を知った」変数と因果関係がないことを示している。
【００９７】
図１７（ｅ）は、「宣伝を見た」変数と「宣伝に好印象」変数とは確定した因果関係があることを示している。図１７（ｆ）は、「商品情報を見た」変数と「商品情報に好印象」変数とは確定した因果関係があることを示している。図１７（ｇ）は、「お店に行った」変数と「実物に好印象」変数とは確定した因果関係があることを示している。
【００９８】
図１８は、実施例に係る順序情報定義データ４７ａの一例を示す図である。図１８に示す例では、セルの値が「０」は、順序関係に何も制約を置かないことを意味する。また、セルの値が「１」は、行項目が列項目よりも上流（原因）であることを意味する。すなわち、図１７に示す記号「＞」に相当する。
【００９９】
図１９は、実施例に係る因果関係定義データ４９の一例を示す図である。因果関係定義データ４９は、確定した因果関係を定義するデータである。図１９に示す例では、セルの値が「０」は、確定した因果関係を定義しないことを意味する。また、セルの値が「１」は、行項目が列項目の原因として確定した因果関係を定義していることを意味する。すなわち、図１７に示す記号「−＞」（矢印）に相当する。また、セルの値が「−１」は、行項目と列項目に因果関係がないことを定義していることを意味する。すなわち、図１７に示す記号「×」に相当する。
【０１００】
本実施例においては、図１７に示す順序情報４５ａと、図１８に示す順序情報定義データ４７ａおよび図１９に示す因果関係定義データ４９ａとが、等価な情報である。すなわち、いずれかの形式でデータを定義すれば、後述する処理が可能である。
【０１０１】
図２０は、実施例に係る制約の一例を示す図である。尚、図１７から図１９に示したデータの一例との整合性が保証されたものではない。図２０に示す楕円は、ノード候補の変数である。また、小括弧「()」内の数字は、最下流変数と各変数との距離である（一部のみ図示）。また、実線の矢印は、矢印の元に係る変数が矢印の先に係る変数の原因として確定した因果関係があることを意味する。すなわち、図１７に示す記号「−＞」（矢印）に相当する。また、破線の矢印は、矢印の元に係る変数が矢印の先に係る変数よりも上流（原因）であることを意味する。すなわち、図１７に示す記号「＞」に相当する。また、「購入した」変数は、子ノード候補の変数がない。また、「宣伝を見た」変数は、親ノード候補の変数がない。
【０１０２】
図２０に示すように、モデル構築装置１は、制約を定義する（処理[１]）。以下、図２１から図２４において、大括弧「[]」内の数字は、処理の順番を示すものである。
【０１０３】
図２１は、実施例に係る第１の構造確定の一例を示す図である。図２１に示す太線の矢印は、矢印の元の変数から矢印の先の変数へリンクが張られたことを意味する。図２１に示す×印は、モデル評価によって、因果関係が棄却されたことを意味する。尚、ベイジアンネットワークでは、一般にリンクが循環することを許していない（非循環グラフ）。従って、モデル構築装置１は、モデル評価による判定の度に、グラフが循環するか否かを判定する。
【０１０４】
図２１に示すように、モデル構築装置１は、最下流の変数（＝「購入した」変数）から最も世代の遠い変数（＝「宣伝を見た」変数）を特定し、その次に世代の遠い変数（＝「宣伝に好印象」変数）を構造探索の対象に含める（処理[２]）。ここで、「宣伝を見た」変数と「宣伝に好印象」変数とは、図２０に示す制約によって確定した因果関係があるため、モデル構築装置１はモデル評価を行わずにリンクを張る。
【０１０５】
ここで、「興味を持った」変数と「宣伝に好印象」変数に対する処理を説明する。「興味を持った」変数と「宣伝に好印象」変数とは、図２０に示す制約の段階ではリンクの方向が不定として定義されている。この場合、モデル構築装置１は、最初に、上流向き、すなわち「興味を持った」変数から「宣伝に好印象」変数への向きからモデル評価を行う。次に、モデル構築装置１は、モデル評価によって因果関係が採用された場合および棄却された場合のいずれであっても、下流向き、すなわち「宣伝に好印象」変数から「興味を持った」変数への向きを構造探索の対象として残しておく。そして、モデル構築装置１は、下流向きに対してモデル評価を行い、下流向きの因果関係が採用された場合かつ上流向きの因果関係が採用されていた場合、上流向きのモデル評価を再度行い、評価の良い方にリンクを張る。
【０１０６】
次に、モデル構築装置１は、「商品情報を見た」変数を構造探索の対象に含める（処理[３]）。ここで、「宣伝に好印象」変数と「商品情報を見た」変数とは、モデル評価によって因果関係が採用されたため、モデル構築装置１はリンクを張る。一方、「宣伝を見た」変数と「商品情報を見た」変数とは、モデル評価によって因果関係が棄却されたため、モデル構築装置１はリンクを張らない。
【０１０７】
次に、モデル構築装置１は、「商品情報に好印象」変数を構造探索の対象に含める（処理[４]）。ここで、「商品情報を見た」変数と「商品情報に好印象」変数とは、図２０に示す制約によって確定した因果関係があるため、モデル構築装置１はモデル評価を行わずにリンクを張る。
【０１０８】
図２２は、実施例に係る第２の構造確定の一例を示す図である。図２２に示すように、モデル構築装置１は、「お店に行った」変数を構造探索の対象に含める（処理[５]）。ここで、「宣伝に好印象」変数と「お店に行った」変数とは、モデル評価によって因果関係が採用されたため、モデル構築装置１はリンクを張る。同様に、「商品情報に好印象」変数と「お店に行った」変数とは、モデル評価によって因果関係が採用されたため、モデル構築装置１はリンクを張る。
【０１０９】
次に、モデル構築装置１は、「実物に好印象」変数を構造探索の対象に含める（処理[６]）。ここで、「お店に行った」変数と「実物に好印象」変数とは、図２０に示す制約によって確定した因果関係があるため、モデル構築装置１はモデル評価を行わずにリンクを張る。
【０１１０】
図２３は、実施例に係る第３の構造確定の一例を示す図である。図２３に示すように、モデル構築装置１は、「商品を知った」変数を構造探索の対象に含める（処理[７]）。ここで、「商品を知った」変数と「興味を持った」変数とは、図２０に示す制約によって確定した因果関係があるため、モデル構築装置１はモデル評価を行わずにリンクを張る。また、「宣伝を見た」変数と「商品を知った」変数とは、モデル評価によって因果関係が採用されたため、モデル構築装置１はリンクを張る。
【０１１１】
次に、モデル構築装置１は、「興味を持った」変数を構造探索の対象に含める（処理[８]）。ここで、「商品を知った」変数と「興味を持った」変数とは、図２０に示す制約によって確定した因果関係があるため、モデル構築装置１はモデル評価を行わずにリンクを張る。また、「商品情報に好印象」変数と「興味を持った」変数とは、モデル評価によって因果関係が採用されたため、モデル構築装置１はリンクを張る。同様に、「宣伝に好印象」変数と「興味を持った」変数とは、モデル評価によって因果関係が採用されたため、モデル構築装置１はリンクを張る。
【０１１２】
図２４は、実施例に係る第４の構造確定の一例を示す図である。最後に、モデル構築装置１は、最下流変数である「購入した」変数を構造探索の対象に含める。ここで、「興味を持った」変数と「購入した」変数とは、図２０に示す制約によって確定した因果関係があるため、モデル構築装置１はモデル評価を行わずにリンクを張る。また、「宣伝に好印象」変数と「購入した」変数とは、モデル評価によって因果関係が採用されたため、モデル構築装置１はリンクを張る。同様に、「実物に好印象」変数と「購入した」変数とは、モデル評価によって因果関係が採用されたため、モデル構築装置１はリンクを張る。
【０１１３】
図１５から図２４に示した例では、ノード候補の変数が９つである。例えば、モデル全体に全数探索アルゴリズムを適用しようとすると、構造探索のパターンは、３＾（９×８／２）（＝１５０，０９４，６３５，２９６，９９９，０００）通りとなり、現実的な時間内に処理を終了することができない。一方、本発明では、構造探索のパターンを大幅に減らすことができ、現実的な時間内に処理を終了することができた。また、図２４に示したモデル構築結果は、真の因果関係を精度良く抽出できている。
【０１１４】
以上説明したように、本発明の実施形態によれば、モデル構築装置１は、必要があればノード候補である変数群をブロックに分割し、ブロック間または変数間の順序情報を定義し、定義された因果の順序情報を制約として、最下流のブロックから世代の遠い順に、一つまたは複数ずつのブロックを構造探索の対象として追加していき、構造探索を繰り返し行い、かつ構造の確定を繰り返し行う。そして、ユーザは、モデル構築装置１によって、ベイジアンネットワークモデルの構築において、実用的な時間内に真の因果関係を精度良く抽出できる。
【０１１５】
以上、添付図面を参照しながら、本発明に係るモデル構築装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【０１１６】
【図１】モデル構築装置１を実現するコンピュータのハードウェア構成図
【図２】第１の実施形態に係るモデル構築装置１の機能の概要を示すブロック図
【図３】サンプルデータ４１の一例を示す図
【図４】ブロック間の因果関係を示す図
【図５】順序情報定義データ４７の一例を示す図
【図６】最下流のブロックからの距離を示す図
【図７】ブロックＡのみを構造探索の対象とした状態を示す図
【図８】ブロックＡとブロックＢを構造探索の対象とした状態を示す図
【図９】ブロックＡとブロックＢとブロックＣを構造探索の対象とした状態を示す図
【図１０】モデル構築結果を示す図
【図１１】第１の実施形態に係るモデル構築装置１の処理の流れを示すフローチャート
【図１２】ブロック間の順序情報を定義した状態の一例を示す図
【図１３】第２の実施形態に係るモデル構築装置１の機能の概要を示すブロック図
【図１４】第２の実施形態に係るモデル構築装置１の処理の流れを示すフローチャート
【図１５】実施例に係る変数群４３ａを示す図
【図１６】実施例に係るサンプルデータ４１ａの一例を示す図
【図１７】実施例に係る順序情報４５ａの一例を示す図
【図１８】実施例に係る順序情報定義データ４７ａの一例を示す図
【図１９】実施例に係る因果関係定義データ４９の一例を示す図
【図２０】実施例に係る制約の一例を示す図
【図２１】実施例に係る第１の構造確定の一例を示す図
【図２２】実施例に係る第２の構造確定の一例を示す図
【図２３】実施例に係る第３の構造確定の一例を示す図
【図２４】実施例に係る第４の構造確定の一例を示す図
【図２５】クロス集計表の一例を示す図
【図２６】「年間所得」変数を条件としたときの「高級車購入願望」変数の分布を示す図
【図２７】「年齢」変数を条件としたときの「高級車購入願望」変数の分布を示す図
【図２８】モデル構築の仮定を示す図
【図２９】Ｋ２アルゴリズムによるモデル構築結果を示す図
【図３０】「年齢」変数かつ「年間所得」変数の両方を条件としたときの「高級車購入願望」変数の分布を示す図
【図３１】ＣＩｔｅｓｔアルゴリズムによるモデル構築結果を示す図
【図３２】モデルの評価を示す図
【符号の説明】
【０１１７】
１………モデル構築装置
３………制御部
５………記憶部
７………メディア入出力部
９………通信制御部
１１………入力部
１３………表示部
１５………周辺機器Ｉ／Ｆ部
１７………バス
１９………ネットワーク
２１………サンプルデータ入力手段
２３………サンプルデータ保持手段
２５………変数データ入力手段
２７………変数分割手段
２９、２９ａ………順序情報定義手段
３１、３１ａ………構造探索手段
３３………構造確定手段
３５………モデル構築結果出力手段
４１、４１ａ………サンプルデータ
４３、４３ａ………変数群
４５、４５ａ………順序情報
４７、４７ａ………順序情報定義データ
４９………因果関係定義データ
【図１】
0005150348.tif 000002
【図２】
0005150348.tif 000003
【図３】
0005150348.tif 000004
【図４】
0005150348.tif 000005
【図５】
0005150348.tif 000006
【図６】
0005150348.tif 000007
【図７】
0005150348.tif 000008
【図８】
0005150348.tif 000009
【図９】
0005150348.tif 000010
【図１０】
0005150348.tif 000011
【図１１】
0005150348.tif 000012
【図１２】
0005150348.tif 000013
【図１３】
0005150348.tif 000014
【図１４】
0005150348.tif 000015
【図１５】
0005150348.tif 000016
【図１６】
0005150348.tif 000017
【図１７】
0005150348.tif 000018
【図１８】
0005150348.tif 000019
【図１９】
0005150348.tif 000020
【図２０】
0005150348.tif 000021
【図２１】
0005150348.tif 000022
【図２２】
0005150348.tif 000023
【図２３】
0005150348.tif 000024
【図２４】
0005150348.tif 000025
【図２５】
0005150348.tif 000026
【図２６】
0005150348.tif 000027
【図２７】
0005150348.tif 000028
【図２８】
0005150348.tif 000029
【図２９】
0005150348.tif 000030
【図３０】
0005150348.tif 000031
【図３１】
0005150348.tif 000032
【図３２】
0005150348.tif 000033