説明

データ分析システム及びデータ分析方法

【課題】自動的に集計分析を実行するデータ分析システムを提供することを目的とする。
【解決手段】データを分析するデータ分析システムであって、データに対して分析処理を実行し、分析処理の分析結果を記憶領域に格納する分析実行部と、分析結果を評価し、分析結果から新たな分析処理を生成する複数の推論ルール部と、複数の推論ルール部を制御する推論ルール制御部と、分析実行部の未処理の分析処理を管理する分析処理管理部と、を備え、推論ルール制御部は、記憶領域に格納された分析結果のうち特徴量が所定条件を満たす分析結果を新たな分析処理の生成元の候補として選択し、分析処理生成部は、推論ルール制御部によって選択された分析結果から新たな分析処理を生成することを特徴とするデータ分析システム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを分析するデータ分析システムに関し、特に、自動的に分析を進めるデータ分析システムに関する。
【背景技術】
【0002】
IT(Information Technology)技術の発達によって業務ログ及びセンサデータ等のデータが大量に収集されるようになってきている。企業及び自治体には、大量に保持するこれらのデータを分析して業務を最適化したいというニーズがある。
【0003】
業務ログ及びセンサデータ等のデータを用いて業務を最適化しようとする場合、まず、データの全体的な傾向を把握するためにデータが集計分析される。ここで、集計分析とは、例えば、データを構成する項目ごとの頻度分布を算出すること、及び、データを構成する複数の項目に対してクロス集計を実行すること等をいう。
【0004】
通常、このような集計分析はデータ分析作業の初期段階で実行され、100以上の集計分析が実行される。データの意味を理解している専門家及び統計の専門家が試行錯誤して集計分析作業を進める必要がある。
【0005】
例えば、ある商品カテゴリの月ごとの売り上げが集計分析される場合、1月の売り上げが他の月の2倍あったとする。この場合、この商品カテゴリに属する商品ごとに1月の売り上げを分析することによって、分析をさらに進めることが考えられる。また、年度と月の2軸で当該商品カテゴリの売り上げをクロス集計し、毎年同じ傾向が表れているかを分析することが考えられる。
【0006】
このように集計分析作業は、以前の分析結果に基づいて、新しい分析方法を考案し、考案した分析方法を実行する。したがって、集計分析では、試行錯誤のプロセスが何回も繰り返され、最終的に100以上の集計分析結果が得られる。
【0007】
このような集計分析は、作業をする専門家の人的コストがかかり、また時間もかかる。さらに100以上の集計分析を実行した場合、分析を実行した者であっても、多数の分析結果を十分に理解し、解釈することが困難になる。
【0008】
データを構成する項目を複数のグループに分け、クロス集計を実行しグラフを生成する技術が知られている(例えば、特許文献1参照)。
【0009】
情報伝送ログを収集・集計する場合にアンケート調査が実施され、アンケート調査の分析結果から時間的変化の大きな特徴を抽出し、抽出した特徴に基づいてアンケートの実施範囲や実施項目を決定する技術が知られている(例えば、特許文献2参照)。
【0010】
データを構成する項目に適切な視覚的プロットが自動的に生成される技術が知られている(例えば、特許文献3参照)。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2007−11468号公報
【特許文献2】特開2006−18357号公報
【特許文献3】特表2009−508210号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
特許文献1〜特許文献3に記載された技術では、集計分析が自動で実行されないので、集計分析の人的コスト及び時間コストを解決できない。
【0013】
そこで、人が試行錯誤して進める集計分析を、コンピュータが自動的に実行する技術が望まれる。これによって、集計分析における人的コストを軽減し、また、集計分析作業にかかる時間も短縮することが期待できる。また、コンピュータが、分析結果をさらに分析するかを判断する場合に用いる基準をユーザに提示することによって、ユーザが当該基準を用いて分析結果を解釈し、分析結果をランキングすることができ、当該ユーザに提示される基準は多数の分析結果を理解する助けになる。
【0014】
しかしながら、コンピュータが自動的に集計分析を実行するには、以下の技術的な課題がある。
【0015】
第一に、コンピュータが、分析結果をランダムに分析すると、分析数が発散してしまい、コンピュータリソースを浪費してしまうという問題がある。特に、価値の低い分析結果の分析が優先的に多数実行されると、時間がかかるだけで、価値のある分析結果が得られなくなる。
【0016】
第二に、コンピュータが分析結果をさらに分析するためには、分析結果を詳細に調べ、分析結果のどの部分を深堀するかを決定するためのアルゴリズムが必要である。
【0017】
第三に、大量のデータに対して、コンピュータが多数の集計分析を実行する必要があるため、分析を効率的に実行するためのアルゴリズムが必要である。特に、コンピュータが大量データに対して分析処理を実行する場合、価値が低い分析結果が多く出力されることによるファイル入出力がネックとなり、分析処理の実行速度が低下するので、このファイル入出力を効率化する必要がある。そこで、コンピュータに可能な限り多くの分析処理を実行させ、分析処理の実行後に分析結果を評価し、評価の高い分析結果を優先的にユーザに提示する。これによって、価値の高い分析結果のみをユーザに提示でき、ユーザに提示する分析結果の精度を向上させることができる。このためには、コンピュータは、可能な限り多くの分析処理を実行する必要があり、分析処理の実行速度を向上させることが重要な課題となる。
【0018】
本発明は、上記に鑑みてなされたものであって、自動的に集計分析を実行するデータ分析システムを提供することを目的とする。
【課題を解決するための手段】
【0019】
本発明の代表的な一例を示せば、プログラムを実行するプロセッサ、及び前記プロセッサによって実行されるプログラムを格納する記憶領域を備え、データを分析するデータ分析システムであって、前記データに対して分析処理を実行し、前記分析処理の分析結果を前記記憶領域に格納する分析実行部と、前記分析結果を評価し、前記分析結果から新たな分析処理を生成する複数の推論ルール部と、前記複数の推論ルール部を制御する推論ルール制御部と、前記分析実行部の未処理の分析処理を管理する分析処理管理部と、を備え、前記推論ルール部は、前記分析結果を評価する分析結果評価部と、前記分析結果から前記新たな分析処理を生成する分析処理生成部と、を含み、前記分析結果評価部は、前記記憶領域に格納された分析結果を読み込み、当該分析結果の特性を示す特徴量を算出することによって前記分析結果を評価し、当該分析結果と当該特徴量とを対応付けて前記記憶領域に格納し、前記推論ルール制御部は、前記記憶領域に格納された分析結果のうち前記特徴量が所定条件を満たす分析結果を前記新たな分析処理の生成元の候補として選択し、前記分析処理生成部は、前記推論ルール制御部によって選択された分析結果から新たな分析処理を生成し、前記分析処理管理部は、前記分析処理生成部によって生成された分析処理を前記分析実行部に実行させることを特徴とする。
【発明の効果】
【0020】
本発明によれば、自動的に集計分析を実行するデータ分析システムを提供できる。
【図面の簡単な説明】
【0021】
【図1】本発明の実施形態のデータ分析システムの説明図である。
【図2】本発明の実施形態のデータ分析システムの機能ブロック図である。
【図3】本発明の実施形態の分析対象データの一例の説明図である。
【図4】本発明の実施形態の分析対象データの一例の説明図である。
【図5】本発明の実施形態の分析対象データの一例の説明図である。
【図6】本発明の実施形態の分析スクリプトの一例の説明図である。
【図7】本発明の実施形態の分析スクリプトの一例の説明図である。
【図8】本発明の実施形態の分析結果の一例の説明図である。
【図9】本発明の実施形態の分析結果のグラフの一例の説明図である。
【図10】本発明の実施形態の分析スクリプトテーブルのテーブルスキーマの説明図である。
【図11】本発明の実施形態の評価値テーブルのテーブルスキーマの説明図である。
【図12】本発明の実施形態の分析スクリプト生成処理のデータの流れを示すシーケンス図である。
【図13】本発明の実施形態の分析スクリプト生成処理のフローチャートである。
【図14】本発明の実施形態の分析実行処理のデータの流れを示すシーケンス図である。
【図15】本発明の実施形態の分析実行処理のフローチャートである。
【図16】本発明の実施形態の分析スクリプトのマージの説明図である。
【図17】本発明の実施形態の分析結果表示部が表示する分析結果一覧表示画面の説明図である。
【図18】本発明の実施形態の分析結果表示部が表示する分析結果表示画面の説明図である。
【図19】本発明の実施形態の分析結果表示部が表示するソートパラメタ設定画面の説明図である。
【図20】本発明の実施形態の分析ユーザインタフェース部が表示する分析スクリプト入力画面の説明図である。
【図21】本発明の実施形態の複数の計算機によって構成されるデータ分析システム100のブロック図である。
【発明を実施するための形態】
【0022】
以下、図面を参照して本発明の実施形態を説明する。なお、本明細書において、コンピュータ等のデータ処理装置が、その処理部においてプログラムによって実現する機能を、「処理」、「部」、及び「手段」と表現する場合がある。
【0023】
本実施形態は、データを自動的に分析するデータ分析システム100(図1参照)に係るものである。
【0024】
図1は、本発明の実施形態のデータ分析システム100の説明図である。
【0025】
図1では、データ分析システム100を汎用計算機(コンピュータ)として説明するが、これに限定されず、データ分析システム100は複数の汎用計算機によって構成されてもよい。
【0026】
データ分析システム100は、入力デバイス101、ネットワークデバイス102、中央処理部(プロセッサ、又は、Central Processing Unit:CPU)103、主記憶部104、補助記憶部105、及び表示デバイス107を備える。
【0027】
入力デバイス101、ネットワークデバイス102、CPU103、主記憶部104、補助記憶部105、及び表示デバイス107は、バス106を介して接続される。
【0028】
入力デバイス101は、ユーザからの入力を受け付ける入力部であり、例えば、キーボード及びマウス等である。ネットワークデバイス102は、インターネット等のネットワークに接続するためのネットワークインタフェース部である。
【0029】
CPU103は、主記憶部104に格納されたプログラムを実行する。主記憶部104は、CPU103がアクセス可能な記憶領域であって、CPU103によって実行されるプログラムを格納する。主記憶部104は、例えばメモリ等である。補助記憶部105は、CPU103が直接アクセスできない記憶領域であって、CPU103が実行するプログラムを含む各種データを格納する。補助記憶部105は、例えば、HDD(Hard Disk Drive)等である。
【0030】
入力デバイス101及び表示デバイス107は、ユーザインタフェース部を構成する。
【0031】
図2は、本発明の実施形態のデータ分析システム100の機能ブロック図である。
【0032】
データ分析システム100は、分析結果データベース200、推論ルール制御部201、推論ルール部202A及び202B(以下、総称して推論ルール部202という)、ジョブ制御部208、分析実行部209、分析結果表示部213、分析ユーザインタフェース部214、並びに、グラフ生成部215を備える。
【0033】
推論ルール部202Aは、分析結果評価部203A及び分析スクリプト生成部204Aを備える。同じく、推論ルール部202Bは、分析結果評価部203B及び分析スクリプト生成部204Bを備える。分析結果評価部203A及び203Bを総称して分析結果評価部203といい、分析スクリプト生成部204A及び204Bを総称して分析スクリプト生成部204という。
【0034】
また、分析実行部209は、分析スクリプト解釈部210、分析対象データ管理部211、及び分析対象データ212を備える。
【0035】
推論ルール制御部201、推論ルール部202、ジョブ制御部208、分析実行部209、分析結果表示部213、分析ユーザインタフェース部214、及び、グラフ生成部215の一部又は全部は、図1に示すCPU103がプログラムを実行することによって実現される。
【0036】
分析結果表示部213及び分析ユーザインタフェース部214は、図1に示す入力デバイス101及び表示デバイス107のハードウェア構成を含む。
【0037】
分析結果データベース200及び分析対象データ212は、図1に示す主記憶部104又は補助記憶部105等の記憶領域に格納される。
【0038】
図2に示す各部、分析結果データベース200、及び分析対象データ212は、同一のコンピュータに実装されてもよいし、複数のコンピュータに分散して実装されてもよい。
【0039】
分析結果表示部213及び分析ユーザインタフェース部214は、入力デバイス101及び表示デバイス107を備える他に、入力デバイス101及び表示デバイス107に接続される構成を備えてもよい。
【0040】
以下に、データ分析システム100の各構成部について説明する。
【0041】
分析結果データベース200は、分析処理を記述した分析スクリプトの実行結果である分析結果等が登録される分析スクリプトテーブル1000(図10参照)、及び、分析結果の評価値が登録される評価値テーブル1100(図11参照)を含む。ここで、分析スクリプトとは、DSL(Domain Specific Language)又はプログラミング言語で記述された分析処理の実行命令をいう。また、評価値は、分析結果の特性を示す特徴量ともいう。
【0042】
なお、分析スクリプトテーブル1000は、図10で詳細を説明する。評価値テーブル1100は、図11で詳細を説明する。
【0043】
推論ルール制御部201は、推論ルール部202を制御し、複数の推論ルール部と連携して動作する。
【0044】
具体的には、推論ルール制御部201は、分析結果データベース200の分析スクリプトテーブル1000に格納された分析結果を取得し、取得した分析結果の特性を示す特徴量(評価値)を分析結果評価部203に算出させ、分析結果評価部203が算出した評価値を評価値テーブル1100に格納する。また、推論ルール制御部201は、評価値テーブル1100に格納された分析結果から評価値が所定の条件を満たす分析結果を取得し、取得した分析結果から新たな分析スクリプトを分析スクリプト生成部204に生成され、生成した新たな分析スクリプトを分析スクリプトテーブル1000に格納する。
【0045】
推論ルール部202は、分析結果の評価処理及び新たな分析スクリプトの生成処理を推論ルールに基づいて実行する。なお、推論ルールとは、評価処理及び生成処理の基準となるもので、例えば、頻度集計及びクロス集計等である。
【0046】
推論ルールが頻度集計である推論ルール部202は、頻度集計を実行する分析スクリプトを生成し、突出した値を有する分析結果の評価値が高くなるように分析結果を評価する。
【0047】
一方、推論ルールがクロス集計である推論ルール部202は、クロス集計を実行する分析スクリプトを生成し、一様な値を有する分析結果の評価値が高くなるように分析結果を評価する。
【0048】
なお、異なる推論ルール部202には、異なる推論ルールが設定されるものとする。これによって、データ分析システム100が複数の推論ルール部202を備えることによって、多様な分析が可能となる。
【0049】
ジョブ制御部208は、分析結果データベース200の分析スクリプトテーブル1000から未実行の分析スクリプトを取得し、取得した分析スクリプトを分析ジョブとして分析実行部209の待ち行列に入れる。ジョブ制御部208は、分析実行部209の分析スクリプトの進捗を監視し、分析実行部209が分析スクリプトを実行した結果である分析結果を分析結果データベース200の分析スクリプトテーブル1000及び評価値テーブル1100に格納する。以上より、ジョブ制御部208は、分析実行部209の分析処理を管理する分析処理管理部として機能するといえる。
【0050】
分析実行部209は、分析スクリプトを解釈して、分析対象データ212に対して分析処理を実行する。分析実行部209は、分析スクリプト解釈部210、分析対象データ管理部211、及び分析対象データ212を備える。
【0051】
分析スクリプト解釈部210は、分析スクリプトを解釈し、分析スクリプトをCPU103が実行可能な形式に変換する。
【0052】
分析対象データ管理部211は、分析対象データ212を管理し、分析対象データ212に必要な処理を実行する。
【0053】
分析実行部209は、例えば、特開2011−13758号公報に記載されているデータ処理装置及びRDBMS(Relational Database Management System)等に相当する。
【0054】
分析実行部209は、大量のデータに対して分析処理を実行する場合、多数の計算機上によって構成される分散計算システムであってもよい。
【0055】
分析結果表示部213は、分析結果データベース200に格納された分析結果等を表示デバイス107に表示する。また、分析結果表示部213は、ユーザからの入力に基づいて、表示デバイス107に表示される表示内容の切り替え、また、表示デバイス107に表示された分析結果を並べ替える。
【0056】
分析ユーザインタフェース部214は、ユーザによって図20に示す分析スクリプト入力画面2000を介して作成された分析スクリプトの入力を受け付け、受け付けた分析スクリプトを分析実行部209に実行させる。また、分析ユーザインタフェース部214は、ユーザから入力された分析スクリプトの分析結果を表示デバイス107に表示する。また、分析ユーザインタフェース部214は、ユーザからの指示に基づいて、分析実行部209によって分析処理が実行された分析結果を分析結果データベース200の分析スクリプトテーブル1000に格納する。
【0057】
以上より、分析ユーザインタフェース部214は、ユーザが作成した分析スクリプトの入力を受け付ける分析スクリプト入力受付部として機能するといえる。
【0058】
推論ルール制御部201は、分析ユーザインタフェース部214が受け付けたユーザによって作成された分析スクリプトの分析結果に基づいて推論ルール部202に新たな分析スクリプトを生成させることもできる。これによって、ユーザは、データ分析システム100が自動的に進める集計分析の分析方針を、分析ユーザインタフェース部214を介して修正できる。
【0059】
グラフ生成部215は、分析結果に基づいて棒グラフ及び散布図等のグラフデータを生成し、生成したグラフデータを分析結果表示部213及び分析ユーザインタフェース部214等を介して表示デバイス107に表示する。
【0060】
次に、分析対象データ212の例について図3〜図5を用いて説明する。
【0061】
図3は、本発明の実施形態の分析対象データ212の一例の説明図である。
【0062】
図3では、分析対象データ212として、XMLタグ付きのデータ300を用いて説明するが、分析対象データ212は、図3に示すデータ300以外のデータであってもよいことは明らかである。
【0063】
図3に示す分析対象データ212は、ユーザが体につけた加速度センサのログを表す。このログには、「ユーザID」、「行動」、「日付」、「時刻」、「x方向の加速度」、「y方向の加速度」、及び「z方向の加速度」がXMLタグによって定義され、これらの値が記憶されている。
【0064】
なお、図3では、1ユーザ分の分析対象データ212しか示されていないが、実際には複数のユーザの分析対象データ212がある。
【0065】
図4は、本発明の実施形態の分析対象データ212の一例の説明図である。
【0066】
分析対象データ212は図3に示すXMLタグ付きのデータ300以外のデータであってもよく、図4では、図3に示すXMLタグ付きのデータ300からXMLタグを除外したデータ400を示している。
【0067】
図5は、本発明の実施形態の分析対象データ212の一例の説明図である。
【0068】
図5では、図3に示すデータ300又は図4に示すデータ400を表形式に変換したデータ500を示している。
【0069】
次に、分析スクリプトの例について図6及び図7を用いて説明する。
【0070】
図6は、本発明の実施形態の分析スクリプトの一例の説明図である。
【0071】
図6に示す分析スクリプトの例は、図3に示す加速度センサのログである分析対象データ212から加速度の絶対値の頻度分布を算出する頻度集計分析スクリプト600である。ここで、加速度の絶対値とは、x方向の加速度、y方向の加速度、及びz方向の加速度をそれぞれ二乗して、二乗した値の和の平方根である。
【0072】
図6の「logs: histogram(0、 20、 1)」は、図3に示すデータ300の「logs」タグの階層の頻度分布を算出することを意味し、引数は、0から20までの値を1刻みで計数することを意味する。また、図6の「target: sqrt(x*x + y*y + z*z)」は加速度の絶対値を四捨五入した値を対象とすることを意味する。
【0073】
図7は、本発明の実施形態の分析スクリプトの一例の説明図である。
【0074】
図7は、図6に示す分析スクリプト600をSQL言語で記述した分析スクリプト700である。
【0075】
なお、本実施形態の分析スクリプトは、図6及び図7に示す分析スクリプトに限定されず、他の分析スクリプトであってもよい。
【0076】
図8は、本発明の実施形態の分析結果の一例の説明図である。
【0077】
図8に示す分析結果の例は、図3に示すデータ300(分析対象データ212)に対して図6に示す分析スクリプト600が実行された分析結果のデータ800である。
【0078】
図8に示す一行目は、加速度の絶対値を四捨五入した値が0のログが21240件であることを意味する。図8に示す二行目は、加速度の絶対値を四捨五入した値が1のログが1246件であることを意味する。図8に示す三行目以下は、一行目及び二行目と同じであるので説明を省略する。
【0079】
図9は、本発明の実施形態の分析結果のグラフの一例の説明図である。
【0080】
図9に示す分析結果のグラフの例は、図8に示す分析結果のデータ800のグラフ900である。
【0081】
横軸は加速度の絶対値を四捨五入した値であり、縦軸は分析結果のログの件数である。
【0082】
次に、分析結果データベース200について図10及び図11を用いて説明する。
【0083】
分析結果データベース200は、図2で説明したように、分析スクリプト及び分析結果等を格納する分析スクリプトテーブル1000、及び、分析結果の評価値を格納する評価値テーブル1100を含む。
【0084】
分析結果データベース200は、例えばRDBMS(Relational Database Management System)等の公知の技術によって管理される。
【0085】
図10は、本発明の実施形態の分析スクリプトテーブル1000のテーブルスキーマの説明図である。
【0086】
分析スクリプトテーブル1000は、analysis_id1001、data_id1002、created_at1003、updated_at1004、parent_analysis_ids1005、rule_id1006、title1007、script1008、expected_fitness1009、及びresult1010を含む。
【0087】
analysis_id1001には、分析スクリプトテーブル1000内のレコードの一意な識別子(以下、分析IDという)が登録される。data_id1002には、分析処理の対象となる分析対象データ212の種類を示す識別子が登録される。
【0088】
created_at1003にはレコードが追加された日時が登録される。updated_at1004にはレコードが更新された日時が登録される。
【0089】
parent_analysis_ids1005には、script1008に登録された分析スクリプトの作成元となった分析結果の分析IDが登録される。
【0090】
rule_id1006には、script1008に登録された分析スクリプトを作成した分析スクリプト生成部204の一意な識別子(ルールID)が登録される。図10では、rule_id1006にはcross及びscaleが登録されるが、crossはクロス集計の推論ルール部202のルールIDを示し、scaleは頻度分布の推論ルール部202のルールIDを示す。
【0091】
title1007には、script1008に登録された分析スクリプトによる集計分析のタイトルが登録される。script1008には、分析スクリプト生成部204によって生成された分析スクリプトが登録される。expected_fitness1009には、レコードに登録された分析スクリプトの評価値の予測値が登録される。予測値の算出方法については、図13で詳細を説明する。result1010には、レコードのscript1008に登録された分析スクリプトの分析結果が登録される。
【0092】
図11は、本発明の実施形態の評価値テーブル1100のテーブルスキーマの説明図である。
【0093】
評価値テーブル1100は、fitness_id1101、analysis_id1102、created_at1103、updated_at1104、rule_id1105、measure1106、及びvalue1107を含む。
【0094】
fitness_id1101には、評価値テーブル1100内のレコードの一意な識別子が登録される。analysis_id1102には、評価した分析結果の分析IDが登録される。評価値テーブル1100は、分析IDによって、分析スクリプトテーブル1000と対応付けられる。一つの分析結果は、複数の推論ルール部202の分析結果評価部203によって評価されるので、分析スクリプトテーブル1000の一つのレコードは、評価値テーブル1100の複数のレコードに対応し、これらのレコードは分析IDによって対応付けられる。
【0095】
created_at1103には、評価値テーブル1100のレコードが追加された日時が登録される。
【0096】
updated_at1104には、評価値テーブル1100のレコードが更新された日時が登録される。
【0097】
rule_id1105には、評価値を算出した分析結果評価部203に設定された推論ルールが登録される。measure1106には、分析結果評価部203が評価値を算出した評価基準の一意な識別子が登録される。value1107には評価値が登録される。
【0098】
次に、分析スクリプト作成処理について図12及び図13を用いて説明する。
【0099】
図12は、本発明の実施形態の分析スクリプト生成処理のデータの流れを示すシーケンス図である。
【0100】
分析スクリプト生成処理で使用するデータは、推論ルール制御部201、分析結果データベース200、及び推論ルール部202の間でやりとりされる。
【0101】
各推論ルール部202には一意な識別子(ルールID)が設定されており、説明を簡略化するために、図12では推論ルール部202AにはルールID「0」が設定され、推論ルール部202BにはルールID「1」が設定されているものとする。
【0102】
最初にルールID「0」が設定された推論ルール部202Aが分析スクリプト生成処理を実行し、続いて、ルールID「1」が設定された推論ルール部202Bが分析スクリプト生成処理を実行する。
【0103】
なお、図12では、二つの推論ルール部202が図示されるが、三つ以上の推論ルール部202があっても、一つの推論ルール部202が分析スクリプト処理を実行した後、次の推論ルール部202が分析スクリプト生成処理を実行する。
【0104】
まず、推論ルール制御部201は、分析結果データベース200の分析スクリプトテーブル1000のレコードから、分析スクリプト生成処理を実行する推論ルール部202A(rule_id=0)が未だ評価していない分析結果が登録されたレコードを取得する(1201)。
【0105】
次に、推論ルール制御部201は、ステップ1201の処理で取得した分析スクリプトテーブル1000のレコードを推論ルール部202Aに渡す。推論ルール部202Aは、当該レコードの評価値を推論ルール部202Aに設定された評価基準に従って算出し、算出した評価値と当該評価値の算出に用いた評価基準とを推論ルール制御部201に渡す(1202)。
【0106】
次に、推論ルール制御部201は、推論ルール部202Aから渡された評価値を、分析結果データベース200の評価値テーブル1100に登録する(1203)。
【0107】
次に、推論ルール制御部201は、分析結果データベース200の評価値テーブル1100を参照し、所定条件が成立するレコードを分析スクリプトの生成元候補として所定個数取得する(1204)。所定条件については、図13のステップ1305の処理で詳細を説明する。
【0108】
次に、推論ルール制御部201は、ステップ1204の処理で取得した生成元候補に基づいて、分析スクリプト生成処理を実行する推論ルール部202Aに分析スクリプトを生成させる(1205)。
【0109】
次に、推論ルール制御部201は、推論ルール部202Aによって生成された分析スクリプトを分析結果データベース200の分析スクリプトテーブル1000に登録する(1206)。
【0110】
続いて、推論ルール制御部201は、推論ルール部202Aに対して分析スクリプト生成処理を実行したので、推論ルール部202B(rule_id=1)に対して分析スクリプト生成処理を実行する。
【0111】
なお、推論ルール部202Bの分析スクリプト生成処理は、推論ルール部202Aの分析スクリプト生成処理と同じなので、同じ符号を付与し、説明を省略する。
【0112】
図13は、本発明の実施形態の分析スクリプト生成処理のフローチャートである。
【0113】
分析スクリプト生成処理は、推論ルール制御部201及び推論ルール部202を実現するプログラムを実行するCPU103によって実行される。
【0114】
推論ルール制御部201は、分析スクリプト生成処理を実行する推論ルール部202に設定されたルールIDを示す変数(rule_id)を0に設定する(1301)。
【0115】
次に、推論ルール制御部201は、図12に示すステップ1201の処理で説明したように、分析結果データベースの分析スクリプトテーブル1000のレコードから、分析スクリプト生成処理を実行する推論ルール部202が未だ評価していない分析結果が登録されたレコードを評価対象分析結果として取得する(1302)。
【0116】
ステップ1302の処理について詳細に説明する。
【0117】
推論ルール制御部201は、分析スクリプトテーブル1000のレコードのうち、result1010にNULL以外が登録されたレコード(分析済レコード)を取得する。
【0118】
そして、推論ルール制御部201は、取得した分析済レコードのうち、どの推論ルール部202にも未だ評価されていないレコードを評価対象分析結果として取得する。具体的には、推論ルール制御部201は、分析済レコードのanalysis_id1001に登録された分析IDが評価値テーブル1100にanalysis_id1102に登録されていない分析済レコードを評価対象分析結果として取得する。
【0119】
また、推論ルール制御部201は、すでに評価された分析済レコードであっても、現在の変数(rule_id)によって特定される推論ルール部202によってまだ評価されていない分析済レコードを評価対象分析結果として取得する。具体的には、推論ルール制御部201は、分析済レコードのanalysis_id1001に登録された分析IDが評価値テーブル1100にanalysis_id1102に登録されたレコードが存在する場合であっても、当該評価値テーブル1100のレコードのrule_id1105に登録されたルールIDがステップ1301の処理で設定されたルールIDと異なる場合、当該分析IDがanalysis_id1001に登録された分析スクリプトテーブル1000のレコードを評価対象分析結果として取得する。
【0120】
次に、推論ルール制御部201は、ステップ1302の処理で取得した評価対象分析結果を、変数(rule_id)によって特定される推論ルール部202の分析結果評価部203に評価させる(1303)。
【0121】
具体的には、推論ルール制御部201は、評価対象分析結果となる分析スクリプトテーブル1000のレコードに含まれるanalysis_id1001に登録された分析ID、当該レコードに含まれるscript1008に登録された分析スクリプト、及び当該レコードに含まれるresult1010に登録された分析結果を、分析結果評価部203に渡す。
【0122】
分析結果評価部203は、推論ルール制御部201から渡された分析結果及び分析結果評価部203に設定された評価基準に基づいて評価値を算出し、算出した評価値及び評価基準を推論ルール制御部201に渡す。
【0123】
ここで、分析結果評価部203における分析結果の評価方法について簡単に説明する。なお、評価方法の詳細については後述する。
【0124】
分析結果評価部203は分析スクリプト生成部204と組になっており、分析スクリプトによって生成される分析スクリプトの分析処理と分析結果評価部203による分析結果の評価方法とは対応している。
【0125】
例えば、分析スクリプト生成部204が頻度集計を実行する分析スクリプトを生成する場合、当該分析スクリプト生成部204に対応する分析結果評価部203は、分析結果の突出度合いを評価する。具体的には、分析結果評価部203は、分析結果の最大値から、最大値を除いた他の分析結果の値の平均値を引いた値を評価値として算出する。
【0126】
また、分析スクリプト生成部204がクロス集計を実行する分析スクリプトを生成する場合、当該分析スクリプト生成部204に対応する分析結果評価部203は、分析結果の一様度合いを評価する。具体的には、分析結果評価部203は、各分析結果と分析結果の平均値との差の絶対値を評価値として算出する。
【0127】
次に、推論ルール制御部201は、分析結果評価部203から渡された評価値を分析結果データベース200の評価値テーブル1100に登録する(1304)。
【0128】
具体的には、推論ルール制御部201は、分析結果評価部203から渡された評価値に対応する分析IDをanalysis_id1102に登録し、変数(rule_id)に設定されたルールIDをrule_id1105に登録し、分析結果評価部203から渡された評価基準をmeasure1106に登録する。また、推論ルール制御部201は、評価値テーブル1100内で一意な識別子を生成し、生成した識別子をfitness_id1101に登録する。また、推論ルール制御部201は、現在の日時をcreated_at1103及びupdated_at1104に登録する。
【0129】
次に、推論ルール制御部201は、分析結果データベース200の評価値テーブル1100から、所定条件が成立するレコードを分析スクリプトの生成元候補として所定数取得する(1305)。
【0130】
所定条件について説明する。
【0131】
推論ルール制御部201は、評価値テーブル1100を参照し、変数(rule_id)に設定されたルールIDによって特定される推論ルール部202の分析結果評価部203によって評価された評価値が大きい順に所定数のレコード(評価値レコード)を取得する。具体的には、推論ルール制御部201は、評価値テーブル1100のrule_id1105に登録されたルールIDが変数(rule_id)に設定されたルールIDと一致するレコードを、value1107に登録された評価値が大きい順に所定数(例えば20個)取得する。
【0132】
そして、推論ルール制御部201は、分析スクリプトテーブル1000を参照し、取得した評価値レコードの評価対象となった分析結果が、変数(rule_id)に設定されたルールIDによって特定される推論ルール部202の分析スクリプト生成部204によって生成された分析スクリプトの分析結果でないレコードを生成元候補として取得する。具体的には、推論ルール制御部201は、評価値レコードのanalysis_id1102に登録された分析IDが分析スクリプトテーブル1000のanalysis_id1001に登録された分析IDと一致する分析スクリプトテーブル1000のレコードを参照し、rule_id1006に登録されたルールIDが変数(rule_id)に設定されたルールIDと一致するか否かを判定する。推論ルール制御部201は、rule_id1006に登録されたルールIDが変数(rule_id)に設定されたルールIDと一致する場合、当該分析IDがanalysis_id1102に登録されたレコードを評価値レコードから削除し、残った評価値レコードを生成元候補として取得する。
【0133】
これによって、変数(rule_id)に設定されたルールIDによって特定される推論ルール部202の分析スクリプト生成部204が新たな分析スクリプトを生成するものであるが、以上の処理によって、分析スクリプト生成部204が生成した分析スクリプトによる分析結果に基づいて同じ分析スクリプト生成部204が同じ分析スクリプトを生成する無駄な処理を削減できる。
【0134】
なお、ステップ1205の処理では、推論ルール制御部201は、評価値が所定値以上である分析結果という条件を付加してもよい。
【0135】
次に、推論ルール制御部201は、変数(rule_id)に設定されたルールIDによって特定される推論ルール部202の分析スクリプト生成部204に生成元候補を渡す。分析スクリプト生成部204は、推論ルール制御部201から渡された生成元候補に基づいて所定数の分析スクリプトを新たに生成し、生成した分析スクリプトのタイトルを生成し、生成した分析スクリプトの予測値を算出する(1306)。
【0136】
推論ルール制御部201が分析スクリプト生成部204に渡す生成元候補は、評価値テーブル1100のanalysis_id1102、created_at1103、updated_at1104、rule_id1105、measure1106、及びvalue1107に登録された情報、並びに、analysis_id1102に登録された分析IDに対応する分析スクリプトテーブル1000のレコードのscript1008に登録された分析スクリプトを含む。
【0137】
分析スクリプト生成部204が生成する分析スクリプトの例について説明する。あるルールID(図10ではscale)の分析スクリプト生成部204は、頻度分布の刻み幅を小さくして頻度分布を集計する分析スクリプトを生成する。また、他のあるルールID(図10ではcross)の分析スクリプト生成部204は、ある分析結果に時刻を新たな軸に加えて2軸でクロス集計をする分析スクリプトを生成する。
【0138】
分析スクリプト生成部204の予測値の算出方法の一例としては、分析スクリプト生成部204は、新たに生成された分析スクリプトの生成元の分析結果の評価値の平均値を算出し、算出した平均値を予測値としてもよい。また、他の例としては、分析スクリプト生成部204は、新たに生成された分析スクリプトの生成元の分析結果の評価値の最大値を予測値としてもよい。
【0139】
なお、ステップ1306の処理で生成される分析スクリプトの数は、式1によって算出される。
【0140】
Pi−Wi×Qi・・・(式1)
Pi、Wi、及びQiについて説明する。
【0141】
Piは、分析実行部209において、あるルールIDの分析スクリプト生成部204によって生成された分析スクリプトのジョブ実行待ちが存在しない場合に、当該分析スクリプト生成部204によって生成される分析スクリプトの数である。
【0142】
Wiは、ルールIDごとにユーザが設定可能な重み付けの値である。
【0143】
Qiは、あるルールIDの分析スクリプト生成部204によって生成された分析スクリプトのうち、ジョブ実行待ちの分析スクリプトの数である。
【0144】
以上によって、ジョブ実行待ちの分析スクリプトの数が多い場合、分析スクリプト生成部204によって生成される分析スクリプトの数を少なくできるので、処理負荷を軽減することができる。一方、ジョブ実行待ちの分析スクリプトの数が少ない場合、分析スクリプト生成部204によって生成される分析スクリプトの数を多くできるので、より詳細な集計分析を実行することができる。
【0145】
さらに、WiをルールIDごとにユーザが設定可能なため、各分析スクリプト生成部204によって生成される分析スクリプトの処理負荷を考慮して、各分析スクリプト生成部204によって生成される分析スクリプトの数を設定することができる。
【0146】
ステップ1306の処理では、分析スクリプト生成部204は、新たに生成した分析スクリプト、当該分析スクリプトのタイトル、及び当該分析スクリプトの予測値の組を推論ルール制御部201に渡す。
【0147】
推論ルール制御部201は、分析スクリプト生成部204から渡された分析スクリプト、分析スクリプトのタイトル、及び予測値を分析結果データベース200の分析スクリプトテーブル1000に登録する(1307)。
【0148】
具体的には、推論ルール制御部201は、新たに生成された分析スクリプトの分析処理の対象となる分析対象データ212の種類を示す識別子をdata_id1002に登録し、新たに生成された分析スクリプトの生成元となった分析結果の分析IDをparent_analysis_ids1005に登録し、分析スクリプト生成部204から渡された分析スクリプトのタイトルをtitle1007に登録し、分析スクリプト生成部204から渡された分析スクリプトをscript1008に登録し、分析スクリプト生成部204から渡された予測値をexpected_fitness1009に登録する。なお、推論ルール制御部201は、分析スクリプトテーブル1000で一意な分析IDを生成し、生成した分析IDをanalysis_id1001に登録し、created_at1003及びupdated_at1004に現在の日時を登録する。また、推論ルール制御部201は、新たに生成された分析スクリプトの分析結果を未算出であるので、result1010にNULL値を登録する。なお、新たに生成された分析スクリプトが分析実行部209によって実行された場合に、ジョブ制御部208が当該分析スクリプトの分析結果をresult1010に登録する。
【0149】
次に、推論ルール制御部201は、変数(rule_id)に設定されたルールIDをインクリメントしたルールIDを変数(rule_id)に新たに設定する(1308)。
【0150】
そして、推論ルール制御部201は、ステップ1308の処理で設定した変数(rule_id)が、データ分析システム100に備わるすべての推論ルール部202の数であるN以下であるか否かを判定する(1309)。
【0151】
ステップ1309の処理で、変数(rule_id)がN以下であると判定された場合、ステップ1302の処理に戻り、変数(rule_id)に設定されたルールIDの推論ルール部202に対してステップ1302〜1308の処理を実行する。
【0152】
一方、ステップ1309の処理で、変数変数(rule_id)がNよりも大きいと判定された場合、すべての推論ルール部202に対して処理が終了したので、推論ルール制御部201は、一定時間スリープした後(1310)、ステップ1301の処理から再度処理を実行する。なお、分析スクリプト生成処理は、ユーザからの強制終了等がない限り、無限ループで繰り返し実行される。分析スクリプト生成処理では、以前の分析結果に基づいて深堀分析を実行する分析スクリプトが生成されるので、分析スクリプト生成処理が繰り返されるたびに新たな分析スクリプトが生成され続ける。
【0153】
以下、推論ルール部202による評価値算出及び分析スクリプト生成の例を詳細に説明する。
【0154】
推論ルール部202による評価値算出及び分析スクリプト生成の例として、頻度の細分化が考えられる。
【0155】
例えば、図9に示す分析結果のグラフにおいて、加速度の絶対値が「0」のレコードが20万件以上と他のレコードから突出している。このため、次の集計分析として、加速度の絶対値が「0」付近のデータを0.1刻みで頻度を詳細に計数し、グラフ化することが考えられる。このようなルールにおいて、分析結果評価部203は、グラフの突出度合いを測る尺度を用いて、分析結果を評価する。例えば、分析結果評価部203は、頻度の最大値から、最大値を除いた他の頻度値の平均を引いた値を評価値として、分析結果を評価できる。分析スクリプト生成部204は、図6に示す「histogram(0、 20、 1)」の引数を、「histogram(0、 1、 0.1)」と変更した新たな分析スクリプトを生成できる。また、分析スクリプト生成部204は、「AのXからYにおけるZ刻みの頻度分布」というひな型の文字列を保持し、ひな型の「A」を「sqrt(x*x + y*y + z*z)」に、ひな型の「X」を「0」に、ひな型の「Y」を「1」に、ひな型の「Z」を「0.1」に置換することによってタイトルを生成する。
【0156】
推論ルール部202による評価値算出及び分析スクリプト生成の他の例として、クロス集計が考えられる。
【0157】
例えば、図9に示すグラフでは、加速度の絶対値の「1」から「8」は一様分布に近い分布である。このため、他の軸を加えて、加速度の絶対値の軸と他の軸(例えば、時刻の軸)との2軸でクロス集計することによって、加速度の絶対値の頻度分布に特徴が現れる可能性がある。このため、次に集計分析する場合、時刻を横軸、加速度の絶対値を縦軸とし、クロス集計を行うことが考えられる。なお、クロス集計の分析スクリプトの生成元となる分析結果が二つ以上であってもよい。
【0158】
クロス集計が分析スクリプト生成部204によって新たに生成される場合、分析結果評価部203は、グラフの一様度合いを測る尺度を用いて、分析結果を評価する。このようなグラフの一様度合いを測る尺度を示す評価値は、例えば、各頻度と頻度の平均値との差の絶対値を合計することによって算出できる。
【0159】
また、クロス集計の分析スクリプトを生成する分析スクリプト生成部204は、図6に示す「logs: histogram(0、 20、 1)」を「logs: histogram(1、 9、 1)、 histogram(0、 24、 1)」に変更し、「target: sqrt(x*x + y*y + z*z)」を「target: sqrt(x*x + y*y + z*z)、 hour(time)」に変更することによって、新たなスクリプトを生成できる。ここで、hour(time)はtimeタグから時刻の情報を取得させる関数である。また、図6に示すDSLでは、カンマで区切ることでクロス集計ができることと仮定している。タイトルに関しては、分析スクリプト生成部204において、「Aと時刻のクロス集計」というひな型の文字列を保持しておき、Aを「sqrt(x*x + y*y + z*z)」に置き換えることでタイトルを生成する。
【0160】
本発明の推論ルール部202は上記の例のルールに限られず、様々なルールが考えられる。多様な推論ルールを本発明に組み込むことによって、有用な集計分析が自動的に実行できるようになる。
【0161】
図14は、本発明の実施形態の分析実行処理のデータの流れを示すシーケンス図である。
【0162】
分析実行処理で使用するデータは、ジョブ制御部208、分析結果データベース200、及び分析実行部209の間でやりとりされる。
【0163】
まず、ジョブ制御部208は、分析結果データベース200の分析スクリプトテーブル1000からジョブ実行待ちの分析スクリプトのレコードを取得する(1401)。
【0164】
次に、ジョブ制御部208は、ステップ1401の処理で取得したレコードによって特定される分析スクリプトを分析実行部209に渡し、分析処理実行命令を分析実行部209に渡す(1402)。分析実行部209は、ジョブ制御部208から分析処理実行命令を渡されると、ジョブ制御部208から渡された分析スクリプトを実行する。
【0165】
ジョブ制御部208は、ステップ1402の処理で分析処理実行命令を分析実行部209に渡すと、待機状態に移行し、周期的に分析スクリプトの実行が完了したか否かを分析実行部209に問い合わせる(1403、1404)。
【0166】
分析実行部209が分析スクリプトの実行を完了すると、ジョブ制御部208は、分析実行部209から分析結果を取得する(1405)。そして、ジョブ制御部208は、ステップ1405の処理で取得した分析結果を分析スクリプトテーブル1000に格納する(1406)。
【0167】
図15は、本発明の実施形態の分析実行処理のフローチャートである。
【0168】
分析実行処理は、ジョブ制御部208、及び分析実行部209を実現するプログラムを実行するCPU103によって実行される。
【0169】
まず、ジョブ制御部208は、分析結果データベース200の分析スクリプトテーブル1000を参照し、予測値(expected_fitness1009)が高い順にジョブ実行待ちの分析スクリプトを取得する(1501)。なお、ジョブ制御部208は、分析スクリプトテーブル1000のresult1010がNULLであれば当該レコードのscript1008に登録された分析スクリプトをジョブ実行待ちの分析スクリプトとして判定する。
【0170】
次に、ジョブ制御部208は、ステップ1501の処理で取得した分析スクリプトをマージして一つの分析スクリプトに合成する(1502)。これによって、CPU103は、分析スクリプトの実行が完了するごとに、次の分析スクリプトを読み込まなくてもよくなり、ファイルの入出力回数を減少させることができ、高速に分析処理を実行できる。なお、ステップ1502の処理の詳細は、図16で詳細を説明する。また、ステップ1502の処理では、ジョブ制御部208でなく分析実行部209によって実行されてもよい。
【0171】
次に、分析実行部209は、ステップ1502の処理で合成された分析スクリプトを実行する(1503)。具体的には、分析実行部209の分析スクリプト解釈部210が、分析スクリプトを、分析対象データ212に対して実行する。
【0172】
ジョブ制御部208は、分析実行部209で分析スクリプトの実行が完了するまで処理を待機し(1504)、分析実行部209で分析スクリプトの実行が完了すると、分析実行部209から分析結果を取得する(1505)。
【0173】
次に、ジョブ制御部208は、ステップ1505の処理で取得した分析結果を分析結果データベース200の分析スクリプトテーブル1000のresult1010に登録する(1506)。
【0174】
次に、ジョブ制御部208は、一定時間スリープした後(1507)、ステップ1501の処理に戻って分析実行処理を再開する。ジョブ制御部208は、一定時間のスリープを挟んで、ユーザからの強制終了がない限り、無限ループで分析実行処理を繰り返し実行する。推論ルール制御部201が新しい分析スクリプトを分析結果データベース200の分析スクリプトテーブル1000に登録し続けるため、ジョブ制御部208も生成された分析スクリプトを分析実行部209に実行させ、分析結果を分析結果データベース200の分析スクリプトテーブル1000に登録し続けなければならない。
【0175】
図16は、本発明の実施形態の分析スクリプトのマージの説明図である。
【0176】
図16で1600及び1601は、マージされる分析スクリプトを示し、1602は、マージ後の一つに合成された分析スクリプトを示す。
【0177】
1602の上方の下線部が分析スクリプト1600に対応する部分であり、1602の下方の下線部が分析スクリプト1601に対応する部分である。
【0178】
図16に示すように、下線部を除外した部分のプログラムがテンプレートとして予め用意されており、ジョブ制御部208又は分析実行部209は、分析スクリプトを参照し、下線部をテンプレートに挿入することによって、複数の分析スクリプトをマージした一つの分析スクリプトを生成する。
【0179】
分析実行部209は、図3に示す分析対象データ212に対して1602のmapper関数を呼び出し、分析結果を取得する。分析実行部209は、取得した分析結果に対してreducer関数が呼び出される。これによって、分析実行部209は、分析スクリプト1600に記述された分析処理、及び分析スクリプト1601に記述された分析処理を同時に実行できる。
【0180】
また、分析対象データ212の容量が膨大である場合、当該分析対象データ212のファイル入出力が原因で分析実行処理の処理速度が低下してしまう。また、分析スクリプト1600に記述された分析、及び分析スクリプト1601に記述された分析は、同じ分析対象データ212を分析するので、分析スクリプト1600及び1601を一つの分析スクリプト1602にマージすることによって、分析対象データ212の一度読み込みによって分析が可能となり、分析実行時間を短縮できる。これによって、実行できる分析スクリプトの数を増やすことができるため、評価が高いものを優先的にユーザに表示することで、分析結果の有用性という観点での精度を高めることができる。
【0181】
図17は、本発明の実施形態の分析結果表示部213が表示する分析結果一覧表示画面1700の説明図である。
【0182】
分析結果一覧表示画面1700は、検索キーワード入力フィールド1701、検索ボタン1702、分析結果一覧表示フィールド1703、及びソートボタン1709を含む。
【0183】
検索キーワード入力フィールド1701は、検索キーワードが入力されるテキストフィールドである。検索ボタン1702は、分析結果データベース200に登録された分析結果から検索キーワード入力フィールド1701に入力された検索キーワードと一致する分析結果を分析結果表示部213に検索させるために操作されるボタンである。なお、分析結果の検索方法は、例えば、分析結果データベース200の分析スクリプトテーブル1000のtitle1007に登録されたタイトルが検索キーワードと一致する分析結果を検索する。
【0184】
分析結果一覧表示フィールド1703は、検索キーワード入力フィールド1701に入力された検索キーワードと一致する分析結果の一覧を表示するフィールドである。
【0185】
分析結果一覧表示フィールド1703は、グラフボタン1704、分析ID1705、データID1706、タイトル1707、推論ルール1708を含む。
【0186】
グラフボタン1704は、当該レコードの分析結果をグラフ表示した分析結果表示画面1800(図18参照)を分析結果表示部213に表示させるために操作されるボタンである。分析ID1705には分析IDが表示される。データID1706には分析処理の対象となる分析対象データ212の種類を示す識別子が表示される。タイトル1707には分析結果を取得した分析スクリプトのタイトルが表示される。推論ルール1708には分析結果を取得した分析スクリプトを生成した推論ルール部202のルールIDが表示される。
【0187】
なお、分析結果一覧表示フィールド1703には、分析結果が所定の順序(ソートパラメタ)でソートされて表示される。図17では、所定の順序は、分析結果の評価値の高い順であるとする。このソートに用いられる評価値は総合評価値といい、具体的には、ある分析結果の異なる推論ルールで算出された評価値の平均値である。
【0188】
ソートボタン1709は、分析結果一覧表示フィールド1703に表示された分析結果のソートパラメタを設定するためのソートパラメタ設定画面1900(図19参照)を分析結果表示部213に表示させるために操作されるボタンである。
【0189】
図18は、本発明の実施形態の分析結果表示部213が表示する分析結果表示画面1800の説明図である。
【0190】
分析結果表示画面1800は、グラフ表示フィールド1801、評価値表示フィールド1802、ユーザ名入力フィールド1803、推論ルール入力フィールド1804、評価尺度入力フィールド1805、評価値入力フィールド1806、及び評価ボタン1807を含む。
【0191】
グラフ表示フィールド1801は、グラフボタン1704が操作された分析結果をグラフ表示するためのフィールドである。なお、分析結果表示部213がグラフボタン1704が操作されたことを検出すると、グラフ生成部215にグラフボタン1704が操作された分析結果のグラフデータを生成させ、グラフ生成部215によって生成されたグラフデータをグラフ表示フィールドに表示する。
【0192】
評価値表示フィールド1802は、当該分析結果の各推論ルール部202の分析結果評価部203によって算出された評価値を表示するためのフィールドである。評価値表示フィールド1802には、評価値を算出した推論ルール部202のルールID、評価値を算出した評価尺度、及び評価値が表示される。
【0193】
ユーザ名入力フィールド1803、推論ルール入力フィールド1804、評価尺度入力フィールド1805、及び、評価値入力フィールド1806は、当該分析結果の評価値をユーザが変更する場合に値を入力するためのフィールドである。
【0194】
ユーザ名入力フィールド1803は、ユーザ名を入力するためのテキストフィールドである。推論ルール入力フィールド1804は、変更する評価値を算出した推論ルール部202のルールIDを入力するためのフィールドである。評価尺度入力フィールド1805は、変更する評価値を算出した評価尺度を入力するためのフィールドである。評価値入力フィールド1806は、変更する評価値を入力するためのフィールドである。
【0195】
評価ボタン1807は、グラフ表示フィールド1801にグラフ表示されている分析結果の評価値のうち推論ルール入力フィールド1804に入力されたルールID及び評価尺度入力フィールド1805に入力された評価尺度によって特定される評価値を、評価値入力フィールド1806に入力された評価値に変更するために操作されるボタンである。
【0196】
具体的には、分析結果表示部213は、分析結果データベース200の評価値テーブル1100のレコードのうち、analysis_id1102に登録された分析IDがグラフ表示フィールド1801にグラフ表示されている分析結果の分析IDと一致するレコードを取得する。そして、分析結果表示部213は、取得したレコードのうち、rule_id1105に登録されたルールIDが推論ルール入力フィールド1804に入力されたルールIDと一致し、かつ、measure1106に登録された評価尺度が評価尺度入力フィールド1805に入力された評価尺度と一致するレコードのvalue1107を評価値入力フィールド1806に入力された評価値に変更する。この場合、分析結果表示部213は、value1107を変更したレコードのupdated_at1104に現在の日時を登録する。また、分析結果表示部213は、分析結果データベース200の分析スクリプトテーブル1000のanalysis_id1001に登録された分析IDがグラフ表示フィールド1801にグラフ表示されている分析結果の分析IDと一致するレコードのtitle1007にユーザ名入力フィールド1803に入力されたユーザ名を追加し、updated_at1004に現在の日時を登録する。
【0197】
これによって、ユーザが評価値を設定することができ、ユーザがさらに分析を進めたい分析結果の評価値を高く設定することができ、分析が発散してしまうことも防止できる。
【0198】
図19は、本発明の実施形態の分析結果表示部213が表示するソートパラメタ設定画面1900の説明図である。
【0199】
ソートパラメタ設定画面1900は、ソートボタン1901、及び重み付け指定フィールド1902を含む。
【0200】
ソートボタン1901は、重み付け指定フィールド1902で指定された重み付けで評価値を再度計算して、図17に示す分析結果一覧表示フィールド1703に表示された分析結果を再度計算した評価値順にソートするために操作されるボタンである。
【0201】
重み付け指定フィールド1902は、各推論ルール部202の各評価尺度ごとに重みの指定を受け付けるためのフィールドであり、推論ルール1903、評価尺度1904、及び重み1905を含む。
【0202】
推論ルール1903には、分析結果一覧表示フィールド1703に表示された分析結果を評価したすべての推論ルール部202のルールIDが表示される。評価尺度1904には、分析結果一覧表示フィールド1703に表示された分析結果を評価したすべての推論ルール部202の評価尺度が表示される。
【0203】
重み1905は、ユーザが各推論ルール部202の評価尺度の重み付けを調整(変更)するためのスライドバーである。ユーザが重み1905のスライドバーを調整することによって、ユーザが所望する重み付けを指定できる。
【0204】
ソートボタン1901が操作された場合について詳細に説明する。
【0205】
分析結果表示部213は、ソートボタン1901が操作されたことを検出すると、重み付け指定フィールド1902で指定された各推論ルール部202の各評価尺度の重み付けを適用して、各分析結果の総合評価値を算出する。総合評価値は、分析結果の算出されている評価値を、当該評価値を算出した推論ルール部202及び評価基準の重み付けを乗算した値を算出し、重み付けをしたすべての評価値を加算した値である。
【0206】
例えば、ある分析結果は、推論ルール「cross」の評価尺度「一様」で評価値E1が算出され、推論ルール「scale」の評価尺度「極値」で評価値E2が算出され、推論ルール「scale」の評価尺度「最大値」で評価値E3が算出されており、推論ルール「cross」の評価尺度「一様」の重み付けW1と指定され、推論ルール「scale」の評価尺度「極値」の重み付けW2と指定され、推論ルール「scale」の評価尺度「最大値」の重み付けW3と指定されていた場合、総合評価値は、(W1×E1+W2×E2+W3×E3)/3によって算出される。
【0207】
そして、分析結果表示部213は、総合評価値の降順(総合評価値の高い順)に分析結果をソートして、ソートした順で分析結果を分析結果一覧表示フィールド1703に表示する。
【0208】
以上によって、ユーザの観点に合致した評価基準で分析結果の一覧をソートできる。
【0209】
図20は、本発明の実施形態の分析ユーザインタフェース部214が表示する分析スクリプト入力画面2000の説明図である。
【0210】
分析スクリプト入力画面2000は、ユーザが所定の入力をした場合に分析ユーザインタフェース部214が表示する画面であり、ユーザが作成した分析スクリプトの入力を受け付けるための画面である。
【0211】
分析スクリプト入力画面2000は、分析スクリプト入力フィールド2001、テスト実行ボタン2002、分析実行ボタン2003、ログ表示フィールド2004、グラフ表示フィールド2005、ユーザ名入力フィールド2405、タイトル入力フィールド2406、及び保存ボタン2407を含む。
【0212】
分析スクリプト入力フィールド2001は、ユーザが分析スクリプトを入力するためのテキストフィールドである。
【0213】
テスト実行ボタン2002は、分析スクリプト入力フィールド2001に入力された分析スクリプトを分析実行部209にテスト実行させるために操作されるボタンである。
【0214】
分析実行ボタン2003は、分析スクリプト入力フィールド2001に入力された分析スクリプトを分析実行部209に実行させるために操作されるボタンである。
【0215】
ログ表示フィールド2004には、テスト実行ボタン2002が操作された場合、又は分析実行ボタン2003が操作された場合の分析スクリプトの分析結果、及び分析スクリプトの分析処理の進捗に関するログ等が表示される。
【0216】
グラフ表示フィールド2005には、分析スクリプト入力フィールド2001に入力された分析スクリプトの分析結果がグラフ表示される。
【0217】
ユーザ名入力フィールド2405は、分析スクリプトを作成したユーザのユーザ名が入力されるテキストフィールドである。タイトル入力フィールド2406は、ユーザが作成した分析スクリプトのタイトルが入力されるテキストフィールドである。
【0218】
保存ボタン2407は、ユーザが作成した分析スクリプトの分析結果を分析ユーザインタフェース部214が分析結果データベース200に登録するために操作するボタンである。
【0219】
保存ボタン2407が操作された場合について詳細に説明する。
【0220】
保存ボタン2407が操作された場合、分析ユーザインタフェース部214は、ユーザが作成した分析結果を分析結果データベース200の分析スクリプトテーブル1000に登録する。具体的には、分析ユーザインタフェース部214は、分析スクリプトテーブル1000に新たなレコードを追加し、analysis_id1001に一意な分析IDを登録し、data_id1002に当該分析スクリプトの分析の対象となった分析対象データ212の種類を示す識別子が登録され、created_at1003及びupdated_at1004に現在の日時を登録し、parent_analysis_ids1005にはNULLを登録する。また、分析ユーザインタフェース部214は、当該新たなレコードのtitle1007にタイトル入力フィールド2406に入力されたタイトル及びユーザ名入力フィールド2405に入力されたユーザ名を登録し、script1008に分析スクリプト入力フィールド2001に入力された分析スクリプトを登録し、expected_fitness1009及びresult1010にNULLを登録する。
【0221】
分析スクリプトテーブル1000にユーザが作成した分析スクリプトの分析結果が登録されるので、当該分析結果から新たな分析スクリプトが生成される。これによって、ユーザが所望の分析スクリプトを作成することによって、データ分析システム100で実行される分析がユーザの意図しない方向に進むことを修正できる。
【0222】
図21は、本発明の実施形態の複数の計算機によって構成されるデータ分析システム100のブロック図である。
【0223】
図21では、データ分析システム100の各部が複数の計算機に分散する一例として、データ分析システム100が、管理計算機2100、推論ルール計算機2110A、2110B、及び分析実行計算機2120を備える場合について説明する。なお、図21の構成のうち図2と同じ構成は同じ符号を付与し、説明を省略する。
【0224】
管理計算機2100は、分析結果データベース200、推論ルール制御部201、ジョブ制御部208、分析結果表示部213、分析ユーザインタフェース部214、及びグラフ生成部215を備える。
【0225】
推論ルール計算機2110Aは推論ルール部202Aを備え、推論ルール計算機2110Bは推論ルール部202Bを備える。
【0226】
分析実行計算機2120は分析実行部209を備える。
【0227】
このように、本実施形態のデータ分析システム100の各部は複数の計算機に分散していてもよい。
【産業上の利用可能性】
【0228】
本発明は、データ分析装置に関し、特に、自動的に集計分析を実行する技術に適用可能である。
【符号の説明】
【0229】
101 入力デバイス
102 ネットワークデバイス
103 CPU
104 主記憶部
105 補助記憶部
106 バス
200 分析結果データベース
201 推論ルール制御部
202 推論ルール部
203 分析結果評価部
204 分析スクリプト生成部
208 ジョブ制御部
209 分析実行部
210 分析スクリプト解釈部
211 分析対象データ管理部
212 分析対象データ
213 分析結果表示部
214 分析ユーザインタフェース部
215 グラフ生成部

