以下、図面を用いて実施例を説明する。本実施例では、制約に基づいてデータ分析を自動化する装置の例を説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている各構成要素及びその組合せの全てが、課題を解決するための手段として必須であるとは限らない。
図1は、本実施例に関わるデータ分析自動化装置100の構成ブロックの例を示す図である。データ分析自動化装置100は、少なくともCPU(Central Processing Unit)等のプロセッサ121、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ122、補助記憶装置110、及び、キーボードや表示モニタ等の入出力装置123を備えたコンピュータである。データ分析自動化装置100は、ユーザインタフェース部101、統計分析部102、選択パターン生成部103、データ分析部104、履歴分析部105、矛盾検証部106などの機能ブロックを備える。これらの機能ブロックはコンピュータプログラムとして実現されており、メモリ122上でプロセッサ121により実行される。また、データ分析自動化装置100は、制約記憶部111、データ記憶部112、仮説記憶部113、選択パターン記憶部114などのデータを補助記憶装置110に保管している。これらのデータは、プロセッサ121が機能ブロックを実行する際に補助記憶装置110から読みだして使用される。
図2は、本実施例に関わるコンビニの店舗情報200に重回帰分析を適用した例を示す図である。コンビニの店舗情報200としては、売上、気候、取扱商品などがある。
ここで、分析対象は、コンビニの店舗情報200の1行に対応している。なお、本実施例では、データ分析技術として重回帰分析を用いたケースで説明するが、本発明自体は、決定木分析や相関ルール等、他のデータ分析ツールにも適用可能な技術である。
重回帰分析を行うツール(以下、単に重回帰分析ツールという)は、目的変数と説明変数を入力として、目的変数と説明変数中の属性との関係を「目的変数 = α×(属性1)+β×(属性2)・・・」形式の回帰式で導出する。ここで、α及びβは定数である。以降では、仮説とは、重回帰分析ツールが出力する回帰式を指すこととする。
図2の例では、売上を目的変数201とし、医療品取扱い、食料品取扱い、周辺人口、所在市面積、平均年収、平均気温、最低気温、最高気温、及び、降水量を説明変数202として、重回帰分析ツール204に与えることで、例えば「売上 = -0.03×周辺人口-18.27×所在市面積+0.25×平均年収-38709.4」や「売上 = 22,863.72×平均気温+200.81×降水量」を回帰式205として得ることができる。
このとき、重回帰分析ツールによっては、各回帰式205の評価指標を出力できる。たとえば、相関係数206、決定係数207は、回帰式の評価指標の例である。相関係数206は、説明変数の実際の属性値と回帰式から求められる属性値の相関関係を数値化したものであり、この数値が大きいほど、相関が高いことを表している。決定係数207は、回帰式の当てはまりの良さを数値化したものであり、大きいほど目的変数と説明変数の実際の属性値によく当てはまる回帰式であることを表している。
図3は、本実施例に関わるデータ記憶部112のデータクラス構造の例を示す図である。データ記憶部112は、属性情報301、分析対象情報302、及び、属性値情報303の各データクラスを有する。図3の各データクラス表記は、2つの四角形により構成されている。上の四角形内にはデータクラス名が表されており、下の四角形内には当該データクラスのフィールド名が表されている。
また、データクラス間の関連は、矢印を結んで表している。矢印の始点にあるデータクラスは、終点にあるデータクラスを参照できることを表している。終点の文字列は参照されるデータクラスの役割を表している。さらに、矢印の始点及び終点の数字または「n」は、関連の多重度を表している。ここで、「n」は任意の数を意味する。以下に示す他のデータ構造の図についても同様の表記を用いている。
属性情報301は、属性に関する情報として、属性名、型、目的フラグを有する。
属性名は、属性間でユニークな識別子である。図2の例では、属性名は、「医療品取扱い」や「周辺人口」などである。
型は、後述する属性値のデータ型である。図2の例では、属性「食料品取扱い」の「文字列」や属性「最高気温」の「整数」が型である。
目的フラグは、属性が目的変数かどうかを表すフラグであり、目的フラグが「真(以下、TRUEという)」の属性は目的変数であり、「偽(以下、FALSEという)」の属性は説明変数に含まれる属性である。図2の例では、属性「売上」が目的変数なので、目的フラグは「TRUE」になる。以降では、目的変数は、目的フラグが「TRUE」になっている属性を指すこととし、説明変数は、目的フラグが「FALSE」になっている1以上の属性の属性すべてを指すこととする。なお、本実施例では、説明変数は、データ記憶部112に含まれる属性の中で、ひとつしか存在しないものとする。
属性情報301は、母集団として、n個の後述する分析対象情報302と関連を持ち、さらに、母集団の属性値の集合として、n個の後述する属性値情報303と関連を持っている。このため、属性は、必要に応じて、分析対象に対応する1以上の属性値をすべて取得できる。
分析対象情報302は、分析対象に関する情報として、分析対象IDを持つ。分析対象IDは、分析対象間でユニークな識別子である。図2の例では、分析対象IDは、「名古屋店」や「気仙沼店」などである。
分析対象情報302は、保有属性として、n個の属性情報301と関連を持ち、保有属性の属性値として、n個の後述する属性値情報303と関連を持っている。このため、分析対象は、必要に応じで、属性に対応する1以上の属性値をすべて取得できる。
属性値情報303は、属性に対する分析対象の値として、属性値を持つ。図2の例では、属性値は、属性「売上」、分析対象「名古屋店」の場合の「798,384」や、属性「平均気温」、分析対象「那覇店」の場合の「28」などである。
図4は、本実施例に関わる仮説記憶部113のデータクラスの構造の例を示す図である。仮説記憶部113は、仮説情報401を有する。
仮説情報401は、データを分析して導出された仮説に関する情報として、仮説ID、回帰式、相関係数、決定係数を有する。仮説IDは、仮説間でユニークな識別子である。回帰式は分析ツールの出力結果であり、図2の例では、回帰式205の「売上=―0.03×周辺人口―18.27×所在市面積+0.25×平均年収―38709.4」である。相関係数及び決定係数は、回帰式の評価指標であり、図2の例では、それぞれ、相関係数206の「0.83」、決定係数207の「0.69」である。
仮説記憶部113から出力される1つの仮説情報401は、回帰式に含まれる属性として、n個の属性情報301と関連を持っているため、仮説は、必要に応じて、回帰式に含まれる1以上の属性をすべて取得できる。
図5は、本実施例に関わる選択パターン記憶部114のデータクラスの構造の例を示す図である。選択パターン記憶部114は、選択パターン情報501を有する。
選択パターン情報501は、分析に使用する説明変数中の属性の集合(以下、選択パターンという)に関する情報として、パターンIDを有する。パターンIDは、選択パターン間でユニークな識別子である。
選択パターン記憶部114から出力される1つの選択パターン情報501は、使用する属性として、n個の属性情報301と関連を持っているため、選択パターンは、必要に応じて、自身に含まれている1以上の属性をすべて取得できる。さらに、選択パターン記憶部114から出力される1つの選択パターン情報501は、導出された仮説として、n個の仮説情報401とも関連を持っているため、選択パターンは、必要に応じて、導出された1以上の仮説をすべて取得できる。
図6は、本実施例に関わる制約記憶部111のデータクラスの構造の例を示す図である。制約記憶部111は、制約情報601を有する。
制約情報601は、選択パターンへの制約に関する情報として、制約ID、有効性、自動生成フラグ、制約種別602、選択数を有する。制約IDは、制約間でユニークな識別子である。有効性は、制約が有効化どうかを表すフラグであり、「有効」のとき、その制約は有効な制約といい、「無効」のとき、その制約は無効な制約という。自動生成フラグは、制約が分析者から、入力されたのかそれとも、装置が生成したのかを表すフラグであり、「TRUE」のとき、装置が生成した制約を意味し、「FALSE」のとき、分析者が入力した制約を意味する。以降では、自動生成フラグが「TRUE」となっている制約を特に、自動生成された制約という。
制約種別602は、制約の内容を表し、4つの制約「除去」、「選択」、「排他」、「付帯」の何れかである。以降では、制約種別602が「除去」の制約を除去制約といい、「選択」の制約を選択制約といい、「排他」の制約を排他制約といい、「付帯」の制約を付帯制約ということとする。
選択数は、対象属性の中から選択する属性の数を表し、選択制約のみが使用するフィールドである。ここで、対象属性とは、目的変数の対象になる属性をいう。
制約記憶部111から出力される1つの制約601は、対象属性として、n個の属性情報301と関連を持っているため、制約は、必要に応じて、1以上の対象属性をすべて取得できる。さらに、前提属性としても、n個の属性情報301と関連を持っているが、この関連は、付帯制約のみが使用する。すなわち、前提属性とは、対象属性と同じ属性をいう。
また、各制約は、属性が選択パターンに含まれるかどうかを表す命題変数Piを用いて論理式としても表現できる。ここで、「i」は属性情報301の属性名に対応している。さらに、Piが「TRUE」の場合、Piに対応する属性が選択パターンに含まれることを意味し、「FALSE」の場合、Piに対応する属性が選択パターンに含まれないことを意味する。
除去制約は「対象属性に含まれる属性を選択しない」ことを意味しており、以下に示す対象属性に含まれる属性に対応する命題変数が「TRUE」にならないことを意味する論理式(1)で表現できる。なお、以降では、除去制約は「nоt{対象制約}」とも記述する
選択制約は「対象属性に含まれる属性のうち、必ず指定された分の属性を選択する」ことを意味しており、以下に示す、対象属性に含まれる属性に対応する命題変数のうち、選択数分の命題変数が「TRUE」となることを意味する論理式(2)として表現できる。なお、以降では、選択制約は、「Select(選択数){対象属性}」とも記述する
ここで、命題変数の集合において、TRUEとなる命題変数の数に関する論理式は、一般的に基数制約と呼ばれており、「at−mоst(対象属性、選択数)」は、「対象属性」に対応する命題変数の中で最大「選択数」個の命題変数が「TRUE」になることを表す基数制約であり、「at-least(対象属性、選択数)」は、「対象属性」に対応する命題変数の中で少なくとも「選択数」個の命題変数がTRUEになることを表す基数制約である。
なお、基数制約の具体的な表現方法については、例えば「Olivier BABailleux、Yacine Boufkhad、“Efficient CNF encoding of Boolean Cardinality Constraints”、Principles and Practice of Constraint Programming−CP 2003、pp108−122、 2003」などに詳しく述べられているので、そちらを参照されたい。
また、基数制約に対応したSATソルバも存在し、具体的な論理式に変換するのではなく、それらのSATソルバを活用することも可能である。なお、基数制約に対応したSATソルバについては、例えば、「山根裕二らの“基数制約の概念を持つSATソルバの設計と評価”、人工知能学会全国大会論文集25、pp1−4、2011」などに詳しく述べられているので、そちらを参照されたい。
排他制約は、「対象属性から0〜1個の属性を選択する」ことを意味しており、以下に示す、対象属性に含まれる属性に対応する命題変数のうち、最大1個の命題変数が「TRUE」となることを意味する論理式(3)として表現できる。なお、以降では、排他制約は「at−mоst−оne{対象属性}」とも記述する
付帯制約は、「前提属性がすべて使用されるとき、対象属性も一緒にすべて選択する」ことを意味しており、以下に示す、前提属性に含まれる属性に対応する命題変数がすべてTRUEのとき、対象属性に含まれる属性に対応する命題変数がすべてTRUEになることを意味する論理式(4)に対応する。なお以降では、付帯制約は、「implicatiоn(前提属性){対象属性}」とも記述する
以降において、制約は、除去制約、選択制約、排他制約、付帯制約の何れかを指すこととする。
図7は、本実施例に関わるデータ分析設定画面700の例を示す図である。この図は、ユーザインタフェース部101が入出力装置123に表示し、分析者が入力した自動データ分析の設定情報を受け付ける画面の例を示している。すなわち、ユーザインタフェース部が、ユーザからの入力を受け付ける受付部としての機能を有する。
データ分析設定画面700は、分析パラメータ設定エリア710、制約リスト表示エリア720、データ表示エリア730、データ読み込みボタン740、制約管理ボタン750、分析実行ボタン760を含む。
分析パラメータ設定エリア710は、自動分析時のパラメータを表示・入力する領域であり、最大属性数、最小属性数、終了条件、制約自動生成対象、分析周期、分析カバレッジを表示し、統計情報チェックボックス、履歴チェックボックス、終了条件の単位指定コンボボックスを含む。
ユーザインタフェース部101が、「最大属性数」、「最小属性数」、「終了条件」、「分析カバレッジ」、「制約自動生成対象」、「分析周期」のタイトル(項目名)、統計情報チェックボックス、履歴チェックボックス、終了条件の単位指定コンボボックスを表示し、分析者が最大属性数、最小属性数、終了条件、制約自動生成対象、分析周期、終了条件の単位を入力する。
最大属性数は、選択パターンに含まれる属性の最大数を意味している。最小属性数は、選択パターンに含まれる属性数の最小数を意味している。終了条件は、制約を満たす全選択パターンに分析を適用した場合以外の分析の終了条件を意味している。
図7では、終了条件の単位として、「時間」が入力されているが、それ以外に、分析回数を表す「回」を指定することも可能である。制約自動生成対象は、統計情報から制約を自動生成するか、また、履歴から制約を自動生成するかを意味しており、それぞれ該当するチェックボックスにチェックを入れることで、自動生成を有効にできる。
分析周期は、履歴からの制約自動生成を行う間隔を意味している。分析カバレッジは、履歴分析部105において、分析していない属性の組合せを特定する際に使用する。なお、分析周期及び分析カバレッジは、履歴からの制約自動生成が有効な場合のみ、入力可能である。
図7は、最大属性数として「5属性」、最小属性数として「3属性」、終了条件として「1時間」、が入力され、制約自動生成対象として「統計情報」、「履歴」のチェックボックスにチェックが入り、さらに、分析周期として「10回」、分析カバレッジとして「2属性」が入力された例である。
制約リスト表示エリア720は、制約記憶部111に記憶されている制約情報601を表示する領域であり、ユーザインタフェース部101が制約記憶部111に記憶されている制約情報601のうち、制約表示条件設定エリア721で指定された条件を満たす制約一覧を表示し、制約表示条件設定エリア721を含む。分析者が、制約一覧中のいずれかの制約情報601を押下すると、ユーザインタフェース部101は、制約情報601を選択された制約として記憶し、さらに、分析者に制約が選択されていることを示すため、制約の背景色を変更する。
図7は、制約情報601の一覧表として、制約ID1「付帯制約:implicatiоn(周辺人口){平均年収}」、制約ID2「選択制約:select(1){周辺人口、最高気温}」、制約ID3「{排他制約:at−mоst−оne{平均年収、最高気温}}」を表示させた例である。
制約表示条件設定エリア721は、制約の一覧表に表示させる制約情報601の条件を指定する領域であり、有効性、種別、対象/前提属性を表示し、「指定しない」、「有効」、「無効」の何れかを選択するラジオボタン、表示させる制約の種別を選択するコンボボックスを含む。ユーザインタフェース部101が「有効性」、「種別」、「使用属性」のタイトル(項目名)、ラジオボタン、コンボボックスを表示し、分析者が表示させる制約の有効性、種別、分析に使用する属性(使用属性)を入力する。なお、種別は、「除去制約」「排他制約」、「選択制約」、「付帯制約」の何れかを選択できる。
ユーザインタフェース部101は、表示させる制約の条件が分析者によって変更されたことを検知すると、分析者が入力した制約の有効性、種別、使用属性を全て満たす制約の制約情報601を制約記憶部111から取得し、制約の一覧表に表示させる。なお、有効性の「指定しない」は、表示させる制約の条件に有効性を使用しないことを意味している。
図7は、有効性として「有効」を選択し、種別を選択せず、対象/前提属性を入力しない例である。
データ表示エリア730は、データ記憶部112から読み込んだ属性情報301、分析対象情報302、及び属性値情報303を表示させる領域であり、ユーザインタフェース部101がデータ一覧を表示させる。データ一覧は、各属性情報301のうち目的変数としていずれかを選択するラジオボタンを含む。
分析者が、ラジオボタンで、ある属性を目的変数として選択すると、ユーザインタフェース部101は、選択された属性に対応する属性情報301の目的フラグを「TRUE」に変更し、選択されなかった属性に対応する属性情報301の目的フラグを「FALSE」に変更する。ここでは、「売上」が目的変数になり、「医療品取扱い」、「食料品取扱い」、「周辺人口」、「所在市面積」、「平均年収」、「平均気温」、「最低気温」、「最高気温」、及び、「降水量」は説明変数になる。
データ読み込みボタン740は、CSVファイルや外部DBからデータ読み込みを行うためのボタンである。分析者がデータ読み込みボタン740を押下すると、ユーザインタフェース部101は、後述するデータ読み込み画面800を表示する。
制約管理ボタン750は、制約記憶部111に記憶された制約の管理を行うためのボタンである。分析者が制約管理ボタン750を押下すると、ユーザインタフェース部101は、後述する制約管理画面900を表示する。
分析実行ボタン760は、分析パラメータ設定エリア710で入力された分析の設定及び制約記憶部111に記憶された制約に基づいて、データ記憶部112に記憶されたデータに対して、自動的にデータ分析を適用するためのボタンである。分析者が分析実行ボタン760を押下すると、ユーザインタフェース部101は、後述するデータ分析全体の流れS1200以降に従って、自動的に分析を実施し、分析終了後、後述する分析結果表示画面1100を表示させる。
図8は、本実施例に関わるデータ読み込み画面800の例を示す図である。この図では、ユーザインタフェース部101が入出力装置123に表示する、CSVファイルやデータベースなどからデータを読み込むためのデータ読み込み画面800の例を表している。
データ読み込み画面800は、取得元設定エリア810、キャンセルボタン820、読み込み実行ボタン830を含む。
取得元設定エリア810は、データ取得元の情報を表示する領域であり、取得元を表示し、取得元の種類がデータベースかCSVファイルかを選択するラジオボタン(以下、取得元種類選択のラジオボタンという)、制約を生成するかどうかを選択するラジオボタン(以下、制約生成選択のラジオボタンという)を含む。ユーザインタフェース部101が「取得元」のタイトル(項目名)、取得元種類選択のラジオボタン、制約生成選択のラジオボタンを表示させ、分析者が、取得元、取得元の種類、制約を生成するかどうかをする。
図8は、取得元として「C:¥data¥service_store_data.csv」、種類として「CSVファイル」、制約の生成を「する」と入力された例である。
なお、本装置への入力ファイル及びデータベースには、属性情報301の各フィールド及び分析対象情報302の各フィールド、属性値情報303の各フィールドに対応する情報が機械解釈可能な形で含まれていることを前提とする。
キャンセルボタン820は、データ読み込みを実施せずに、データ読み込み画面800を閉じるためのボタンである。分析者がキャンセルボタン820を押下すると、ユーザインタフェース部101は、データ読み込み画面800を閉じる。
読み込み実行ボタン830は、データ読み込みを実施し、その後データ読み込み画面800を閉じるためのボタンである。分析者が読み込み実行ボタン830を押下すると、ユーザインタフェース部101は、取得元に指定されたファイルまたはデータベースから、属性、分析対象、属性値を読み込み、データ記憶部112に、属性情報301、分析対象情報302、属性値情報303を追加する。さらに、分析者が制約の生成を「する」と選択している場合は、データ分析部104を用いて、読み込んだデータの統計情報から排他制約、もしくは、除去制約を生成し、生成した制約に対応する制約情報601を制約記憶部111に追加する。データの読み込み及び制約の生成後、ユーザインタフェース部101は、データ読み込み画面800を閉じる。さらに、ユーザインタフェース部101は、データの読み込み及び制約の生成の結果をデータ分析設定画面700の制約一覧及びデータ一覧に反映させる。
図9は、本実施例に関わる制約管理画面900の例を示す図である。この図では、ユーザインタフェース部101が入出力装置123に表示する、本装置が記憶している制約情報601を管理するための制約管理画面900の例を表している。
制約管理画面900は、制約リスト表示エリア910、削除ボタン920、修正ボタン930、追加ボタン940、選択パターン例示エリア950、終了ボタン960を含む。
制約リスト表示エリア910は、図7の制約リスト表示エリア720と同一のため、説明を省略する。
削除ボタン920は、制約情報601を削除するためのボタンである。分析者が削除ボタン920を押下すると、ユーザインタフェース部101は、押下前に選択された制約情報601があれば、選択された制約情報601を制約一覧と制約記憶部111から削除する。押下前に選択された制約情報601がなければ、ユーザインタフェース部101は、選択された制約がない旨を出力する。
修正ボタン930は、既存の制約情報601を修正するためのボタンである。分析者が修正ボタン930を押下すると、ユーザインタフェース部101は、押下前に選択された制約情報601があれば、制約情報601を編集対象制約情報として、後述する制約編集画面1000を表示し、押下前に選択された制約情報601がなければ、編集対象制約が選択されていない旨を出力する。
追加ボタン940は、新たな制約情報601を追加するためのボタンである。分析者が追加ボタン940を押下すると、ユーザインタフェース部101は、編集対象制約情報として、制約IDと有効性が「有効」、自動生成フラグが「FALSE」、制約種別602が「選択」の制約情報601を生成し、後述する制約編集画面1000を表示する。このとき、ユーザインタフェース部101は、制約記憶部111に制約情報601が1以上、記憶されていない場合は「0」を、1以上、記憶されている場合は、制約記憶部111に記憶されている制約情報601の制約IDの最大値に「1」を加えた値を制約IDとする。なお、追加ボタン940を押下した時に、生成される制約の種別は、「選択」以外でも構わない。
選択パターン例示エリア950は、制約を満たす選択パターンの例を表示するための領域であり、最大属性数、最小属性数、生成個数、選択パターン一覧を表示し、選択パターン例示ボタン951を含む。
ユーザインタフェース部101が、「最大属性数」、「最小属性数」、「生成個数」のタイトル(項目名)、選択パターン一覧、選択パターン例示ボタン951を表示し、分析者が最大属性数、最小属性数、生成個数を入力する。
図9は、最大属性数として「5属性」、最少属性数として「3属性」、生成個数として「1個」を入力し、選択パターンの例示として、「平均年収」、「周辺人口」、「所在市面積」の3つの属性からなる選択パターンを表示させた例である。
選択パターン例示ボタン951は、分析者が入力した最大属性数、最小属性数、生成個数に基づいて、制約を満たす選択パターンを生成するためのボタンである。分析者が選択パターン例示ボタン951を押下すると、ユーザインタフェース部101は、選択パターン生成部103を用いて、制約記憶部111に記憶された制約情報601を満たし、最少属性数以上、最大属性数以下の属性を含む選択パターンを生成個数、生成し、選択パターン一覧に追加する。このとき、選択パターン一覧に既に選択パターンが追加されている場合、ユーザインタフェース部101は、既に追加されている選択パターンを削除してから追加する。
終了ボタン960は、制約情報601の管理を終了するためのボタンである。分析者が終了ボタン960を押下すると、ユーザインタフェース部101は、制約管理画面900を閉じる。
図10は、本実施例に関わる制約編集画面1000の例を示す図である。この図では、ユーザインタフェース部101が入出力装置123に表示する、編集対象制約を編集するための制約編集画面1000の例を表している。
ユーザインタフェース部101は、制約表示エリア1010、矛盾制約表示エリア1020、終了ボタン1030を含む。
制約表示エリア1010は、編集対象制約情報の表示、または編集を行うための領域であり、制約ID、制約種別、対象属性、選択数、前提属性、有効性、自動生成フラグを表示し、制約種別を選択するためのコンボボックス、有効性を選択するためのラジオボタン、編集反映ボタン1011を含む。
ユーザインタフェース部101が、「制約ID」のタイトル(項目名)と実際の制約ID、「制約種別」、「対象属性」、「選択数」、「前提属性」、「有効性」のタイトル(項目名)、「自動生成フラグ」のタイトル(項目名)、実際の自動生成フラグ、コンボボックス、ラジオボタンを表示し、分析者が制約種別、対象属性、選択数、前提属性、有効性を入力する。
さらに、選択数は、制約種別として「選択制約」を選択しているときのみ入力可能であり、前提属性は、制約種別として「付帯制約」を選択しているときのみ入力可能である。
また、制約編集画面1000が表示されたとき、制約表示エリア1010には、編集対象制約情報の制約ID、制約種別、対象属性、選択数、前提属性、有効性、自動生成フラグが表示される。なお、編集対象制約情報が、選択制約以外の場合、選択数は空欄になり、編集対象が付帯制約以外の場合、前提属性は空欄になる。
図10は、編集対象制約情報として、制約IDに「2」、制約種別に「選択制約」、対象属性に、「周辺人口、最高気温」、有効性に「有効」、自動生成フラグに「FALSE」を表示し、分析者が選択数を「1」から「2」に変更した例である。
編集反映ボタン1011は編集後の編集対象制約情報の内容を制約記憶部111に反映させるためのボタンである。分析者が編集反映ボタン1011を押下すると、ユーザインタフェース部101は、編集対象制約情報と同じ制約IDを持つ制約記憶部111の制約情報601を編集対象の制約と一致させる。このとき、編集対象制約と同じ制約IDを持つ制約情報601が制約記憶部111に存在しない場合、新たな制約として、制約情報601を制約記憶部111に追加する。さらに、ユーザインタフェース部101は、矛盾検証部106を用いて、制約記憶部111に記憶されている有効な制約情報601の中で、編集対象制約と矛盾している制約情報601を探し、後述する矛盾制約表示エリア1020の矛盾制約リストに表示する。
本実施例では、1以上の制約の集合において、制約の集合に含まれている制約を全て満たす属性の選択パターンが存在していないとき、制約の集合は、矛盾を含んでいるという。
ここで、制約の集合が矛盾を含んでいるか判断するには、集合内に含まれる制約の論理式を論理積で結合した論理式(5)(以下、矛盾検証式という)の充足可能性を判定すれば良い
充足可能性とは、与えられた論理式をTRUE(真)にする命題変数の値の組合せ(以下、モデルという)が存在するか否かを表す性質である。矛盾検証式が充足可能とは、制約を満たす属性の選び方が存在することを意味している。
充足可能性は、単純には、すべての変数の値の組合せをチェックすることで判定可能ある。また、DPLL(DaviS−Putnam−Logemann−Loveland)アルゴリズムなど、変数の値の組合せではなく、論理式の構造に着目して、効率的に充足可能性を判定するツールがある。たとえば、SAT(SatiSfiability)ソルバは、充足可能性判定を判定するツールの一種であり、選択パターン生成用論理式の充足可能性を判定できる。また、SATソルバには、論理式が充足可能だった場合、モデルを取得する機能を備えるものがある。
制約の集合の矛盾検証式が充足不能の場合、その制約の集合は矛盾を含んでおり制約の集合の矛盾検証式が充足可能の場合、その制約の集合は矛盾を含んでいない。さらに、矛盾検証式が充足不能な制約の集合において、どの属性を集合から除去しても、除去後の制約の集合の矛盾検証式が充足可能となる場合、そのような制約の集合を特に、矛盾検証式が充足不能となる極小な制約の集合という。以降において、矛盾とは、矛盾判定が充足不能となる極小な制約の集合を指すこととする。
ユーザインタフェース部101は、矛盾検証部106を用いて、編集対象制約情報と制約記憶部111に記憶されている有効な制約情報601の中で、編集対象制約情報を含む矛盾を探し、矛盾に含まれる編集対象制約情報以外の制約情報601を矛盾制約表示エリア1020に編集対象制約と矛盾している制約として表示する。
なお、矛盾を探すには、例えば「Thai Son Hoangらの“Validating the Consitency of Specication Rules”、http://deploy−eprints.ecs.soton.ac.uk/465/1/ruleval−techrep.pdf」に記載のMinimal UnSat Coreを探す方法を用いればよく、詳細はそちらを参照されたい。
矛盾制約表示エリア1020は、編集対象制約情報と矛盾している制約を表示するための領域であり、矛盾制約リスト1021、一括無効ボタン1022を含む。
ユーザインタフェース部101は、制約記憶部111に記憶されている制約情報601の中で、制約表示エリア1010に表示されている制約と矛盾している制約情報601と一括無効ボタン1022を表示する。
矛盾制約リスト1021は、編集対象制約情報と矛盾している制約を表示するためのリストであり、1行が、1つ以上の制約情報601の集合と対応する。分析者が、制約情報601の集合の中の制約情報601を押下すると、ユーザインタフェース部101は、押下された制約情報601を編集対象制約情報として、制約編集画面1000を表示する。
一括無効ボタン1022は、矛盾制約リスト1021中の全制約の集合の何れかに含まれる制約情報601の有効性を一括で無効にするためのボタンである。分析者が一括無効ボタン1022を押下すると、ユーザインタフェース部101は、制約記憶部111に記憶されている制約情報601の中で、矛盾制約リスト1021の制約情報601の集合に含まれる制約情報601の有効性を「無効」に変更する。
図10は、矛盾している制約の集合として、「付帯制約:implicatiоn(周辺人口){平均年収}」と「排他制約:at−mоst−оne{平均年収、最高気温」を持つ集合を表示させている例である。
終了ボタン1030は、制約編集を終了するためのボタンである。分析者が終了ボタン1030を押下すると、ユーザインタフェース部101は、制約編集画面1000を閉じる。
図11は、本実施例に関わる分析結果表示画面1100の例を示す図である。この図では、ユーザインタフェース部101が入出力装置123に表示する、データ分析の結果、得られた仮説を表示するための分析結果表示画面1100の例を表している。
分析結果表示画面1100は分析パラメータ表示エリア1110、選択パターン表示エリア1120、仮説リスト表示エリア1130を含む。
分析パラメータ表示エリア1110は、データ分析設定画面700の分析パラメータ設定エリア710で分析者が入力した結果を表示する領域であり、分析パラメータ設定エリア710と内容が同一のため、説明を省略する。
選択パターン表示エリア1120は、選択パターン記憶部114に記憶された選択パターン情報を表示するための領域であり、選択パターン一覧を表示し、選択パターン表示条件設定エリア1121を含む。分析者が選択パターン一覧中の選択パターン情報501を選択すると、ユーザインタフェース部101は、仮説記憶部113から、選択パターン情報501を用いて、導出された仮説情報401を探し、後述する仮説リスト表示エリア1130の仮説一覧に表示させる。
図11は、選択パターンとして、No.1{周辺人口、所在市面積、平均年収}とNo.2{最高気温、降水量、平均年収}を表示させた例である。
選択パターン表示条件設定エリア1121は、選択パターン一覧に表示させる選択パターン情報501の条件を設定するための領域であり、使用属性を表示する。
ユーザインタフェース部101が、「使用属性」のタイトル(項目名)を表示し、分析者が属性を入力する。分析者が属性名を入力すると、ユーザインタフェース部101は、選択パターン記憶部114から、分析者が入力した属性名を持つ属性を含む選択パターン情報501を探し、選択パターン一覧に表示させる。
図11は、使用属性として「平均年収」を入力した例である。
仮説リスト表示エリア1130は、データ分析によって導出された仮説を表示するための領域であり、仮説一覧を表示し、仮説表示条件設定エリア1131を含む。仮説一覧には、仮説表示条件設定エリア1131に入力された条件を満たす仮説情報401を表示する。
図11は、No.1{周辺人口、所在市面積、平均年収}の場合の複数の回帰式として「売上=−0.03×周辺人口―18.27×所在市面積+0.25×平均年収―38709.4」、相関係数として「0.83」、決定係数として「0.69」を持つ仮説情報401等を表示させた例である。
仮説表示条件設定エリア1131は、仮説一覧に表示させる仮説の条件を設定するための領域であり、属性、相関係数、決定変数を表示させる。
ユーザインタフェース部101が、「属性」、「相関係数」、「決定変数」のタイトル(項目名)を表示し、分析者が、属性、相関係数、決定変数を入力する。属性、相関係数、決定変数が入力されると、ユーザインタフェース部101は、選択パターン表示エリア1120の選択パターン一覧から分析者によって選択された選択パターン情報501を使って、導出された仮説情報401のうち、入力された属性を含む、相関係数が入力された範囲内であり、決定変数が入力された範囲内である仮説情報401を仮説記憶部113から探し、仮説一覧に表示させる。
図11は、表示させる仮説の相関係数の下限として、「0.7」を入力し、決定変数の上限として「0.7」を入力した例である。
すなわち、図11の分析結果表示画面1100が、選択パターンの一覧からデータ分析者が選択した選択パターンに基づいて、データ分析によって導出された仮説の一覧を表示する表示部としての機能を有する。
図12は、本実施例に関わるデータ分析のメインのフローチャートの例を示す図である。なお、図中の符号Sはステップを表す。
ユーザインタフェース部101は、分析者がデータ分析設定画面700の分析実行ボタン760を押下した場合に、処理を実行する(S1200)。
ユーザインタフェース部101は、分析パラメータ設定エリア710の統計情報チェックボックスにチェックが入っているかを確認する(S1201)。
当該チェックボックスにチェックが入っている場合、ユーザインタフェース部101は、S1202に進み、チェックが入っていない場合、ユーザインタフェース部101は、S1203に進む。
ユーザインタフェース部101は、統計分析部102を用いて、統計情報から制約を生成する(S1202)。
ユーザインタフェース部101は、選択パターン生成部103を用いて、選択パターンをひとつ生成する(S1203)。
ユーザインタフェース部101は、選択パターンの生成に成功したかどうかを確認する(S1204)。
生成に成功した場合、ユーザインタフェース部101は、S1205に進み、生成に失敗した場合、ユーザインタフェース部101は、S1209に進む。
ユーザインタフェース部101は、データ分析をするデータ分析部104を用いて、生成した選択パターン中に含まれる属性及び属性値に対して、データ分析を適用する(S1205)。
ユーザインタフェース部101は、分析パラメータ設定エリア710の履歴チェックボックスがチェックされており、かつ、当該エリアの分析周期を満たしているか確認する(S1206)。
満たしている場合、ユーザインタフェース部101は、S1207に進み、満たしていない場合、ユーザインタフェース部は、S1208に進む。
ユーザインタフェース部101は、履歴分析部105を用いて、過去に生成した選択パターンの履歴から、制約を生成する(S1207)。
ユーザインタフェース部101は、分析パラメータ設定エリア710の終了条件を満たしているか確認する(S1208)。
終了条件を満たす場合、ユーザインタフェース部は、S1209に進み、満たさない場合は、S1203に進む。
ユーザインタフェース部101は、分析結果表示画面1100を表示し(S1209)、処理を終了する(S1210)。
図13は、本実施例に関わる統計情報からの制約生成の処理フローチャートの例を示す図である。この図では、統計分析部102がデータの統計的な分析結果から制約を生成する処理の流れを表している。
統計分析部102は、ユーザインタフェース部101から起動されることで、処理を開始する(S1300)。
統計分析部102は、データ記憶部112から、説明変数を対象属性集合として取得する。(S1301)
統計分析部102は、対象属性集合中の各属性に対して、分析対象ごとの属性値の出現頻度を算出する(S1302)。ここで、出現頻度とは、ユーザインタフェース部101が受け付けた説明変数を統計的に分析した結果の値である。
出現頻度は、「属性値iの出現頻度 =属性値iを含む分析対象数/分析対象数」という式で算出できる。ここで、属性値iは、任意の属性値である。
統計分析部102は、出現頻度が閾値を超える属性値を持つ属性(以下、除去対象制約)に対して、属性を選択しないことを意味する除去制約「nоt{除去対象制約}」を生成する(S1303)。ここで、閾値は、固定値でもパラメータとして、分析者が事前に与える形でも良い。
統計分析部102は、説明変数を統計的に分析した結果である出現頻度に基づいて生成した除去制約に対応する制約情報601を制約記憶部111に追加する(S1304)。このとき、制約IDは、制約記憶部111に記憶されている制約情報601が使用していない数値とし、有効性は「有効」、自動生成フラグは「TRUE」とする。
統計分析部102は、除去対象属性を対象属性集合から除去する(S1305)。
統計分析部102は、対象属性集合中に含まれる2つの属性の組合せ(以下、属性のペアという)を全て生成する(S1306)。
統計分析部102は、生成した属性のペアごとに、相関係数を算出する(S1307)。
統計分析部102は、相関係数が、閾値を超える属性のペア(排他対象属性ペア)に対して、排他対象属性ペアから、高々1個の属性しか選択しないことを意味する排他制約「at−most−оne{排他対象属性ペア}」を生成する(S1308)。すなわち、統計分析部102は、属性間の相関関係に基づいて、前記排他制約を生成する。
統計分析部102は、生成した排他制約に対応する制約情報601を制約記憶部111に追加し(S1309)、処理を終了する(S1310)。このとき、制約IDは、制約記憶部111に記憶されている制約情報601が使用していない数値とし、有効性は「有効」、自動生成フラグは「TRUE」とする。
図14は、本実施例に関わる選択パターン生成の処理フローチャートの例を示す図である。この図では、選択パターン生成部103が、制約を満たす選択パターンを生成する処理の流れを表している。
選択パターン生成部103は、ユーザインタフェース部101から起動されることで、処理を開始する(S1400)。
選択パターン生成部103は、制約記憶部111から、有効となっている制約情報601を全て取得する(S1401)。
選択パターン生成部103は、有効となっている制約情報601を使って、選択パターンを生成するための選択パターン生成用論理式を生成する(S1402)。
選択パターン生成用論理式(6)は、「説明変数から分析パラメータ設定エリア710の最大属性数以下の属性を選択することを意味する論理式(7)(以下、最大属性数制約という)」と「説明変数から分析パラメータ設定エリア710の最小属性数以上の属性を選択することを意味する論理式(8)(以下、最少属性数制約という)」と「既に生成した選択パターンと同一の選択パターンを生成しないことを意味する論理式(9)(以下、重複禁止制約という)」と「取得した制約情報601の論理式表現を論理積で繋げた式」を論理積で繋げた論理式である
最大属性数制約は、属性に対応する命題変数のうち、分析パラメータ設定エリア710の最大属性数以下の数の命題変数を「TRUE」にすることを意味する基数制約である。
最少属性数制約は、属性に対応する命題変数のうち、分析パラメータ設定エリア710の最小属性数以上の数の命題変数を「TRUE」にすることを意味する基数制約である。
重複禁止制約は、選択パターン記憶部114に記憶されている選択パターンごとの、属性パターンに含まれる属性に対応する命題変数のみが「TRUE」となることを否定する論理式、を論理積で結合した式である。
選択パターン生成部103は、選択パターン生成用論理式の充足可能性を判定する(S1403)。
充足不能の場合、選択パターン生成部103は、「生成失敗」として処理を終了し(S1404)、充足可能の場合、選択パターン生成部103は、S1405に進む。
選択パターン生成部103は、SATソルバからモデルを取得する(S1405)。
選択パターン生成部103は、モデルから、「TRUE」となっている命題変数を取得し、「TRUE」となっている命題変数と対応する属性の属性情報301の集合をデータ記憶部112から、選択パターン生成用論理式を満たす選択パターンを取得し(S1406)、処理を終了する(S1407)。
すなわち、選択パターン生成部103は、有効となっている制約から、選択パターンを生成するための選選択パターン生成用論理式を生成する生成部としての機能と、選択パターン生成用論理式を満たす選択パターンを取得する取得部としての機能を有する。
図15は、本実施例に関わる分析ツール適用の処理フローチャートの例を示す図である。この図は、データ分析部104が、選択パターン生成部103で生成した選択パターンに対して、データ分析を適用するフローチャートを表している。
データ分析部104は、ユーザインタフェース部101から起動されることで、処理を開始する(S1500)。
データ分析部104は、データ記憶部112から、選択パターンに含まれる属性情報301と関連がある分析対象ごとの属性値情報303を取得する(S1501)。
データ分析部104は、データ記憶部112から、目的変数の属性情報301と目的変数と関連がある分析対象ごとの属性値情報303を取得する(S1502)。
データ分析部104は、目的変数の属性情報301、目的変数と関連がある分析対象毎の属性値情報303、選択パターンに含まれる属性の属性情報301、属性と関連がある分析対象ごとの属性値情報に対して、データ分析ツールを適用する(S1503)。このとき、使用するデータ分析ツールは、固定でも、パラメータとして分析者が事前に指定する形でも良い。
データ分析部104は、データ分析ツールの分析結果を仮説として取得する(S1504)。このとき、データ分析ツールが相関係数や決定係数など、仮説の定量的な評価指標を出力しない場合、別の評価用ツールを使って、仮説の定量的な評価指標を取得しても良い。
データ分析部104は、仮説から、仮説情報401を生成し、仮説記憶部113に記憶する(S1505)。
データ分析部104は、選択パターンから、選択パターン情報501を生成し、選択パターン記憶部114に記憶し(S1506)、処理を終了する(S1507)。
図16は、本実施例に関わる履歴からの制約生成の処理フローチャートの例を示す図。この図は、履歴分析部105が、選択パターン記憶部114に記憶されている、過去に生成した選択パターンの履歴から、新たな制約を生成するフローチャートを表している。
履歴分析部105は、ユーザインタフェース部101から起動されることで、処理を開始する(S1600)。
履歴分析部105は、自動生成された付帯制約に対応する制約情報601を制約記憶部111から削除する(S1601)。
履歴分析部105は、まだ選択されていない選択パターンを生成するための論理式である未選択パターン生成用論理式を生成する(S1602)。ここで、未選択パターン生成用論理式は、「データ記憶部112内の属性のうち、分析パラメータ設定エリア710の分析カバレッジに指定された数だけ属性を選択することを意味する論理式(選択制約:select(分析カバレッジに指定された数){データ記憶部112内の属性}の論理式表現と等価)」、「過去の選択パターンから、分析パラメータ設定エリア710の分析カバレッジに指定された数の属性を選択してできる組合せを除去することを意味する論理式(以下、過去の組合せ除去制約という)」、「制約記憶部111に記憶された有効な制約の制約情報601の論理式表現を論理積で繋げた式」を論理積で結合した式である。過去の組合せ除去制約は、選択パターン記憶部114に記憶された各選択パターンに対する、選択パターン含まれる属性に対応する命題変数のうち、TRUEとなる命題変数の数が、分析パラメータ設定エリア710の分析カバレッジと等しいことを意味する基数制約(選択制約:select(分析カバレッジに指定された数){選択パターン含まれる属性}の論理式表現と等価)の否定、を論理積で結合した式である。
履歴分析部105は、未選択パターン生成用論理式の充足可能性を判定する(S1603)。
充足不能の場合、履歴分析部105は処理を終了し(S1604)、充足可能の場合、S1605に進む。
履歴分析部105は、未選択パターン生成用論理式のモデルを取得する(S1605)。
履歴分析部105は、モデルから、TRUEとなっている命題変数を取得し、命題変数と対応する全属性の属性情報301をデータ記憶部112から取得し、取得した属性情報301のうち、ひとつを前提属性とし、それ以外を対象属性とする付帯制約「implicatiоn(前提属性){対象属性}」を生成する(S1606)。すなわち、履歴分析部105は、まだ選択されていない選択パターンを生成するための未選択パターン生成用論理式のモデル(与えられた論理式をTRUE(真)にする命題変数の値の組合せ)から付帯制約を生成する。
履歴分析部105は、付帯制約に対応する制約情報601を生成し、制約記憶部111に追加する(S1607)。このとき、制約IDは、制約記憶部111に記憶されている制約情報601が使用していない数値とし、有効性は「有効」、自動生成フラグは「TRUE」とする。
履歴分析部105は、未選択パターン生成用論理式に対して、論理積を用いて、すでに取得済みのモデルが以降出現しないことを意味するモデル重複禁止制約を結合する(S1608)。モデル重複禁止制約は、モデルでTRUEとなっている命題変数を論理積で結合しさらに全体を否定した論理式である。
本実施例の構成によれば、制約に基づいて属性の選択、及び、データ分析を自動化でき、データ分析に関わる工数を削減できるという効果を有する。
なお、本発明は上記した実施例に限定されるものではなく、マーケティング以外の金融、交通、公共機関などのエンタープライズ系のデータ分析に適用されうる様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成は、それらの一部又は全部が、ハードウェアで構成されても、プロセッサでプログラムが実行されることにより実現されるように構成されてもよい。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。