(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-08
(45)【発行日】2022-11-16
(54)【発明の名称】データ分析装置、データ分析方法及びデータ分析プログラム
(51)【国際特許分類】
G06F 17/18 20060101AFI20221109BHJP
G06F 16/906 20190101ALI20221109BHJP
G06F 17/16 20060101ALI20221109BHJP
【FI】
G06F17/18 Z
G06F16/906
G06F17/16 P
(21)【出願番号】P 2019075952
(22)【出願日】2019-04-11
【審査請求日】2021-07-21
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】井田 安俊
(72)【発明者】
【氏名】藤原 靖宏
【審査官】坂東 博司
(56)【参考文献】
【文献】N. Simon, J. Friedman, T. Hastie, and R. Tibshirani,A SPARSE-GROUP LASSO,Journal of Computational and Graphical Statistics,2013, Vol.22(2),Alexandria: Taylor & Francis Group,2013年,Vol.22(2),231-245,https://hastie.su.domains/Papers/SGLpaper.pdf
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/18
G06F 16/906
G06F 17/16
(57)【特許請求の範囲】
【請求項1】
Sparse Group Lassoを用いて、多次元データから重要な特徴のグループを抽出するデータ分析装置であって、
与えられたデータのグラム行列のノルムを計算する第1の計算部と、
前記ノルムを基に前記データのグループのうち計算対象のグループに対するスコアを計算する第2の計算部と、
前記第2の計算部が計算したスコアを基に前記計算対象のグループに対する計算を省略するか否かを判定する判定部と、
前記判定部が前記計算対象のグループに対する計算を省略しないと判定した場合、前記計算対象のグループに対し、前記Sparse Group Lassoが最適化問題を解く場合に用いるBlock Coordinate Descentの計算処理を適用する適用部と、
を有することを特徴とするデータ分析装置。
【請求項2】
前記判定部は、前記Block Coordinate Descentの計算処理のうち、グループ内の係数がすべてゼロになるか否かをチェックする場合に使用する不等式内の項を該項の上限値で近似した近似式を用いて評価を行うことを特徴とする請求項1に記載のデータ分析装置。
【請求項3】
Sparse Group Lassoを用いて、多次元データから重要な特徴のグループを抽出するデータ分析装置が実行するデータ分析方法であって、
与えられたデータのグラム行列のノルムを計算する工程と、
前記ノルムを基に前記データのグループのうち計算対象のグループに対するスコアを計算する工程と、
前記スコアを基に前記計算対象のグループに対する計算を省略するか否かを判定する工程と、
前記判定する工程において、前記計算対象のグループに対する計算を省略しないと判定された場合、前記計算対象のグループに対し、前記Sparse Group Lassoが最適化問題を解く場合に用いるBlock Coordinate Descentの計算処理を適用する工程と、
を含んだことを特徴とするデータ分析方法。
【請求項4】
与えられた多次元データのグラム行列のノルムを計算するステップと、
前記ノルムを基に前記多次元データのグループのうち計算対象のグループに対するスコアを計算するステップと、
前記スコアを基に前記計算対象のグループに対する計算を省略するか否かを判定するステップと、
前記判定するステップにおいて、前記計算対象のグループに対する計算を省略しないと判定された場合、前記計算対象のグループに対し、Sparse Group Lassoが最適化問題を解く場合に用いるBlock Coordinate Descentの計算処理を適用するステップと、
をコンピュータに実行させることを特徴とするデータ分析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ分析装置、データ分析方法及びデータ分析プログラムに関する。
【背景技術】
【0002】
特徴抽出は、データから重要な特徴を抽出する手法群であり、データマイニングにおいてデータの説明のために広く使われている。データマイニングでは、しばしばデータの特徴がグループ構造を持っていることがある。
【0003】
例えば、地域毎の天候データは、各地域が各グループに対応し、それぞれのグループ内に「気温」「湿度」「天候」「風向き」などの特徴が入ったデータと見なすことができる。このようなグループ構造を持ったデータにおいては、重要な特徴を抽出するだけでなく、重要な特徴のグループ(例えば、地域に相当するグループ)を抽出することでデータを説明する場合がある。Sparse Group Lassoは、この特徴のグループの抽出における代表的な手法である。
【0004】
Sparse Group Lassoは、線形回帰に基づく手法である(例えば、非特許文献1参照)。具体的には、Sparse Group Lassoは、線形回帰モデルの係数にグループ制約を課すことによって、グループ特徴を扱うことができる。Sparse Group Lassoでは、線形回帰モデルの係数の学習において、Block Coordinate Descentが標準的に使われている。
【0005】
Block Coordinate Descentは、Sparse Group Lassoの係数をグループ毎に独立して更新し学習するアルゴリズムである。その更新計算は、大きく次のような2ステップに分けられる。
【0006】
第1ステップは、グループ内の係数が全てゼロになるか否かをチェックするステップである。第2ステップは、グループ内の係数が全てゼロにならない場合はグループ内の係数を更新するステップである。
【0007】
Block Coordinate Descentは、この第1ステップ及び第2ステップを、全ての係数が収束するまで繰り返す。最終的に、係数がゼロとなるグループは、重要でない特徴のグループであり、係数が非ゼロとなるグループは重要な特徴のグループと言える。
【0008】
しかしながら、Block Coordinate Descentは、大規模データに対して計算が遅いという課題がある。これは、第1ステップの計算において、全体の特徴の数に比例する計算オーダーが必要となるためである。この結果、Sparse Group Lassoを大規模データに適用することが困難になっている。
【0009】
ここで、Sparse Group Lassoを大規模データに適用するために、safe screening (非特許文献2参照)という手法が広く用いられている。Safe screeningは、Block Coordinate Descentで係数を学習する前に、係数がゼロとなるようなグループを特定して削除する手法である。
【先行技術文献】
【非特許文献】
【0010】
【文献】N. Simon, J. Friedman, T. Hastie, and R. Tibshirani, “A SPARSE-GROUP LASSO”, Journal of Computational and Graphical Statistics, 22(2), 231-245, 2013.
【文献】E. Ndiaye, O. Fercoq, A. Gramfort, and J. Salmon, “Gap Safe Screening Rules for Sparse-Group Lasso”, In Advances in Neural Information Processing Systems, pp. 388-396, 2016.
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、safe screeningにおいて、削除できるグループの数が少ない場合には、Block Coordinate Descentは、高速化されない。特に、safe screeningでは、係数の初期値が最適な係数から遠い場合、グループが削除しづらいことが理論的に知られている。
【0012】
本発明は、上記に鑑みてなされたものであって、Block Coordinate Descentを高速化することができるデータ分析装置、データ分析方法及びデータ分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
上述した課題を解決し、目的を達成するために、本発明に係るデータ分析装置は、Sparse Group Lassoを用いて、多次元データから重要な特徴のグループを抽出するデータ分析装置であって、与えられたデータのグラム行列のノルムを計算する第1の計算部と、ノルムを基にデータのグループのうち計算対象のグループに対するスコアを計算する第2の計算部と、第2の計算部が計算したスコアを基に計算対象のグループに対する計算を省略するか否かを判定する判定部と、判定部が計算対象のグループに対する計算を省略しないと判定した場合、計算対象のグループに対し、Sparse Group Lassoが最適化問題を解く場合に用いるBlock Coordinate Descentの計算処理を適用する適用部と、を有することを特徴とする。
【0014】
また、本発明に係るデータ分析方法は、Sparse Group Lassoを用いて、多次元データから重要な特徴のグループを抽出するデータ分析装置が実行するデータ分析方法であって、与えられたデータのグラム行列のノルムを計算する工程と、ノルムを基にデータのグループのうち計算対象のグループに対するスコアを計算する工程と、スコアを基に計算対象のグループに対する計算を省略するか否かを判定する工程と、判定する工程において、計算対象のグループに対する計算を省略しないと判定された場合、計算対象のグループに対し、Sparse Group Lassoが最適化問題を解く場合に用いるBlock Coordinate Descentの計算処理を適用する工程と、を含んだことを特徴とする。
【0015】
また、本発明に係るデータ分析プログラムは、与えられた多次元データのグラム行列のノルムを計算するステップと、ノルムを基にデータのグループのうち計算対象のグループに対するスコアを計算するステップと、スコアを基に計算対象のグループに対する計算を省略するか否かを判定するステップと、判定するステップにおいて、計算対象のグループに対する計算を省略しないと判定された場合、計算対象のグループに対し、Sparse Group Lassoが最適化問題を解く場合に用いるBlock Coordinate Descentの計算処理を適用するステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【0016】
本発明によれば、Block Coordinate Descentを高速化することができる。
【図面の簡単な説明】
【0017】
【
図1】
図1は、実施の形態に係るデータ分析装置の構成の一例を示すブロック図である。
【
図2】
図2は、
図1に示すデータ分析装置が使用するアルゴリズムを示す図である。
【
図3】
図3は、実施の形態に係るデータ分析処理の処理手順を示すフローチャートである。
【
図4】
図4は、プログラムが実行されることにより、データ分析装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【0018】
以下、図面を参照して、本発明の一実施の形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0019】
なお、以下ではベクトル、行列又はスカラーであるAに対し、“^A”と記載する場合は「“A”の直上に“^”が記された記号」と同等であるとする。また、ベクトル、行列又はスカラーであるAに対し、“~A”と記載する場合は「“A”の直上に“~”が記された記号」と同等であるとする。また、ベクトル又は行列であるAに対し、ATはAの転置を表す。
【0020】
[従来の数理的背景]
まず、以降の説明において必要となる背景知識として、Sparse Group Lasso及びBlock Coordinate Descentについて説明する。
【0021】
Sparse Group Lassoのベースは線形回帰モデルであるため、線形回帰問題を考える。nをデータ数とし、それぞれのデータは、p次元の特徴量で表現されるとする。これによって、データは、X∈Rn×pの行列で表現できる。線形回帰は、各データに対して応答を予測する問題であるため、応答は、データ数次元のベクトルy∈Rnとして表現できる。線形回帰は、データと係数ベクトルとの内積を計算することによって予測を行うため、この係数ベクトルは、β∈Rpと表現される。
【0022】
上記の設定のもと、Sparse Group Lassoは、次の式(1)及び式(2)に示す最適化問題を解くことで、重要な特徴及び、重要な特徴のグループを抽出する。
【0023】
【0024】
【0025】
式(1)及び式(2)において、X(g)∈Rn×pgは、行列Xの部分行列であり、pgは、g番目のグループの特徴量のサイズである。同様に、β(g)は、g番目のグループの係数である。Gは、全グループの数を表す。α∈[0,1]及びλは、ハイパーパラメータであり、人手でチューニングする対象となる。
【0026】
Block Coordinate Descentは、式(1)及び式(2)に示す最適化問題を解くためのアルゴリズムである。具体的には、以下の2ステップから構成されるアルゴリズムである。
【0027】
第1ステップは、グループ内の係数がすべてゼロになるか否かをチェックするステップである。第1ステップのチェックに用いられる式は、以下の不等式(3)及び式(4)である。
【0028】
【0029】
【0030】
ここで、関数S(・,・)は、引数z,γに対し、式(5)のように計算される。
【0031】
【0032】
不等式(3)が成立するとき、g番目のグループの係数は、全てゼロになる。この場合、アルゴリズムは、次のグループに処理が移り、再び第1ステップの計算を行う。一方、不等式(3)が成立しないとき、係数は非ゼロであると判断され、アルゴリズムは、次の第2ステップを実行する。
【0033】
第2ステップは、グループ内の係数を更新するステップである。第2ステップにおける係数の更新は、以下の式(6)及び式(7)を用いて実行される。式(6)及び式(7)において、tは、更新幅である。
【0034】
【0035】
【0036】
アルゴリズムは、第1ステップ及び第2ステップを係数全体が収束するまで繰り返す。このアルゴリズムでは、第1ステップの計算にO(ppg+pg
2)が必要となり、第2ステップの計算にO(pg)が必要となる。したがって、Block Coordinate Descentでは、第1ステップがボトルネックとなる。
【0037】
[本実施の形態の数理的背景]
続いて、本実施の形態の数理的背景について説明する。本実施の形態は、Block Coordinate Descentのボトルネックである第1ステップの計算量を小さくすることによって、高速化を行う。
【0038】
具体的には、本実施の形態では、第1ステップにおいて使用される不等式(3)を近似することによって、計算量を小さくする。この近似は、不等式(3)内の||S(X(g)Tγ(-g),αλ||の項の上限値U(g)を用いて不等式の成立の可否をチェックすることで実現される。すなわち、第1ステップにおいて、不等式(8)となるようなU(g)を近似値として使い、計算量の大きい不等式(3)に代えて、不等式(9)をチェックする。
【0039】
【0040】
【0041】
U(g)は、データのグラム行列をK=XTX∈Rp×pとしたとき、次のように式(10)及び式(11)のように計算される。
【0042】
【0043】
【0044】
式(10)及び式(11)において、~γ(-g)及び~β(l)は、それぞれγ(-g)及びβ(l)に対応する値である。これらの値は、Block Coordinate Descentのイテレーションの中において、一定間隔で更新される。
【0045】
^K(g)[l]∈Rpgのi番目の要素は、K(g,l)∈Rpg×plをKの部分行列としたとき、そのi番目の行のL2ノルム||K(g,l)[i;]||2として計算される。
【0046】
上限値の式(10)の初期値は、定式化通り計算を行う。ただし、その後は、β(g)が更新された場合だけ、以下の式(12)に示す計算を行う。この結果、本実施の形態では、小さな計算量で上限値を更新することができる。
【0047】
【0048】
β(g)´は、更新後のβ(g)である。これにより、元のBlock Coordinate Descentの式(3)がO(ppg+pg
2)の計算量を要するのに対し、不等式(9)の計算量は、O(pg)と十分に小さくなる。このため、本実施の形態では、従来のアルゴリズムにおいてボトルネックであった第1ステップの計算を、高速に近似計算することができる。
【0049】
不等式(9)が成り立つ場合、そのグループgの係数は、全てゼロとなる。この場合、||S(X(g)Tγ(-g),αλ||≦U(g)の関係が成り立つため、誤って係数をゼロとすることはなく、安全に係数をゼロとすることができる。これに対し、不等式(9)が成り立たなかった場合、通常のBlock Coordinate Descentの第1ステップ及び第2ステップを実行する。
【0050】
本実施の形態は、上記したように、誤って係数をゼロにすることはないため、係数の初期値と更新順序とが同じ場合は、元のBlock Coordinate Descentと同じ解を得ることができる。
【0051】
[本実施の形態]
そこで、本実施の形態にデータ分析装置について説明する。本実施の形態に係るデータ分析装置は、Sparse Group Lassoを用いて、多次元データから重要な特徴のグループを抽出する線形回帰モデルの学習装置である。
【0052】
図1は、実施の形態に係るデータ分析装置の構成の一例を示すブロック図である。
図1に示すように、本実施の形態に係るデータ分析装置10は、行列ノルム計算部11(第1の計算部)、スコア計算部12(第2の計算部)、省略判定部13(判定部)、ソルバ適用部14(適用部)、スコア更新部15及び収束判定部16を有する。データ分析装置10は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、CPU(Central Processing Unit)等を含むコンピュータ等に所定のプログラムが読み込まれて、CPUが所定のプログラムを実行することで実現される。
【0053】
行列ノルム計算部11は、与えられたデータのグラム行列のノルムを計算する。本実施の形態では、式(10)及び式(11)を基に上限値U(g)を計算する必要がある。ここで、式(11)の||^K(g)[l]||2は、データが与えられた時点で事前計算が可能であり、アルゴリズム中で変更されることはない。行列ノルム計算部11は、この||^K(g)[l]||2を計算する機能を有する。||^K(g)[l]||2は、上述の通りグラム行列Kのノルムである。
【0054】
スコア計算部12は、行列ノルム計算部11が計算したノルムを基に、データのグループのうち計算対象のグループに対するスコアを計算する。スコアは、計算対象のグループの計算を省略するか否かを判定するために使用する値である。スコア計算部12は、式(10)で表される上限値U(g)を全グループで計算する。本実施の形態では、スコアを、上限値U(g)と定める。すなわち、スコアは、不等式(3)内の||S(X(g)Tγ(-g),αλ||の項を近似した際の上限値U(g)そのものである。
【0055】
省略判定部13は、スコア計算部12が計算したスコアを基に、計算対象のグループの計算を省略するか否かを判定する。省略判定部13は、スコア計算部12が求めたスコア(上限値U(g))を用いて、不等式(9)が成立するか否かを判定する。省略判定部13は、Block Coordinate Descentの計算処理のうち、グループ内の係数がすべてゼロになるか否かをチェックする場合に使用する不等式(3)内の項を該項の上限値U(g)で近似した近似式(不等式(9))を用いて評価を行う。省略判定部13は、不等式(9)が成立する場合には、このグループ内の係数を全て0とする。したがって、省略判定部13は、不等式(9)が成立する場合、このグループについて、通常のBlock Coordinate Descent(ソルバ)の計算処理を省略すると判定する。
【0056】
ソルバ適用部14は、収束判定部13が計算対象のグループに対する計算を省略しないと判定した場合、通常のBlock Coordinate Descent(ソルバ)の計算処理を実行する。すなわち、ソルバ適用部14は、不等式(9)が成立しなかった場合、ソルバの計算処理を実行する。つまり、ソルバ適用部14は、不等式(3)を用いてループ内の係数がすべてゼロになるか否かをチェックする第1ステップを行う。ソルバ適用部14は、不等式(3)が成立した場合、このグループの係数を全て0にする。これに対し、ソルバ適用部14は、不等式(3)が成立しない場合には、式(6)及び式(7)を用いてグループ内の係数を更新する第2ステップを実行する。
【0057】
スコア更新部15は、計算対象のグループに対するスコアを更新する。スコア更新部15は、ソルバ適用部14によって係数が更新された場合に、式(12)を用いて、このグループに対するスコア(上限値U(g))を更新する。データ分析装置10は、全グループに対し、省略計算部13による処理を適用し、不等式(9)が成立しなかった場合にソルバ適用部14による計算処理を適用する。
【0058】
収束判定部16は、全グループに対し、省略計算部13による処理を適用し、式(9)の不等式が成立しなかった場合にソルバ適用部14による計算処理を適用した後、係数が収束したか否かを判定する。収束判定部16は、係数が収束している場合には、収束した係数を返す。収束判定部16は、係数が収束していない場合には、スコア計算部12による処理に戻り、収束するまで処理を繰り返す。
【0059】
[処理の流れ]
次に、データ分析装置10が使用するアルゴリズム、及び、データ分析装置10が実行する処理の流れについて説明する。
図2は、
図1に示すデータ分析装置10が使用するアルゴリズムを示す図である。
図3は、実施の形態に係るデータ分析方法の処理手順を示すフローチャートである。
【0060】
図2のアルゴリズム及び
図3のフローチャートに示すように、行列ノルム計算部11は、与えられたデータのグラム行列のノルムを計算する(
図2の1~3行目及び
図3のステップS1)。
【0061】
続いて、スコア計算部12は、式(10)及び式(11)を用いて、式(10)で表される上限値U
(g)を、グループに対するスコアとして、全グループで計算する(
図2の5~7行目及び
図3のステップS2)。
【0062】
省略判定部13は、スコアからグループの計算の省略可否を判定する。具体的には、省略判定部13は、スコア計算部12が求めたスコア(上限値U
(g))を用いて、不等式(9)が成立するか否かを判定する(
図3のステップS3)。
【0063】
そして、省略判定部13は、不等式(9)が成立すると判定した場合(
図2の9行目及び
図3のステップS3:Yes)、このグループ内の係数は全て0とする(
図2の10行目及び
図3のステップS4)。
【0064】
これに対し、省略判定部13が、不等式(9)が成立しないと判定した場合(
図2の12行目及び
図3のステップS3:No)、ソルバ適用部14は、通常のBlock Coordinate Descent(ソルバ)の計算処理を実行する(
図2の12~17行目及び
図3のステップS5)。具体的には、ソルバ適用部14は、不等式(3)を用いてループ内の係数がすべてゼロになるか否かをチェックする第1ステップを行い、不等式(3)が成立した場合(
図2の12行目)、このグループの係数を全て0にする(
図2の13行目)。これに対し、ソルバ適用部14は、不等式(3)が成立しない場合(
図2の14行目)、式(6)及び式(7)を用いてグループ内の係数を更新する第2ステップを実行する(
図2の15~17行目)。
【0065】
そして、スコア更新部15は、ソルバ適用部14によって係数が更新された場合(ステップS6:Yes)、式(12)を用いて、グループに対するスコア(上限値U
(g))を更新する(
図2の18行目及び
図3のステップS7)。
【0066】
データ分析装置10は、全グループに対してステップS3~ステップS7を適用していない場合(
図3のステップS8:No)、次のグループに進み(ステップS9)、ステップS3以降の処理を実行する。また、全グループに対してステップS3~ステップS7を適用した場合(
図2の8~18行目及び
図3のステップS8:Yes)、収束判定部16は、係数が収束したか否かを判定する(
図2の19行目及び
図3のステップS10)。
【0067】
係収束判定部16は、係数が収束していると判定した場合(
図3のステップS10:Yes)、収束した係数を返して、処理を終了する。収束判定部16は、係数が収束していないと判定した場合(
図3のステップS10:No)、ステップS2の処理に戻り、収束するまで、ステップS2~ステップS10の処理を繰り返す。
【0068】
[実施の形態の効果]
このように、本実施の形態に係るデータ分析装置10は、Sparse Group Lassoを用いて、多次元データから重要な特徴のグループを抽出する線形回帰モデルの学習装置である。そして、データ分析装置10は、与えられたデータのグラム行列のノルムを計算し、データ分析装置10は、データのグループのうち計算対象のグループに対するスコアを計算する。続いて、データ分析装置10は、スコアを基に、計算対象のグループに対する計算を省略するか否かを判定する。
【0069】
そして、データ分析装置10は、計算対象のグループに対する計算を省略しないと判定した場合、計算対象のグループに対し、Sparse Group Lassoが最適化問題を解く場合に用いるBlock Coordinate Descentの計算処理を適用する。このため、データ分析装置10は、全てのグループに対してBlock Coordinate Descentの計算処理を適用しないため、Block Coordinate Descentを高速化することができる。
【0070】
この際、データ分析装置10は、Block Coordinate Descentの計算処理のうち、グループ内の係数がすべてゼロになるか否かをチェックする場合に使用する不等式内の項を該項の上限値で近似した近似式を用いて評価を行う。言い換えると、データ分析装置10は、グループ内の係数がすべてゼロになるか否かをチェックする場合に使用する不等式を、より計算量の小さい近似式に置き換える。このため、データ分析装置10は、不等式(3)を用いるBlock Coordinate Descentのボトルネックである、グループの係数がゼロか非ゼロかを判定する第1ステップの計算を軽量化でき、Block Coordinate Descentを高速化することができる。
【0071】
この結果、本実施の形態によれば、Block Coordinate Descentが高速化されることによって、Sparse Group Lassoによる特徴のグループ抽出処理を高速化することができる。また、本実施の形態では、上述の近似を導入することによってBlock Coordinate Descentを高速化するが、その学習結果は、元のBlock Coordinate Descentと一致することを保証する。このため、本実施の形態によれば、正確にSparse Group Lassoによる特徴グループを抽出することができる。
【0072】
[実施形態のシステム構成について]
図1に示したデータ分析装置10の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、データ分析装置10の機能の分散および統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
【0073】
また、データ分析装置10においておこなわれる各処理は、全部または任意の一部が、CPUおよびCPUにより解析実行されるプログラムにて実現されてもよい。また、データ分析装置10においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
【0074】
また、実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
【0075】
[プログラム]
図4は、プログラムが実行されることにより、データ分析装置10が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0076】
メモリ1010は、ROM1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0077】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、データ分析装置10の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、データ分析装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0078】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0079】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0080】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【0081】
10 データ分析装置
11 行列ノルム計算部
12 スコア計算部
13 省略判定部
14 ソルバ適用部
15 スコア更新部
16 収束判定部