(57)【要約】【課題】  膨大な数の相関ルール中から意外性のあるルールを絞り込むことができ、業務改善や原因分析のための有益な情報把握を素早く行う。【解決手段】  データ分析支援システムであって、複数のデータテーブルを含む分析対象データテーブルを記憶する、記憶装置と、分析対象データテーブルを解析し、データテーブルに含まれる属性の相関を示す複数の相関ルールを抽出する、相関ルール抽出部と、複数のデータテーブル間の関連性を示すデータ関係モデルを生成する、データ関係モデル生成部と、相関ルール毎に、当該相関ルールの前提部及び結論部の属性の組合せを生成し、当該組合わせ毎の前記データ関係モデルにおける当該属性間の距離を求め、当該距離に基づき意外度を算出する、意外度算出部と、を備える。【選択図】  図１
2019128646.tif 000002
【特許請求の範囲】
【請求項１】
データ分析支援システムであって、
複数のデータテーブルを含む分析対象データテーブルを記憶する、記憶装置と、
前記分析対象データテーブルを解析し、前記データテーブルに含まれる属性の相関を示す複数の相関ルールを抽出する、相関ルール抽出部と、
前記複数のデータテーブル間の関連性を示すデータ関係モデルを生成する、データ関係モデル生成部と、
前記相関ルール毎に、当該相関ルールの前提部及び結論部の属性の組合せを生成し、当該組合わせ毎の前記データ関係モデルにおける当該属性間の距離を求め、当該距離に基づき意外度を算出する、意外度算出部と、
を備えることを特徴とするデータ分析支援システム。
【請求項２】
前記意外度算出部は、前記相関ルール毎に、
「当該相関ルールの前提部と結論部に含まれる全属性から２属性を選ぶ選び方全てに対するデータ関係モデルにおける前記距離の総和」で、「前記２属性を選ぶ選び方のうち２属性間の距離がｍ以上となるものの前記距離の総和」を割ることで、
前記相関ルール毎に前記意外度を算出する、
請求項１記載のデータ分析支援システム。
【請求項３】
前記ｍは２である、
請求項２記載のデータ分析支援システム。
【請求項４】
前記意外度算出部は、
前記データテーブル間の関連性に重み付けを行い、当該重み付けによって前記テーブル間の距離を補正する、
請求項１記載のデータ分析支援システム。
【請求項５】
前記データ関係モデルは、
前記データテーブルのそれぞれに含まれる属性名を示すエンティティテーブルと、前記データテーブルのそれぞれに含まれる属性名の関連性の有無を示すリレーションテーブルから構成される、
請求項１記載のデータ分析支援システム。
【請求項６】
請求項１に記載のデータ分析支援システムであって、
前記相関ルール毎に算出した前記意外度を提示するための分析者向け画面を生成するユーザインターフェース部を備えること、
を特徴とするデータ分析支援システム。
【請求項７】
請求項６に記載のデータ分析支援システムであって、
前記意外度に対する所定の閾値を受信し、受信した閾値よりも高い値をもつ前記相関ルールを絞り込むルール推薦部を備えること、
を特徴とするデータ分析支援システム。
【請求項８】
入力装置、出力装置、記憶装置、および処理装置を含む情報処理装置で実行されるデータ分析支援システム方法であって、
前記記憶装置に、複数のデータテーブルを含む分析対象データテーブルを準備する、第１のステップと、
前記複数のデータテーブル間の関連性を示すデータ関係モデルを生成する、第２のステップと、
前記分析対象データテーブルを解析し、前記データテーブルに含まれる属性の相関を示す複数の相関ルールを抽出する、第３のステップと、
前記相関ルール毎に、当該相関ルールの前提部及び結論部の属性の組合せを生成し、当該組合わせ毎の前記データ関係モデルにおける当該属性間の距離を求め、当該距離に基づき意外度を算出する、第４のステップと、
を備えることを特徴とするデータ分析支援方法。
【請求項９】
前記第４のステップは、前記相関ルール毎に、
「当該相関ルールの前提部と結論部に含まれる全属性から２属性を選ぶ選び方全てに対するデータ関係モデルにおける前記距離の総和」で、「前記２属性を選ぶ選び方のうち２属性間の距離がｍ以上となるものの前記距離の総和」を割ることで、
前記相関ルール毎に前記意外度を算出する、
請求項８記載のデータ分析支援方法。
【請求項１０】
前記ｍは２である、
請求項９記載のデータ分析支援方法。
【請求項１１】
前記第４のステップは、
前記データテーブル間の関連性に重み付けを行い、当該重み付けによって前記テーブル間の距離を補正する、
請求項８記載のデータ分析支援方法。
【請求項１２】
前記データ関係モデルは、
前記データテーブルのそれぞれに含まれる属性名を示すエンティティテーブルと、前記データテーブルのそれぞれに含まれる属性名の関連性の有無を示すリレーションテーブルから構成される、
請求項８記載のデータ分析支援方法。
【請求項１３】
前記出力装置が、前記意外度に対する閾値を入力させるための画面を表示する第５のステップと、
前記入力装置から前記閾値を受信し、当該閾値よりも高い意外度をもつ前記相関ルールを絞り込む第６のステップを有する、
請求項８記載のデータ分析支援方法。
【請求項１４】
前記複数のデータテーブルのそれぞれは、属性名を示すカラム名を含み、
前記第２のステップは、
前記複数のデータテーブルうち、前記カラム名が部分一致あるいは完全一致する２つのテーブルをリレーションにより対応付けることにより、前記複数のデータテーブル間の関連性を示すデータ関係モデルを生成し、
前記第４のステップは、
前記相関ルールの前提部及び結論部の属性が含まれる前記データテーブル間に存在する、前記リレーションの数をカウントすることにより、当該属性間の距離を求める、
請求項８記載のデータ分析支援方法。
【請求項１５】
前記第４のステップは、
前記リレーションにより対応付けられた２テーブル間で、カラム名が部分一致あるいは完全一致するペアの数で当該リレーションの重みを算出し、
当該重みの逆数を前記２テーブル間のリレーションの補正値とし、
前記相関ルールの前提部及び結論部の属性が含まれる前記データテーブル間に存在する、前記リレーションの補正値を加算することにより、当該属性間の距離を求める、
請求項１４記載のデータ分析支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置を用いてデータ分析を支援する技術に関する。
【背景技術】
【０００２】
ＩｏＴ（Internet of Things）技術やビッグデータ技術の進展に伴い、複数の業務システムやセンサを跨いでのデータ利活用のニーズが高まっている。様々な業務システムが保有する大量データに対するデータ分析アルゴリズムとして、相関ルールマイニング（バスケット分析・相関分析）がある。相関ルールマイニングは対象のデータ中より、頻繁に同時に生起する事象の相関（相関ルール）を見つけることに焦点を当てた技法であり、非数値のデータに対しても適用可能な手法である。相関ルールは、例えば「事象Ａと事象Ｂは同時に起きやすい」や「商品Ｃは商品Ｄと同時に購入されやすい」のような形で表され、データ分析だけでなくデータ検索システムや情報推薦システムでも用いられる。
【０００３】
相関の強さを示す指標として、支持度（全サンプル中での発生割合）、確信度（前提部・結論部の組合せ頻度）、リフト（組合せor単独で発生する度合い）が存在し、これらの指標に対する閾値処理を行うことで分析における有用なルールを抽出する。しかしながら、例えば、低い支持度（少事例）のルールを残すと大量のルールが残ってしまい、この中から有用なルールを見つけ出すことが困難となる。一方で、高い支持度（多事例）のルールを残すと事象として自明な（当たり前の）ルールが残り、業務改善や原因分析のための有益なルールを見つけ出すのは困難となる。
【０００４】
こうした相関ルールマイニングにて抽出した膨大なルールの絞込に関する技術に、コンテンツ消費（商品購買等）データを対象とし、コンテンツ間の関連を示す複数の相関ルールを生成する手段と、前記コンテンツ消費データを用いて、各相関ルールの希少度を算出する手段と、前記希少度を用いて前記相関ルールを絞り込み推薦ルールを生成する手段とを備え、前記希少度の算出においては、相関ルール毎に前記コンテンツ消費データから取得した、当該相関ルールの条件部および帰結部のコンテンツの合計数と、当該相関ルールに該当するユーザ数と、当該相関ルールに該当する各ユーザのコンテンツ消費数と、消費された全コンテンツ数と、当該相関ルールの条件部および帰結部の各コンテンツを消費したユーザ数とを用いて前記希少度を算出することを特徴とする推薦ルール生成装置（特許文献１参照）などが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−２２２３９８号公報
【非特許文献】
【０００６】
【非特許文献１】Rakesh Agrawal and Ramakrishnan Srikant，”Fast algorithms for mining association rules”，Proceedings of the 20th International Conference on Very Large Data Bases，pp.487-499，1994
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複数の業務システムのデータを突き合わせての分析作業における初期段階では、分析目的は明確になっていても、分析対象データが明確になっていない場合が多い。すなわち、分析目的の検証及び評価に向けたデータ分析結果獲得のために、どのデータを用いればよいかが明確になっていない場合が多い。
【０００８】
このような場合において、分析実施者は分析対象となるデータの元業務システムにおけるＥＲ（Entity-Relationship）図等のデータ構造仕様書をもとに、まずは分析できそうなデータを突き合わせていく、すなわち、元業務システムのデータ構造の観点で近い距離にあるデータテーブル同士をまずは組合せていく、といったアプローチをとることが多い。これは、限られた分析作業工数内で有益な分析結果を得るために、まずは分析結果を得られそうなデータの組合せを選択していくためである。
【０００９】
複数業務システムのデータ分析においては、前記のようなアプローチをとることが多いことから、特に業務システムを跨ぐデータテーブル同士、または、１業務システムであっても元業務システムのデータ構造の観点で遠い距離にあるデータテーブル同士を用いた分析を十分に実施することができない場合が多い。また、元業務システムのデータ構造の観点で近い距離にあるデータテーブル同士を組合せていくというアプローチでは、分析対象データの組合せとしては珍しくない（よくある）組合せである場合が多く、分析結果としても自明な（当たり前の）結果が得られることが多く、業務の改善や事象の原因調査にとっての有益な結果の獲得に繋がらない可能性ある。
【００１０】
以上より、「業務システムを跨ぐデータテーブル同士」や「元業務システムのデータ構造の観点で距離が遠いデータテーブル同士」といった、分析対象データの組合せとして意外な組合せとなるデータの相関は、特に有益な分析結果となり得る。
【００１１】
しかしながら、従来技術において特徴部分とする希少度算出において得られる希少度は当該相関ルールの生じる確率を示しており、前述した「業務システムを跨ぐデータテーブル同士」や「元業務システムのデータ構造の観点で距離が遠いデータテーブル同士」といった意外なデータの組合せに関しては未考慮である。従って、従来技術では抽出された膨大な数の相関ルールから、ルールの前提部及び結論部に含まれる属性の組合せとして意外な組合せを含む相関ルールを絞り込めず、分析者にとって有益なルールを提示できない。
【課題を解決するための手段】
【００１２】
本発明の一側面は、データ分析支援システムである。このシステムは、複数のデータテーブルを含む分析対象データテーブルを記憶する、記憶装置と、分析対象データテーブルを解析し、データテーブルに含まれる属性の相関を示す複数の相関ルールを抽出する、相関ルール抽出部と、複数のデータテーブル間の関連性を示すデータ関係モデルを生成する、データ関係モデル生成部と、相関ルール毎に、当該相関ルールの前提部及び結論部の属性の組合せを生成し、当該組合わせ毎の前記データ関係モデルにおける当該属性間の距離を求め、当該距離に基づき意外度を算出する、意外度算出部と、を備える。
【００１３】
本発明の他の一側面は、入力装置、出力装置、記憶装置、および処理装置を含む情報処理装置で実行されるデータ分析支援システム方法である。この方法では、記憶装置に、複数のデータテーブルを含む分析対象データテーブルを準備する、第１のステップと、複数のデータテーブル間の関連性を示すデータ関係モデルを生成する、第２のステップと、分析対象データテーブルを解析し、データテーブルに含まれる属性の相関を示す複数の相関ルールを抽出する、第３のステップと、相関ルール毎に、当該相関ルールの前提部及び結論部の属性の組合せを生成し、当該組合わせ毎の前記データ関係モデルにおける当該属性間の距離を求め、当該距離に基づき意外度を算出する、第４のステップと、を備える。
【発明の効果】
【００１４】
膨大な数の相関ルール中から意外性のあるルールを絞り込むことができ、業務改善や原因分析のための有益な情報把握を素早く行える。
【図面の簡単な説明】
【００１５】
【図１】データ分析支援システムの構成例を示すブロック図である。
【図２】分析対象データ蓄積部に蓄積される分析対象データのフォーマット例を示す表図である。
【図３】データ関係モデル記憶部のエンティティテーブル及びリレーションテーブルのフォーマット例と、リレーション生成原理を示す概念図である。
【図４】相関ルール記憶部の相関ルール格納テーブルのデータフォーマット例を示す表図である。
【図５】分析実施者が分析対象データの取り込み、相関ルールの算出及び相関ルールの絞込を行う画面例を示す平面図である。
【図６】データ分析支援システムのハードウェア構成例を示すブロック図である。
【図７】データ分析支援システムにおいてデータ関係モデルを生成、相関ルールを抽出及び意外度を算出する一連の手順を示すフローチャートである。
【図８】データ関係モデル生成部が、分析対象データテーブルからデータ関係モデルを生成する手順の詳細を示すフローチャートである。
【図９】データ結合部が、分析対象データテーブルを１つのデータテーブルに結合する手順の詳細を示すフローチャートである。
【図１０】意外度算出部が、データ関係モデルに基づき相関ルール毎に意外度を算出する手順の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下に本発明の実施形態について図面を用いて詳細に説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００１７】
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
【００１８】
同一あるいは同様な機能を有する要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、複数の要素を区別する必要がない場合には、添字を省略して説明する場合がある。
【００１９】
本明細書等における「第１」、「第２」、「第３」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【００２０】
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
【００２１】
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
【００２２】
以下で説明する実施例の一例は、分析対象データテーブルを解析し複数の相関ルールを抽出する相関ルール抽出部と、分析対象データテーブル間の関連性を示すエンティティテーブルとリレーションテーブルから構成されるデータ関係モデルを生成するデータ関係モデル生成部と、データ関係モデルと相関ルール抽出手段が抽出した相関ルールとを用いて相関ルール毎に当該相関ルールの前提部及び結論部の属性の組合せ毎にデータ関係モデルにおけるエンティティ間の距離及びリレーションの強度に基づき意外度を算出する意外度算出部と、を備えることを特徴とするデータ分析支援システムである。
【実施例１】
【００２３】
図１は、本実施例におけるデータ分析支援システム１００の構成例を示す図である。図１に示すように本実施例が対象とするデータ分析支援システム１００は、ユーザ端末１１１と通信可能に接続されている。データ分析支援システム１００は例えばサーバーで構成することができ、ユーザ端末１１１は例えばパーソナルコンピュータで構成することができる。両者は例えばネットワークを介して接続することができる。
【００２４】
本実施例にかかるデータ分析支援システム１００は、機能部品として分析対象データ蓄積部１０１と、データ関係モデル記憶部１０２と、相関ルール記憶部１０３と、データ取得部１０４と、データ関係モデル生成部１０５と、データ結合部１０６と、相関ルール抽出部１０７と、意外度算出部１０８と、ルール推薦部１０９と、ユーザインターフェース部１１０とを備える。
【００２５】
データ取得部１０４は、ユーザ端末１１１に対して分析実施者１１２が行うデータ取り込み要求を受信し、分析対象データ蓄積部１０１に格納される分析対象データテーブルを取得する。
【００２６】
図２に、分析対象データ蓄積部１０１に蓄積される、分析対象データテーブルの例を示す。図２の例では、分析対象データテーブルとして、列車データテーブル１０１１と駅データテーブル１０１２の例が示されている。各テーブルは、カラム名１０１１１，１０１２１を備え、各カラムに所定の数値あるいはテキストのデータを格納する。データテーブルは例えば図２に示すデータフォーマットを有しており、一般的な表形式データの構造であるものを対象とする。
【００２７】
本実施例の実施において、分析対象データは表形式データあるいはこれと同等の機能を有するデータであることが前提であり、業種や分野に関わらず適用可能であるものである。本実施例においては鉄道分野の各種業務システムのデータを例に挙げ説明する。鉄道分野の各種業務システムのデータ例として、列車データテーブル１０１１と、駅データテーブル１０１２の２テーブルが分析対象データ記憶部に定義されている。各テーブルには例えば、主体または客体となる対象物を示す識別情報や、対象物に関する各種物理量あるいはステイタスの情報等が記憶されている。
【００２８】
データ関係モデル生成部１０５は、分析対象となるデータテーブル間の関連性を示すデータ関係モデルを生成し、生成したモデルをデータ関係モデル記憶部１０２に格納する。データ関係モデル記憶部１０２に記憶されるデータ関係モデルは、データ関係モデルのデータテーブルのテーブル名と各テーブルのカラム一覧を定義するエンティティテーブルと、データ関係モデルのデータテーブル間の関連を定義するリレーションテーブルの２テーブルで構成される。
【００２９】
図３に、データ関係モデル記憶部１０２に格納される、データ関係モデルの概念図を示す。上述のようにデータ関係モデルは、エンティティテーブル１０２１０とリレーションテーブル１０２２０を含む。
【００３０】
エンティティテーブル１０２１０は、分析対象データ蓄積部１０１に蓄積される、各データテーブルのカラム名を一覧として纏めたものである。エンティティテーブル１０２１０は、例えば図３に示すデータフォーマットを有しており、テーブル名１０２１１と、それに対応するカラム名１０２１２とを含む。リレーションテーブル１０２２０は、第１テーブル１０２２１と、第１テーブルのカラム１０２２２と、第２テーブル１０２２３と、第２テーブルのカラム１０２２４とを含む。
【００３１】
図３に示す例では、エンティティテーブル１０２１０に、列車データテーブル（図２の１０１１）と駅データテーブル(図２の１０１２）の２テーブルが定義されており、列車データテーブルには施行日、線区、列車番号、行先、始発駅、終着駅の計６カラムが、駅データテーブル１０１２には列車番号、駅名、他社線乗り入れ、到着時刻、出発時刻、遅延時分、滞留人数の計７カラムが定義される。
【００３２】
また、リレーションテーブル１０２２０には、列車データテーブル１０１１と駅データテーブル１０１２間のリレーションが定義されており、列車データテーブル１０１１の列車番号カラムと駅データテーブル１０１２の列車番号カラムとの間に、リレーションが定義される。同様にして、列車データテーブル１０１１の始発駅及び終着駅カラムと、駅データテーブル１０１２の駅名カラムとの間にリレーションが定義される。
【００３３】
データ結合部１０６は、分析対象データ記憶部に格納される分析対象データテーブルのカラムをキーにして水平方向に結合することで１つのデータテーブルを生成する。
【００３４】
相関ルール抽出部１０７は、データ結合部１０６にて生成されたデータテーブルを対象に相関ルールマイニングを行うことで生成された相関ルールを相関ルール記憶部１０３に格納する。相関ルールの抽出は例えばアプリオリアルゴリズム（非特許文献１参照）などの公知のアルゴリズムを用いて実現することができる。
【００３５】
相関ルールマイニングは、分析対象データ中で頻繁に同時に起きる事象を見つけることに焦点を当てた分析アルゴリズムである。複数の事象間の発生に見られる同時性や関係性といった、分析対象データ中で頻繁に同時に生起する事象の組合せをルールとして抽出し、このルールを相関ルールと呼ぶ。例えば、ある事象Ｘの下である事象Ｙが発生する関係が認められる際は「Ｘ⇒Ｙ」のように記述し、矢印（⇒）の左側を前提部（事象Ｘ）と、右側を結論部（事象Ｙ）と呼び、事象Ｘが発生した際のＹの発生する確率を示すものである。
【００３６】
よく知られているように、相関ルールマイニングでは相関の強さを示す指標として、支持度、信頼度、リフトの計３つの指標がある。支持度は、ある事象を含む全データ中の割合である。確信度は、前提部の事象が生じた下で結論部の事象が生じる割合であり、前提部と結論部に含まれる事象間の関連の強さを表す。リフトは、前提部の事象が生じた下で結論部の事象が生じる割合（確信度）を、全データ中で結論部の事象が生じた割合で割ったものであり、結論部の事象が単独で生じた割合よりも前提部の事象の下で結論部の事象が生じる割合がどれだけ多いかを倍率で示したものである。
【００３７】
例えば、「事象Ｘが発生した下で事象Ｙが発生する割合が６０％で、全データ中で事象Ｘと事象Ｙが同時に生じる割合が２０％であり、事象Ｘの下で事象Ｙが生じる割合は全データ中で事象Ｙが単独で生じる割合の２．５倍になっている」という相関ルール「Ｘ⇒Ｙ」は、支持度＝２０％、確信度６０％、リフト２．５と示される。なお、前提部と結論部に含まれる事象はそれぞれ複数あってもよい。また、前提部と結論部が含む「事象」については特に「アイテム」や「属性」などと呼称される場合もある。以降の説明では「事象」ではなく「属性」と呼ぶ。
【００３８】
図４は相関ルール記憶部１０３が備える相関ルール格納テーブル１０３０のデータフォーマット例を示す。相関ルール格納テーブル１０３０は、データ項目として前提部１０３１と、結論部１０３２と、支持度１０３３と、確信度１０３４と、リフト１０３５と、意外度１０３６とを含む。図４の例では相関ルール「列車番号（Ｔ１００）⇒車両ＩＤ（Ｍ１−０１）」は支持度＝８．３０％、確信度＝６０％、リフト２．３である。本例ではデータ値（前記の相関ルール中のＴ１００とＭ１−０１）だけでなく、当該データ値がどのテーブルのどのカラムに属していたかという情報（前記の相関ルール中では列車データテーブル１０１１の列車番号と車両データテーブル車両ＩＤ）も前提部と結論部に保持するが、データテーブルについては記載を省略している。「意外度」については意外度算出部１０８の説明にて後述する。
【００３９】
意外度算出部１０８は、相関ルール抽出部１０７にて抽出した相関ルール毎に、相関ルールの前提部と結論部に含まれる事象を、データ関係モデル生成部１０５が生成したデータ関係モデルに照らし合わせ意外度を算出し、相関ルール記憶部１０３に格納する。算出した意外度は、相関ルール記憶部１０３の相関ルール格納テーブル１０３０の意外度カラム（図４）に格納される。
【００４０】
ルール推薦部１０９は、分析実施者からの相関ルール絞り込み要求と分析実施者が定義した支持度と、確信度と、リフトと、意外度に対する計４つの閾値を受信し、相関ルール記憶部１０３に格納される相関ルール全てに閾値処理を行うことで相関ルールを絞り込み、絞り込んだ結果をユーザ端末１１１に返す。閾値処理は各指標に対して設定された閾値よりも高い値をもつルールを残し、閾値以下の値をもつルールを取り除くものである。支持度と、確信度と、リフトと、意外度の計４の各指標のいずれについても閾値よりも高い値をもつルールを残す。
【００４１】
ユーザインターフェース部１１０は、分析実施者が分析対象データの取り込み、相関ルールの算出及び相関ルールの絞込を行う画面１１０１を生成する。
【００４２】
図５に、ユーザインターフェース部１１０が生成する画面の一例の平面図を示す。本画面の例は図５に示すように、ヘッダー部１１０２、閾値設定部１１０３と、相関ルール一覧表示部１１０４と、データ関係モデル表示部１１０５から構成される。ヘッダー部１１０２には分析実施者が分析対象データを取り込むためのデータ取り込みボタンと、分析対象データに対する相関ルールの抽出及び意外度算出を行うための相関ルール算出ボタンと、抽出した相関ルールを閾値設定部１１０３にて設定した閾値で絞り込みを行うための相関ルール絞り込みボタンとで構成される。
【００４３】
分析実施者１１２がデータ取り込みボタンを押下すると、ユーザ端末１１１からデータ取得要求が、データ取得部１０４へと送信される。分析対象データ蓄積部１０１からデータが取り込まれると、データ関係モデル生成部１０５によりデータ関係モデルが生成され、生成結果が例えばＥＲ図としてデータ関係モデル表示部１１０５に表示される。生成されたモデルに対して、エンティティ追加・編集ボタン、リレーション追加ボタン、削除ボタンを用いることで、分析の目的や分析者の知識等に応じて分析実施者がモデルを調整・変更してもよい。また、データの取り込みは分析対象データ蓄積部１０１のデータテーブル全てではなく、分析実施者１１２が任意のデータテーブルを選択してもよい。この場合、データ取得要求と併せて分析実施者が選択したデータテーブル名称もデータ取得部１０４へと送信する。
【００４４】
分析実施者１１２が相関ルール算出ボタンを押下すると、データ結合部１０６が生成したデータテーブルに対して相関ルール抽出部１０７が相関ルールの抽出処理を行い、意外度算出部１０８が抽出された各相関ルールに対してデータ関係モデルに基づき意外度を算出する。全ルールに対して意外度の算出まで完了すると、全ての相関ルールが相関ルール一覧表示部１１０４に一覧表示される。
【００４５】
分析実施者１１２が相関ルール絞込ボタンを押下すると、閾値設定部１１０３の支持度と、確信度と、リフトと、意外度に対し設定された閾値とルール推薦要求が、ルール推薦部１０９へと送信される。ルール推薦部１０９でルール絞込を行った結果を、画面１１０１に表示する。
【００４６】
図５の例では閾値として支持度＝３．０％、確信度＝２０．０％、リフト＝１．５、意外度＝８０．０％が設定されている。この結果、抽出された相関ルールのうち各指標について前記閾値よりも高い値をルールが絞り込んだ結果のルールとして、相関ルール一覧表示部１１０４に表示される。図５の例では相関ルール「列車番号（Ｔ１０２）⇒勾配（０．５−１．０％）」は支持度＝７．５％、確信度＝５０％、リフト＝２．６、意外度＝１００％であり、いずれの指標も閾値設定部１１０３にて設定される閾値よりも高い値をもつルールとして残る。これら機能部品の詳細は後にフローチャートを用いて後述する。
【００４７】
図６は、データ分析支援システム１００のハードウェア構成例を示す図である。データ分析支援システム１００は、ＣＰＵ（中央処理装置）２０１、ＨＤＤ（磁気ディスク装置）２０２、メモリ２０３、入力部２０４、表示部２０５、通信部２０６を備える。ＣＰＵ２０１は、データの入出力、読み込み、格納および各種処理を実行する。ＨＤＤ２０２は、データを記憶する装置であり、メモリ２０３は、プログラムおよびデータを一時的に記憶する装置である。両者を纏めて記憶装置という。入力部２０４は、ユーザからの操作入力を受け付ける入力装置である。表示部２０５は、利用者にデータを表示する装置であり出力装置の一つである。通信部２０６は、ユーザ端末１１１と通信し、データを送受信する装置である。これらの各装置は、一般的なコンピュータの各構成として実現できる。
【００４８】
図１の分析対象データ蓄積部１０１、データ関係モデル記憶部１０２、相関ルール記憶部１０３は、例えば、ＨＤＤ２０２により実現される。実施例１のデータ取得部１０４、データ関係モデル生成部１０５、データ結合部１０６、相関ルール抽出部１０７、意外度算出部１０８、ルール推薦部１０９の各部分は、例えば、メモリ２０３に格納されたプログラムをＣＰＵ２０１が実行し、ＣＰＵ２０１、ＨＤＤ２０２、メモリ２０３、入力部２０４、表示部２０５、通信部２０６等のハードウェアを制御することによって、実行される。
【００４９】
以上のデータ分析支援システム１００の構成は、単体のコンピュータで構成してもよいし、あるいは、ＣＰＵ２０１、ＨＤＤ２０２、メモリ２０３、入力部２０４、表示部２０５任意の部分が、通信部２０６を介したネットワークで接続された他のコンピュータで構成されてもよい。また、本実施例中、ソフトウエアで構成した機能と同等の機能は、ＦＰＧＡ（Field Programmable Gate Array）、ＡＳＩＣ（Application Specific Integrated Circuit）などのハードウェアでも実現できる。
【００５０】
図７は、データ分析支援システム１００においてデータ関係モデルを生成、相関ルールを抽出及び意外度を算出する一連の手順を示す全体フローチャートである。
【００５１】
データ取得部１０４は、分析実施者１１２がユーザ端末１１１に表示される図５の画面上にて入力した分析対象データの取り込み要求を受信し、分析対象データ蓄積部１０１から分析対象データテーブルを取得する。そして、データ関係モデル生成部１０５が前記取得したデータテーブルに対するデータ関係モデルを生成する（Ｓ３０１）。
【００５２】
データ結合部１０６が、分析対象データテーブルについて時系列のデータ項目をキーとして水平方向に内部結合することで、１つのデータテーブルを生成する（Ｓ３０２）。
【００５３】
相関ルール抽出部１０７は、分析実施者１１２がユーザ端末１１１に表示される図５の画面上にて入力した相関ルールの抽出要求を受信し、相関ルールを抽出する（Ｓ３０３）。
【００５４】
意外度算出部１０８は、相関ルール抽出部１０７が抽出した相関ルール毎に、データ関係モデル生成部１０５が生成したデータ関係モデルに照らし合わせ意外度を算出する（Ｓ３０４）。
【００５５】
ルール推薦部１０９は、分析実施者がユーザ端末１１１に表示される図５の画面上にて入力した相関ルール絞り込み要求と、支持度、確信度、リフト、意外度に対する閾値とを受信し、相関ルール毎に算出された支持度、確信度、リフト、意外度に対して閾値処理を行いルールの絞り込みを行い、結果をユーザ端末１１１へと返す（Ｓ３０５）。
【００５６】
なお、データ関係モデルの生成Ｓ３０１は、相関ルールの抽出Ｓ３０３の後に行なってもよい。あるいは、図７の処理以前に予め作成して保存しておいても良い。
【００５７】
データ関係モデル生成部１０５が行う処理手順の詳細は図８に示すフローチャートにて後述する。データ結合部１０６が行う処理手順の詳細は図９に示すフローチャートにて後述する。意外度算出部１０８が行う処理手順の詳細は図１０に示すフローチャートにて後述する。
【００５８】
図８は、データ関係モデル生成部１０５が、分析対象データテーブルからデータ関係モデルを生成する手順Ｓ３０１の詳細を示すフローチャートである。
【００５９】
データ関係モデル生成部１０５は、データ取得部が取得した分析対象データテーブル全てに対して、各データテーブルのカラム名一覧を取得しデータ関係モデルのエンティティテーブル１０２１０（図３参照）に格納する（Ｓ３０１１）。
【００６０】
取得した全データテーブルから２テーブルを選び出す選び方の数分だけループ処理を行う（Ｓ３０１２）。
【００６１】
続いて、Ｓ３０１２にて選び出した２テーブルについて各テーブルのカラム数同士を掛け合わせた数分だけループを行う（Ｓ３０１３）。当該処理は一方のテーブルのカラムを固定し、固定したカラムに対しもう一方のテーブルが持つ全カラムについて処理を行うことと同義である。
【００６２】
Ｓ３０１２にて選びだした２テーブルのうち、一方のテーブルに定義されるカラムと、もう一方のテーブルに定義されるカラムの名称を比較する（Ｓ３０１４）。
【００６３】
比較を行うカラムの名称が部分一致あるいは完全一致するかどうかを判定する（Ｓ３０１５）。
【００６４】
部分一致しているならば、当該２カラム間にリレーションが有ると判定し、データ関係モデル記憶部１０２のリレーションテーブル１０２２０に格納する（Ｓ３０１６）。
【００６５】
分析対象データが図２に示す列車データテーブル１０１１と駅データテーブル１０１２の場合の、データ関係モデル生成処理の説明を示す。列車データテーブル１０１１と駅データテーブル１０１２のテーブル名と各テーブルのカラム名を取得し、取得結果を図３に示すエンティティテーブル１０２１０へと格納する。
【００６６】
続いて、取得した全データテーブルに対して２テーブルを選び出す選び方を計算する。本例では、対象データテーブルが２テーブルであり、ここから２テーブルを選び出す選び方は１通りとなるため、１回だけループ処理を行う。
【００６７】
続いて、選び出した２テーブルの各カラム数は列車データテーブル１０１１が６、駅データテーブル１０１２が７であることから６×７＝４２となり４２回ループ処理を行う。まず、列車データテーブル１０１１の施行日カラムと、駅データテーブル１０１２の全カラムと文字列が部分一致するかどうかを判定する（ループ回数は計７回）。同様にして列車データテーブル１０１１の残りの５カラムについても、駅データテーブル１０１２の全カラムとの文字列が部分一致するかを判定する。
【００６８】
本例では、列車データテーブル１０１１の列車番号カラムが駅データテーブル１０１２の列車番号カラムと文字列部分一致することから、各カラム同士にリレーション３０００１が有りと判定し、判定結果を図３に示すリレーションテーブル１０２２０に格納する。更に、列車データテーブル１０１１の始発駅及び終着駅カラムについても、駅データテーブル１０１２の駅名カラムと文字列が部分一致することから、各カラム間にリレーション３０００２が有りと判定し、リレーションテーブル１０２２０に結果を格納する。
【００６９】
データ関係モデル生成処理により生成したエンティティテーブル１０２１０とリレーションテーブル１０２２０に格納されるデータを用いることで、図５のデータ関係モデル表示部１１０５に示すような概略クラス図の形式で、データ関係モデルは表すことができる。
【００７０】
図２に示す列車データテーブル１０１１と駅データテーブル１０１２はそれぞれ列車クラスと駅クラスとして表され、当該２データテーブル間のリレーションは列車クラスと駅クラスの間を結ぶ線で表される。図５に示すデータ関係モデルの例では、図２では記載を省略しているが車両や線路等のクラスも表示している。なお、本例では視認性向上のため車両エンティティと地上設備エンティティ間のリレーション（車両クラスの速度ログ及び室内温度ログカラムが、地上設備クラスの動作ログ及びアラームログカラムと文字列が部分一致するためリレーション有りと判定される）等の一部のリレーションについては省略して記載している。
【００７１】
また、データ関係モデル生成処理におけるリレーションは、分析対象データテーブルの構造間の関係だけでなく、業種固有に見られる構造物間の階層関係や、位置や経路上における近接や前後の関係を定義してもよい。例えば、鉄道分野における列車には、列車を組成する車両、更に車両を組成する各種の車両部品というように列車−車両−車両部品といった構造物間の階層関係が考えられ、このような構造物間の階層関係をあらかじめ定義しておくことで、同一の構造物にて生じる事象を定義できる。また、位置や経路上における近接や前後の関係としては、駅の並び順や並走する線区の情報をあらかじめ定義することで、隣接する駅間で波及する事象の関係や振替路線や構造の列車に波及する関係を定義できる。
【００７２】
図９は、データ結合部１０６が、分析対象データテーブルを１つのデータテーブルに結合する手順Ｓ３０２の詳細を示すフローチャートである。
【００７３】
データ結合部１０６はデータ取得部１０４が取得した分析対象データテーブル全てに対して、ループ処理を行う（Ｓ３０２１）。
【００７４】
当該テーブルのカラム毎に、カラムに定義されるデータ値を取得しデータ型の判定を行う（Ｓ３０２２）。
【００７５】
Ｓ３０２２で判定したデータ型がタイムスタンプ型、日付型、時刻型のいずれかに該当するかどうかを判定する（Ｓ３０２３）。
【００７６】
当該カラムについてタイムスタンプ型、日付型、時刻型のいずれかに該当するならば当該カラムを、時系列を示すカラムであると判定する（Ｓ３０２４）。
【００７７】
分析対象データテーブル全てに対してデータ型の判定を行い、時系列のカラム判定が完了した後、時系列を示すと判定されたカラムをキーにして、同じデータ型同士でデータテーブルを水平方向に内部結合することで、分析対象データを１つのデータテーブルとする（Ｓ３０２５）。
【００７８】
上例ではＳ３０２２にてカラム単位でデータ値を解析することでデータ型の判定を行っているが、どのカラムでデータテーブルの結合を行うか定まっている場合は、事前にどのカラムが系列を示すか定義したユーザ定義のデータテーブルをあらかじめ用意し、このユーザ定義テーブルを参照することで、データ型の判定を行ってもよい。例えば、線路の検査測定ログ結果データテーブルのように、線路軌道上のどの位置における検査結果かを示すキロ程というカラムが存在する場合、時系列ではなく位置系列のデータであるため、キロ程をキーにしてデータテーブルを結合したい場合がある。この場合、あらかじめユーザ定義テーブルにキロ程を定義しておき、このユーザ定義テーブルを参照し分析対象データテーブル全てに対してキロ程を含むカラムを持つかどうかを判定し、キロ程と判定されたカラムをキーにしてデータテーブル同士を水平結合する。
【００７９】
また、データテーブルの結合キーとなるカラムのデータ値はデータテーブル毎に最小単位やデータ取得のタイミングが異なる場合がある。例えば、あるテーブルの時刻を示すカラムでは、３０秒単位でデータが取得されている一方で、別のテーブルでは１分単位でデータが取得されているというように、同じ時刻を示すカラムでもデータの最小単位が異なっている場合がある。また、同じ３０秒単位のデータテーブルであっても、データ取得のタイミングが異なることから、基点となる時刻が「１０：００：０５」と「１０：００：１２」のような場合もある。このような場合、分析実施者の要求に応じて、時刻を示すカラムのデータ値について最小単位を揃えたり、より粗い単位へと揃えたりする前処理を分析対象データテーブルに対して行ってもよい。
【００８０】
図１０は、意外度算出部１０８が、データ関係モデルに基づき相関ルール毎に意外度を算出する手順Ｓ３０４の詳細を示すフローチャートである。
【００８１】
意外度算出部１０８は相関ルール抽出部１０７の処理完了後、抽出した相関ルールの数分だけループ処理を行う（Ｓ３０４１）。
【００８２】
ループ処理の対象となる相関ルールについて、前提部と結論部に含まれる属性の一覧を取得する（Ｓ３０４２）。すでに述べたように、属性とは前提部と結論部に含まれる事象を指す。
【００８３】
取得した属性一覧から２属性を選ぶ選び方数分だけループ処理を行う（Ｓ３０４３）。
【００８４】
選び出した２属性同士のデータ関係モデルにおける距離の算出を行う（Ｓ３０４４）。データ関係モデルでの２属性間の距離は、当該属性が属するクラス間の距離である。クラス間の距離は、例えば図５に示されるデータ関係モデルにおいて、クラス間を結ぶリレーションの数として把握できる。例えば、列車クラスと線路クラスの距離は２である。よって、列車クラスの属性「施行日」と線路クラスの属性「キロ程」の距離は２となる。
【００８５】
なお、一般にデータモデルでエンティティやテーブルと呼ばれるものが、オブジェクトモデルではクラスやオブジェクトと呼ばれる。本明細書ではエンティティ、テーブル、クラスの語は置き換えて解してもよい。
【００８６】
Ｓ３０４３のループ処理完了後、（前提部と結論部に含まれる全属性から２属性を選ぶ選び方全てに対するデータ関係モデルにおける距離の総和）で、（２属性を選ぶ選び方のうち２属性間の距離が２以上となるものの距離の総和）を割ることで意外度を算出し、これを相関ルール格納テーブル１０３０の当該ルールの意外度カラムに格納する（Ｓ３０４５）。
【００８７】
ここで、図５のデータ関係モデル表示部１１０５に示すデータ関係モデルに基づき、相関ルール１「列車番号（Ｔ１０２）⇒勾配（０．５−１．０％）」と相関ルール２「列車番号（Ｔ２００）⇒アラームログ（Ａ２００）、室内温度ログ（２６．０−２６．５℃）」のそれぞれに対して意外度を算出する例を説明する。
【００８８】
相関ルール１「列車番号（Ｔ１０２）⇒勾配（０．５−１．０％）」に含まれる属性の一覧として「列車番号（Ｔ１０２）」と「勾配（０．５−１．０％）」の２属性が取得される。各属性はそれぞれ列車データテーブル１０１１の列車番号カラムと、線路データテーブルの勾配カラムである。前提部と結論部に含まれる計２属性から２属性を選ぶ選び方は１通りであるため、１回だけループ処理を行う。この２属性についてデータ関係モデルでの距離を算出すると、「列車番号（Ｔ１０２）」は列車クラスに属し「勾配（０．５−１．０％）」は線路クラスに属していることから、各々のクラスは車両クラスを挟んで距離２である。意外度を算出すると（前提部と結論部に含まれる全属性から２属性を選ぶ選び方全てに対してデータ関係モデルにおける距離の総和）は２、（２属性を選ぶ選び方のうち２属性間の距離が２以上となるものの距離の総和）も２となり、２／２＝１となり意外度は１（１００％）となる。
【００８９】
また、相関ルール２「列車番号（Ｔ２００）⇒アラームログ（Ａ２００）、室内温度ログ（２６．０−２６．５℃）」に含まれる属性の一覧として、「列車番号（Ｔ２００）」、「アラームログ（Ａ２００）」、「室内温度ログ（２６．０−２６．５℃）」の３属性が取得される。各属性はそれぞれ列車データテーブル１０１１の列車番号カラムと、地上設備データテーブルのアラームログカラムと、車両データテーブルの室内温度ログカラムである。前提部と結論部に含まれる計３属性から２属性を選ぶ選び方は、「列車番号（Ｔ２００）とアラームログ（Ａ２００）」、「列車番号（Ｔ２００）と室内温度ログ（２６．０−２６．５℃）」、「アラームログ（Ａ２００）と室内温度ログ（２６．０−２６．５℃）」の計３通りであるため、３回だけループ処理を行う。各属性の組合せについて、データ関係モデルでの距離を算出すると、「列車番号（Ｔ２００）とアラームログ（Ａ２００）」間の距離＝列車クラスと地上設備クラス間の距離＝３、「列車番号（Ｔ２００）と室内温度ログ（２６．０−２６．５℃）」間の距離＝列車クラスと車両クラス間の距離＝１、「アラームログ（Ａ２００）と室内温度ログ（２６．０−２６．５℃）」間の距離＝車両クラスと地上設備クラス間の距離＝２となる。従って意外度を算出すると、（前提部と結論部に含まれる全属性から２属性を選ぶ選び方全てに対してデータ関係モデルにおける距離の総和）は３＋１＋２＝６、（２属性を選ぶ選び方のうち２属性間の距離が２以上となるものの距離の総和）＝３＋２＝５となり、５／６＝０．８３で意外度は０．８３（８３％）となる。
【００９０】
以上のように意外度を計算することにより、相関ルールの前提部、結論部の各属性として、モデルで距離２以上のものが多いほど、意外度が大きくなる。つまり、一般的な物体や事象の関係とは乖離した属性の組み合わせを持つルールほど、意外な関係として評価される。このように、意外度という評価指標を導入することにより、膨大な数の相関ルール中からデータの組合せとして意外なものを定量的に評価することができ、効果的にルールを絞り込むことができる。
【００９１】
なお、上記の例では、（２属性を選ぶ選び方のうち２属性間の距離が２以上となるものの総和）を分子としているが、（２属性を選ぶ選び方のうち２属性間の距離がｍ以上となるものの距離の総和）として、パラメータｍを例えば３以上として、任意に設定することも可能である。ｍを大きくするほど、意外性の大きなルールがより強調される意外度が得られる。
【実施例２】
【００９２】
実施例１では、データテーブル間のリレーションについて、存在有無の結果のみを用いて意外度を算出している。他の例では、意外度算出部１０８では、意外度算出にリレーションの重みを考慮してもよい。実施例２では、意外度算出にリレーションの重みを考慮する例を示す。
【００９３】
リレーションの重みとは２テーブル間でリレーション有りと判定されたカラムのペア数で定義することができる。リレーションの重みで、２テーブル間のデータ構造上での関連性の強さを数値的に表すことができる。
【００９４】
例えば、図３に示す例では、リレーションテーブル１０２２０に、列車データテーブル１０１１と駅データテーブル１０１２間で計３レコード（ペア）のリレーションが定義されている。このため、列車データテーブル１０１１と駅データテーブル１０１２間の重みは３となる。重みの大きいリレーションの両端のデータテーブル同士ほど、データ分析における分析対象データとして組合せとして選択される可能性が高いといえる。このため、重みの大きいリレーションの両端のデータテーブル同士は、データの組合せとしては意外性がなく、当たり前であると考えられる。
【００９５】
従って、リレーションの重みを考慮した意外度算出では、図７の意外度算出Ｓ３０４において、２テーブル間のデータ関係モデルの距離に対して、リレーションの重みの逆数を掛ける等の処理を行い、データ関係モデルでの距離を補正した上で算出を行う。こうすることで、データ構造上での関連性の強さまで考慮して意外度を算出することができる。
【００９６】
また、分析対象データの組合せによっては、データ関係モデルで任意の２カラムの距離の算出において、当該２カラムが属する２クラス間を結ぶ経路が複数存在する場合や、ループ経路が存在する場合がある。このような場合は、データモデルにおける２カラム間の距離算出では、最短となる経路の距離を取得したり、一度通過した経路は二度通過しないという制約を設けたりする等により、意外度を算出してもよい。
【００９７】
すなわち、実施例１では、相関ルールの前提部及び結論部の属性が含まれるデータテーブル間に存在する、リレーションの数をカウントすることにより、当該属性間の距離を求めていた。実施例２では、リレーションにより対応付けられた２テーブル間で、カラム名が部分一致あるいは完全一致するペアの数で当該リレーションの重みを算出し、重みの逆数を前記２テーブル間のリレーションの補正値とし、相関ルールの前提部及び結論部の属性が含まれる前記データテーブル間に存在する、リレーションの補正値を加算することにより、当該属性間の距離を求める。なお、実施例１ではパラメータｍは基本的に自然数であるが、実施例２では重み付けの処理があるためパラメータｍは自然数でなくてもよい。
【００９８】
以上説明した実施例に拠れば、分析実施者は、膨大な数の相関ルール中からデータの組合せとして自明なものと意外なものを判断しながらルールを絞り込むことができ、業務改善や原因分析のための有益な情報把握を素早く行える。
【符号の説明】
【００９９】
データ分析支援システム１００、分析対象データ蓄積部１０１、データ関係モデル記憶部１０２、相関ルール記憶部１０３、データ取得部１０４、データ関係モデル生成部１０５、データ結合部１０６、相関ルール抽出部１０７、意外度算出部１０８、ルール推薦部１０９、ユーザインターフェース部１１０
【図１】
2019128646.tif 000003
【図２】
2019128646.tif 000004
【図３】
2019128646.tif 000005
【図４】
2019128646.tif 000006
【図５】
2019128646.tif 000007
【図６】
2019128646.tif 000008
【図７】
2019128646.tif 000009
【図８】
2019128646.tif 000010
【図９】
2019128646.tif 000011
【図１０】
2019128646.tif 000012