説明

データ分析装置、及びデータ分析プログラム

【課題】ソフトウェア的にクラスタリングを実装した場合にも処理速度を低下させない。
【解決手段】データ分析装置10は、大容量低速記憶部20と、高速にアクセスが可能な小容量高速記憶部22とを備え、複数のデータ要素からなるデータ要素群を2分木構造に配列するとともに、2分木構造において親,子の順序で大容量低速記憶部20の連続するアドレスに格納し、大容量低速記憶部20から、所定数の連続するアドレスに格納されたデータ要素群の部分要素群を抽出して、小容量高速記憶部22に格納し、小容量高速記憶部22に格納された部分要素群に含まれる各データ要素のデータ値をヒープソートにより並び替え、並び替えた部分要素群に基づいて、大容量低速記憶部20において当該部分要素群に対応するアドレスに格納されたデータ値を更新し、更新された大容量低速記憶部20に格納されたデータ要素群に基づきクラスタリングを行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ分析装置、及びデータ分析プログラムに関する。
【背景技術】
【0002】
大量のデータを分析するひとつの手法にクラスタ分析がある。クラスタ分析には大別して、非階層的クラスタリングと階層的クラスタリングとがある。従来では、大量データのクラスタ分析には、アルゴリズムが比較的簡単で高速処理が可能なK−means法等の非階層的クラスタリングの手法が用いられることが多かった。
【0003】
しかしながら、非階層的クラスタリングの手法には、最終的な分類結果が初期分類の影響を受けやすく、また局所最適になりやすいという分類性能の問題がある。これに対して、階層的クラスタリング手法では、高次元ベクトルデータを分類する上で、等方等分散のクラスタを仮定するK−means法に比べて分類性能が良いという利点があるが、処理に時間がかかるため分類対象のデータ数が膨大となると適用できないという問題があった。
【0004】
この問題に対して、例えば下記の特許文献1や特許文献2のように、2分探索を高速に処理する専用のハードウェアを導入することで、ヒープ構造に関する処理高速化を実現することも考えられるが、専用のハードウェアの導入にはコストがかかってしまう。そこで、下記の非特許文献1では、クラスタリング対象データのデータ構造にヒープ構造を用いることで、階層的クラスタリング処理をソフトウェア的にも高速化できる手法を提案している。
【特許文献1】特開平10−336216号公報
【特許文献2】特開2003−223315号公報
【非特許文献1】Kurita,T., An efficient agglomerative clustering algorithm using a heap, Pattern Recognition, Vol.24, ナンバー3, pp.205−209, 1991.
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術で用いられているデータ構造ではメモリアクセスの局所性が低いため、ヒープ構造に使用可能なデータ量がメインメモリサイズより大きくなると、2分木構造中の要素位置を順次データ交換する際にメインメモリとHDD中のスワップ用記憶領域との間のデータ転送が高頻度で発生し、処理速度が極端に遅くなってしまっていた。
【0006】
本発明の目的の1つは、専用のハードウェアを用いずに、ソフトウェア的にクラスタリングを実装した場合にも、データ量がメインメモリサイズより大きい大規模なデータセットに対して、処理速度が極端に低下しないデータ分析装置、及びデータ分析プログラムを提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するために、請求項1に記載のデータ分析装置の発明は、第1の記憶手段と、前記第1の記憶手段よりも記憶容量が小さく、高速にアクセスが可能な第2の記憶手段と、複数の要素からなるデータ要素群を2分木構造に配列するとともに、当該2分木構造において親である要素、当該親の子である要素の順序で前記第1の記憶手段の連続するアドレスに格納する第1格納手段と、前記第1の記憶手段から、所定数の連続するアドレスに格納された前記データ要素群の部分要素群を抽出して、前記第2の記憶手段に格納する第2格納手段と、前記第2の記憶手段に格納された前記部分要素群に含まれる各要素のデータ値をヒープソートにより並び替える手段と、前記データ値が並び替えられた部分要素群に基づいて、前記第1の記憶手段において当該部分要素群に対応するアドレスに格納されたデータ値を更新する手段と、を含み、前記更新された前記第1の記憶手段に格納されたデータ要素群を所定の処理に供する、ことを特徴とする。
【0008】
請求項2に記載の発明は、請求項1に記載のデータ分析装置において、前記第1格納手段は、前記2分木構造の上位層又は下位層のいずれかから順に、前記データ要素群を前記第1の記憶手段の連続するアドレスに格納する、ことを特徴とする。
【0009】
請求項3に記載の発明は、請求項1又は2に記載のデータ分析装置において、前記第1格納手段は、前記データ要素群を、前記所定数の要素からなる2分木構造のデータブロックに分割するとともに、当該分割された各データブロックについてそれぞれ親である要素、当該親の子である要素の順序で前記第1の記憶手段の連続するアドレスに格納し、前記第2格納手段は、前記データブロック毎にデータを抽出して前記第2の記憶手段に格納する、ことを特徴とする。
【0010】
請求項4に記載の発明は、請求項1乃至3のいずれかに記載のデータ分析装置において、前記第1の記憶手段から前記所定数の連続するアドレスに格納された部分要素群を新たに抽出して、当該新たに抽出した部分要素群のデータ値を更新する処理を所定の終了条件が満たされるまで繰り返して実行した後に、前記第1の記憶手段に格納されたデータ要素群を所定の処理に供する、ことを特徴とする。
【0011】
請求項5に記載の発明は、請求項4に記載のデータ分析装置において、前記データ要素群は、クラスタリングの対象とする複数のスカラ又はベクトルデータ間のそれぞれの距離データをデータ要素とし、前記所定の終了条件が満たされた後に前記第1の記憶手段に格納されたデータ要素群に基づいてクラスタリングを行う、ことを特徴とする。
【0012】
請求項6に記載の発明は、請求項5に記載のデータ分析装置において、前記所定の条件が満たされた後に、前記2分木構造の根のデータ要素を距離データとした2つのクラスタリング対象データを同一のクラスタとして分類する手段と、前記同一のクラスタに分類されたクラスタリング対象データのいずれか一方に関する全ての距離データを前記データ要素群のデータ要素の中から削除する手段と、をさらに含み、前記第1格納手段は、前記データ要素が削除されたデータ要素群を2分木構造に再び配列するとともに、当該配列したデータ要素群を前記第1の記憶手段に格納する、ことを特徴とする。
【0013】
請求項7に記載の発明は、請求項1乃至6のいずれかに記載のデータ分析装置において、前記第2格納手段は、前記第1の記憶手段から前記データ要素群の異なる部分要素群を複数抽出して前記第2の記憶手段に格納し、前記第2の記憶手段に格納された各部分要素群についてのヒープソートを並列処理により行う、ことを特徴とする。
【0014】
請求項8に記載のデータ分析プログラムの発明は、第1の記憶手段と、前記第1の記憶手段よりも記憶容量が小さく、高速にアクセスが可能な第2の記憶手段と、を備えるコンピュータに、複数のデータ要素からなるデータ要素群を2分木構造に配列するとともに、当該2分木構造において親である要素、当該親の子であるデータ要素の順序で前記第1の記憶手段に格納する第1格納ステップと、前記第1の記憶手段に格納されたデータ要素群から、所定数の連続するアドレスのデータブロックを抽出して、前記第2の記憶手段に格納する第2格納ステップと、前記第2の記憶手段に格納された前記データブロックについて、当該データブロックに含まれる各データ要素のデータ値に基づいてヒープソートを行うステップと、前記ヒープソートにより並び替えられた前記データブロックに基づいて、前記第1の記憶手段に格納された当該データブロックのデータ値を更新するステップと、を実行させ、前記更新された前記第1の記憶手段に格納されたデータ要素群を所定の処理に供する、ように機能させることを特徴とする。
【発明の効果】
【0015】
請求項1に記載の発明によれば、ヒープソートの処理単位毎に2分木構造を維持したまま連続するアドレスに格納するためメモリアクセスの局所性が高まり、ソフトウェア的にクラスタリングを実装した場合にも、データ量がメインメモリサイズより大きい大規模なデータセットに対して、処理速度が極端に低下しない。
【0016】
請求項2に記載の発明によれば、ヒープソートの処理順にデータを格納しておくことで、大規模容量ディスクとメモリ間のスワッピングの発生を抑制することができる。
【0017】
請求項3に記載の発明によれば、ヒープソートの処理単位のデータブロック毎にまとめて大容量ディスクに格納し、そのデータブロック単位でメモリに転送して処理を行うことで、大規模容量ディスクとメモリ間のスワッピングの発生を抑制することができる。
【0018】
請求項4に記載の発明によれば、専用のハードウェアを用いずに、ソフトウェア的にクラスタリングを実装した場合にも、データ量がメインメモリサイズより大きい大規模なデータセットのヒープソートの処理速度を極端に低下させずに処理できる。
【0019】
請求項5に記載の発明によれば、データ量がメインメモリサイズより大きい大規模なデータセットに対してクラスタリング処理を行う際に、専用のハードウェアを用いずに、ソフトウェア的にクラスタリングを実装した場合にも、処理速度が極端に低下しないようにできる。
【0020】
請求項6に記載の発明によれば、クラスタリングの結果、データ構造を再構築して処理を継続する場合にも、処理速度が極端に低下しないようにできる。
【0021】
請求項7に記載の発明によれば、同一の層に位置するデータブロックについては並列処理が容易であり、ヒープソートの処理を高速化できる。
【0022】
請求項8に記載の発明によれば、データ量がメインメモリサイズより大きい大規模なデータセットに対して、処理速度が極端に低下しないようにコンピュータを機能させることができる。
【発明を実施するための最良の形態】
【0023】
以下、本発明を実施するための好適な実施の形態(以下、実施形態という)を、図面に従って説明する。
【0024】
図1には、本実施形態に係るデータ分析装置の機能ブロック図を示す。図1に示されるように、データ分析装置10は、機能的な構成として、大容量低速記憶部20、小容量高速記憶部22、データ管理部24、2分木データ配列部26、ヒープソート処理部28、及びクラスタリング処理部30を備える。なお、データ管理部24、2分木データ配列部26、ヒープソート処理部28、及びクラスタリング処理部30の各機能は、コンピュータシステムたるデータ分析装置10がコンピュータプログラムに従って動作することにより実現されるものとしてよい。また、コンピュータプログラムは、CD−ROM、DVD−ROM、フラッシュメモリ等のコンピュータが読み取り可能なあらゆる形態の情報記録媒体に格納され、データ分析装置10に接続された図示しない媒体読み取り装置によりデータ分析装置10に読み込まれることとしてもよい。また、コンピュータプログラムは、ネットワークを介してデータ分析装置10にダウンロードされることとしても構わない。
【0025】
大容量低速記憶部20は、ハードディスク装置やフラッシュメモリ等により構成される大容量の記憶装置である。大容量低速記憶部20は、データやプログラムが格納される他、メモリのスワップ領域としても用いられる。
【0026】
小容量高速記憶部22は、RAM(ランダムアクセスメモリ)やキャッシュ(1次,2次キャッシュ)等により構成される高速にアクセスが可能な記憶装置である。小容量高速記憶部22は、大容量低速記憶部20に対して記憶容量が小さいが高速に読み・書き等のアクセスをすることができる。
【0027】
データ管理部24は、大容量低速記憶部20と小容量高速記憶部22との間でデータ転送を行う入出力コントローラである。データ管理部24は、CPU(中央処理装置)から指示されたメモリアドレスに基づいて、メモリに格納されたデータの読み出し又は書き込みを行う。
【0028】
2分木データ配列部26は、複数のデータ要素からなるヒープソートの処理対象データを2分木構造に配列するとともに、処理対象データを所定の要素数からなる2分木構造のデータブロックに分割して、大容量低速記憶部20に格納する際の順序を決定する。ここで、2分木データ配列部26は、データブロックの番号に対応づけてそのデータブロックが大容量低速記憶部20のどのアドレスに格納されたかを記憶しておくこととしてもよい。
【0029】
図2には、2分木データ配列部26により2分木構造に配列された処理対象データの一例を示す。図2に示されるように、データ要素「1」を親として、その下にデータ要素「2」及び「3」がデータ要素「1」の子として配列されている。2分木データ配列部26は、このような2分木構造の配列規則に従って処理対象データを順に配列していく。
【0030】
次に、2分木データ配列部26は、2分木構造に配列された処理対象データを、所定数の要素からなる2分木構造のデータブロックに分割する。例えば、処理対象データを、親,子,親,子の4層の2分木構造のデータブロックに分割する場合には、図2に示されているように15個のデータ要素からなるデータブロック毎に処理対象データを分割する。
【0031】
図3に示されるように、分割された各データブロックは、それぞれ2分木構造における親,子の順序で大容量低速記憶部20に順次格納される。具体的には、1つのデータブロックが15個のデータからなるとすると以下のように格納される。まず、データブロック0には、データ要素「1」から「15」までのデータが格納される。ここで、データブロック0では、2分木構造の根に位置するデータ要素「1」を親として、その子のデータ要素「2」,「3」、そして3層目のデータ要素の1つ(例えばデータ要素「4」)を親としてその子のデータ要素「8」,「9」、同様にデータ要素「5」,「10」,「11」という規則で配列して大容量低速記憶部20の連続するメモリアドレスに格納する。他のデータブロックに関しても同様の規則に従って大容量低速記憶部20に格納する。
【0032】
ヒープソート処理部28は、処理対象データのヒープソートを実行する。ヒープソート処理部28は、ハードディスク等の記憶装置に格納されたヒープソートプログラムに基づいて、大容量低速記憶部20から抽出した処理対象データを小容量高速記憶部22に格納した上で、その格納した処理対象データに対してヒープソートを行う。ここで、処理対象データのデータサイズが膨大となると、小容量高速記憶部22には格納しきれない状態となるため、本実施形態では、大容量低速記憶部20から処理対象データの一部のデータブロックを抽出して、小容量高速記憶部22に格納してヒープソートを行い、そのヒープソートの結果を大容量低速記憶部20に戻した上で、新たなデータブロックを小容量高速記憶部22に転送してヒープソートを行うという処理を順次繰り返す。上記の処理は、全てのデータブロックに対してヒープソート処理が終了するまで繰り返される。
【0033】
なお、各データブロックについて行われる根を最小値とするヒープソートの処理の概要は以下の通りである。データブロックの要素数が15の時に、各データブロックの要素を2分木構造の順序で配列した配列N(要素数n=15)として、iを整数としてi=n/2、a=iとした場合に、配列NのデータN[a],N[2a],N[2a+1]を比較して、N[a]が最小の時にはデータの入れ替えを行わない。そして、iをデクリメントした上で、a=iとして、N[a],N[2a],N[2a+1]を比較する。ここで、N[2a]が最小の時には、N[a]とN[2a]のデータを入れ替え、aに2aを代入して、N[a],N[2a],N[2a+1]を比較する。ここで、N[2a+1]が最小の時には、N[a]とN[2a+1]のデータを入れ替え、aに2a+1を代入して、N[a],N[2a],N[2a+1]を比較する。上記の処理をiのデクリメントを行いながら繰り返し、aが1になるまで処理を行う。
【0034】
ヒープソート処理部28は、処理対象データ全体に対するヒープソートの処理を例えば以下の手順で行う。ヒープソート処理部28は、まず大容量低速記憶部20に格納されたデータブロックの中から、最下層のデータブロックの少なくとも一部を抽出して、小容量高速記憶部22に格納する。そして、ヒープソート処理部28は、小容量高速記憶部22に格納されたデータブロックに対して上述したアルゴリズムに従ってヒープソートを実行する。なお、小容量高速記憶部22には複数のデータブロックを転送して、各データブロックについてのヒープソートを並列処理にしてもよい。並列に処理するデータブロック数は、小容量高速記憶部22のデータ容量と、データブロックのデータサイズに応じて決定することとしてよい。
【0035】
クラスタリング処理部30は、クラスタリング処理の対象とするデータ(以下、クラスタリング対象データとする)を複数のクラスタに分類する。クラスタ構造は、階層構造にすることとしてもよい。例えば、複数の文書からなる文書群を複数のクラスタに分類する場合には、各文書から抽出された特徴ベクトルをクラスタリング対象データとすることができる。
【0036】
本実施形態では、クラスタリング対象データを特徴ベクトルとし、2つの特徴ベクトル間の距離をそれぞれ算出して、それらの距離データをヒープソートの処理対象データとして最小値が2分木構造の根にくるようにヒープソートを行う。そして、ヒープソートの結果得られた距離が小さい特徴ベクトル同士を同一のクラスタに分類することとする。すなわち、クラスタリング対象データたる要素数nの特徴ベクトルD〜Dに対して、それぞれのベクトルデータの距離、d1,2,d1,3,…,d1,n,…,dn−1,nを算出し、それらのデータ群をヒープソート対象データとする。なお、di,jとは特徴ベクトルDとDとの距離であるとする。また、ヒープソート対象データ数は、クラスタリング対象データがn個あるとすると、n(n−1)/2となる。
【0037】
クラスタリング処理部30では、ヒープソート対象データを2分木データ配列部26により2分木構造に配列するとともに、配列したヒープソート対象データを所定数(例えば15個)のデータからなるデータブロックに分割して、データブロック毎に大容量低速記憶部20に格納する。格納されたヒープソート対象データは、データブロック毎に小容量高速記憶部22に読み込まれて順次ヒープソートが実行される。
【0038】
なお、ヒープソートの同じ層に位置するデータブロックについてヒープソートが終了し、その上位に位置するデータブロックについてヒープソートを開始する際には、上位のデータブロック並びに下位のデータブロックのうち少なくとも上位のデータブロックに接続しているノードについて小容量高速記憶部22に読み込み、上位のデータブロックのヒープソートを行う。そして、ヒープソートは、下位の階層から上位の階層へと順次処理を進めて、最上位のデータブロックについての処理が終了するまで実行される。
【0039】
ヒープソート処理が終了すると、クラスタリング処理部30は、ヒープソートの結果、例えば根に格納されたデータ要素がdk,lである場合には、特徴ベクトルDとDとが同じクラスタに属すると判断する。そして、クラスタリング処理部30は、ヒープソート対象データについて、同じクラスタに属する特徴ベクトルDとDとを同じ要素とみなして、どちらか一方の要素と他の特徴ベクトルとの距離データをヒープソート対象データの中から削除する。ここで、2分木データ配列部26は、要素が削除されたヒープソート対象データに基づいて2分木構造の配列を再構築し、大容量低速記憶部20に格納する。
【0040】
クラスタリング処理部30は、所定の終了条件を満たすまで、クラスタリング対象データに対するクラスタリング処理を実行する。所定の終了条件とは、例えばクラスタリング対象データが所定数まで絞り込まれたこととしてもよいし、その他にも、クラスタ数が所定数に達したこと、又は距離が所定の範囲内にある特徴ベクトルがなくなるまで等の様々な条件を採ることとしてよい。
【0041】
次に、図4を参照しつつ、本実施形態に係るデータ分析装置10によるクラスタリング処理の一連の流れを説明する。
【0042】
まず、データ分析装置10は、複数の特徴ベクトルを要素としたクラスタリング対象データを読み込む(S101)。データ分析装置10は、読み込んだクラスタリング対象データのそれぞれの特徴ベクトル間の距離データ(以下、ヒープソート対象データとする)を算出し(S102)、ヒープソート対象データを2分木構造に配列する(S103)。データ分析装置10は、2分木構造に配列したヒープソート対象データを所定要素数からなるデータブロックに分割して、HDD等の大容量低速記憶部20に一旦格納する(S104)。
【0043】
次に、データ分析装置10は、大容量低速記憶部20に一旦格納されたヒープソート対象データの中から、データブロックを単位として抽出し、RAM等の小容量高速記憶部22に格納するとともに、格納したデータブロックの根のノードに最小値が配置されるようにヒープソートを行う(S105)。データ分析装置10は、上記のヒープソートを下位の層のデータブロックから順次実行し、全てのデータブロック、すなわち最上位の層のデータブロックについて処理が終了したか否かを判断し(S106)、終了していない場合には(S106:N)、未処理のデータブロックを読み込んでヒープソートを実行する。一方で、全てのデータブロックについて処理が終了した場合には(S106:Y)、ヒープソートの結果、距離が近いクラスタリング対象データ同士を同一のクラスタに分類するとともに、同一のクラスタに分類された一方のデータに関する距離データをヒープソート対象データの中から削除する(S107)。データ分析装置10は、クラスタリングの結果が所定の終了条件、例えばクラスタ数が所定数まで達したか否か、又は最小の距離が所定条件内にあること等を満たしているか否かを判断し(S108)、その終了条件を満たしていない場合には(S108:N)、ヒープソート対象データを再配列するとともに以下の処理を繰り返し、終了条件を満たしている場合には(S108:Y)、クラスタリング処理を終了する。また、データ分析装置10は、上記処理により得られたクラスタリング結果をディスプレイに表示することとしてもよい。
【0044】
以上説明した本実施形態に係るデータ分析装置10によれば、データ分析装置10がコンピュータプログラムに基づいてクラスタリング処理を行う場合にも、データ量がメインメモリサイズより大きい大規模なデータセットに対して処理速度を極端に低下させないようにできる。
【0045】
なお、本発明は上記の実施形態に限定されるものではなく、例えばデータブロック毎にそのデータブロックが現在処理対象になっているのか否かを示すフラグを対応づけて記憶することとしてもよい。フラグはそのデータブロックが処理されていない状態(クリアー状態)であれば「0」を、処理されている状態(ビジー状態)であれば「1」を格納しておくこととしてよい。そして、データ分析装置10は、処理対象とするデータブロックのフラグがクリア状態「0」であるものを発見するまで読み出しを継続して並列処理を行うこととしてよい。また、処理対象データに応じて構築された2分木構造に応じて、最適な処理順序を予め決定した上でデータの並列処理を行うこととしてもよい。
【図面の簡単な説明】
【0046】
【図1】本実施形態に係るデータ分析装置の機能ブロック図である。
【図2】2分木構造に配列された処理対象データの一例を示す図である。
【図3】処理対象データをメモリアドレスに格納する順序を示す図である。
【図4】クラスタリング処理の一連の流れを説明するフロー図である。
【符号の説明】
【0047】
10 データ分析装置、20 大容量低速記憶部、22 小容量高速記憶部、24 データ管理部、26 2分木データ配列部、28 ヒープソート処理部、30 クラスタリング処理部。

