【文献】
田中 雅博、外2名,「自己組織化マップを利用したクラスタリング」,電子情報通信学会論文誌 (J79−D−II),日本,社団法人電子情報通信学会,1996年 2月,第J79-D-II巻第2号,pp. 301-304
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
<実施例1>
以下、本発明の実施例を図面を参照して説明する。
【0010】
なお、本実施例では、機械学習モデルは、予め学習済みであり、その学習において利用された学習データを参照し、及び学習済みの機械学習モデルを利用して出力結果を得る処理を行うものである。また、機械学習モデルは、d次元ベクトルの入力信号に対してk次元ベクトルの出力信号を返すものであり、さらに、本実施例での機械学習モデルの出力信号は、k個の分類クラスに属する分類確率に相当するものとして説明する。
【0011】
図1は、本実施例のデータ分析システム構成を表す図である。
【0012】
本実施例のデータ分析システムは、機械学習における入力データ及び出力データの関係性を分析する計算機であり、入力装置101、出力装置102、表示装置103、処理装置104、及び記憶装置111を有する。
【0013】
入力装置101は、キーボードやマウスなどであり、ユーザからの入力を受けるインターフェースである。出力装置102は、プリンタなどであり、プログラムの実行結果をユーザが視認可能な形式で出力するインターフェースである。表示装置103は、液晶表示装置などのディスプレイ装置であり、プログラムの実行結果をユーザが視認可能な形式で出力するインターフェースである。なお、データ分析システムにネットワークを介して接続された端末が入力装置101と出力装置102と表示装置103とを提供してもよい。
【0014】
処理装置104は、プログラムを実行するプロセッサ(演算装置)及びプログラムやデータを格納するメモリによって構成される。具体的には、プロセッサがプログラムを実行することによって、入力処理部106、特徴ノード算出部107、スコア算出部108、ノードマッピング部109、及び出力処理部110が実現される。なお、プロセッサがプログラムを実行して行う処理の一部を、他の演算装置(例えば、FPGA)で実行してもよい。
【0015】
メモリは、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサ11が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0016】
記憶装置111は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置である。記憶装置111は、処理装置104がプログラムの実行時に使用するデータ及び処理装置104が実行するプログラムを格納する。具体的には、記憶装置111は、入力データテーブル112、正規化情報テーブル113、分割条件テーブル114、ノード情報テーブル115、ノード距離テーブル116、スコアテーブル117及び加重平均スコアテーブル118などの一連の処理に必要なデータ及び出力結果を格納する。なお、プログラムは、記憶装置111から読み出されて、メモリにロードされて、プロセッサによって実行される。
【0017】
データ分析システムは、所定のプロトコルに従って、他の装置との通信を制御する通信インターフェースを有してもよい。
【0018】
処理装置104が実行するプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワークを介してデータ分析システムに提供され、非一時的記憶媒体である不揮発性の記憶装置111に格納される。このため、データ分析システムは、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0019】
データ分析システムは、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【0020】
図2は、本実施例のデータ分析システムのデータ構造を示す図である。
【0021】
入力データテーブル112は、機械学習モデルの学習データを、本実施例のデータ分析システムによる一連の処理で利用する形式に加工したデータを格納し、説明変数1〜d(201)及び目的変数1〜k(202)を含む。
【0022】
説明変数1〜d(201)は、機械学習モデルの入力データであるd次元ベクトルを表している。但し、機械学習では変数ごとにデータを正規化することが多い。本実施例ではこの正規化されたデータを、正規化情報テーブル113を用いて、もとの数値データに戻して格納する。また、機械学習モデルの学習データが時系列である場合、変数名xに対して、x_t0,x_t1,x_t2,...のように各時点の値での変数名として平坦化できる。この場合、説明変数201の次元数と機械学習モデルの入力次元数は一致せず、本実施例の入力データ形式でデータを機械学習モデルに入力する際には、その都度データ形式を変換する。目的変数1〜k(202)は、機械学習モデルの出力結果であるk次元ベクトルである。
【0023】
正規化情報テーブル113は、機械学習モデルの学習時に行った正規化処理に関する情報を格納し、変数ID203、変数名204、データ型205、平均206、標準偏差207及びモデル用データ形式対応情報208のデータを含む。
【0024】
変数ID203は、説明変数201の要素を特定するインデクスである。変数名204は、当該説明変数の名前である。データ型205は、当該説明変数のデータ型(例えば、論理型、整数型、浮動小数点型など)である。
【0025】
平均206及び標準偏差207は、機械学習モデルの学習時の正規化処理で用いた平均と標準偏差を格納する。但し、変数が論理型の場合など、正規化処理を行わない変数に対しては、平均を0、標準偏差を1などと設定するとよい。モデル用データ形式対応情報209は、機械学習モデルの入力形式と本実施例のデータ分析システムで扱う入力形式が異なる場合に、その形式を相互変換するための情報を格納する。例えば、時系列を含むデータの場合、変数xをx_t0,x_t1,...と展開するので、展開前のインデクスと展開後のインデクスとの対応関係を記述しておくことで、相互変換が可能となる。
【0026】
分割条件テーブル114は、特徴ノード算出部107が入力データテーブル112を分割する条件を格納し、条件ID209、分割条件210、データ数211、マップサイズ212及び集計フラグ1〜k(213)のデータを含む。
【0027】
条件ID209は、分割条件テーブル114に記録される条件を識別するための識別情報である。分割条件210は、入力データを分割して1組のデータセットを得るための条件である。例えば、SQLのselect文のような文字列でもよい。分割条件210には、説明変数に対する特定の値又は範囲や、目的変数に対する値の条件の組み合わせを記述されてもよい。データ数211は、当該分割条件によって選択された入力データ中のデータ数である。
【0028】
マップサイズ212は、特徴ノード算出部107が、
図4のノードベクトル算出ステップ403で使用するマップサイズを格納する。又は、マップサイズを自動設定する場合には、マップサイズ212の値をNULLなどとしておき、自動設定の結果を格納してもよい。集計フラグ1〜k(213)は、
図5の目的スコア集計処理504で使用する目的変数に対するk個のフラグ配列である。この配列で1が設定されている目的変数に対するスコアのみを集計し、目的スコアとする。例えば、会員管理システムにおいて現在ランクからのランクアップを目的とした分析では、各現在ランクを分割条件として設定し、現在ランクより上位の予測ランクに対応する目的変数のフラグを1に設定する。
【0029】
ノード情報テーブル115は、特徴ノード算出部107による特徴ノード算出結果を格納し、条件ID214、ノードID215、ヒット数216、ヒット率217、座標218、説明変数1〜d(219)及び目的変数1〜k(220)のデータを含む。
【0030】
条件ID214は、分割条件テーブル114に記録される条件を識別するための識別情報(条件ID209)である。ノードID215は、条件ID214によって特定される条件を満たすノードの識別情報である。ヒット数216は、ノードID215で特定されたノードについて、分割条件によって分割されたデータセットのうち、当該ノードが他ノードより近い距離にあるデータ数である。ヒット率217は、ヒット数216をデータ数211で除した値である。座標218は、
図3に示すノードマッピング処理304の処理結果である。
【0031】
説明変数1〜d(219)及び目的変数1〜k(220)は、入力データテーブル112と同形式のデータであり、入力データセットに対して、その分布構造の特徴を表すノードベクトルである。このベクトルは入力データテーブルに含まれるデータと一致するものが存在する必要はなく、また、データ型205に指定された型に従わなくてもよい。例えば、論理値や整数値が指定されても、浮動小数点型のデータとして格納できる。
【0032】
ノード距離テーブル116は、ノード情報テーブル115の説明変数219、又は説明変数219に目的変数220を加えたノードベクトルについて、各ノード間の距離を格納し、ノードfrom221、ノードto222及び距離223のデータを含む。
【0033】
ノードfrom221及びノードto222は、それぞれノード情報テーブル115に記録されるノードを特定するための識別情報である。ノードfrom221及びノードto222の値は、条件ID214とノードID215の組でもよいし、ノード情報テーブル115上のindexでもよい。距離223は、ノードfrom221とノードto222の間のノードベクトルの距離である。
【0034】
なお、ノード距離テーブル116は二次元配列として表現してもよい。この場合、行及び列にはノード情報テーブル115のindexを用いる。
【0035】
スコアテーブル117は、スコア算出部108の算出結果を格納し、目的変数ID224、条件ID225、ノードID226及び説明変数1〜dのスコア227のデータを含む。
【0036】
目的変数ID224は、機械学習モデルの出力結果におけるk次元ベクトルの要素番号を格納する。条件ID225及びノードID226は、ノード情報テーブル115に記録されたノードを特定するための識別情報であり、ノード情報テーブル115の条件ID214及びノードID215と共通の値を用いる。説明変数1〜dのスコア227は、スコア算出部108の算出結果であり、目的変数ID224、条件ID225、ノードID226及び説明変数ごとに格納する。
【0037】
スコアテーブル117は、
図5で説明する目的スコア及び加重平均スコアも格納する。目的スコアは、目的変数ID224に−1などを設定し、加重平均スコアは、目的変数ID224及びノードID226に−1などを設定し、目的変数とノードが特定のものを識別していないことを表すものである。
【0038】
加重平均スコアテーブル118は、目的変数224とノードID226が−1のように特定されない形で、分割条件と説明変数ごとのスコアを格納している。具体的には、加重平均スコアテーブル118は、後述するスコア算出処理303(
図5)のステップ505で算出された加重平均スコアを分割条件ごとに分け、各説明変数のスコアを絶対値の降順にソートし、変数名とともに列挙したリストである。加重平均スコアテーブル118は、出力処理305(
図7)のステップ701で生成される。加重平均スコアテーブル118によって、ユーザは、各分割条件が表すターゲット層ごとに、影響度が高い説明変数を容易に把握でき、分割条件での説明変数の順位及びスコアを比較できる。例えば、条件1、2では属性Aの影響度が大きく、条件3、4では属性Jの影響度が大きい。また、属性Iのスコアは符号が逆になっており、同一の施策を適用すると効果が逆に現れる可能性がある。このように、各条件が示すターゲット層への施策立案に活用できる。
【0039】
図3は、本実施例の全体処理のフローチャートである。
【0040】
まず、入力処理部106が入力処理を実行する(301)。例えば、入力処理部106は、正規化情報テーブル113を参照して、機械学習モデルの学習データを、その入力形式から本実施例の入力形式に変換し、正規化された数値を元に戻す処理を実行し、その結果を入力データテーブル112に格納する。
【0041】
次に、特徴ノード算出部107が特徴ノード算出処理を実行する(302)。例えば、特徴ノード算出部107は、分割条件テーブル114に従って入力データテーブル112を分割し、分割された各データセットから特徴ノードを算出し、結果をノード情報テーブルに格納する。特徴ノード算出処理の詳細は
図4で説明する。
【0042】
次に、スコア算出部108がスコア算出処理を実行する(303)。例えば、スコア算出部108は、説明変数の影響度を表すスコアを算出し、結果をスコアテーブルに格納する。スコア算出処理の詳細は
図5で説明する。
【0043】
次に、ノードマッピング部109がノードマッピング処理を実行する(304)。例えば、ノードマッピング部109は、ステップ302で得られた特徴ノードを低次元空間へマッピングする。ノードマッピング処理の詳細は
図6で説明する。
【0044】
次に、出力処理部110が出力処理を実行し(305)、処理を終了する。出力処理の詳細は
図7で説明する。
【0045】
図4は、本実施例の特徴ノード算出処理302のフローチャートである。
【0046】
まず、特徴ノード算出部107は、変数pを1から分割条件テーブル114のデータ件数でループする(401)。以降、p番目の分割条件についてステップ402からステップ405の処理を実行する。
【0047】
次に、特徴ノード算出部107は、データ分割処理を行う(402)。例えば、p番目の分割条件の分割条件210を満たすデータを入力データテーブル112から選択する。選択されたデータセットは、正規化情報テーブルを用いて正規化処理を施される。
【0048】
次に、特徴ノード算出部107は、ノードベクトル算出を行う(403)。例えば、k−平均法に代表されるクラスタリング手法などによって、選択されたデータセットの分布構造を考慮し、より少ないノード数でその特徴を表すノードベクトルを算出する。本実施例では、自己組織化マップ(以下、SOMと略す)を適用する。SOMは、格子状に配置されたノードと、隣接するノードとの間を連結するエッジで表現されるニューラルネットワークの一種である。各ノードには、入力データと同形式の参照ベクトルが割り当てられる。参照ベクトルは、SOMの学習データと距離が最も近いノード(以下、BMU(Best Matching Unit)と略す)の参照ベクトルと共に、BMUに連結したノードの参照ベクトルも、学習データに近づくように更新する。SOMは公知の手法であるため、手法の詳細な説明は省略する。この処理を繰り返すことによって、学習データの複雑な分布構造を、ノードの幾何学的構造に写像できる。
【0049】
SOMの結果として算出される各ノードの参照ベクトルは、説明変数219と目的変数220の形式でノード情報テーブル115に格納される。
【0050】
なお、SOMを実行する際の学習データの形式は、説明変数のみ、又は説明変数及び目的変数の組によって設定できる。どちらの形式を利用するかは予め設定されているとよい。そして、出力結果としての目的変数220は、これら学習データの入力形式に従う。
【0051】
次に、特徴ノード算出部107は、ノードごとにヒット数を計数する(404)。ここでは、ステップ403で算出したノードごとに、それをBMUとする選択データセット中のデータ数をヒット数216の値として算出する。ヒット率217はこれを選択されたデータ件数で割って算出する。
【0052】
次に、特徴ノード算出部107は、算出された結果をデータの保存領域に格納する(405)。このとき、ステップ403で算出されたノードベクトルは正規化されているため、正規化情報テーブル113を用いて元に戻す処理を行い、その結果を格納する。
【0053】
そして、ステップ401からステップ405のループが終了すると特徴ノード算出処理302を終了する。
【0054】
図5は、本実施例のスコア算出処理303のフローチャートである。
【0055】
まず、スコア算出部108は、変数iを1からノード情報テーブル115のデータ件数でループする(501)。以降、i番目のノードについてステップ502からステップ504の処理を実行する。
【0056】
次に、スコア算出部108は、ノードiの近傍データセットと、それに対する機械学習モデルの予測結果を生成する(502)。近傍データとは、変数iで指定されたノードの説明変数が表すd次元ベクトルの周辺に位置するベクトルデータである。本実施例では近傍データの生成方法として、ノードiの説明変数の値を平均とし、正規化情報の標準偏差の2分の1を標準偏差とした正規分布に従った乱数によって生成する方法を用いるが、他の生成方法を用いてもよい。近傍データセットのデータ件数は予め指定されているとよい。機械学習モデルによる予測は、正規化情報テーブルを用いた正規化と、モデル用データ形式対応情報208による変換を行って実行できる。
【0057】
次に、スコア算出部108は、生成された近傍データセットと機械学習モデルの予測結果について局所モデル推定処理を行う(503)。ステップ503では、近傍データについて説明変数と目的変数との関係性を表すスコアを得る。本実施例では近傍データセットと機械学習モデルの予測結果に対して線形モデル推定を適用し、その推定パラメータをスコアとする。すなわち、d次元の説明変数X=(x
1,x
2,…,x
d)に対する機械学習モデルの出力結果Yを、下式で表される線形モデルで近似し、推定パラメータS
iを入力x
iにおけるスコアとする。ここで、Y,Y,S
i,Cはk次元ベクトルである。線形モデル推定の手法は公知の技術であるため、手法の詳細な説明は省略する。
【0059】
次に、スコア算出部108は、ステップ503で得られたスコアを、集計フラグ213に従って集計して目的スコアを算出する(504)。具体的には、フラグが1の要素のスコアを説明変数ごとに集計する。
【0060】
そして、スコア算出部108は、ステップ501からステップ504のループが終了すると、ヒット率217を目的スコアに適用して加重平均スコアを算出する(505)。加重平均スコアは、同一条件IDの全ノードについて、説明変数ごとに算出される。
【0061】
そして、スコア算出部108は、算出された結果をデータの保存領域に格納し(506)、スコア算出処理を終了する。
【0062】
図6は、本実施例のノードマッピング処理304のフローチャートである。本実施例では、多次元尺度構成法(以下、MDSと略す)を使って格子状の平面SOMノードの分割条件ごとのセットを2次元座標にマッピングするが、ノードの幾何学的構造やマッピングする空間は他の次元数の空間でもよい。
【0063】
MDSは、多次元ベクトル空間上のノードを、2次元や3次元などの低次元空間にマッピングする手法の一つで、ノード間の距離を可能な限り再現するようにマッピングを行う。MDSは公知の手法であるため、手法の詳細な説明は省略する。本実施例では、MDSを適用する際に、SOMノードの幾何学的構造を考慮した初期化を行う。
【0064】
まず、ノードマッピング部109は、ノード距離テーブル116を生成する(601)。本実施例では、各特徴ノードベクトルを、正規化された説明変数219とし、ユークリッド距離によって距離テーブルを生成する。
【0065】
次に、ノードマッピング部109は、各変数を初期化する(602)。具体的には、まずlt、lb、rt、rbを、それぞれ格子状のSOMノードの構造における左上、左下、右上、右下のノードindexとして定義し、全て−1を設定する。次に、yを0に設定する。次に、配列Posを、各ノードの座標を格納する配列として定義する。そして、Sw、Shを、それぞれx方向、y方向のノード座標配列として定義する。この配列サイズはマップサイズ212によって決定される。Pos、Sw、Shの要素は全て0で初期化する。
【0066】
次に、ノードマッピング部109は、変数pを1から分割条件テーブル114のデータ件数でループする(603)。以降、p番目の分割条件についてステップ604からステップ609の処理を実行する。
【0067】
次に、ノードマッピング部109は、rbが0以上であれば(604でYes)、yに配列Sh内の最大値に所定数(例えば、2)を加算した数を入力する(605)。所定数は適切な値に変更してもよい。
【0068】
一方、ノードマッピング部109は、rbが負の数であれば(604でNo)、何もせずにステップ606に進む。
【0069】
次に、分割条件pのノードに対する四隅ノードindexを、それぞれlt,lb,rt,rbに設定する(606)。このとき、ltをrb+1に設定し、マップサイズ212に従って残りの変数を設定できる。
【0070】
次に、ノードマッピング部109は、Sw、Shに値を設定する(607)。本実施例では、ノードltとrtとの距離、ltとlbとの距離を、マップサイズに従って均等分割した値を設定する。
【0071】
次に、ノードマッピング部109は、Shの各要素にyを加算する(608)。x軸方向に移動したい場合、変数xを定義して、yと同様の処理をSwに適用すればよい。
【0072】
次に、ノードマッピング部109は、ノードlt〜rbの座標をPosに設定する(609)。この処理は、例えば、SOMのノード構造においてi行j列の位置のノードの座標を、(Sw[i],Sh[j])で設定するとよい。
【0073】
そして、ステップ603からステップ608のループが終了すると、Posをノードの初期座標としてMDSを適用する(610)。
【0074】
次に、ノードマッピング部109は、結果を保存領域に格納し(611)、ノードマッピング処理を終了する。
【0075】
図7は、本実施例の出力処理305のフローチャートである。
【0076】
まず、出力処理部110は、加重平均スコアを列挙して、加重平均スコアテーブル118を生成する(701)。加重平均スコアテーブル118は、前述したように、分割条件ごとに加重平均スコアを分け、各説明変数のスコアを絶対値の降順にソートし、変数名ともに列挙したものである。
【0077】
次に、出力処理部110は、ノードベクトルの成分マップを表示する(702)。成分マップは、同一条件における各ノードの特定の説明変数319又は目的変数220の値を、SOMのノードの幾何学的構造とマップサイズによって可視化したものである。例えば、マップサイズがm×nのときの説明変数iの成分マップは、ノード情報テーブルの同一条件IDの全ノードにおける説明変数iの値を、その値に対応した色でm×nの画像として表示する。
【0078】
本実施例の成分マップは、
図8に例示するように、特定の分割条件に対して、説明変数219ごとに、ノードの幾何学的構造に基づいて、説明変数319の値を画像化している。また、ステップ403において、目的変数202も加えたベクトルに対する処理を行った場合には、目的変数220を用いた成分マップも表示可能である。成分マップによって、各説明変数間の相関や、説明変数と目的変数との間の相関関係などを視覚的に把握できる。
【0079】
次に、出力処理部110は、ヒットマップを表示する(703)。ヒットマップは、ステップ702の可視化手法を用いて、ヒット数216(又はその対数)又はヒット率217を可視化したものである。
【0080】
本実施例のヒットマップは、
図9に例示するように、ヒット率217の対数に基づいた色分けによってヒット数を画像化している。また、図のようにヒット数の数値を表示してもよい。ヒットマップによって、学習データの分布において密度の濃いノードなどを把握できる。
【0081】
次に、出力処理部110は、スコアマップを表示する(704)。スコアマップは、ステップ702の可視化手法を用いて、特定の説明変数に対するスコア227又は目的スコアを可視化したものである。
【0082】
本実施例のスコアマップは、
図10に例示するように、説明変数ごとのスコア227に基づいた色分けによってスコア227を画像化している。例えば、スコアが0の場合を緑に設定し、プラス方向に赤、マイナス方向に青へと段階的に変化する色分けを行うことで、どのノード位置で、どの説明変数の影響度が強いかを容易に把握できる。また、図のように、該当する説明変数の成分マップと模様を比較することで、影響度が高いノードにおける説明変数の値の様子を把握できる。
【0083】
次に、出力処理部110は、ノードマップを表示する(705)。ノードマップは、ステップ304で算出したノードごとの座標218によって、各ノードを低次元空間上の点として可視化したものである。このとき、各ノードを表す点の形や色などは、ノード情報テーブルの説明変数の値、目的変数の値、スコアテーブルの説明変数ごとのスコア、目的スコア、分割条件などによって設定するとよい。
【0084】
本実施例のノードマップは、
図11に例示するように、各分割条件におけるノードの座標218に基づいて、2次元空間にノードをプロットしたものである。また、特定の分割条件におけるノードの幾何学的構造を格子状の線によって表示してもよい。ノードマップによって、複数の分割条件での各ノードの位置関係を把握できる。例えば、現在ランクを分割条件とした場合に、距離が近いノードを見ることで、ランクが上がる可能性や下がるリスクが高そうなノードを容易に探し出せる。それら近隣ノードとの特徴の違いは、ノード情報テーブルの値を直接比較したり、成分マップを用いて比較できる。
【0086】
なお、前述した可視化手法はユーザの指示によって任意の順序で実行可能であり、それらを組み合わせて同時に表示してもよい。
【0087】
以上に説明したように、本実施例のデータ分析システムは、機械学習モデルが学習時に用いた複数の説明変数からなる入力データセット又は前記説明変数が加工されたデータセットからなる入力データセットを、指定された分割条件で分割し、前記分割された各データセットの分布構造の特徴を表す特徴ノードを算出する特徴ノード算出部107と、前記特徴ノードを含む入力データの近傍データを生成し、前記生成された近傍データの説明変数と、前記近傍データを前記機械学習モデルに入力して得られた目的変数のデータとに基づいて、当該説明変数と当該目的変数との関係性を表すスコアを算出するスコア算出部108と、前記スコアを含む出力結果を出力する出力処理部110とを備える。このため、学習済の機械学習モデルに対し、分割条件が示すターゲット層ごとに、説明変数が目的変数に与える影響度を算出し可視化できる。また、分布構造の特徴を表す特徴ノードによって、学習データより少ないデータでデータセットの特徴を表すことができる。また、学習データが少なく、網羅されていなくても、近傍データによってデータセットの特徴を表して、特徴ノードを補完できる。つまり、少ないデータでデータセットの特徴を表して、演算量を低減できる。
【0088】
また、特徴ノード算出部107は、自己組織化マップが適用された前記入力データセットに基づいて特徴ノードを算出するので、特徴ノードを的確に算出できる。
【0089】
また、特徴ノード算出部107は、前記機械学習モデルが学習時に用いた複数の説明変数及び前記機械学習モデルが算出した目的変数からなる入力データセット、又は前記説明変数及び前記目的変数が加工されたデータセットからなる入力データセットを用いて前記特徴ノードを算出するので、目的変数をマップで比較できる。
【0090】
また、特徴ノード算出部107は、特定の説明変数の特定の値又は範囲、及び前記目的変数の要素の特定の値(例えば、最大値)又は範囲の少なくとも一つを含む分割条件、又はこれらの組み合わせによって表現される分割条件によって前記入力データセットを分割するので、ターゲット層を絞り込んだ分析ができる。すなわち、集団全体ではなく、目的によって属性を変えることによって、特定の属性を有する集団のデータを解析できる。
【0091】
また、スコア算出部108は、前記説明変数のデータと前記目的変数のデータとに基づいて線形モデル推定を適用することによって、前記説明変数毎に前記目的変数の形式に対応したスコアを算出するので、線形モデルはシンプルで扱いやすいことから、ユーザにとって分かりやすく、結果に対する信頼性を向上できる。特に、線形モデルでは、複数属性を統合する場合に確率の和で計算可能であるため、ユーザが直感的に分かりやすい。
【0092】
また、スコア算出部108は、前記目的変数中の要素の一部のうち、前記分割条件ごとに指定された部分を集計して目的スコアを算出するので、ターゲット層を絞り込んだ分析ができる。すなわち、集団全体ではなく、目的によって属性を変えることによって、特定の属性を有する集団のデータを解析できる。
【0093】
また、スコア算出部108は、前記算出したスコア及び前記算出した目的スコアについて、前記各分割条件における特徴ノードごとの周辺データの数に基づいて、説明変数ごとに加重平均スコアを算出するので、密度分布を考慮して、データの特性を正しく表せる。
【0094】
また、各分割条件において、前記各分割条件において、特徴ノード算出部107によって算出された特徴ノードを二次元空間にマッピングするノードマッピング部部109を備えるので、集団の特性を分かりやすく表すことができる。
【0095】
また、ノードマッピング部109は、前記説明変数ごとの特徴ノードの値と、前記算出されたスコアと、前記スコア及び目的スコアについて算出された加重平均スコアとを、ノードの幾何学的構造に基づいて画像化して表示するためのデータを生成するので、ノード間の距離の関係性を維持しつつ、異なる属性の集団間でデータを比較できる。
【0096】
また、ノードマッピング部109は、前記特徴ノードのベクトル又は目的変数成分を含む特徴ノードのベクトルを、前記分割条件の特徴ノードの幾何学的構造に基づいて初期化した後、多次元尺度構成法を適用してマッピングを行うので、スコアマップによって、影響度が高い属性と低い属性とを分かりやすく表すことができる。
【0097】
また、入力データセットが、所定時間ごとの説明変数を含む時系列データである場合、当該説明変数を過去のある時点から現時点までの独立した変数として展開したデータを入力データとし、当該展開に用いた規則を格納するので、入力データセットが時系列データであるデータを解析できる。
【0098】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【0099】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0100】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0101】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。