(57)【要約】【課題】特徴量を自動的に生成する場合に、どの特徴量がどのように目的変数に影響しているのかを使用者に提示できるようにしてより深い分析を容易に行えるようにする。【解決手段】複数の特徴量のそれぞれについて、目的変数への影響変化を示す分割点を決定することにより、各特徴量を複数のセグメントに分割するとともに、各セグメントの目的変数への影響度を指標とする評価値を算出する。評価値が算出された特徴量のセグメントをモニタ３に表示する。【選択図】図３１
2020135066.tif 000002
【特許請求の範囲】
【請求項１】
分析対象データを分析するデータ分析装置において、
複数の属性を含む分析対象データの入力を受け付けるデータ入力部と、
単一の属性または複数の属性の組み合わせに所定の関数を適用することにより、新たな特徴量を自動的に生成する特徴量自動生成部と、
分析対象データに含まれる元の属性の特徴量と、前記特徴量自動生成部により生成された新たな特徴量とを含む複数の属性の特徴量に基づいて、目的変数を予測するための予測モデルを生成する分析部と、
前記複数の特徴量のそれぞれについて、目的変数への影響変化を示す分割点を決定することにより、各特徴量を複数のセグメントに分割するとともに、各セグメントの前記目的変数への影響度を指標とする評価値を算出する評価部と、
前記評価部で評価値が算出された特徴量のセグメントを表示する表示部とを備えていることを特徴とするデータ分析装置。
【請求項２】
請求項１に記載のデータ分析装置において、
前記表示部は、前記評価部で評価値が算出された特徴量のセグメントを選択的に表示するように構成されていることを特徴とするデータ分析装置。
【請求項３】
請求項１または２に記載のデータ分析装置において、
前記表示部は、前記評価部で評価値が算出された特徴量のセグメントを優先的に表示するように構成されていることを特徴とするデータ分析装置。
【請求項４】
請求項１から３のいずれか１つに記載のデータ分析装置において、
前記表示部は、前記評価部で算出された評価値が上位となる特徴量のセグメントを表示するように構成されていることを特徴とするデータ分析装置。
【請求項５】
請求項１から４のいずれか１つに記載のデータ分析装置において、
前記評価部は、評価値が最良となる前記分割点を決定するように構成されていることを特徴とするデータ分析装置。
【請求項６】
請求項１から５のいずれか１つに記載のデータ分析装置において、
前記評価部は、複数の特徴量を組み合わせた複合条件における目的変数への影響変化を示す分割点を決定することにより、各特徴量を複数のセグメントに分割するとともに、各セグメントの前記目的変数への影響度を指標とする評価値を算出するように構成され、
前記表示部は、複合条件における評価値が算出された特徴量のセグメントを表示するように構成されていることを特徴とするデータ分析装置。
【請求項７】
請求項１から６のいずれか１つに記載のデータ分析装置において、
前記評価部は、前記セグメントに含まれるデータのシェアを算出するように構成され、
前記表示部は、前記評価部が算出した前記シェアを表示するように構成されていることを特徴とするデータ分析装置。
【請求項８】
請求項１から７のいずれか１つに記載のデータ分析装置において、
前記評価部は、目的変数の平均数値を算出するように構成され、
前記表示部は、前記目的変数の平均数値を表示するように構成されていることを特徴とするデータ分析装置。
【請求項９】
請求項１から８のいずれか１つに記載のデータ分析装置において、
前記表示部は、特徴量が１つのセグメントを表示する第１表示形態と、特徴量が複数のセグメントを表示する第２表示形態とに切り替えて表示可能に構成されていることを特徴とするデータ分析装置。
【請求項１０】
請求項１から９のいずれか１つに記載のデータ分析装置において、
前記表示部は、前記予測モデルに用いられた複数の特徴量の代表値と、目的変数の数値との関係を表示するように構成され、
使用者の操作入力に基づいて前記代表値の調整を受け付ける調整部と、
前記代表値の調整量に応じて複数の属性の特徴量を変化させて、前記予測モデルから目的変数の数値を再計算し、前記表示部に表示させるシミュレーション部とを更に備えていることを特徴とするデータ分析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ分析装置に関する。
【背景技術】
【０００２】
従来より、大量の情報の中からこれまで未知であった有用な知見を得ようと試みる、いわゆるデータマイニングが知られている。一般的なデータマイニングの手法では、前処理ステップ、特徴抽出ステップ、モデル学習ステップ、後処理ステップの各ステップを順に実行する。前処理ステップでは、分析に必要なデータを収集し、分析の効果を高めるために、データの中から不要なノイズを取り除いたり、欠損した項目を埋めるといった作業を行う。この作業はＥＴＬ：Ｅｘｔｒａｃｔ／Ｔｒａｎｓｆｏｒｍ／Ｌｏａｄと呼ばれている。特徴抽出ステップでは、元データに存在する特徴量を加工し、分析により役立つ新たな特徴量を生成する。モデル学習ステップでは、前処理ステップ及び特徴抽出ステップで準備されたデータを機械学習アルゴリズムに入力し、分析結果を得る。後処理ステップでは、モデル学習ステップで得られた分析結果を外部の機器に出力したり、分析結果に基づいてレポートを作成するといった処理を行う。
【０００３】
ところで、最適な特徴量の設計には、熟練の分析者による試行錯誤が必要で、データ分析に長い時間を要する原因となっていた。このことに対し、例えば、非特許文献１に開示されているように、新たな特徴量をデータから自動的に生成する技術が知られている。この文献に開示されている技術では、事前に定義された一連の演算子（＋，−，×，÷など）を元の特徴量に対して網羅的に適用し、大量の新たな特徴量を自動的に生成することができる。
【先行技術文献】
【特許文献】
【０００４】
【非特許文献１】「A Randomized Exhaustive Propositionalization Approach for Molecule Classification」２０１０年５月２６日
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、非特許文献１では、新たな特徴量を自動的に生成することができるが、システムの使用者からみると、どの特徴量がどのように目的変数に影響しているのか不明であり、より深い分析を行うのが容易ではなかった。
【０００６】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、特徴量を自動的に生成する場合に、どの特徴量がどのように目的変数に影響しているのかを使用者に提示できるようにしてより深い分析を容易に行えるようにすることにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、第１の発明は、分析対象データを分析するデータ分析装置において、複数の属性を含む分析対象データの入力を受け付けるデータ入力部と、単一の属性または複数の属性の組み合わせに所定の関数を適用することにより、新たな特徴量を自動的に生成する特徴量自動生成部と、分析対象データに含まれる元の属性の特徴量と、前記特徴量自動生成部により生成された新たな特徴量とを含む複数の属性の特徴量に基づいて、目的変数を予測するための予測モデルを生成する分析部と、前記複数の特徴量のそれぞれについて、目的変数への影響変化を示す分割点を決定することにより、各特徴量を複数のセグメントに分割するとともに、各セグメントの前記目的変数への影響度を指標とする評価値を算出する評価部と、前記評価部で評価値が算出された特徴量のセグメントを表示する表示部とを備えていることを特徴とする。
【０００８】
この構成によれば、複数の属性を含む分析対象データが入力されると、単一の属性または複数の属性の組み合わせに所定の関数を適用することにより、新たな特徴量が自動的に生成される。そして、分析対象データに含まれる元の属性の特徴量と、新たな特徴量とを含む複数の特徴量に基づいて、目的変数を予測するための予測モデルが生成される。複数の特徴量のそれぞれについて、目的変数への影響変化を示す分割点が決定されて各特徴量が複数のセグメントに分割されると、各セグメントの目的変数への影響度を指標とする評価値が算出される。この評価値が算出された特徴量のセグメントが表示されるので、どの特徴量がどのように目的変数に影響しているのかを使用者が把握可能になる。
【０００９】
第２の発明は、前記表示部は、前記評価部で評価値が算出された特徴量のセグメントを選択的に表示するように構成されていることを特徴とする。
【００１０】
この構成によれば、評価値が算出された特徴量のセグメントの中から、一部を選択的に表示部に表示することが可能になるので、たとえば評価値が低いセグメントを非表示にして重要な情報のみを使用者に提示することができる。
【００１１】
第３の発明は、前記表示部は、前記評価部で評価値が算出された特徴量のセグメントを優先的に表示するように構成されていることを特徴とする。
【００１２】
この構成によれば、評価値が算出された特徴量のセグメントが表示部に優先的に表示されるので、目的変数への影響度が高いセグメントを容易に把握することができる。
【００１３】
第４の発明は、前記表示部は、前記評価部で算出された評価値が上位となる特徴量のセグメントを表示するように構成されていることを特徴とする。
【００１４】
この構成によれば、評価値が上位となる特徴量のセグメントは目的変数への影響度が高いセグメントであり、このセグメントが表示部に表示されるので、影響度が高いセグメントを容易に把握することができる。
【００１５】
第５の発明は、前記評価部は、評価値が最良となる前記分割点を決定するように構成されていることを特徴とする。
【００１６】
この構成によれば、データ分析に重要なセグメントを把握することができる。
【００１７】
第６の発明は、前記評価部は、複数の特徴量を組み合わせた複合条件における目的変数への影響変化を示す分割点を決定することにより、各特徴量を複数のセグメントに分割するとともに、各セグメントの前記目的変数への影響度を指標とする評価値を算出するように構成され、前記表示部は、複合条件における評価値が算出された特徴量のセグメントを表示するように構成されていることを特徴とする。
【００１８】
この構成によれば、複数の特徴量を組み合わせた複合条件の場合に、目的変数への影響度の高いセグメントを把握することができる。
【００１９】
第７の発明は、前記評価部は、前記セグメントに含まれるデータのシェアを算出するように構成され、前記表示部は、前記評価部が算出した前記シェアを表示するように構成されていることを特徴とする。
【００２０】
この構成によれば、セグメントに含まれるデータのシェアを把握することで更に深いデータ分析を行うことができる。
【００２１】
第８の発明は、前記評価部は、目的変数の平均数値を算出するように構成され、前記表示部は、前記目的変数の平均数値を表示するように構成されていることを特徴とする。
【００２２】
この構成によれば、目的変数の平均数値とセグメントとを比較することができる。
【００２３】
第９の発明は、前記表示部は、特徴量が１つのセグメントを表示する第１表示形態と、特徴量が複数のセグメントを表示する第２表示形態とに切り替えて表示可能に構成されていることを特徴とする。
【００２４】
この構成によれば、たとえば、特徴量が１つのセグメントを表示する場合には折れ線グラフのような表示形態で表示することができ、一方、特徴量が２つのセグメントを表示する場合にはクロス集計表のような表示形態で表示することができる。これにより、特徴量の数に応じた適切な表示形態を選択することができる。
【００２５】
第１０の発明は、前記表示部は、前記予測モデルに用いられた複数の特徴量の代表値と、目的変数の数値との関係を表示するように構成され、使用者の操作入力に基づいて前記代表値の調整を受け付ける調整部と、前記代表値の調整量に応じて複数の属性の特徴量を変化させて、前記予測モデルから目的変数の数値を再計算し、前記表示部に表示させるシミュレーション部とを更に備えていることを特徴とする。
【００２６】
この構成によれば、予測モデルに用いられた複数の特徴量の代表値と、目的変数の数値との関係が表示部に表示されるので、使用者は、複数の特徴量の代表値と、目的変数の数値との関係を把握することが可能になる。使用者が代表値を調整すると、調整部によって受け付けられ、代表値の調整量に応じてシミュレーション部が複数の属性の特徴量を変化させて予測モデルから目的変数の数値を再計算し、計算結果が表示部に表示される。これにより、特徴量の値の変化による目的変数の変化をシミュレーションすることが可能になる。したがって、特徴量の値の変化による目的変数の変化をシミュレーションして施策の適否を事前に判断することができる。
【発明の効果】
【００２７】
本発明によれば、特徴量自動生成部により自動的に生成された新たな特徴量と、分析対象データに含まれる元の属性の特徴量とに基づいて予測モデルを生成することができ、複数の特徴量のそれぞれについて、目的変数への影響変化を示す分割点を決定することにより、各特徴量を複数のセグメントに分割するとともに、各セグメントの目的変数への影響度を指標とする評価値を算出することができる。そして、評価値が算出された特徴量のセグメントを表示部に表示することができるので、どの特徴量がどのように目的変数に影響しているのかを使用者に提示することができ、これに基づいて使用者はより深い分析を容易に行うことができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態に係るデータ分析装置の概略構成を示す図である。
【図２】データ分析装置のブロック図である。
【図３】データ分析の手順を示すフローチャートである。
【図４】データ入力用ユーザーインターフェースを示す図である。
【図５】データ分析装置の動作を示すフローチャートである。
【図６】リレーション定義用ユーザーインターフェースを示す図である。
【図７】テーブル間のリレーションの一例を示す図である。
【図８】３種類の多重度を説明する図である。
【図９】元の属性値を目的変数候補とする場合の説明図である。
【図１０】元の属性値をフラグに変換する場合の説明図である。
【図１１】元の属性値を、別の属性値のグループごとに集約した場合の説明図である。
【図１２】元の属性値を、別の属性値のグループごとに集約して生成した目的変数候補を示す図である。
【図１３】テーブルを、別のテーブルのグループごとに集約した場合の説明図である。
【図１４】テーブルを、別のテーブルのグループごとに集約して生成した目的変数候補を示す図である。
【図１５】目的変数候補生成部により自動的に生成された目的変数候補を示す図である。
【図１６】キーワード入力用ユーザーインターフェースであり、図１６Ａはキーワードが１つ入力された場合、図１６Ｂはキーワードが２つ入力された場合を示す。
【図１７】編集用ユーザーインターフェースを示す図である。
【図１８】プレビュー表示ユーザーインターフェースを示す図である。
【図１９】目的変数の集計に使用した期間より前のデータだけを使って特徴量を生成した例を示す図である。
【図２０】結果表示用ユーザーインターフェースを示す図である。
【図２１】絞り込み用ユーザーインターフェースを示す図であり、図２１Ａは属性の選択を受け付ける状態を示し、図２１Ｂは選択した目的変数をスコア順に表示した状態を示し、図２１Ｃは、目的変数に別名を指定した状態を示す。
【図２２】第１例に係る内部データの保持方法を示す図である。
【図２３】第２例に係る内部データの保持方法を示す図である。
【図２４】第３例に係る内部データの保持方法を示す図である。
【図２５】自動セグメンテーション機能によって実行される処理手順を示すフローチャートである。
【図２６】分割点の探索時に使用される式の一例を示し、目的変数が２値の場合と、目的変数が連続値の場合を示す。
【図２７】評価値が最良となる分割点と、特徴量との関係を示す図である。
【図２８】簡略化した条件で評価値と目的変数の平均値とを再計算した場合を示す図である。
【図２９】セグメント一覧を表示した結果表示用ユーザーインターフェースを示す図である。
【図３０】元の特徴量と、推奨する特徴量の組み合わせを示す図である。
【図３１】特徴量が１つのセグメントを表示する場合の詳細表示用ユーザーインターフェースを示す図である。
【図３２】特徴量が２つのセグメントを表示する場合の詳細表示用ユーザーインターフェースを示す図である。
【図３３】出力用ユーザーインターフェースを示す図である。
【図３４】シミュレーション用ユーザーインターフェースを示す図である。
【図３５】代表値を調整したときの計算手法を説明する図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【００３０】
図１は、本発明の実施形態に係るデータ分析装置１の概略構成を示す図であり、図２は、データ分析装置１のブロック図である。このデータ分析装置１は、分析対象データを分析する装置であり、このデータ分析装置１を使用することで、データ分析方法を実行することができる。データ分析装置１及びデータ分析方法は、例えば、大量の情報の中からこれまで未知であった有用な知見を得ようと試みる、いわゆるデータマイニングを行う際に使用することができる。
【００３１】
（データ分析手順）
一般的なデータ分析の手順について図３に示すフローチャートに基づいて説明する。開始後、ステップＳＡ１では前処理ステップを実行する。前処理ステップでは、分析に必要なデータ、すなわち分析対象データを収集し、分析の効果を高めるために、データの中から不要なノイズを取り除いたり、欠損した項目を埋めるといった作業を行う。この作業はＥＴＬ：Ｅｘｔｒａｃｔ／Ｔｒａｎｓｆｏｒｍ／Ｌｏａｄと呼ばれている。ステップＳＡ２では特徴抽出ステップを実行する。特徴抽出ステップでは、元データに存在する特徴量を加工し、分析により役立つ新たな特徴量を生成する。ステップＳＡ３ではモデル学習ステップを実行する。モデル学習ステップでは、前処理ステップ及び特徴抽出ステップで準備されたデータを機械学習アルゴリズムに入力し、分析結果を得る。ステップＳＡ４では後処理ステップを実行する。後処理ステップでは、モデル学習ステップで得られた分析結果を外部の機器に出力したり、分析結果に基づいてレポートを作成するといった処理を行う。
【００３２】
（データ分析装置１の全体構成）
図１及び図２に示すように、データ分析装置１は、装置本体２と、モニタ３と、キーボード４と、マウス５とを備えており、モニタ３、キーボード４及びマウス５は、装置本体２に接続されている。例えば汎用のパーソナルコンピュータに、後述する制御内容及び処理内容を実行可能なプログラムをインストールすることによってデータ分析装置１とすることができ、また、前記プログラムがインストールされた専用のハードウェアでデータ分析装置１を構成することもできる。装置本体２とモニタ３とは一体化されていてもよいし、装置本体２の一部または装置本体２が実行する機能の一部がモニタ３に内蔵されていてもよい。
【００３３】
データ分析装置１は、通信モジュール（図示せず）を内蔵しており、外部との通信が可能に構成されている。これにより、例えばインターネット回線等を介して外部サーバーからのデータのダウンロード等が可能になる。
【００３４】
また、キーボード４及びマウス５は、データ分析装置１を操作する操作手段であるとともに、各種情報を入力する入力手段、選択操作を行う選択手段等でもある。キーボード４及びマウス５に加えて、またはキーボード４及びマウス５に変えて、タッチパネル式の入力装置、音声入力装置、ペン型の入力装置等を使用することもできる。
【００３５】
（モニタ３の構成）
図１に示すモニタ３は、例えば有機ＥＬディスプレイや液晶ディスプレイ等からなるものであり、それ単体で表示部と呼ぶこともできるし、モニタ３と、図２に示す表示制御部３ａとを合わせて表示部と呼ぶこともできる。表示制御部３ａは、モニタ３に内蔵されていてもよいし、装置本体１０に内蔵されていてもよい。表示制御部３ａは、モニタ３に対して画像を表示させる表示用ＤＳＰなどから構成される。表示制御部３ａには、画像を表示させる際に画像データを一時記憶するＶＲＡＭなどのビデオメモリが含まれていてもよい。表示制御部３ａは、後述する主制御部１１のＣＰＵ１１ａから送られてきた表示指令（表示コマンド）に基づいて、モニタ３に対して所定の画像を表示させるための制御信号を送信する。たとえば、後述するような各種ユーザーインターフェースの他、アイコン、キーボード４やマウス５を用いた使用者の操作内容をモニタ３に表示させるための制御信号も送信する。また、マウス５で操作可能なポインタ等もモニタ３に表示することができるようになっている。
【００３６】
モニタ３をタッチ操作パネル型モニタとすることで、モニタ３に各種情報の入力機能、データ分析装置１の操作機能、選択操作機能を持たせることができる。
【００３７】
（装置本体２の全体構成）
図１に示す装置本体２は、制御ユニット１０と、記憶部３０とを備えている。記憶部３０は、ハードディスクドライブ、ソリッドステートドライブ（ＳＳＤ）等で構成されている。記憶部３０は、制御ユニット１０に接続されており、制御ユニット１０によって制御され、各種データを保存しておくことができるとともに、保存しておいたデータを読み出すこともできるようになっている。
【００３８】
（制御ユニット１０）
制御ユニット１０は、具体的に図示しないが、ＭＰＵ、システムＬＳＩ、ＤＳＰや専用ハードウェア等で構成することができる。制御ユニット１０は、後述するように様々な機能を搭載しているが、これらは論理回路によって実現されていてもよいし、ソフトウェアを実行することによって実現されていてもよい。
【００３９】
図２に示すように、制御ユニット１０は、主制御部１１と、データ入力部１２と、型認識部１３と、目的変数候補生成部１４と、特徴量自動生成部１５と、スコア計算部１６と、キーワード入力部１８と、属性選択部１９と、選択受付部２０と、分析部２１とを備えている。制御ユニット１０の各部は、上述したように各部分に分けて記載しているが、同じ部分が複数種の処理を実行するように構成してもよいし、更に細かく分けて複数の部分を連携させて１つの処理を実行するように構成してもよい。上記各ハードウェアは、バスＢなどの電気的な通信路（配線）を介し、必要に応じて双方向通信可能または一方向通信可能に接続されている。
【００４０】
主制御部１１は、各種プログラムに基づき数値計算、演算処理、各種情報処理を行うとともに、ハードウェア各部の制御を行う。主制御部１１は、中央演算処理装置として機能するＣＰＵ１１ａと、主制御部１１が各種プログラムを実行する際のワークエリアとして機能するＲＡＭ等のワークメモリ１１ｂと、起動プログラムや初期化プログラム等が格納されたＲＯＭ、フラッシュＲＯＭまたはＥＥＰＲＯＭ等のプログラムメモリ１１ｃとを備えている。
【００４１】
データ入力部１２は、複数の属性を含む分析対象データの入力を受け付ける部分であり、このデータ入力部１２によって図５に示すフローチャートのステップＳＢ１を実行することが可能になっている。ここでは、入力される分析対象データが１つ以上の表形式のデータ（テーブル）であることを想定している。データ入力部１２は、図４に示すデータ入力用ユーザーインターフェース５０を生成してモニタ３に表示させるとともに、データ入力用ユーザーインターフェース５０上でなされた使用者の操作を受け付ける。使用者の操作とは、たとえば、キーボード４の操作や、マウス５の操作（ボタンクリック、ドラッグ＆ドロップ、ホイールの回転等を含む）、タッチパネル式の入力装置へのタップ操作、ドラッグ操作等があり、これらのいずれの操作であってもよい。以下、同様である。
【００４２】
ここで、分析対象データは、複数の属性を含むデータである。属性とは、分析対象データに含まれる名称と型のペアからなる項目のことであり、たとえばユーザＩＤ、年齢、性別などが一般的に存在する。属性の型とは、属性がどのような値を取り得るかを定義する分類であり、分類の仕方はシステムによって異なるが、たとえば一般的なリレーショナルデータベースでは、ＩＮＴ型（整数）、ＲＥＡＬ型（実数）、ＤＡＴＥ型（日付）、ＶＡＲＣＨＡＲ型（文字列）のデータ型のうち、いずれかが属性ごとに割り当てられている。ＩＮＴ型の例は、年齢、購入額があり、ＲＥＡＬ型の例は、金利があり、ＤＡＴＥ型の例は、生年月日があり、ＶＡＲＣＨＡＲ型の例は、ユーザ名、メールアドレス等がある。
【００４３】
データ分析を行う際には、データ分析を行うデータ分析装置１（或いはプログラム）上にリレーショナルデータベースから分析対象データを取り込んだ後、図５示すフローチャートのステップＳＢ１ａにおいて、そのデータ分析装置１上での属性の型を定義する。本例では、整数、実数を含む属性の数値型と、年月日などの時間情報を含む属性の日付型と、数値型及び日付型のいずれでもない属性のカテゴリ型の３種類の型をデータ分析装置１上の型として定義する。データ分析装置１上で属性の型を定義する際には、リレーショナルデータベースの型から、予め決定されたルールに基づいてデータ分析装置１が自動で定義するようにしてもよいし、データ分析装置１の使用者が定義してもよい。また、データ分析装置１が自動で定義した後、データ分析装置１の使用者が確認し、必要に応じて修正可能にしてもよい。
【００４４】
つまり、分析対象データに含まれている属性の型は、数値であることを示す数値型、日付であることを示す日付型、及びそれら以外のカテゴリであることを示すカテゴリ型がある。図２に示す型認識部１３は、分析対象データに含まれている属性の型を判別することで、データ入力部１２に入力された分析対象データの各属性の属性値の型が、数値であることを示す数値型であるか、カテゴリであることを示すカテゴリ型であるかを認識するように構成されており、図５示すフローチャートのステップＳＢ１ｂの型認識ステップを実行する部分である。型認識部１３により、分析対象データの各属性の属性値の型が日付型であるかを認識することもできる。型認識部１３で認識された結果は、目的変数候補生成部１４に出力される。型認識部１３で認識された結果を記憶部３０に記憶させておいてもよい。この場合、目的変数候補生成部１４は、型認識部１３による認識結果を記憶部３０から読み込むことになる。
【００４５】
また、分析対象データの一部が欠損していてもよく、その場合は、図５示すフローチャートのステップＳＢ１ｃに示すように、欠損した項目を埋める作業（ＥＴＬ処理）を行えばよい。ＥＴＬ処理の詳細は後述する。
【００４６】
図４に示すデータ入力用ユーザーインターフェース５０には、ファイル選択ボタン５０ａと、データベース選択ボタン５０ｂと、ＵＲＬ指定ボタン５０ｃと、データベース表示領域５０ｄと、読み込み開始ボタン５０ｅとが設けられている。各ボタンの配置は自由に設定できる。
【００４７】
例えば、分析対象データを格納したファイルが外部記憶装置や記憶部３０に保存されていて、デスクトップ上や、開いた状態のフォルダにある場合には、使用者が当該ファイルをデータベース表示領域５０ｄへドラッグ＆ドロップ操作する。これにより、分析対象データを格納したファイル名がデータベース表示領域５０ｄに表示される。その後、読み込み開始ボタン５０ｅを押すと、データベース表示領域５０ｄに表示されているファイルが記憶部３０の所定領域に読み込まれて保存される。
【００４８】
分析対象データがデータベース上にある場合には、使用者がデータベース選択ボタン５０ｂを押す。データベース選択ボタン５０ｂが押されると、データベースに接続するための設定画面（図示せず）を表示し、テーブル名の入力や必要に応じてパスワードの入力を使用者に促す。その後、読み込み開始ボタン５０ｅを押すと、分析対象データが所定のファイル形式で記憶部３０の所定領域に読み込まれて保存されるとともに、分析対象データを格納したファイル名がデータベース表示領域５０ｄに表示される。
【００４９】
分析対象データがインターネットやサーバー上にある場合には、使用者がＵＲＬ指定ボタン５０ｃを押す。ＵＲＬ指定ボタン５０ｃが押されると、ＵＲＬ入力画面（図示せず）を表示し、ＵＲＬの入力を使用者に促す。その後、読み込み開始ボタン５０ｅを押すと、分析対象データがダウンロードされて所定のファイル形式で記憶部３０の所定領域に読み込まれて保存されるとともに、分析対象データを格納したファイル名がデータベース表示領域５０ｄに表示される。
【００５０】
分析対象データを格納したファイルは、１つのみであってもよいし、複数であってもよい。この図４では、「ｔｒａｎｓａｃｔｉｏｎ」、「ｍａｓｔｅｒ」の２つのファイルにそれぞれ格納されている分析対象データを読み込んだ場合を示している。上述した３つの方法以外の方法でファイルを読み込んでもよい。上記ファイル形式は、ｃｓｖ形式であるが、これ以外の形式、たとえばリレーショナルデータベース上のテーブルであってもよい。
【００５１】
分析対象データを読み込んだ後、分析用の型（例えば数値型、カテゴリ型、日付型）を属性ごとに設定する。この型情報は、たとえばデータベース上で「ＩＮＴ型の場合は数値型とする」というように、リレーショナルデータベース上の型から類推してもよいし、使用者からの型の指定を受け付けるようにしてもよい。
【００５２】
分析対象データを読み込んだ後、必要に応じて、分析対象データの欠損値の除去、及び分析対象データの穴埋めを行うようにしてもよい。これは使用者が行ってもよいし、データ分析装置１が実行可能な部分についてはデータ分析装置１が行うようにしてもよい。たとえば、任意の欠損値を除去したり、欠損した項目を追加する欠損値除去及び穴埋め処理、既存の値を別の値に置き換える置換処理、任意の列を削除する削除処理、任意の列を追加する追加処理、セルに任意の数式を入力する数式入力処理、任意の列に所定の情報を追加する情報追加処理等を行うことができる。このような処理により、分析対象データを加工することができる。従って、データ分析装置１ではＥＴＬ処理を行うことができ、ＥＴＬ処理を行うことで分析対象データを分析により適した形に変形することができる。これにより、分析結果の精度をより一層高めることができる。ＥＴＬ処理が完了したら、図示しないがユーザーインターフェース上の完了ボタン等を操作することで、次のステップに進むことができる。ＥＴＬ処理を行わずに、次のステップに進むこともできる。
【００５３】
以上が図５に示すフローチャートのステップＳＢ１で実行される処理である。その後、ステップＳＢ２に進み、テーブル間のリレーションを定義する。このテーブル間のリレーションの定義は、データ分析装置１の使用者が実行する。制御ユニット１０は、分析対象データの読み込み、または読み込み後の分析対象データのＥＴＬ処理が完了したことを検出すると、図６に示すリレーション定義用ユーザーインターフェース５１を生成してモニタ３に表示させるとともに、リレーション定義用ユーザーインターフェース５１上でなされた使用者の操作を受け付ける。
【００５４】
リレーション定義用ユーザーインターフェース５１には、組となる２つのテーブルの名称をそれぞれ表示する第１テーブル名表示領域５１ａ及び第２テーブル名表示領域５１ｂとが設けられている。さらに、リレーション定義用ユーザーインターフェース５１には、第１テーブル名表示領域５１ａに表示されたテーブルに含まれる複数の属性の中から１つを選択して表示する第１属性選択領域５１ｃと、第２テーブル名表示領域５１ｂに表示されたテーブルに含まれる複数の属性の中から１つを選択して表示する第２属性選択領域５１ｄとが設けられている。第１属性選択領域５１ｃ及び第２属性選択領域５１ｄは、例えばプルダウンメニュー形式で構成することができ、各々をクリックすることで、各テーブルに含まれる複数の属性の名称を一覧表示し、その中から所望の属性を選択することが可能になっている。選択された属性は、使用者によって指定された属性であり、指定された属性の名称のみが第１属性選択領域５１ｃ及び第２属性選択領域５１ｄに表示され、指定されなかった属性の名称は表示されない。
【００５５】
テーブル間のリレーションの定義は、リレーション定義用ユーザーインターフェース５１に一例を示しているように、テーブルの組（顧客テーブルと注文テーブル）に対してそれぞれ属性の名称を指定することで行われる。図７に示すように、指定した属性の値が一致する行同士が、対応しているとみなされる。図７に示す例では、「顧客テーブル」の「ｕｓｅｒ００１」が「注文テーブル」の「ｕｓｅｒ００１」に対応し、「顧客テーブル」の「ｕｓｅｒ００２」が「注文テーブル」の「ｕｓｅｒ００２」に対応し、「顧客テーブル」の「ｕｓｅｒ００４」が「注文テーブル」の「ｕｓｅｒ００４」に対応している例を関連線Ｌで示している。
【００５６】
リレーショナルデータベースの場合、データベースの側で既にテーブルの属性同士の対応関係が定義されていることがある。このデータベース側で定義される対応関係を外部キー制約と呼ぶ。この外部キー制約がある場合、設定済の対応関係を上記ステップＳＢ１においてデータ分析装置１側で読み込み、テーブル間のリレーションの定義をデータ分析装置１側で自動的に設定してもよい。
【００５７】
以上のようにしてテーブル間のリレーションが定義されると、データ分析装置１側ではそれぞれの対応関係について多重度を自動判別する。多重度の自動判別は、制御ユニット１０で行われる。図８に示すように、多重度には１：１型、１：Ｎ型、Ｎ：Ｎ型の３種類があり、テーブルの内容を参照することで判別することができる。１：１型は、一方のテーブルの１行が他方のテーブルの１行に対応している関係である。１：Ｎ型は、一方のテーブルの１行に他方のテーブルが複数行対応している関係である。Ｎ：Ｎ型は、一方のテーブルの１行に他方のテーブルが複数行対応し、他方のテーブルの１行に一方のテーブルが複数行対応している関係である。
【００５８】
以上が図５に示すフローチャートのステップＳＢ２で実行される処理である。その後、ステップＳＢ３に進み、目的変数候補の自動生成処理を行う。目的変数候補の自動生成処理は、図２に示す目的変数候補生成部１４が行う処理であり、始めに、図２に示す型認識部１３で認識された結果を目的変数候補生成部１４が読み込む。
【００５９】
目的変数候補生成部１４は、図５示すフローチャートのステップＳＢ３ａにおいて、型認識部１３で認識された数値型である少なくとも１つの属性を集約対象の属性とし、型認識部１３で認識されたカテゴリ型である少なくとも１つの属性を集約単位の属性とし、集約単位の属性のカテゴリ値毎に、集約対象の属性の数値を、予め用意された集約関数に基づいて集約し、新たな目的変数候補を自動的に生成する。目的変数とは、データ分析装置１の使用者が予測したい属性のことである。また、集約関数は、ある集約単位（性別、ユーザーなど）で、集約対象の属性（購入額など）の複数の属性値を集約するために適用される関数のことであり、合計（ＳＵＭ）、平均（ＡＶＥ）などが一般的に用いられるが、これら以外の関数を用いることもできる。
【００６０】
また、目的変数候補生成部１４は、型認識部１３で認識された数値型である少なくとも１つの属性を集約対象の属性とし、型認識部１３で認識された数値型である少なくとも１つの属性を集約単位の属性とし、集約単位の属性の数値毎に、集約対象の属性の数値を、予め用意された集約関数に基づいて集約し、新たな目的変数候補を自動的に生成するように構成されていてもよい。
【００６１】
また、目的変数候補生成部１４は、型認識部１３による認識の結果に関わらず、少なくとも１つの属性を集約対象の属性とし、少なくとも１つの他の属性を集約単位の属性とし、集約単位の属性の属性値毎に、集約対象の属性の属性値を、予め用意された集約関数に基づいて集約し、新たな目的変数候補を自動的に生成するように構成されていてもよい。この場合、型認識部１３は省略することができる。
【００６２】
以下、目的変数候補生成部１４について詳しく説明する。目的変数候補生成部１４によって新たに生成された目的変数候補とは、分析対象データに含まれる属性と、集約関数の組み合わせに基づいて自動的に生成された目的変数候補である。詳細は後述するが、使用者は、複数の目的変数候補が存在している場合、それら目的変数候補の中から所望のものを選択し、選択した目的変数候補を目的変数とすることができる。
【００６３】
目的変数候補生成部１４は、データ入力部１２に入力されたテーブルと、テーブル間のリレーションの定義情報とを基にして目的変数候補を探索し、図２に示す候補記憶部３０ａに記憶する。目的変数候補は、１．元の属性値、２．元の属性値をフラグに変換した値、３．元の属性値を、別の属性値のグループごとに集約した値、４．テーブルを、別のテーブルのグループごとに集約した値の４種類に大別することができる。以下、それぞれについて説明する。
【００６４】
１．元の属性値
元の属性値は、図９に示すように、データ入力部１２に入力された分析対象データに含まれる属性であり、それらの中のうちの１つを目的変数候補として扱うことができる。機械学習では目的変数は数値で与える必要があるため、ここでは数値型の変数のみを対象とする。
【００６５】
２．元の属性値をフラグに変換した値
元の属性値をフラグに変換した値は、データ入力部１２に入力された分析対象データに含まれる元の属性に対して所定の条件式を適用することで２値の情報に変換したものである。この変換後の情報を目的変数候補とすることができる。条件式の適用方法について、図１０に示すように、属性値の型がカテゴリ型（例：性別）の場合、属性の値がある値に一致するかどうかに基づいて２値の情報に変換することができる。この例では、「男」が「１」、「女」が「０」である。また、条件式の適用方法について、属性値の型が数値型(例：年齢)の場合、属性の値がある値以上／ある値以下／ある値の範囲内かどうかに基づいて２値の情報に変換することができる。数値の場合、しきい値の設定方法が多数考えられるため、「平均値」、「最頻値」といった統計量をしきい値として自動的に選択するようにしてもよい。また、使用者に任意のしきい値を指定させるようにしてもよい。この場合、しきい値の入力部を設けることができる。また、カテゴリ変数の場合も、値の種類が多数ある場合には、頻出上位の値だけを自動的に選択してもよい。
【００６６】
３．元の属性値を、別の属性値のグループごとに集約した値
元の属性値を、別の属性値のグループごとに集約した値は、集約対象の属性の値を、別の属性の種類ごとにグループ化し、各グループで集約関数を適用した値である。以下のａ）〜ｄ）の４つ条件の組み合わせを網羅的に試し、目的変数候補として得る。
【００６７】
条件                        取り得る値
ａ）集約対象の属性            数値型の全ての属性
ｂ）集約の単位となる属性      カテゴリ型の全ての属性又はリレーション定義に使った属性
ｃ）集約関数の種類            事前に定義された関数セット(たとえばSUM,AVG)
ｄ）集約の条件(オプション)    自動生成された条件セット(たとえば週次、月次)、
または使用者による設定
尚、ａ）、ｂ）のどちらとも無関係なテーブルで条件を指定した場合は無視されるようにする。
【００６８】
図１１に示すテーブルを例にすると、顧客テーブルの属性「ユーザー」と、注文テーブルの「ユーザー」とを結ぶ線Ｌ１は、図５に示すフローチャートのステップＳＢ２でテーブル間のリレーションが定義されたことを表している。また、線Ｌ１の端部の「１」及び「Ｎ」は多重度を表しており、値に重複がなければ１、重複があればＮとなる。この場合、「年齢」、「購入額」が数値型の属性に該当し、「ユーザー」、「性別」がカテゴリ型の属性に該当し、これが型認識部１３で認識される。
【００６９】
集約の条件は、たとえば属性値の型として日付型の属性（ここでは「購入日」）があったときに、その属性に対して、直近１ヶ月、直近１週間など、複数の条件を自動的に生成する。つまり、目的変数候補生成部１４は、データ入力部１２に入力された分析対象データに日付型の属性が含まれる場合、所定の期間を集約の条件として自動生成するように構成されている。この所定の期間は任意の期間に設定することができ、例えば年月日や時刻で設定することもできる。このとき、実際の属性の値から、条件を自動的に選別してもよい。たとえば、実際の属性の値が所定期間に集中している場合、その所定期間を超えた期間を除外する等であり、具体的には、実際の属性の値が２週間の範囲に集中している場合、「直近１か月」という条件を除外する。
【００７０】
ここで、集約関数をＳＵＭ（合計）、ＡＶＥ（平均）の２種類、集約条件を「全期間」、「購入日が２０１９／１／１以降」の２種類とすると、図１２に示すように、全部で２×２×２×２＝１６通りの候補が生成される。
【００７１】
ただし、図１２に示す候補３、４については、集約の単位(ユーザー)に対して常に集約対象(性別、年齢)が１種類しかないことが多重度から分かっているので、これらの候補は削除する。すなわち、多重度に基づいて集約対象が何種類あるか判定し、その判定の結果、集約対象の種類が所定数以下の場合には、候補を削除するように構成することができる。また、図１２に示す候補９〜１２については、ａ）、ｂ）の属性が顧客テーブルの中で完結しており、ｄ）の条件式との関連性が無いため削除する。その結果、残った１０個の候補（候補１、２、５〜８、１３〜１６）が目的変数候補に追加される。
【００７２】
ここでは集約の単位ｂ）は単一の属性としていたが、複数の組み合わせによる集約で目的変数を生成してもよい。その場合、例えば、「都道府県×年代ごとの購買額」、「店舗×月度ごとの売上額」といった目的変数を定義することができる。
【００７３】
目的変数の候補を生成するにあたって、データ分析装置１の内部では以下のようなＳＱＬ文を生成している。
【００７４】
SELECT SUM(性別) FROM 注文テーブル WHERE 購入日 >= '2019-01-01' GROUP BY ユーザー;
使用者に提示する際に分かり易くするため、
｛集約の単位｝ごとの｛条件｝の｛集約関数｝｛集約の対象｝
のようなテンプレートにあてはめることで、自然言語での表現も自動生成しておく。自然言語での表現と、実際の生成方法（ＳＱＬ）とを関連付けて記憶部３０に記憶させておくことができる。
【００７５】
４．テーブルを、別のテーブルのグループごとに集約した値
この場合、集約を属性に対してではなく、テーブルに対して行う。集約の方法は、「テーブルの行数」、「テーブルに行があるか」の２種類であり、これらの情報を取得することで実行可能である。
【００７６】
条件                        取り得る値
ａ）集約対象のテーブル            全てのテーブル
ｂ）集約の単位となる属性      カテゴリ型の全ての属性又はリレーション定義に使った属性
ｃ）集約関数の種類            事前に定義された関数セット(たとえば行数、有無)
ｄ）集約の条件(オプション)    自動生成された条件セット(たとえば週次、月次)、
または使用者による設定
【００７７】
図１３に示すテーブルを例にすると、顧客テーブルの属性「ユーザー」と、注文テーブルの「ユーザー」とを結ぶ線Ｌ１は、図１１に示すものと同じである。上記「３．元の属性値を、別の属性値のグループごとに集約した値」と同様に、多重度が１であるような集約を削除すると、図１４に示す候補１〜８が残ることになる。たとえば候補６は、「顧客離反」という指標であり、マーケティングでしばしば使われる指標であり、データ分析の上で有用である。
【００７８】
データ分析装置１の使用者が入力した全てのテーブルの全ての属性に対して、上記１〜４の中から適用可能なものを全て適用し、それぞれを目的変数候補として図２に示す候補記憶部３０ａに記憶する。上記の例であれば、図１５に示すように２２通りの目的変数候補が自動的に生成される。
【００７９】
以上が図５に示すフローチャートのステップＳＢ３で実行される処理である。その後、ステップＳＢ４に進み、特徴量を自動生成する。特徴量の生成は、目的変数候補の生成とほぼ同じ処理であり、ステップＳＢ３において目的変数候補の生成と共に行うようにしてもよい。また、特徴量の生成は、図２に示す特徴量自動生成部１５で行われるが、目的変数候補生成部１４で行うようにしてもよい。
【００８０】
特徴量自動生成部１５は、分析対象データに含まれる元の属性又は複数の属性の組み合わせに対し所定の関数を適用することにより新たな特徴量を自動的に生成するように構成されている。特徴量は、説明変数と同義であり、目的変数の説明に用いられる属性である。特徴量の自動生成の詳細については後述する。
【００８１】
図５に示すフローチャートのステップＳＢ５では、目的変数候補のスコアリングを行う。目的変数候補のスコアリングとは、目的変数候補の有用性をあらわすスコアを計算することであり、図２に示すスコア計算部１６で行われる。
【００８２】
上記の例（図１１、図１３に示す例）では、２つのテーブル（顧客テーブル、注文テーブル）の各々に属性が３つしか無い場合を挙げたが、実際の分析データでは、より多くのデータが対象となるため、目的変数候補も多数生成される。例えば数値型の属性が２０個、カテゴリ型の属性が２０個あり、「平均」、「合計」、「最大」、「最小」を集約関数とした上で、集約期間を「全期間」、「１年間」、「半年間」の３種類とした場合、属性を集約した目的変数は２０×２０×４×３=４８００種類に及ぶ。
【００８３】
そのため、生成した目的変数候補を全て提示するだけでは、使用者が所望の目的変数を得ることは難しい。そこで、図５に示すフローチャートのステップＳＢ５では、ステップＳＢ３で生成した目的変数候補に対して、使用者にとっての有用さをあらわすスコアを計算する。例えば、このスコアの値が大きい順に使用者に提示したり、スコアの値が所定以上のもののみ使用者に提示することで、使用者は素早く所望の分析を開始することができる。
【００８４】
スコア計算の手法としては、例えば以下１〜７の指標や、それらを任意で組み合わせたものを使うことができるが、これらに限られるものではない。
【００８５】
１．生成される目的変数の行数
スコア計算部１６は、生成される目的変数の行数に基づいてスコアを計算するように構成することができる。すなわち、目的変数が何行分生成されるのかは、目的変数候補によってそれぞれ異なる。例えば図１５に示す例であれば、「性別ごとの合計購入額」の場合、目的変数は２行分(男、女)しか生成されないことになる。教師あり学習によるデータ分析を行う場合、データ数が少ないと精度の良い分析が出来ないことが一般的に知られている。そのため、上記のように２行しかデータが生成されないような場合、分析を行っても意味のある結果が得られないと予想される。そこで、生成される目的変数の行数をスコアとすることで、有用さを表現することができる。つまり、生成される目的変数の行数が少ないほどスコアが低くなるようにし、生成される目的変数の行数が多いほどスコアが高くなるようにする。
【００８６】
２．生成される目的変数のばらつき
スコア計算部１６は、生成される目的変数の分散に基づいてスコアを計算するように構成することができる。すなわち、教師あり学習によるデータ分析を行う場合、目的変数の値がすべて同じ値になると、意味のある計算をすることができない。説明変数の値を全て無視して、常に定数を出力するのが最適解となってしまうからである。そこで、生成される目的変数の分散をスコアに反映させることで、そのようなケースのスコアを下げる。つまり、分散が小さければスコアが低くなるようにする。
【００８７】
３．テーブル間のリレーション定義に使った属性を集約の単位としているかどうか
スコア計算部１６は、テーブル間のリレーション定義に使った属性に基づいてスコアを計算するように構成することができる。すなわち、属性ごとに集約して目的変数を作る場合に、集約の単位は、１）カテゴリ変数  ２）リレーション定義に使った属性のどちらも使うことができる。一般的には、テーブル間のリレーション定義に使う属性は、たとえば「ユーザー」や「アイテム」など、ビジネス上重要な粒度になっていることが多い。そこで、テーブル間のリレーション定義に使った属性を得て、リレーション定義に使った属性を用いた目的変数に対して、より高いスコアを与えるようにする。
【００８８】
４．各グループ内のレコード数
スコア計算部１６は、グループ内のレコード数（データ数）に基づいてスコアを計算するように構成することができる。すなわち、目的変数候補の生成時、「ユーザーごとの平均年齢」のような、各グループに１つしかレコードが無いケースを除くようにしている。このように自明なケースでなくても、グループ内のレコード数が少ない場合には、平均値を計算しても有用でないことが多い。そこで、平均値を使った目的変数に関しては、各グループ内のレコード数もスコアに加味するようにし、レコード数が多いほどスコアを高くし、レコード数が少ないほどスコアを低くする。この場合、レコード数を取得するレコード数取得手段を設けることができる。
【００８９】
５．過去に選択されたことのある目的変数との類似度
スコア計算部１６は、過去に選択されたことのある目的変数との類似度に基づいてスコアを計算するように構成することができる。すなわち、使用者が過去に用いたことのある目的変数は、再度使用される可能性が高いと推定される。そこで例えば、以下のようなスコア基準を用いることができる。この場合、過去に用いたことのある目的変数を図２に示す記憶部３０に記憶させておき、スコアを計算する際に、記憶部３０から、過去に用いたことのある目的変数を読み込むようにすればよい。
スコア＝１  ｉｆ直近Ｎ回に使用された目的変数のいずれかと一致
０  ｅｌｅｓ
【００９０】
あるいは、直近Ｎ回のうち何回の目的変数に使われたのかを直近採用率と定義し、目的変数の構成要素ごとの採用率を組み合わせてもよい。
【００９１】
スコア＝集約対象の直近採用率×集約の単位の直近採用率×集約関数の直近採用率
複数の使用者が利用可能なシステムとしてデータ分析装置１を提供する場合、他の使用者が同じデータで採用した目的変数に対して高いスコアを与えることもできる。例えば、使用者と、その使用者が採用した目的変数とを関連付けて図２に示す記憶部３０に記憶させておき、スコアを計算する際に、記憶部３０から、その情報を読み込むようにすればよい。この場合、協調フィルタリングのような、一般的な推薦アルゴリズムとして知られる機械学習の手法を用いることもできる。
【００９２】
６．属性の名前
スコア計算部１６は、属性の名前に基づいてスコアを計算するように構成することができる。すなわち、「単価」、「売上」、「不良品」、「離反」といった、データ分析において目的変数に使用されやすい意味の文字を含む場合にスコアを加算する。どういった名前の場合にどれ位のスコアを加算するのかは、事前にシステム側で生成した対応表を照合することで行ってもよいし、機械学習を用いて属性の名前からスコアを直接算出してもよい。
【００９３】
７．欠損値の割合
スコア計算部１６は、欠損値の割合に基づいてスコアを計算するように構成することができる。すなわち、平均値を計算する場合に、対象グループ内に集約対象となるレコードが存在しない場合、目的変数の値が定義できない。こういった場合を欠損値と呼び、問題ごとに０などの適切な値を代わりに埋めるか、欠損した行を分析から除外する必要がある。欠損値の割合が多い場合は、分析の信頼度自体も下がると考えられるため、欠損値が多いほどスコアを下げる。
スコア＝１００−目的変数における欠損値の割合（％）
【００９４】
以上が図５に示すフローチャートのステップＳＢ５で実行される処理である。その後、ステップＳＢ６に進み、目的変数の絞り込みを行う。目的変数の絞り込みとは、ステップＳＢ３で生成された多数の目的変数候補の中から、使用者が所望の目的変数を絞り込むことであり、図２に示すキーワード入力部１８及び属性選択部１９によって行うことができる。キーワード入力部１８は、図１６に示すキーワード入力用ユーザーインターフェース５４を生成してモニタ３に表示させるとともに、キーワード入力用ユーザーインターフェース５４上でなされた使用者の操作を受け付ける。
【００９５】
キーワード入力用ユーザーインターフェース５４には、使用者が検索キーワードのようなテキストを入力可能な入力領域５４ａと、候補表示領域５４ｂとが設けられている。入力領域５４ａに入力する情報はキーワード情報であり、図１６Ａに示すように１つの単語からなるキーワード情報であってもよいし、図１６Ｂに示すように２つ以上の単語からなるキーワード情報であってもよく、複数のキーワード情報を入力することができるようになっている。
【００９６】
入力領域５４ａは、使用者からのテキスト入力、即ちキーワード情報の入力を受け付けるように構成されており、テキストの入力を受け付けると、目的変数候補生成部１４は、図５に示すフローチャートのステップＳＢ３で生成された多数の目的変数候補の中から、その入力にマッチするような目的変数候補の自然言語表現を検索する。目的変数候補生成部１４は、目的変数候補のリストを予め生成しておき、キーワード入力部１８により使用者が入力したキーワード情報に関連する目的変数候補を前記リスト内から抽出するように構成されている。
【００９７】
具体例について図１６に基づいて説明すると、図１６Ａに示す例では、１つの単語が入力されているので、その単語を含む目的変数を検索する。図１６Ｂに示す例では、２つの単語が入力されているので、２つの単語を含む目的変数を検索する。検索の際、目的変数候補と完全一致していない入力に対しても、単語の類似度等に基づいた曖昧一致検索（例：購入額と購買額）を行うようにしてもよい。また、ＡＮＤ検索とＯＲ検索との選択が可能に構成されていてもよい。
【００９８】
候補表示領域５４ｂには、検索結果として、使用者が入力したテキストを含む目的変数候補を表示する。これはモニタ３に表示されるので、モニタ３は、目的変数候補生成部１４により生成された新たな目的変数候補を表示するものであるとともに、キーワード入力部１８により使用者が入力したキーワード情報に関連する目的変数候補（前記リスト内から抽出された目的変数候補）を表示するものである。尚、目的変数の絞り込みを行う必要が無い場合には、テキスト検索を行うことなく、目的変数候補生成部１４により生成された新たな目的変数候補をモニタ３に表示させることができる。生成された新たな目的変数候補がモニタ３に表示されるので、使用者が目的変数候補を容易に把握することが可能になる。
【００９９】
候補表示領域５４ｂには、スコア計算部１６で計算したスコアが高い順に目的変数候補が表示される。スコアが高いものほど上に位置するように目的変数候補をランキング形式で並べて表示することができる。検索の結果、目的変数候補が多い場合には、スコア計算部１６で計算したスコアの上位のもののみ、候補表示領域５４ｂに表示させることができる。このとき表示可能な目的変数候補の数は、５件や１０件程度にすることができる。つまり、モニタ３は、スコア計算部１６で計算されたスコアが所定以上の目的変数候補を表示可能に構成することができ、そのときに表示される件数を所定件数とすることができる。
【０１００】
また、モニタ３には、データ入力部１２に入力された分析対象データの元の属性と、目的変数候補生成部１４により生成された新たな目的変数候補とを同時に表示することが可能である。また、モニタ３には、データ入力部１２に入力された分析対象データの元の属性の属性値をフラグに変換した値を表示するように構成することも可能である。
【０１０１】
また、生成される目的変数の列名を使用者が編集できる手段を備えていてもよい。すなわち、キーワード入力部１８は、図１７に示す編集用ユーザーインターフェース５５を生成してモニタ３に表示させるとともに、編集用ユーザーインターフェース５５上でなされた使用者の操作を受け付ける。編集用ユーザーインターフェース５５には、編集対象の目的変数の列名を入力する編集対象入力領域５５ａと、変更後の列名を入力する列名入力領域５５ｂとが設けられている。編集対象入力領域５５ａに「ユーザーごとの平均購入額」と入力し、列名入力領域５５ｂに「購買単価」と入力すると、目的変数の列名が「購買単価」に変更される。これにより、データ分析の結果をより分かりやすくすることができる。
【０１０２】
図２に示す属性選択部１９は、集約対象又は集約単位の属性に関する使用者からの選択入力を受け付ける部分であり、キーワード入力部１８と同様に、属性を選択して入力することが可能に構成されている。この場合、属性選択部１９により使用者が入力した属性を集約対象又は集約単位として生成された目的変数候補がモニタ３に表示される。
【０１０３】
目的変数候補生成部１４による目的変数候補の生成と、使用者からの集約対象又は集約単位の属性に関する入力の受け付けとは、どちらが先であってもよい。目的変数候補生成部１４による目的変数候補の生成後、使用者からの集約対象又は集約単位の属性に関する入力の受け付けた場合には、既に生成されている目的変数候補の中から、使用者が入力した属性を集約対象又は集約単位として生成されている目的変数候補を抽出して表示部に表示させることができる。一方、目的変数候補生成部１４による目的変数候補の生成前に、使用者からの集約対象又は集約単位の属性に関する入力の受け付けた場合には、使用者が入力した属性を集約対象又は集約単位として目的変数候補生成部１４が目的変数候補を生成し、生成された目的変数候補を表示部に表示させればよい。
【０１０４】
図２に示す選択受付部２０は、モニタ３に表示された目的変数候補の中から、使用者による目的変数の選択を受け付ける部分である。具体的には、図１６に示すキーワード入力用ユーザーインターフェース５４の候補表示領域５４ｂに表示されている目的変数候補のうち、使用者によってどれが選択されたかを検出可能に構成されている。たとえば、候補表示領域５４ｂに表示されている目的変数候補の一つに重なるようにマウス５のポインタを配置してクリック操作することで当該目的変数を選択することができ、また、キーボード４の操作等によっても目的変数を選択することができる。選択受付部２０は、複数の目的変数を選択可能に構成することもできる。
【０１０５】
モニタ３に、元の属性と、新たな目的変数候補とが表示されている場合、選択受付部２０は、元の属性と、新たな目的変数候補との中から、使用者による目的変数の選択を受け付けることができる。また、モニタ３に、元の属性と、新たな目的変数候補と、フラグに変換した値とが表示されている場合、選択受付部２０は、元の属性と、新たな目的変数候補と、フラグに変換した値との中から、使用者による目的変数の選択を受け付けることができる。候補表示領域５４ｂには、目的変数候補が複数表示されていることもあれば、１つだけ表示されていることもあるが、いずれの場合も、使用者による目的変数の選択を受け付けるように構成されている。
【０１０６】
以上が図５に示すフローチャートのステップＳＢ６で実行される処理である。その後、ステップＳＢ７に進み、プレビュー表示を行う。プレビュー表示は、使用者がステップＳＢ６で選択した目的変数について、分析対象データを使って実際に目的変数の計算を行い、その結果をプレビューで表示する。制御ユニット１０は、たとえば、図１８に示すプレビュー表示ユーザーインターフェース５６を生成してモニタ３に表示させる。プレビュー表示ユーザーインターフェース５６には、使用者が選択した目的変数を表示する目的変数表示領域５６ａと、実際に目的変数の計算を行った結果を表示するプレビュー表示領域５６ｂと、分析開始ボタン５６ｃとが設けられている。プレビュー表示領域５６ｂに表示する結果は、データ量が多い場合に一部のデータ（本例では全データの１０％）だけを用いた計算結果であってもよい。計算に用いたデータ数が使用者に分かるように、プレビュー表示ユーザーインターフェース５６に表示することができる。
【０１０７】
ステップＳＢ６の処理により、分析部２１による予測モデルの生成前に、分析結果の一部のみをモニタ３にプレビュー表示することができる。プレビュー表示することによって、使用者が意図した分析内容になっているかどうかを分析実行前に確認することができる。
【０１０８】
使用者が意図した分析内容になっている場合には、使用者はプレビュー表示ユーザーインターフェース５６の分析開始ボタン５６ｃを押す。これにより、図５に示すフローチャートのステップＳＢ８に進む。使用者が意図した分析内容になっていない場合には、ステップＳＢ６に戻ることができ、別の目的変数候補を選択することができる。
【０１０９】
ステップＳＢ８では、選択受付部２０で選択された目的変数を使って、予測モデルを用いた実際のデータ分析を行う。既知の機械学習手法（たとえばＡｕｔｏＷＥＫＡ等)を用いて、複数の予測モデルから最適なものを選択してもよい。これは図２に示す分析部２１で行われる。分析部２１は、特徴量自動生成部１５により生成された新たな特徴量を用いて、選択受付部２０により選択された目的変数を予測するための予測モデルを生成することができるように構成されている。たとえば、複数の特徴量から目的変数を予測するための予測モデルを生成することができ、この予測モデルは、例えば重回帰分析や決定木によって作ることができる。その生成手法については様々あるが、いずれも従来から知られた手法を用いることができる。
【０１１０】
（特徴量の自動生成）
例えば目的変数を「ユーザーごとの購入額の合計」とした場合に、特徴量にも同じ「ユーザーごとの購入額の合計」を作成すると、他の特徴量を全て無視した分析結果が出てしまい、意味のある分析結果を得ることができない。このような、目的変数の情報が意図せず特徴量に「漏れる」状況はリークと呼ばれており、機械学習に習熟していない分析者が陥りやすい。
【０１１１】
リークを防ぐために、上述した特徴量自動生成部１５は、選択受付部２０で選択された目的変数を生成する際に、目的変数候補生成部１４が用いた集約対象の属性の少なくとも一部の属性値を除いた属性に所定の関数を適用することにより、新たな特徴量を自動的に生成するように構成されている。従って、使用者が目的変数を選択すると、新たな特徴量が自動的に生成されることになるが、このとき、目的変数候補生成部１４が目的変数を生成する際に用いた集約対象の属性の少なくとも一部の属性値を除いた属性に所定の関数が適用されるので、目的変数の情報が意図せず特徴量に漏れる状況が回避される。
【０１１２】
また、特徴量自動生成部１５は、分析対象データに含まれる元の属性又は複数の属性の組み合わせに対し所定の関数を適用することにより新たな特徴量を自動的に生成し、生成された特徴量から、選択受付部２０により選択された目的変数に用いられた集約対象の属性の少なくとも一部の属性値の情報を含む特徴量を除外し、最終的な特徴量を生成するように構成することもできる。この場合、目的変数に用いられた集約対象の属性の少なくとも一部の属性値の情報を含む特徴量が除外されて最終的な特徴量になるので、目的変数の情報が意図せず特徴量に漏れる状況が回避される。従って、機械学習に習熟していない者であっても、目的変数の情報が意図せず特徴量に漏れる状況（リーク）を自動的に防ぐことができる。
【０１１３】
以下、リークを防止する手段としてデータ分析装置１に設けることが可能な構成について具体的に説明する。
【０１１４】
１．目的変数の集計に使用した期間より前のデータだけを使う
図５に示すフローチャートのステップＳＢ３において、日付によって目的変数の集約条件を設定した場合、その日付より前の分析対象データは目的変数には使われていないため、特徴量の計算に使ってもリークは発生しない。そこで、集約条件に日付が指定されているか否かを判定し、日付が指定されている場合には、目的変数の集約条件とした期間と、特徴量の計算に使用する分析対象データの期間とが重複しないようにし、特徴量の生成にあたってはその日付より前の分析対象データだけを対象とする。これにより、たとえば図１９に示すように、目的変数として、「ユーザー毎の2019/1の平均購入額」とした場合に、特徴量としてはそれ以前の「ユーザー毎の2018/12の平均購入額」を生成することができる。つまり、特徴量自動生成部１５は、日付によって目的変数の集約条件が設定された場合、集約対象の該当期間の属性値を除いて特徴量を自動的に生成するように構成することができ、具体的には、その日付よりも前の分析対象データだけを対象として特徴量を自動的に生成する。
【０１１５】
２．目的変数の集計対象となった属性／テーブルは特徴量に使用しない
特徴量自動生成部１５は、目的変数の集約条件に日付が指定されているか否かを判定し、日付が指定されていない場合、目的変数に用いられた属性自体を特徴量の生成対象から除外するように構成することができる。目的変数の集約条件に日付が指定されていない場合は上記１の手法を用いることができないので、その場合には、目的変数に使用した属性自体を特徴量の生成対象から外す。これにより、目的変数の情報が意図せず特徴量に漏れる状況が回避される。この場合、目的変数に使用した属性を記憶部３０等から読み込むようにすればよい。
【０１１６】
３．目的変数と集計期間を合わせる
目的変数候補生成部１４による目的変数候補の生成に用いる分析対象データの集計期間と、特徴量自動生成部１５による特徴量の生成に用いる分析対象データの集計期間とを合わせることができる。たとえば、目的変数を「2019/1の店舗ごとの売り上げの合計」とした場合、データ分析装置１の使用者は月単位での集計に興味があると推測できる。そこで、特徴量についても、「2018/12(前月)の店舗ごとの売り上げの合計」、「2018/1(前年同月)の店舗ごとの売り上げの合計」のような、１か月で集計した特徴量を加えることが有効だと推測されるので、そのような期間で集計した特徴量を生成する。同様に、「2019/1/1〜1/8の売り上げの合計」が目的変数であれば、週次で集計した特徴量を自動的に生成する。集約の期間を総当たりで試行すると時間がかかるのに対して、使用者が指示した時間の単位に合わせた特徴量を生成することで、使用者にとってより解釈しやすい結果を素早く得ることができる。
【０１１７】
図２０は、結果表示用ユーザーインターフェース５７を示している。結果表示用ユーザーインターフェース５７は、制御ユニット１０が生成してモニタ３に表示させる。結果表示用ユーザーインターフェース５７には、目的変数を表示する目的変数表示領域５７ａと、セグメントを表示するセグメント表示領域５７ｂとが設けられている。セグメントは、分析対象データに対して行の抽出条件を適用することで抽出されるデータの部分集合であり、属性とその条件との組み合わせと呼ぶこともできる。
【０１１８】
（目的変数の絞り込み手法の別形態）
図５に示すフローチャートのステップＳＢ６では、ステップＳＢ３で生成された目的変数候補の絞り込みを行っているが、この手法は上述した手法に限られるものではなく、以下の手法を用いることもできる。すなわち、目的変数を絞り込むにあたって、段階的な選択を受け付けることが可能に構成することができる。第１段階として、図２１Ａに示すように、目的変数について集約の単位となる属性の選択を受け付ける。ここで提示される選択肢は、ステップＳＢ３で生成した全ての目的変数候補のうち、少なくとも１つで集約の単位として選択されている属性とする。図２１Ａは絞り込み用ユーザーインターフェース６０を示しており、制御ユニット１０が絞り込み用ユーザーインターフェース６０を生成してモニタ３に表示させる。絞り込み用ユーザーインターフェース６０には、集約の単位となる属性の選択を受け付けるプルダウンメニュー形式の属性選択部６０ａと、戻るボタン６０ｂと、次へボタン６０ｃとが設けられている。属性選択部６０ａによって属性を選択した後、次へボタン６０ｃを押すことで、第２段階に進む。
【０１１９】
第２段階では、図２１Ｂに示すように、全ての目的変数候補のうち、第１段階で選択した属性を集約の単位とするような目的変数だけをスコア順に提示する。これは、絞り込み用ユーザーインターフェース６０に設けられたスコア順表示領域６０ｄに表示される。スコア順表示領域６０ｄには、目的変数の選択を受け付けるプルダウンメニュー形式の選択部が設けられており、目的変数の選択を受け付けることができるようになっている。これによって、多数の目的変数候補の中から、使用者が分析したい粒度に合致する目的変数を素早く選択することができる。目的変数を選択した後、次へボタン６０ｃを押すことで、第３段階に進む。
【０１２０】
最後の第３段階では、選択された目的変数に、分析結果を分かりやすく表示するための別名の指定を受け付ける。図２１Ｃに示すように、絞り込み用ユーザーインターフェース６０には、別名を入力可能な別名指定領域６０ｅが設けられている。使用者が別名指定領域６０ｅに別名を入力すると、第２段階で選択した目的変数の名称が、入力された別名に変更される。
【０１２１】
この例では、ステップＳＢ３で先に全ての集約単位についての候補を生成してからステップＳＢ６で使用者による選択を受け付けているが、この順番は逆でもよい。すなわち、先に使用者による集約の単位の選択を受け付けてから、その属性を集約の単位とするような目的変数だけを生成し、使用者に一覧提示することもできる。それによって、生成される目的変数候補の数を減らすことができる。また、ここでは集約の単位となる属性の選択を受け付けていたが、集約対象の属性をかわりに受け付けてもよい。
【０１２２】
（実施例）
以下、目的変数の生成処理の各ステップにおける、内部データの保持方法について３種類の実施例について説明する。
【０１２３】
（第１例）
第１例では、図２２に「１．入力データ」として示すように、使用者が顧客テーブルと注文テーブルの２つのテーブルを分析対象データとして入力した場合を想定する。目的変数候補生成部１４は、これらの入力されたテーブル（分析対象データ）をもとに、属性を組み合わせた新たな属性を生成し、目的変数候補として生成する。この時、図２２に「２．目的変数候補の生成」として示すように、データ分析装置１の内部では目的変数と、集約の単位からなる新たな表を生成している。
【０１２４】
続いて、図２２に「３．目的変数の選択」として示すように、作成された新たな表の中から、使用者が選択した目的変数を含む表を１つ選ぶ。この例では、
集約対象の属性：  購入額（注文テーブル）
集約の単位    ：  ユーザー（注文テーブル）
集約関数      ：  平均
の組み合わせで生成された、「ユーザーごとの平均購入額」を選択する。
【０１２５】
続く特徴量の自動生成ステップでは、「３．目的変数の選択」で残った３つの表を元に、集約関数と属性の組み合わせから、新たな属性を特徴量として生成する。このステップでは、「４．特徴量の生成」として示すように、目的変数において集約対象の属性となった「購入額」は特徴量の生成対象から外している。
【０１２６】
（第２例）
第２例では、目的変数を選択した後に、使用者が顧客テーブルと注文テーブルを最新の状態に更新することが可能になっている例である。すなわち、実際のデータ分析（特徴生成〜予測モデリング）を開始する前に、最新の状態に基づいて目的変数の属性の値を再計算し、再計算された値に基づいてデータ分析を行う。異なる分析対象データに対して再計算することで、毎月定型の分析処理を実施する場合など、繰り返しの分析を行う際にも選択した目的変数を活用することができる。
【０１２７】
図２３の「１．入力データ」、「２．目的変数候補の生成」、「３．目的変数の選択」は、図２２の各ステップと同じであり、第２例では、「４．分析対象データの更新」ステップがあり、この中で薄く塗りつぶしたセルが、「３．目的変数の選択」ステップから更新されている箇所である。
【０１２８】
（第３例）
第３例では、目的変数候補を生成する際に、実際の属性や属性の値を生成する代わりに、図２４の「２．目的変数候補の生成」ステップに示すように、集約対象・集約の単位・集約関数の組み合わせと、それに対応する自然言語表現、ＳＱＬ文を記憶する。これは図２に示す記憶部３０に記憶させることができる。
【０１２９】
その後、図２４の「３．目的変数の選択」に示すように、使用者の指定に応じて目的変数を選択すると、その後、実際のデータに対して上記ＳＱＬ文を適用し、「４．ＳＱＬの実行」に示すように、目的変数を含むテーブルを生成する。上記第２例と同様に、実際にＳＱＬ文を適用する前に対象となる表の属性値が更新されていてもよい。このように、「２．目的変数候補の生成」ステップで目的変数の属性値を生成せず、組み合わせ方だけを保持することで、生成するデータ量を削減し、処理を高速化することができる。
【０１３０】
（自動セグメンテーション機能）
データ分析装置１には、自動セグメンテーション機能が搭載されている。自動セグメンテーション機能は、必要に応じて実行することができる機能であり、たとえば、目的変数の傾向が類似しているような集団を分析対象データから自動的に抽出し、抽出条件（自動的に生成された特徴量とその条件）と各種統計量とを使用者に提示することができる機能である。自動セグメンテーション機能は、たとえば図２に示す評価部４０で実行される機能であり、複数の特徴量のそれぞれについて、目的変数への影響変化を示す分割点を決定することにより、各特徴量を複数のセグメントに分割するとともに、各セグメントの目的変数への影響度を指標とする評価値を算出する。
【０１３１】
以下、具体的に説明する。図２５は、自動セグメンテーション機能によって実行される処理手順を示すフローチャートである。自動セグメンテーション機能は、使用者からの指示を受け付けた後、開始するようにしてもよいし、データ分析装置１が所定のタイミングで自動的に開始するようにしてもよい。開始後のステップＳＣ１では、最適な分割点を探索する。
【０１３２】
最適な分割点を探索する際には、入力された特徴量と目的変数に対して、以下のステップで計算を実施する。
【０１３３】
手順１．複数の特徴量のうち、任意の１つ選択する。
【０１３４】
手順２．分析対象データを２分割する候補点で当該分析対象データを２分割し、分割後のそれぞれの集合に対して、評価値を計算する。
【０１３５】
手順３．手順２の計算結果の中から、評価値が最良となる分割点を、その特徴量に対して記憶する。
【０１３６】
手順４．手順１〜３を全ての特徴量について繰り返す。
【０１３７】
上記手順は、一般に決定木と呼ばれるアルゴリズムの中で、分割点を求めるアルゴリズムと同等である。上記手順２で用いる評価値についても、決定木における一般的な評価値と同じものを使うことができる。
【０１３８】
目的変数が２値（０／１）の場合は、たとえば図２６の上側に示す式で表されるInformation Gainを使うことができる。目的変数が連続値の場合は、たとえば図２６の下側に示す式で表されるVariance Reductionを使うことができる。したがって、評価部４０は、評価値が最良となる分割点を探索し、決定するように構成されている。
【０１３９】
上記手順４まで終了すると、図２７に示すような情報が、特徴量１つにつき１行ずつ記録される。この情報は、図２に示す記憶部３０に記憶させておくことができる。図２７に示す情報は、一例であり、特徴量と、条件式と、評価値と、シェアと、分割後の目的変数の平均値（平均数値）とを含んでいるが、これら以外の情報を含んでいてもよい。条件式の不等号の向きは、目的変数の値が高い集団と低い集団とのうち、事前に設定した方を残すように決定されている。評価値は、上述した式で求められた値である。シェアとは、セグメント（集団）に含まれるデータのシェアである。その集団に属するデータ数と、全データ数の比率を評価部４０が算出することで、シェアを得ることができる。分割後の目的変数の平均値も評価部４０が算出して得ることができる。
【０１４０】
以上が図２５に示すフローチャートのステップＳＣ１で行われる処理である。続いて、ステップＳＣ２に進み、分割点の簡略化処理を行う。ステップＳＣ１で求めた条件式は、境界値が中途半端な値になっており、施策に用いるには使い難いことが多いので、ステップＳＣ２において、条件式の境界条件を簡略化し、簡略化した条件で評価値と分割後の目的変数の平均値を再計算する。再計算した結果を図２８に示す。この簡略化処理は、例えば有効数字１桁になるように丸めるといった方法で実施することができ、簡略化の程度を使用者によって設定可能にしてもよい。簡略化処理としては、たとえば四捨五入、切り上げ、切り下げ、評価値が下がらないように丸める処理等を挙げることができる。
【０１４１】
次に、図２５に示すフローチャートのステップＳＣ３に進む。ステップＳＣ３では、重複したセグメントを削除する処理を行う。本例では、特徴量を自動生成してセグメントに分けているので、セグメントが重複している可能性が高く、重複したセグメントを削除する処理は有用である。たとえば、ある特徴量の条件で抽出したセグメントＡと、別の特徴量の条件で抽出したセグメントＢとが、実際には同一の集団を指していることがある。そこで、以下の評価値で定義される重複度合いが一定の閾値を超えた場合、セグメントＡ、Ｂのうち、片方を表から削除する。
重複度＝Ｎ（Ａ∧Ｂ)／Ｎ（Ａ∨Ｂ）            ただし Ｎ（Ｐ）:Ｐのデータ数
【０１４２】
削除するセグメントは、評価値の大小に基づいて決めてもよく、この場合、評価値が小さい方を自動的に削除するようにする。また、削除するセグメントは、使用者に選択させてもよい。
【０１４３】
その後、図２５に示すフローチャートのステップＳＣ４に進む。ステップＳＣ４では、ステップＳＣ３の処理を経て残ったセグメントの中で重要なセグメントの表示処理を行う。このステップＳＣ４では、図２９に示す結果表示用ユーザーインターフェース５７を制御ユニット１０が生成してモニタ３に表示させる。この結果表示用ユーザーインターフェース５７は、図２０に示すものと同様であるが、特徴量の数が異なっている。結果表示用ユーザーインターフェース５７には、評価部４０で評価値が算出された特徴量のセグメントの表示領域が組み込まれているので、結果表示用ユーザーインターフェース５７をモニタ３に表示することで、評価部４０で評価値が算出された特徴量のセグメントをモニタ３に表示させて使用者に提示することができる。
【０１４４】
結果表示用ユーザーインターフェース５７の表示領域には、分析を行う上で重要なセグメント、即ち、評価値が上位となる特徴量のセグメント（上位セグメント）のみを選択的に表示させることができるが、重要なセグメント以外のセグメントを必要に応じて表示させることができるように構成されていてもよい。結果表示用ユーザーインターフェース５７の表示領域にさせるセグメントは、データ分析装置１側で自動的に選択するようにしてもよいし、使用者が選択するようにしてもよい。また、評価部４０で評価値が算出された特徴量のセグメントを優先的に表示するように構成することもできる。この場合、制御ユニット１０は、評価部４０で評価値が算出された特徴量を抽出して結果表示用ユーザーインターフェース５７の表示領域に表示させる。結果表示用ユーザーインターフェース５７には、上記評価部４０が算出したシェアと、目的変数の平均数値とが表示されるようになっている。
【０１４５】
また、結果表示用ユーザーインターフェース５７の表示領域に表示するセグメントは１つであってもよいし、複数であってもよく、表示数は特に限定されない。複数のセグメントを表示する場合、並び順は評価値(Information Gain／Variance Reduction)の大きい順でもよいし、分割後の目的変数の値が大きい順でもよい。
【０１４６】
セグメント表示領域５７ｂには各セグメントの抽出条件を表す「ＡがＢ以上」または「ＡがＢ以下」という形式の文章が表示されており、Ａには特徴量の名称、Ｂには分割点の値となる数値がそれぞれ代入されているが、これ以外の表現で表示してもよい。たとえば、各特徴量の単位が何であるかを制御ユニット１０で自動的に判別するか、使用者の追加入力を得ることで、「年齢が５０以下」「購買単価が５００以上」「来店回数が５以上」という表現を、それぞれ「年齢が５０歳以下」「購買単価が５００円以上」「来店回数が５回以上」という、より直観的に分かりやすい表現に改善することも可能である。
【０１４７】
結果表示用ユーザーインターフェース５７には、特徴量毎に詳細表示ボタン５７ｃが設けられている。使用者が詳細表示ボタン５７ｃを操作すると、図２５に示すフローチャートのステップＳＣ５に進む。ステップＳＣ５では、選択したセグメントの集団に対して再度ステップＳＣ１の分析を実施する。これにより、評価値が上位の特徴量と条件式の組み合わせを抽出し、図３０に示すように、データ分析装置１が推奨する組み合わせとして使用者に提示する。図３０に示す例では、特徴量１として「年齢」が選択された場合であり、「年齢」のうち、条件式１に当てはまるセグメントに対して再度ステップＳＣ１の分析を実施した結果、特徴量２として「性別」、「購買単価」が選択されて、「年齢」と「性別」の組み合わせ、「年齢」と「購買単価」の組み合わせが推奨する組み合わせとして使用者に提示される。したがって、評価部４０は、複数の特徴量を組み合わせた複合条件における目的変数への影響変化を示す分割点を決定することができるように構成されており、決定された分割点において各特徴量を複数のセグメントに分割するとともに、各セグメントの目的変数への影響度を指標とする評価値を算出する。そして、複合条件における評価値が算出された特徴量のセグメントがモニタ３に表示される。尚、ステップＳＣ５においても、ステップＳＣ３の重複セグメントの削除処理を行い、たとえば、重複度の高いセグメントは一方だけ残すようにしてもよい。
【０１４８】
使用者は、図２９に示す結果表示用ユーザーインターフェース５７に表示されているセグメントを選択することができる。セグメントが選択されると、制御ユニット１０はどのセグメントが選択されたか検出し、その選択されたセグメントの条件に使われている特徴量と、目的変数の関係を表す図表を使用者に提示する。図表には、たとえば各種グラフや集計表等が含まれる。
【０１４９】
この図表の例を図３１に示す。図３１は、詳細表示用ユーザーインターフェース５８を示すものであり、制御ユニット１０が詳細表示用ユーザーインターフェース５８を生成してモニタ３に表示させる。詳細表示用ユーザーインターフェース５８には、図表表示領域５８ａと、コメント表示領域５８ｂと、編集領域５８ｃと、サマリ表示領域５８ｄと、セグメント出力ボタン５８ｅと、シミュレーションボタン５８ｆとが設けられている。図表表示領域５８ａには、セグメントの条件が１つであれば特徴量に対する折れ線グラフが生成されて表示される。一方、条件が２つであれば、図３２に示すように、図表表示領域５８ａに、２つの特徴量に対するクロス集計表を表示する。つまり、モニタ３は、特徴量が１つのセグメントを表示する第１表示形態（図３１に示す形態）と、特徴量が複数のセグメントを表示する第２表示形態（図３２に示す形態）とに切り替えて表示可能に構成されている。
【０１５０】
図３１に示すように、図表表示領域５８ａに表示される折れ線グラフにおいて、セグメントの条件に該当する部分が強調表示されるようになっている。強調表示の方法としては、たとえば、セグメントの条件に該当する部分を、他の部分よりも太い線で表示する方法、セグメントの条件に該当する部分と他の部分とで線種や線の色を変える方法等があるが、いずれの方法であってもよい。セグメントの条件に該当する部分を強調表示することによって、どのようなデータからセグメントを分割したのかをすばやく把握することができる。また、表示するグラフや表における分割の境界が、セグメントの分割点と一致するように自動調整することもできる。
【０１５１】
コメント表示領域５８ｂには、自然言語で生成されたセグメントの特徴が表示される。これは、制御ユニット１０が生成することができる。
【０１５２】
編集領域５８ｃは、データ分析装置１が自動抽出したセグメントの条件に対して、施策を決定する際の要請等から境界条件を微調整したり、新たな条件を追加する場合に、抽出条件を編集するための領域である。編集領域５８ｃは、使用者の操作を受け付けることができるようになっており、使用者の操作によって条件式を変更したり、別の条件式を追加したり、不要な条件式を削除することができるように構成されている。
【０１５３】
サマリ表示領域５８ｄには、シェアと、平均数値とが表示されるようになっている。サマリ表示領域５８ｄには、セグメントの全体に対する比率を表示することもできる。
【０１５４】
セグメント出力ボタン５８ｅは、セグメントに該当する集団のリストを外部へ出力するためのボタンである。実際に作成したセグメントを施策に使う（例：対象者にメールマガジンを配信する）ためには、そのセグメントに該当する集団のリスト（例：購買単価が２５０円以上、５０歳未満のユーザーの一覧）を外部へ出力する必要がある。セグメント出力ボタン５８ｅを使用者が操作すると、制御ユニット１０はセグメント出力ボタン５８ｅが操作されたことを検出し、図３３に示す出力用ユーザーインターフェース５９を生成してモニタ３に表示させる。出力用ユーザーインターフェース５９では、出力するセグメントと一緒に出力する特徴量を選択することができるようになっている。そして、制御ユニット１０は、抽出したセグメントをもとに、該当するデータをＣＳＶ等のファイルで出力する。これにより、該当するデータを外部機器等にダウンロードして利用することができる。
【０１５５】
シミュレーションボタン５８ｆは、選択したセグメントについて、特徴量の値を変えたときに目的変数の値がどう変わるのかを、学習した予測モデルに基づいて求める際に操作するボタンである。このシミュレーションボタン５８ｆを使用者が操作すると、制御ユニット１０はシミュレーションボタン５８ｆが操作されたことを検出し、以下に説明するシミュレーションを実行する。
【０１５６】
（シミュレーション機能）
データ分析装置１には、シミュレーション機能が搭載されている。シミュレーション機能は、必要に応じて実行することができる機能であり、上述したようにセグメントを選択した後、その選択されたセグメントの特徴量の値を変えたときに目的変数の値がどう変わるのかを、学習した予測モデルに基づいて求めることができる機能である。シミュレーション機能を実行することで、たとえば、施策を実施した際の改善効果の見積もり等を行うことが可能になる。この実施形態では、学習に使った分析対象データの全てを対象にしたシミュレーションと、特定の集団（セグメント）を対象にしたシミュレーションとを実行することができるが、ユーザーインターフェースは１つにしている。学習に使った分析対象データの全てを対象にしたシミュレーションと、特定の集団を対象にしたシミュレーションとでユーザーインターフェースを別にしてもよい。
【０１５７】
制御ユニット１０はシミュレーションボタン５８ｆが操作されたことを検出すると、図３４に示すシミュレーション用ユーザーインターフェース６１を生成してモニタ３に表示させる。シミュレーション用ユーザーインターフェース６１には、選択された特徴量を表示する特徴量表示領域６１ａと、スライドバー６１ｂと、寄与度表示領域６１ｃと、グラフ表示領域６１ｄとが設けられている。特徴量表示領域６１ａには、規定の数の特徴量が表示されるようになっているが、この数は増やすことができる。特徴量表示領域６１ａに表示される特徴量は、事前に使用者が「制御変数」として指定した場合には制御変数として指定された特徴量、選択したセグメントの選択条件に使った特徴量、重要度が上位の特徴量、選択した集団の目的変数に対して寄与が大きな特徴量などの中からデータ分析装置１が自動的に選択する。これにより、予測モデルに用いられた複数の特徴量の代表値と、目的変数の数値との関係がモニタ３に表示されることになる。すなわち、上述したように特徴量の自動生成を行うと、大量の特徴量が自動的に生成されることになるので、それらを全てユーザーインターフェースに表示すると、目的変数に寄与しないものも多く含まれてしまい、使用者が所望の結果を得ることが難しくなる。そこで、データ分析装置１が自動的に効きそうな特徴量を選別して使用者に提示することで、素早く効果的なシミュレーションを行うことができる。尚、モニタ３には、目的変数に対して寄与度が所定以上の特徴量のみ表示するようにしてもよい。また、特徴量表示領域６１ａに表示する特徴量は使用者が選択するようにしてもよい。
【０１５８】
制御変数は、使用者が制御可能な特徴量であり、その特徴量は使用者が調整可能であるので、シミュレーション結果を実際に施策として実行することができる。つまり、施策として実行可能なシミュレーションを行うことができるので、シミュレーションが有用なものになる。
【０１５９】
上記重要度は、図２に示す重要度算出部４３が算出する。特徴量の重要度はFeature Importanceという名前で知られており、種々の計算方法が提案されており、いずれの計算方法を用いてもよい。例えば、以下の式（１）で表される線形重回帰モデルにおいて、各特徴量ｘ１，ｘ２，…に対する係数ａ１，ａ２，…を求め、その絶対値を重要度の値として使ってもよい。
ｙ＝ａ１ｘ１＋ａ２ｘ２＋…＋ａｎｘｎ      ・・・（１）
【０１６０】
あるいは、係数をそのまま使うのではなく、各特徴量ｘ１，ｘ２，…の大きさが揃うように補正した正規化係数を重要度に用いてもよい。このような重要度の分析を行った後、重要度が上位のものを制御ユニット１０が抽出する。「上位」に入る数としては、例えば２以上、５以上、１０以上、２０以上とすることができる。「上位」に入る数は、制御ユニット１０が自動的に設定してもよいし、使用者が任意の数に設定してもよい。
【０１６１】
上記寄与度は、制御ユニット１０が算出する。特徴量の寄与度は、線形重回帰分析と呼ばれる分析手法によって得ることができる。線形重回帰分析では、以下の形式で表される予測式（２）を用いる。
ｙ＝ａ１ｘ１＋ａ２ｘ２＋ａ３ｘ３＋…＋ａｎｘｎ＋ｂ      ・・・（２）
【０１６２】
ｙは予測値、ｘ１，ｘ２，…は各特徴量の値(説明変数)、ａ１，ａ２，…は各特徴量に対する係数を表す。また、ｂは定数項である。重回帰分析では、各データについてｙの値が目的変数に近づくように、係数ａおよび定数項ｂを学習する。
【０１６３】
上式（２）から、予測値yは各特徴量に関する項(ａ１ｘ１，ａ２ｘ２，…)と、定数項の和からなる。項の絶対値が大きな特徴量ほど、予測に対してより大きな影響を与えていると解釈できる。
【０１６４】
そこで、係数と特徴量の値の積ａｉｘｉのことを、特徴量ｉに関する寄与度と定義する。この寄与度を、複数のデータに対する予測について平均すると、任意のデータ群について、そのデータ群の予測に対する平均的な寄与度を算出することができる。
【０１６５】
例えば、ｙ＝３ｘ１−２ｘ２＋１の場合、４つのデータで平均を取ると、特徴ｘ１は予測値に対してややプラスの寄与度を持ち、また、特徴ｘ２は予測値に対して大きくマイナスの寄与度を持っていることになる。
【０１６６】
本例では上式の線形重回帰分析による寄与度の計算手順について説明したが、非線形のアルゴリズムであっても各予測に対して線形モデルでの近似を行うことで、同様の計算を行うことができる（例：Scott M. Lundberg,  ”Consistent Individualized Feature Attribution for Tree Ensembles”(2018)）。
【０１６７】
スライドバー６１ｂは、図２に示す調整部４１が生成してモニタ３に表示している。調整部４１は、使用者の操作入力に基づいて特徴量の代表値の調整を受け付ける部分であり、モニタ３に複数の特徴量の代表値が表示されていれば、モニタ３に表示された特徴量毎に代表値の調整を受け付けるように構成されている。したがって、スライドバー６１ｂは、図３４に示すように、特徴量毎に設けられている。
【０１６８】
スライドバー６１ｂは、左右方向にスライドさせることにより、代表値を増加させる方向と減少させる方向との２方向に調整可能に構成されている。いずれの方向が増加方向であってもよい。また、スライドバー６１ｂの操作方向は左右方向に限られるものではなく、縦方向であってもよい。また、スライドバー６１ｂ以外にも、代表値を増加させたり、減少させることができる各種操作手段を設けることができ、たとえば、代表値を直接入力可能な入力領域を設けることもできる。
【０１６９】
図２に示すシミュレーション部４２は、調整部４１によって受け付けられた代表値の調整量に応じて複数の属性の特徴量を変化させて、予測モデルから目的変数の数値を再計算し、モニタ３に表示させる部分である。具体的には、シミュレーション部４２は、スライドバー６１ｂの操作によって代表値が変更されると、その変更後の代表値を調整部４１から得て、その値のときの予測値を学習した予測モデルから計算する。計算結果は、グラフ表示領域６１ｄにグラフとして表示する。グラフ表示領域６１ｄには、調整前の計算結果と、調整後の計算結果との２種類が表示されるようになっている。また、各特徴量がどれくらい目的変数の変化に寄与したのかを表すグラフを更新して寄与度表示領域６１ｃに表示する。
【０１７０】
表示されている各特徴量の値は、シミュレーション対象にしている集団での平均値を表している。そのため、実際にはこの値より小さい行も、大きい行も含まれている。スライドバー６１ｂで代表値を調整したときも、平均値が指定された値に一致するように、全ての行の値をオフセットさせる（図３５参照）。図３５に示す例では、調整量が＋０．１の場合であり、ユーザーのＤＭ開封率を全て＋０．１だけ増加させて計算を行う。つまり、１データ分ではなく、集団に対するシミュレーションを提供しており、そのため、平均値を変化させるようなシミュレーション方法としている。
【０１７１】
調整部４１は、代表値の調整前に、調整方向別に目的変数の変化傾向を示すように構成されている。具体的には、スライドバー６１ｂの背景色にはグラデーションが付けられており、この色が目的変数の変化方向と程度を表現している。この色の変化が小さい場合は目的変数への効果が小さく、変化が大きい場合は目的変数への効果が大きい。これによって、スライドバー６１ｂを実際に操作する前に、どの特徴量を操作すれば良さそうかが分かるようになっている。また、黒色は、効果が低下する方向であることを示し、白色は、効果が高まる方向であることを示している。スライドバー６１ｂの表示形態は、上述した形態に限られるものではなく、調整方向別に目的変数の変化傾向を示す形態であればよく、青色（効果が高まる方向）と赤色（効果が低下する方向）等であってもよい。
【０１７２】
シミュレーション用ユーザーインターフェース６１には、どの特徴量を変化させることで目的変数がどの程度変化したのか、結果の概要を説明する文章を自動的に生成し、グラフとともに表示するためのコメント表示領域６１ｅが設けられている。この文章は、制御ユニット１０が生成する。
【０１７３】
（実施形態の作用効果）
以上説明したように、この実施形態に係るデータ分析装置１によれば、数値型である少なくとも１つの属性を集約対象の属性とし、カテゴリ型である少なくとも１つの属性を集約単位の属性とし、集約単位の属性のカテゴリ値毎に、集約対象の属性の数値を、予め用意された集約関数に基づいて集約し、新たな目的変数候補を自動的に生成して表示させることができる。そして、表示された目的変数候補の中から、使用者による目的変数の選択を受け付け、選択された目的変数を予測するための予測モデルを自動的に生成することができるので、データ処理に習熟していない者であっても自由に分析を行うことができる。
【０１７４】
また、目的変数を生成する際に用いられた集約対象の属性の少なくとも一部の属性値を除いた属性に所定の関数が適用されるので、目的変数の情報が意図せず特徴量に漏れる状況が回避される。従って、機械学習に習熟していない者であってもリークを自動的に防ぐことができる。
【０１７５】
また、目的変数に用いられた集約対象の属性の少なくとも一部の属性値の情報を含む特徴量が除外されて最終的な特徴量になるので、目的変数の情報が意図せず特徴量に漏れる状況が回避される。従って、機械学習に習熟していない者であってもリークを自動的に防ぐことができる。
【０１７６】
また、目的変数候補生成部１４により目的変数候補を自動的に生成することができ、目的変数候補をキーワード情報や属性によって抽出してモニタ３に表示させることができる。これにより、使用者が目的変数候補を選択しやすくすることができる。
【０１７７】
また、特徴量自動生成部１５により自動的に生成された新たな特徴量と、分析対象データに含まれる元の属性の特徴量とに基づいて予測モデルを生成することができ、複数の特徴量のそれぞれについて、目的変数への影響変化を示す分割点を決定することにより、各特徴量を複数のセグメントに分割するとともに、各セグメントの目的変数への影響度を指標とする評価値を算出することができる。そして、評価値が算出された特徴量のセグメントをモニタ３に表示することができるので、どの特徴量がどのように目的変数に影響しているのかを使用者に提示することができ、これに基づいて使用者はより深い分析を容易に行うことができる。
【０１７８】
また、使用者の操作入力に基づいて代表値の調整を受け付け、代表値の調整量に応じて複数の属性の特徴量を変化させて、予測モデルから目的変数の数値を再計算し、計算結果を表示部に表示することができるので、特徴量の値の変化による目的変数の変化をシミュレーションして施策の適否を事前に判断することができる。
【０１７９】
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【産業上の利用可能性】
【０１８０】
以上説明したように、本発明に係るデータ分析装置は、大量の情報の中からこれまで未知であった有用な知見を得ようと試みる場合に使用することができる。
【符号の説明】
【０１８１】
１              データ分析装置
３              モニタ（表示部）
３ａ            表示制御部
１１            主制御部
１２            データ入力部
１３            型認識部
１４            目的変数候補生成部
１５            特徴量自動生成部
１６            スコア計算部
１７            キーワード入力部
１９            属性選択部
２０            選択受付部
２１            分析部
３０            記憶部
３０ａ          候補記憶部
４０            評価部
４１            調整部
４２            シミュレーション部
４３            重要度算出部
【図１】
2020135066.tif 000003
【図２】
2020135066.tif 000004
【図３】
2020135066.tif 000005
【図４】
2020135066.tif 000006
【図５】
2020135066.tif 000007
【図６】
2020135066.tif 000008
【図７】
2020135066.tif 000009
【図８】
2020135066.tif 000010
【図９】
2020135066.tif 000011
【図１０】
2020135066.tif 000012
【図１１】
2020135066.tif 000013
【図１２】
2020135066.tif 000014
【図１３】
2020135066.tif 000015
【図１４】
2020135066.tif 000016
【図１５】
2020135066.tif 000017
【図１６】
2020135066.tif 000018
【図１７】
2020135066.tif 000019
【図１８】
2020135066.tif 000020
【図１９】
2020135066.tif 000021
【図２０】
2020135066.tif 000022
【図２１】
2020135066.tif 000023
【図２２】
2020135066.tif 000024
【図２３】
2020135066.tif 000025
【図２４】
2020135066.tif 000026
【図２５】
2020135066.tif 000027
【図２６】
2020135066.tif 000028
【図２７】
2020135066.tif 000029
【図２８】
2020135066.tif 000030
【図２９】
2020135066.tif 000031
【図３０】
2020135066.tif 000032
【図３１】
2020135066.tif 000033
【図３２】
2020135066.tif 000034
【図３３】
2020135066.tif 000035
【図３４】
2020135066.tif 000036
【図３５】
2020135066.tif 000037