【特許請求の範囲】
【請求項1】
プログラムを実行するプロセッサ、及び前記プロセッサによって実行されるプログラムを格納する記憶領域を備え、データを分析するデータ分析システムであって、
前記データに対して分析処理を実行し、前記分析処理の分析結果を前記記憶領域に格納する分析実行部と、
前記分析結果を評価し、前記分析結果から新たな分析処理を生成する複数の推論ルール部と、
前記複数の推論ルール部を制御する推論ルール制御部と、
前記分析実行部の未処理の分析処理を管理する分析処理管理部と、を備え、
前記推論ルール部は、前記分析結果を評価する分析結果評価部と、前記分析結果から前記新たな分析処理を生成する分析処理生成部と、を含み、
前記分析結果評価部は、前記記憶領域に格納された分析結果を読み込み、当該分析結果の特性を示す特徴量を算出することによって前記分析結果を評価し、当該分析結果と当該特徴量とを対応付けて前記記憶領域に格納し、
前記推論ルール制御部は、前記記憶領域に格納された分析結果のうち前記特徴量が所定条件を満たす分析結果を前記新たな分析処理の生成元の候補として選択し、
前記分析処理生成部は、前記推論ルール制御部によって選択された分析結果から新たな分析処理を生成し、
前記分析処理管理部は、前記分析処理生成部によって生成された分析処理を前記分析実行部に実行させることを特徴とするデータ分析システム。
【請求項2】
ユーザからの入力を受け付ける入力部と、
一の分析結果を示す分析結果表示画面を出力する分析結果表示部と、を備え、
前記分析結果表示部は、
前記出力した分析結果の前記特徴量の値を前記入力部から指定可能な特徴量指定領域を含んで、前記分析結果表示画面を出力し、
前記特徴量指定領域で指定された値を前記出力した分析結果の前記特徴量として前記記憶領域に格納することを特徴とする請求項1に記載のデータ分析システム。
【請求項3】
ユーザからの入力を受け付ける入力部と、
前記記憶領域に格納された分析結果のうち所定の条件に適合する分析結果を抽出した分析結果の一覧を生成し、前記生成した前記分析結果の一覧を示す分析結果一覧表示画面を出力する分析結果表示部と、を備え、
前記分析結果表示部は、
前記特徴量を算出した前記分析結果評価部ごとに重み付けを前記入力部から指定可能な重み付け指定領域を出力し、
前記分析結果表示部は、前記重み付け指定領域で指定された重み付けに基づく前記特徴量に重み付けをし、
前記分析結果一覧表示画面に表示された分析結果を、前記重み付けされた前記特徴量の順に並び替えることを特徴とする請求項1に記載のデータ分析システム。
【請求項4】
前記分析処理を記述した分析スクリプトのユーザからの入力を受け付ける分析スクリプト入力受付部を備え、
前記分析スクリプト入力受付部は、
前記入力を受け付けた分析スクリプトによる前記分析処理を前記分析実行部に実行させ、
前記入力を受け付けた分析スクリプトの分析結果を前記記憶領域に格納することを特徴とする請求項1に記載のデータ分析システム。
【請求項5】
前記分析処理生成部は、前記新たな分析処理を生成した場合、当該新たな分析処理の生成元となる前記分析結果の前記特徴量を、当該新たな分析処理による前記分析結果の前記特徴量の予測値に設定し、
前記分析処理管理部は、前記分析処理生成部によって生成された分析処理の処理順を前記予測値に基づいて決定することを特徴とする請求項1に記載のデータ分析システム、
【請求項6】
前記分析処理管理部又は前記分析実行部は、前記複数の分析処理を記述した分析スクリプトを一つのスクリプトにマージし、
前記分析実行部は、前記マージされたスクリプトを実行することによって、複数の分析処理を実行することを特徴とする請求項1に記載のデータ分析システム。
【請求項7】
前記分析処理生成部は、前記推論ルール部ごとに設定された重み付け及び前記分析実行部によって未だ実行されていない実行処理の数に基づいて、前記生成する前記分析処理の数を決定することを特徴とする請求項1に記載のデータ分析システム。
【請求項8】
前記分析結果評価部は、同じ推論ルール部に属する前記分析処理生成部が生成する分析処理に対応するルールに基づいて前記特徴量を算出し、
前記推論ルール制御部は、前記記憶領域に格納された分析結果のうち、前記新たな分析処理を生成させる分析処理生成部と同じ推論ルール部に属する前記分析結果評価部が算出した特徴量が所定条件を満たす分析結果を前記新たな分析処理の生成元の候補として選択することを特徴とする請求項1に記載のデータ分析システム。
【請求項9】
プログラムを実行するプロセッサ、及び前記プロセッサによって実行されるプログラムを格納する記憶領域を備える計算機システムにおけるデータを分析するデータ分析方法であって、
前記計算機システムは、
前記データに対して分析処理を実行し、前記分析処理の分析結果を前記記憶領域に格納する分析実行部と、
前記分析結果を評価し、前記分析結果から新たな分析処理を生成する複数の推論ルール部と、
前記複数の推論ルール部を制御する推論ルール制御部と、
前記分析実行部の未処理の分析処理を管理する分析処理管理部と、を備え、
前記推論ルール部は、前記分析結果を評価する分析結果評価部と、前記分析結果から前記新たな分析処理を生成する分析処理生成部と、を含み、
前記方法は、
前記分析結果評価部が、前記記憶領域に格納された分析結果を読み込み、当該分析結果の特性を示す特徴量を、同じ推論ルール部に属する前記分析処理生成部が生成する分析処理に対応するルールに基づいて算出することによって前記分析結果を評価し、当該分析結果と当該特徴量とを対応付けて前記記憶領域に格納するステップと、
前記推論ルール制御部が、前記記憶領域に格納された分析結果のうち、新たな分析処理を生成する分析処理生成部と同じ推論ルール部に属する分析結果評価部が評価した分析結果であって、前記特徴量が所定条件を満たす分析結果を前記新たな分析処理の生成元の候補として選択するステップと、
前記分析処理生成部が、前記推論ルール制御部によって選択された分析結果から新たな分析処理を生成するステップと、
前記分析処理管理部が、前記分析処理生成部によって生成された分析処理を前記分析実行部に実行させるステップと、を含むことを特徴とするデータ分析方法。
【請求項10】
ユーザからの入力を受け付ける入力部と、
一の分析結果を示す分析結果表示画面を出力する分析結果表示部を備え、
前記方法は、
前記分析結果表示部が、前記出力した分析結果の前記特徴量の値をユーザが指定可能な特徴量指定領域を含んで、前記分析結果表示画面を出力するステップと、
前記分析結果表示部が、前記特徴量指定領域で指定された値を前記出力した分析結果の前記特徴量として前記記憶領域に格納するステップと、を含むことを特徴とする請求項9に記載のデータ分析方法。
【請求項11】
ユーザからの入力を受け付ける入力部と、
前記記憶領域に格納された分析結果のうち所定の条件に適合する分析結果を抽出した分析結果の一覧を生成し、前記生成した前記分析結果の一覧を示す分析結果一覧表示画面を出力する分析結果表示部と、を備え、
前記方法は、
前記分析結果表示部が、前記特徴量を算出した前記分析結果評価部ごとに重み付けを前記入力部から指定可能な重み付け指定領域を出力するステップと、
前記分析結果表示部が、前記重み付け指定領域で指定された重み付けに基づく前記特徴量に重み付けをし、
前記分析結果表示部が、前記分析結果一覧表示画面に表示された分析結果を、前記重み付けされた前記特徴量の順に並び替えるステップと、を含むことを特徴とする請求項9に記載のデータ分析方法。
【請求項12】
前記分析処理を記述した分析スクリプトのユーザからの入力を受け付ける分析スクリプト入力受付部を備え、
前記方法は、
前記分析スクリプト入力受付部が、前記入力を受け付けた分析スクリプトによる前記分析処理を前記分析実行部に実行させるステップと、
前記分析スクリプト入力受付部が、前記入力を受け付けた分析スクリプトの分析結果を前記記憶領域に格納するステップと、を含むことを特徴とする請求項9に記載のデータ分析方法。
【請求項13】
前記分析処理生成部が、前記新たな分析処理を生成した場合、当該新たな分析処理の生成元となる前記分析結果の前記特徴量を、当該新たな分析処理による前記分析結果の前記特徴量の予測値に設定するステップと、
前記分析処理管理部が、前記分析処理生成部によって生成された分析処理の処理順を前記予測値に基づいて決定するステップと、を含むことを特徴とする請求項9に記載のデータ分析方法。
【請求項14】
前記分析処理管理部又は前記分析実行部が、前記複数の分析処理を記述した分析スクリプトを一つのスクリプトにマージするステップと、
前記分析実行部が、前記マージされたスクリプトを実行することによって、複数の分析処理を実行するステップと、を含むことを特徴とする請求項9に記載のデータ分析方法。
【請求項15】
前記分析処理生成部が、前記推論ルール部ごとに設定された重み付け及び前記分析実行部によって未だ実行されていない実行処理の数に基づいて、前記生成する前記分析処理の数を決定するステップを含むことを特徴とする請求項9に記載のデータ分析方法。
【請求項16】
前記分析結果評価部が前記特徴量を算出するステップでは、同じ推論ルール部に属する前記分析処理生成部が生成する分析処理に対応するルールに基づいて前記特徴量を算出し、
前記推論ルール制御部が前記新たな分析処理の生成元の候補を選択するステップでは、前記記憶領域に格納された分析結果のうち、前記新たな分析処理を生成させる分析処理生成部と同じ推論ルール部に属する前記分析結果評価部が算出した特徴量が所定条件を満たす分析結果を前記新たな分析処理の生成元の候補として選択することを特徴とする請求項9に記載のデータ分析方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2012−238207(P2012−238207A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−107212(P2011−107212)
【出願日】平成23年5月12日(2011.5.12)
【出願人】(000005108)株式会社日立製作所 (27,607)