【特許請求の範囲】
【請求項1】
第1の記憶手段と、
前記第1の記憶手段よりも記憶容量が小さく、高速にアクセスが可能な第2の記憶手段と、
複数のデータ要素からなるデータ要素群を2分木構造に配列するとともに、当該2分木構造において親であるデータ要素、当該親の子であるデータ要素の順序で前記第1の記憶手段の連続するアドレスに格納する第1格納手段と、
前記第1の記憶手段から、所定数の連続するアドレスに格納された前記データ要素群の部分要素群を抽出して、前記第2の記憶手段に格納する第2格納手段と、
前記第2の記憶手段に格納された前記部分要素群に含まれる各データ要素のデータ値をヒープソートにより並び替える手段と、
前記データ値が並び替えられた部分要素群に基づいて、前記第1の記憶手段において当該部分要素群に対応するアドレスに格納されたデータ値を更新する手段と、を含み、
前記更新された前記第1の記憶手段に格納されたデータ要素群を所定の処理に供する、
ことを特徴とするデータ分析装置。
【請求項2】
前記第1格納手段は、前記2分木構造の上位層又は下位層のいずれかから順に、前記データ要素群を前記第1の記憶手段の連続するアドレスに格納する、
ことを特徴とする請求項1に記載のデータ分析装置。
【請求項3】
前記第1格納手段は、前記データ要素群を、前記所定数のデータ要素からなる2分木構造のデータブロックに分割するとともに、当該分割された各データブロックについてそれぞれ親であるデータ要素、当該親の子であるデータ要素の順序で前記第1の記憶手段の連続するアドレスに格納し、
前記第2格納手段は、前記データブロック毎にデータを抽出して前記第2の記憶手段に格納する、
ことを特徴とする請求項1又は2に記載のデータ分析装置。
【請求項4】
前記第1の記憶手段から前記所定数の連続するアドレスに格納された部分要素群を新たに抽出して、当該新たに抽出した部分要素群のデータ値を更新する処理を所定の終了条件が満たされるまで繰り返して実行した後に、前記第1の記憶手段に格納されたデータ要素群を所定の処理に供する、
ことを特徴とする請求項1乃至3のいずれかに記載のデータ分析装置。
【請求項5】
前記データ要素群は、クラスタリングの対象とする複数のスカラ又はベクトルデータ間のそれぞれの距離データをデータ要素とし、
前記所定の終了条件が満たされた後に前記第1の記憶手段に格納されたデータ要素群に基づいてクラスタリングを行う、
ことを特徴とする請求項4に記載のデータ分析装置。
【請求項6】
前記所定の条件が満たされた後に、前記2分木構造の根のデータ要素を距離データとした2つのクラスタリング対象データを同一のクラスタとして分類する手段と、
前記同一のクラスタに分類されたクラスタリング対象データのいずれか一方に関する全ての距離データを前記データ要素群のデータ要素の中から削除する手段と、をさらに含み、
前記第1格納手段は、前記データ要素が削除されたデータ要素群を2分木構造に再び配列するとともに、当該配列したデータ要素群を前記第1の記憶手段に格納する、
ことを特徴とする請求項5に記載のデータ分析装置。
【請求項7】
前記第2格納手段は、前記第1の記憶手段から前記データ要素群の異なる部分要素群を複数抽出して前記第2の記憶手段に格納し、
前記第2の記憶手段に格納された各部分要素群についてのヒープソートを並列処理により行う、
ことを特徴とする請求項1乃至6のいずれかに記載のデータ分析装置。
【請求項8】
第1の記憶手段と、前記第1の記憶手段よりも記憶容量が小さく、高速にアクセスが可能な第2の記憶手段と、を備えるコンピュータに、
複数のデータ要素からなるデータ要素群を2分木構造に配列するとともに、当該2分木構造において親であるデータ要素、当該親の子であるデータ要素の順序で前記第1の記憶手段に格納する第1格納ステップと、
前記第1の記憶手段に格納されたデータ要素群から、所定数の連続するアドレスのデータブロックを抽出して、前記第2の記憶手段に格納する第2格納ステップと、
前記第2の記憶手段に格納された前記データブロックについて、当該データブロックに含まれる各データ要素のデータ値に基づいてヒープソートを行うステップと、
前記ヒープソートにより並び替えられた前記データブロックに基づいて、前記第1の記憶手段に格納された当該データブロックのデータ値を更新するステップと、を実行させ、
前記更新された前記第1の記憶手段に格納されたデータ要素群を所定の処理に供する、
ように機能させることを特徴とするデータ分析プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate