(57)【要約】【課題】目的変数を自動生成できるようにしてデータ処理に習熟していない者であっても自由に分析が行えるようにする。【解決手段】分析対象データの各属性の属性値の型が、数値であることを示す数値型であるか、カテゴリであることを示すカテゴリ型であるかを認識する。数値型である少なくとも１つの属性を集約対象の属性とし、カテゴリ型である少なくとも１つの属性を集約単位の属性とし、集約単位の属性のカテゴリ値毎に、集約対象の属性の数値を、予め用意された集約関数に基づいて集約し、新たな目的変数候補を生成する。【選択図】図２
2020135053.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の売り上げの合計」が目的変数であれば、週次で集計した特徴量を自動的に生成する。集約の期間を総当たりで試行すると時間がかかるのに対して、使用者が指示した時間の単位に合わせた特徴量を生成することで、使用者にとってより解釈しやすい結果を素早く得ることができる。
【０１２８】
特徴量自動生成部１５では、目的変数と同様に、集約対象、集約の単位、集約関数、集約の条件の組み合わせを様々に変えることで多数の特徴量を自動的に生成することができる（例えば、非特許文献１参照）。この際、前述のように目的変数候補生成部１４が使用した属性を除外することでリークを回避したデータ分析を行うことができるが、それ以外の基準でも、種々の基準で特徴量の一部を除外することで、予測モデルの精度、分析時間、メモリ使用量、結果の解釈性を改善することが出来る場合がある。
【０１２９】
たとえば、多数の特徴量を自動的に生成した場合、その内の一部の特徴量が互いに類似の傾向を持つ場合がある。集約対象と集約単位を同一にする特徴量同士、例えば「顧客ごとの購買価格の平均値」と「顧客ごとの購買価格の中央値」は、非常に高い相関を持つ可能性がある。相関値が非常に高い特徴量をデータ分析に用いると、多重共線性と呼ばれる特性によって分析結果が不安定になり、結果の解釈性が損なわれることが一般によく知られている。そこで、特徴量自動生成部１５では、集約対象、集約単位、集約関数、集約の条件のうち一部（例えば集約対象と集約単位）が共通している特徴量同士を1つのグループと見なし、グループ内で1つの特徴量だけが残るように特徴量の一部を除外しても良い。残す特徴量をどう決めるかについては、目的変数との相関係数や、重回帰分析における係数の大小、決定木分析における情報ゲインなど、特徴量の重要度を計算する既知のアルゴリズムを使用することができる。あるいは、目的変数の場合と同様に、複数の観点で構成されるスコアを計算し、スコアの大小に基づいて特徴量を選定しても良い。また、グループの定義はユーザーから明示的に与えることもできる。
【０１３０】
図２０は、結果表示用ユーザーインターフェース５７を示している。結果表示用ユーザーインターフェース５７は、制御ユニット１０が生成してモニタ３に表示させる。結果表示用ユーザーインターフェース５７には、目的変数を表示する目的変数表示領域５７ａと、セグメントを表示するセグメント表示領域５７ｂとが設けられている。セグメントは、分析対象データに対して行の抽出条件を適用することで抽出されるデータの部分集合であり、属性とその条件との組み合わせと呼ぶこともできる。
【０１３１】
（目的変数の絞り込み手法の別形態）
図５に示すフローチャートのステップＳＢ６では、ステップＳＢ３で生成された目的変数候補の絞り込みを行っているが、この手法は上述した手法に限られるものではなく、以下の手法を用いることもできる。すなわち、目的変数を絞り込むにあたって、段階的な選択を受け付けることが可能に構成することができる。第１段階として、図２１Ａに示すように、目的変数について集約の単位となる属性の選択を受け付ける。ここで提示される選択肢は、ステップＳＢ３で生成した全ての目的変数候補のうち、少なくとも１つで集約の単位として選択されている属性とする。図２１Ａは絞り込み用ユーザーインターフェース６０を示しており、制御ユニット１０が絞り込み用ユーザーインターフェース６０を生成してモニタ３に表示させる。絞り込み用ユーザーインターフェース６０には、集約の単位となる属性の選択を受け付けるプルダウンメニュー形式の属性選択部６０ａと、戻るボタン６０ｂと、次へボタン６０ｃとが設けられている。属性選択部６０ａによって属性を選択した後、次へボタン６０ｃを押すことで、第２段階に進む。
【０１３２】
第２段階では、図２１Ｂに示すように、全ての目的変数候補のうち、第１段階で選択した属性を集約の単位とするような目的変数だけをスコア順に提示する。これは、絞り込み用ユーザーインターフェース６０に設けられたスコア順表示領域６０ｄに表示される。スコア順表示領域６０ｄには、目的変数の選択を受け付けるプルダウンメニュー形式の選択部が設けられており、目的変数の選択を受け付けることができるようになっている。これによって、多数の目的変数候補の中から、使用者が分析したい粒度に合致する目的変数を素早く選択することができる。目的変数を選択した後、次へボタン６０ｃを押すことで、第３段階に進む。
【０１３３】
最後の第３段階では、選択された目的変数に、分析結果を分かりやすく表示するための別名の指定を受け付ける。図２１Ｃに示すように、絞り込み用ユーザーインターフェース６０には、別名を入力可能な別名指定領域６０ｅが設けられている。使用者が別名指定領域６０ｅに別名を入力すると、第２段階で選択した目的変数の名称が、入力された別名に変更される。
【０１３４】
この例では、ステップＳＢ３で先に全ての集約単位についての候補を生成してからステップＳＢ６で使用者による選択を受け付けているが、この順番は逆でもよい。すなわち、先に使用者による集約の単位の選択を受け付けてから、その属性を集約の単位とするような目的変数だけを生成し、使用者に一覧提示することもできる。それによって、生成される目的変数候補の数を減らすことができる。また、ここでは集約の単位となる属性の選択を受け付けていたが、集約対象の属性をかわりに受け付けてもよい。
【０１３５】
（実施例）
以下、目的変数の生成処理の各ステップにおける、内部データの保持方法について３種類の実施例について説明する。
【０１３６】
（第１例）
第１例では、図２２に「１．入力データ」として示すように、使用者が顧客テーブルと注文テーブルの２つのテーブルを分析対象データとして入力した場合を想定する。目的変数候補生成部１４は、これらの入力されたテーブル（分析対象データ）をもとに、属性を組み合わせた新たな属性を生成し、目的変数候補として生成する。この時、図２２に「２．目的変数候補の生成」として示すように、データ分析装置１の内部では目的変数と、集約の単位からなる新たな表を生成している。
【０１３７】
続いて、図２２に「３．目的変数の選択」として示すように、作成された新たな表の中から、使用者が選択した目的変数を含む表を１つ選ぶ。この例では、
集約対象の属性：  購入額（注文テーブル）
集約の単位    ：  ユーザー（注文テーブル）
集約関数      ：  平均
の組み合わせで生成された、「ユーザーごとの平均購入額」を選択する。
【０１３８】
続く特徴量の自動生成ステップでは、「３．目的変数の選択」で残った３つの表を元に、集約関数と属性の組み合わせから、新たな属性を特徴量として生成する。このステップでは、「４．特徴量の生成」として示すように、目的変数において集約対象の属性となった「購入額」は特徴量の生成対象から外している。
【０１３９】
（第２例）
第２例では、目的変数を選択した後に、使用者が顧客テーブルと注文テーブルを最新の状態に更新することが可能になっている例である。すなわち、実際のデータ分析（特徴生成〜予測モデリング）を開始する前に、最新の状態に基づいて目的変数の属性の値を再計算し、再計算された値に基づいてデータ分析を行う。異なる分析対象データに対して再計算することで、毎月定型の分析処理を実施する場合など、繰り返しの分析を行う際にも選択した目的変数を活用することができる。
【０１４０】
図２３の「１．入力データ」、「２．目的変数候補の生成」、「３．目的変数の選択」は、図２２の各ステップと同じであり、第２例では、「４．分析対象データの更新」ステップがあり、この中で薄く塗りつぶしたセルが、「３．目的変数の選択」ステップから更新されている箇所である。
【０１４１】
（第３例）
第３例では、目的変数候補を生成する際に、実際の属性や属性の値を生成する代わりに、図２４の「２．目的変数候補の生成」ステップに示すように、集約対象・集約の単位・集約関数の組み合わせと、それに対応する自然言語表現、ＳＱＬ文を記憶する。これは図２に示す記憶部３０に記憶させることができる。
【０１４２】
その後、図２４の「３．目的変数の選択」に示すように、使用者の指定に応じて目的変数を選択すると、その後、実際のデータに対して上記ＳＱＬ文を適用し、「４．ＳＱＬの実行」に示すように、目的変数を含むテーブルを生成する。上記第２例と同様に、実際にＳＱＬ文を適用する前に対象となる表の属性値が更新されていてもよい。このように、「２．目的変数候補の生成」ステップで目的変数の属性値を生成せず、組み合わせ方だけを保持することで、生成するデータ量を削減し、処理を高速化することができる。
【０１４３】
（実施形態の作用効果）
以上説明したように、この実施形態に係るデータ分析装置１によれば、数値型である少なくとも１つの属性を集約対象の属性とし、カテゴリ型である少なくとも１つの属性を集約単位の属性とし、集約単位の属性のカテゴリ値毎に、集約対象の属性の数値を、予め用意された集約関数に基づいて集約し、新たな目的変数候補を自動的に生成して表示させることができる。そして、表示された目的変数候補の中から、使用者による目的変数の選択を受け付け、選択された目的変数を予測するための予測モデルを自動的に生成することができるので、データ処理に習熟していない者であっても自由に分析を行うことができる。
【０１４４】
また、目的変数を生成する際に用いられた集約対象の属性の少なくとも一部の属性値を除いた属性に所定の関数が適用されるので、目的変数の情報が意図せず特徴量に漏れる状況が回避される。従って、機械学習に習熟していない者であってもリークを自動的に防ぐことができる。
【０１４５】
また、目的変数に用いられた集約対象の属性の少なくとも一部の属性値の情報を含む特徴量が除外されて最終的な特徴量になるので、目的変数の情報が意図せず特徴量に漏れる状況が回避される。従って、機械学習に習熟していない者であってもリークを自動的に防ぐことができる。
【０１４６】
また、目的変数候補生成部１４により目的変数候補を自動的に生成することができ、目的変数候補をキーワード情報や属性によって抽出してモニタ３に表示させることができる。これにより、使用者が目的変数候補を選択しやすくすることができる。
【０１４７】
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【産業上の利用可能性】
【０１４８】
以上説明したように、本発明に係るデータ分析装置は、大量の情報の中からこれまで未知であった有用な知見を得ようと試みる場合に使用することができる。
【符号の説明】
【０１４９】
１              データ分析装置
３              モニタ（表示部）
３ａ            表示制御部
１１            主制御部
１２            データ入力部
１３            型認識部
１４            目的変数候補生成部
１５            特徴量自動生成部
１６            スコア計算部
１７            キーワード入力部
１９            属性選択部
２０            選択受付部
２１            分析部
３０            記憶部
３０ａ          候補記憶部
【図１】
2020135053.tif 000003
【図２】
2020135053.tif 000004
【図３】
2020135053.tif 000005
【図４】
2020135053.tif 000006
【図５】
2020135053.tif 000007
【図６】
2020135053.tif 000008
【図７】
2020135053.tif 000009
【図８】
2020135053.tif 000010
【図９】
2020135053.tif 000011
【図１０】
2020135053.tif 000012
【図１１】
2020135053.tif 000013
【図１２】
2020135053.tif 000014
【図１３】
2020135053.tif 000015
【図１４】
2020135053.tif 000016
【図１５】
2020135053.tif 000017
【図１６】
2020135053.tif 000018
【図１７】
2020135053.tif 000019
【図１８】
2020135053.tif 000020
【図１９】
2020135053.tif 000021
【図２０】
2020135053.tif 000022
【図２１】
2020135053.tif 000023
【図２２】
2020135053.tif 000024
【図２３】
2020135053.tif 000025
【図２４】
2020135053.tif 000026