JP2016042237A - クラスタリング装置、方法、及びプログラム - Google Patents

クラスタリング装置、方法、及びプログラム Download PDF

Info

Publication number
JP2016042237A
JP2016042237A JP2014165245A JP2014165245A JP2016042237A JP 2016042237 A JP2016042237 A JP 2016042237A JP 2014165245 A JP2014165245 A JP 2014165245A JP 2014165245 A JP2014165245 A JP 2014165245A JP 2016042237 A JP2016042237 A JP 2016042237A
Authority
JP
Japan
Prior art keywords
pivot
center
distance
data point
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014165245A
Other languages
English (en)
Other versions
JP6247613B2 (ja
Inventor
正嗣 服部
Masatsugu Hattori
正嗣 服部
一生 青山
Kazuo Aoyama
一生 青山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014165245A priority Critical patent/JP6247613B2/ja
Publication of JP2016042237A publication Critical patent/JP2016042237A/ja
Application granted granted Critical
Publication of JP6247613B2 publication Critical patent/JP6247613B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】クラスタリングを高速に行うことができるようにする。【解決手段】入力部10が、データ点の集合と、クラスタの数とを受け付ける。そして、クラスタリング部22が、複数のデータ点の各々について、ピボットデータ点距離記憶部38に記憶された、データ点とピボットとの間の距離、及びピボット中心距離記憶部44に記憶された、複数のクラスタの中心の各々とピボットとの間の距離に基づいて、データ点が所属するクラスタを決定する。そして、分割結果処理部48が、複数のクラスタの中心の各々について、当該中心に所属するデータ点を出力する。そして、出力部50が、分割結果処理部48によって出力されたデータ点を結果として出力する。【選択図】図1

Description

本発明は、クラスタリング装置、方法、及びプログラムに係り、特に、データ点が所属するクラスタを決定するクラスタリング装置、方法、及びプログラムに関する。
情報通信技術の発展に伴い、日々多種多量の大規模データ(ビッグデータ)が生成・収集・蓄積されている。ビッグデータの効果的な活用のためには、与えられたデータを教師データなしに自動的に分類するクラスタリング技術は不可欠である。Lloyd法は非階層型のクラスタリング手法として知られるk−means法の典型であり、データマイニングにおいて主要なアルゴリズムの一つに位置付けられている。
Lloyd法の詳細なアルゴリズムは非特許文献1のとおりである。Lloyd法は、ユークリッド空間上のN個のデータ点の集合Xとその集合を分割するクラスタの数k(k<N)を入力として、互いに素なk個の集合
を出力する。ただし、Y(i=1,2,... ,k)は、
である。ここで、Xを分割する際に、N個のデータ点について、k個のクラスタの中心(セントロイド)のうち最も近い中心を求めるためにN×k回の距離計算を繰り返し行う必要がある。そのため、Nが大きな値を持つビッグデータにLloyd法を適用した場合、結果出力までに多大な計算量、即ち、計算時間を要するという問題が生じる。この問題を解決するため、距離計算の一部を省略することで高速化を行う種々の高速化手法が提案されている。
たとえば、下記の非特許文献2で、Elkanは距離の三角不等式を利用して算出した中心とデータ点の距離の下限を用いて不必要な距離計算を避ける手法が提案している。
Elkanの手法では、まずk個の中心それぞれとN個のデータ点との距離の下限値を記憶するために記憶領域を確保する。実計算を行うたびに距離の下限値は、実距離によって置換され、中心座標が更新される毎に中心座標の移動距離分だけ減算される(減算によって0以下になる場合は0に置換される)。
図24を用いてElkanの方法における距離計算の省略方法を示す。データ点xが所属している中心をcとし、c以外の中心cについて一反復前にxとcとの距離Dが計算されていたとする(このとき、xとcとの距離の下限値はDに置換される。)。中心の座標が更新された後、xの所属がcからcに変更されるか否かを考える。以下、d(a,b)はユークリッド空間上の2点a,bの距離を表す。xとcとの距離の下限値は、cの移動距離d分減算され、D−dとなる。このとき、xとcとの距離d(x,c)がd(x,c)<D−d(距離の省略判定不等式)を満たせばd(x,c)の計算を行うことなく、xの所属がcからcに変更されないことが分かる。つまり、d(データ点,所属する中心)とd(更新前の中心,更新後の中心)の計算を行うことでd(データ点,所属していない中心)の計算の一部を省略できる。
下記の通り、距離の省略判定不等式に必要なd(データ点,所属する中心)とd(更新前の中心,更新後の中心)に比べ、省略される距離であるd(データ点,所属していない中心)の個数が多いので、距離計算の割合によってはk−meansクラスタリングの大幅な高速化が達成される。
d(データ点,所属する中心):N個
d(更新前の中心,更新後の中心):k個
d(データ点,所属していない中心):N×(k−1)個
Bishop.ChristopherM.(著), and 元田浩、栗田多喜夫、樋口知之、松本裕治、村田 昇 (監訳)、「パターン認識と機械学習上・下」、2007、p.140−146 Elkan, Charles.,"Using the triangle inequality to accelerate k-means.",2003,ICML. Vol. 3.
しかし、上述のElkanの手法は距離の下限値を格納するためにO(N×k)の記憶容量を必要とする。このため、汎用の計算機を用いてNが大きな値を持つビッグデータを大きなkで分割することは困難である。
本発明は上記事情に鑑みてなされたものであり、データ点の数及びクラスタの数が大きな値であっても、少ない記憶容量でデータ点が所属するクラスタを高速に決定することができるクラスタリング装置、方法、及びプログラムを提供することを目的とする。
上記目的を達成するために、第1の発明に係るクラスタリング装置は、複数のデータ点をクラスタリングするクラスタリング装置であって、複数のデータ点の各々と、前記データ点を表す空間上の点であるピボットとの間の距離を記憶したピボットデータ点距離記憶部と、複数のクラスタの中心の各々と、前記ピボットとの間の距離を記憶したピボット中心距離記憶部と、前記複数のデータ点の各々について、前記ピボットデータ点距離記憶部に記憶された、前記データ点と前記ピボットとの間の距離、及び前記ピボット中心距離記憶部に記憶された、前記複数のクラスタの中心の各々と前記ピボットとの間の距離に基づいて、前記データ点が所属する前記クラスタを決定するクラスタリング部と、を含んで構成されている。
また、第2の発明に係るクラスタリング方法は、複数のデータ点の各々と、前記データ点を表す空間上の点であるピボットの各々との間の距離を記憶したピボットデータ点距離記憶部と、複数のクラスタの中心の各々と、前記ピボットとの間の距離を記憶したピボット中心距離記憶部と、クラスタリング部とを含み、前記複数のデータ点をクラスタリングするクラスタリング装置におけるクラスタリング方法であって、前記クラスタリング部が、前記複数のデータ点の各々について、前記ピボットデータ点距離記憶部に記憶された、前記データ点と前記ピボットとの間の距離、及び前記ピボット中心距離記憶部に記憶された、前記複数のクラスタの中心の各々と前記ピボットとの間の距離に基づいて、前記データ点が所属する前記クラスタを決定するステップを含んで構成されている。
また、前記クラスタリング部は、前記複数のデータ点の各々について、前記ピボットデータ点距離記憶部に記憶された、前記データ点と前記ピボットとの間の距離、及び前記ピボット中心距離記憶部に記憶された、前記複数のクラスタの中心の各々と前記ピボットとの間の距離に基づいて、距離の三角不等式を用いて、前記データ点が所属する前記クラスタを変更するか否かを判定し、前記データ点が所属する前記クラスタを変更すると判定された場合に、前記データ点が所属する前記クラスタを変更する所属変更判定部を含み、前記所属変更判定部によって前記複数のデータ点の各々について前記データ点が所属する前記クラスタを変更しないと判定されるまで、前記所属変更判定部による判定及び変更を繰り返すことにより、前記複数のデータの各々について、前記データ点が所属する前記クラスタを決定するようにすることができる。
また、第1又は第2の発明は、前記複数のデータ点、又は前記複数のクラスタの中心に基づいて、前記空間上の点から、前記ピボットを選択するピボット選択部を更に含むようにすることができる。
また、第3の発明に係るプログラムは、コンピュータを、本発明のクラスタリング装置の各部として機能させるためのプログラムである。
第4の発明に係るクラスタリング装置は、複数のデータ点をクラスタリングするクラスタリング装置であって、前記複数のデータ点の各々について、複数のクラスタの中心間の距離、又は前記データ点の所属する前記クラスタの決定に応じて前記クラスタの中心の位置が変更されたか否かに基づいて、前記データ点が所属する前記クラスタを決定するクラスタリング部を含んで構成されている。
第4の発明に係るクラスタリング装置によれば、データ点の数及びクラスタの数が大きな値であっても、少ない記憶容量で複数のデータ点を高速にクラスタリングすることができる。
以上説明したように、本発明のクラスタリング装置、方法、及びプログラムによれば、複数のデータ点の各々について、ピボットデータ点距離記憶部に記憶された、データ点とピボットとの間の距離、及びピボット中心距離記憶部に記憶された、複数のクラスタの中心の各々とピボットとの間の距離に基づいて、データ点が所属するクラスタを決定することにより、データ点の数及びクラスタの数が大きな値であっても、少ない記憶容量で複数のデータ点を高速にクラスタリングすることができる、という効果が得られる。
第1の実施の形態に係るクラスタリング装置の構成を示すブロック図である。 ピボットを用いた距離計算の省略の概要を説明するための説明図である。 第1の実施の形態におけるデータ分割処理ルーチンの内容を示すフローチャートである。 第1の実施の形態におけるピボット選択処理ルーチンの内容を示すフローチャートである。 第1の実施の形態における第2ピボット選択処理ルーチンの内容を示すフローチャートである。 第1の実施の形態における第2ピボット選択処理ルーチンの内容を示すフローチャートである。 第1の実施の形態における所属変更判定処理ルーチンの内容を示すフローチャートである。 第1の実施の形態における所属変更判定処理ルーチンの内容を示すフローチャートである。 第2の実施の形態における第2ピボット選択処理ルーチンの内容を示すフローチャートである。 第3の実施の形態に係るクラスタリング装置の構成を示すブロック図である。 第3の実施の形態におけるデータ分割処理ルーチンの内容を示すフローチャートである。 第3の実施の形態におけるピボット選択処理ルーチンの内容を示すフローチャートである。 第4の実施の形態におけるピボット選択処理ルーチンの内容を示すフローチャートである。 第5の実施の形態におけるピボット選択処理ルーチンの内容を示すフローチャートである。 第5の実施の形態におけるピボット選択処理ルーチンの内容を示すフローチャートである。 第6の実施の形態に係るクラスタリング装置の構成を示すブロック図である。 第6の実施の形態に係るクラスタリング装置の処理の概要を示す概念図である。 第6の実施の形態におけるデータ分割処理ルーチンの内容を示すフローチャートである。 第6の実施の形態における所属変更判定処理ルーチンの内容を示すフローチャートである。 第7の実施の形態に係るクラスタリング装置の構成を示すブロック図である。 第7の実施の形態に係るクラスタリング装置の処理の概要を示す概念図である。 第7の実施の形態におけるデータ分割処理ルーチンの内容を示すフローチャートである。 第7の実施の形態における所属変更判定処理ルーチンの内容を示すフローチャートである。 従来技術を説明するための説明図である。
以下、図面を参照して本発明の実施の形態を詳細に説明する。本発明の実施の形態は、複数のデータ点をクラスタリングするクラスタリング装置に本発明を適用させた場合を例に説明する。
<概要>
まず、第1〜第5の実施の形態の概要について説明する。第1〜第5の実施の形態は、ユークリッド空間上のN個のデータ点の集合Xと、集合Xを分割するクラスタの数k(k<N)を入力として、集合Xをk個に分割し、k個の集合Y(i=1,2,...,k)を出力するにあたり、次の2つの処理を行うことを特徴とする。第1〜第5の実施の形態では、データ点を表す空間上に存在する点であって、かつ当該空間上において移動しない点である不動点を用いて、複数のデータ点をクラスタリングする。第1〜第5の実施の形態では、不動点としてピボットを用いる場合を例に説明する。
1.本実施の形態に係るクラスタリング装置は、ユークリッド空間上に存在するピボットをj個(j<k)選択し、ピボットの座標を記憶部に記憶させる処理を行う。ここで、ピボットとは、データ点を表す空間上の点である。なお、ピボットはデータ点と一致してもしなくともよい。また、本実施の形態では、複数のピボットを用いる場合を例に説明するが、ピボットは1つであってもよい。また、距離計算の省略(第1の実施の形態において後述する)の割合向上の点から、ピボットは以下の二つの性質を有することを望まれる。
(ア)ユークリッド空間中でデータ点の密な領域に存在すること。
(イ)同一の領域に複数のピボットが存在しないこと。
2.ピボットを用いて距離計算の不要な計算を省略しながら、k個のクラスタの中心のうちでデータ点に最も近い中心を選出し、選出された中心を表す識別子を記憶部に記憶させる処理を行う。中心を表す識別子は各中心に対して付与した通し番号や記号であってもよいし、中心の座標を記憶した記憶部中の各中心座標の格納位置を示すパスやURLの文字列であってもよい。
[第1の実施の形態]
<クラスタリング装置の構成>
第1の実施の形態に係るクラスタリング装置100は、CPU(Central Processing Unit)と、RAM(Random Access Memory)と、後述する各処理ルーチンを実行するための情報提示プログラムを記憶したROM(Read Only Memory)とを備えたコンピュータで構成されている。CPUがプログラムを、内部記憶装置であるROMから読み込んで実行することにより、コンピュータがクラスタリング装置100として機能する。
クラスタリング装置100には、ユークリッド空間上のN個のデータ点の集合Xと、集合Xを分割するクラスタの数k(k<N)とが入力として与えられる。クラスタリング装置100は、入力された集合Xを、k個のクラスタに分割し、分割結果を出力する。
図1に示すように、クラスタリング装置100は、機能的には、入力部10と、演算部20と、出力部50とを含んだ構成で表すことができる。
入力部10は、データ点の集合Xと、クラスタの数kとを受け付ける。
演算部20は、クラスタリング部22と、データ点座標記憶部26と、中心座標記憶部28と、ピボット座標記憶部32と、中心ID記憶部34と、ピボットデータ点距離記憶部38と、ピボット中心距離記憶部44と、分割結果処理部48とを備えている。
クラスタリング部22は、入力部10によって受け付けたデータ点の集合Xに含まれる複数のデータ点の各々について、当該データ点と複数のピボットの各々との間の距離、及び複数のクラスタの中心の各々と複数のピボットの各々との間の距離とに基づいて、当該データ点が所属するクラスタを決定する。なお、ピボットとは、データ点を表すユークリッド空間上の点である。クラスタリング部22は、データ・分割数処理部24と、ピボット選択部30と、ピボットデータ点距離計算部36と、中心座標更新部40と、ピボット中心距離計算部42と、所属変更判定部46とを備えている。
データ・分割数処理部24は、入力部10によって受け付けたユークリッド空間上のN個のデータ点の集合Xと、集合Xを分割するクラスタの数k(k<N)とに基づいて、次の処理を行う。
データ・分割数処理部24は、入力部10によって受け付けた集合Xに含まれる全てのデータ点のユークリッド座標を、データ点座標記憶部26に記憶させる。また、データ・分割数処理部24は、入力部10によって受け付けたクラスタの数kに基づいて、k個のクラスタの各々について、当該クラスタの中心の仮の中心座標(ランダムに決めてもよいし、全て原点でもよい)を中心座標記憶部28に記憶させる。
データ点座標記憶部26には、データ・分割数処理部24によって格納された集合Xに含まれる全てのデータ点xのユークリッド座標が記憶される。
中心座標記憶部28には、データ・分割数処理部24によって格納されたk個のクラスタの各々についてのクラスタの中心の仮の中心座標、後述するピボット選択部30によって得られたk個のクラスタの各々についてのクラスタの中心の中心座標、又は後述する中心座標更新部40によって更新されたk個のクラスタの各々についてのクラスタの中心の中心座標が記憶される。
ピボット選択部30は、データ点座標記憶部26に記憶された複数のデータ点に基づいて、複数のピボットを選択する。具体的には、ピボット選択部30は、データ点座標記憶部26に記憶されたデータ点xの座標から、j個(j<k)のピボットを選択し、選択されたピボットの座標をピボット座標記憶部32に記憶させる。なお、ピボットの個数jは、予め定められている。
第1の実施の形態では、複数のデータ点から複数のクラスタの中心を決定し、複数のクラスタの中心に基づいて、データ点を表す空間上の点から、複数のピボットを選択する場合を例に説明する。ピボット選択部30は、以下の処理を行い、ピボットを選択する。なお、既に選択されたピボットの集合を既存ピボット集合という。
第1の実施の形態では、ピボット選択部30は、まず、ピボットの選択処理が早期に終了するように、後述する終了条件(下記(1)にて後述)を設定したLloyd法(上記非特許文献1を参照。)と同様の手順を集合Xに適用し、適用した結果得られたk個の中心のうち、所属するデータ点の数が最大の中心を最初のピボットとして選択する。
次に、ピボット選択部30は、ピボットとして選択されていないクラスタの中心の各々について、当該クラスタに所属するデータ点の各々に対し、既存ピボット集合を用いて距離の三角不等式に従って距離計算の省略(省略方法については後述)が行えていない回数を求め、ピボットとして選択されていないクラスタの中心から、距離計算の省略が行えていない回数が多い中心を、ピボットとして再帰的にj−1個選択する。そして、ピボット選択部30は、選ばれたj個のピボットの座標を、ピボット座標記憶部32に記憶させる。第1の実施の形態における具体的なピボットの選択方法は以下の(1)〜(3)に示す通りである。
(1)ピボット選択部30は、データ点の集合Xに対し、Lloyd法と同様の手順を分割数kで1反復だけ適用する。第1の実施の形態では、ピボットの選択処理を早期で終了させるための終了条件として反復回数を1回としたが、複数回であってもよいし、中心座標の移動距離に閾値を設けてそれを下回ったときに、終了とする終了条件としてもよい。
ここで、データ点の集合Xに対しLloyd法と同様の手順を分割数kで1反復だけ適用させる場合には、まず、データ点の集合Xの全データ点の所属を、それぞれランダムにk個の中心に割り振る。そして、複数のクラスタの中心の各々について、当該クラスタの中心の初期座標を、当該クラスタの中心に所属しているデータ点の重心に設定する。そして、データ点の集合Xの各データ点について、k個のクラスタの中心と当該データ点との距離を計算し、最も距離が近い中心に当該データ点の所属を変更する。そして、ピボット選択部30は、データ点の集合Xの複数のデータ点の各々について、当該データ点が所属するクラスタの中心のIDを、中心ID記憶部34に記憶させる。
(2)ピボット選択部30は、上記(1)で得られたk個の中心のうち、所属するデータ点の数が最も大きい中心の初期座標を最初のピボットとし、最初のピボットの座標をピボット座標記憶部32に記憶させる。
(3)ピボット選択部30は、以降、2個目からj個目のピボットについて、ピボットとして選択されていない中心のうち、既存ピボット集合を用いて距離の三角不等式によって「距離計算の省略が行えていない回数が多い中心」をピボットとして選択する。第1の実施の形態では、例えば、2個目からj個目のピボットとして、以下の式(1)を満たす中心cを再帰的にピボットとして選択し、選択された中心cの座標をピボット座標記憶部32に記憶させる。
ただし、C,Pはそれぞれ、k個の中心の集合、既存ピボット集合である。上記(3)の処理は、各中心cについて、count(c)を0に初期化した後、下記疑似コードの手順で計算される(ただし、X(c)は中心cに所属するデータ点の集合である。)。
for x∈X(c
for c∈C\{c
flag=0
for p∈P
if d(x,c)<|d(p,c)−d(p,x)|
flag=1
break
if flag=0
count(c)=count(c)+1
count(c)=count(c)+1
ピボット座標記憶部32には、ピボット選択部30によって選択された複数のピボットの座標が記憶される。
中心ID記憶部34には、データ点の集合Xの複数のデータ点の各々について、当該データ点が所属するクラスタの中心のID番号が記憶される。
ピボットデータ点距離計算部36は、データ点座標記憶部26に記憶された複数のデータ点の座標と、ピボット座標記憶部32に記憶された複数のピボットの座標とを取得し、複数のデータ点の各々と複数のピボットの各々との間の距離を計算する。具体的には、ピボットデータ点距離計算部36は、全てのピボットとデータ点との組み合わせについて、ピボットとデータ点とのユークリッド距離を計算し、ピボットデータ点距離記憶部38に記憶させる。
ピボットデータ点距離記憶部38には、全てのデータ点とピボットとの組み合わせについて、複数のデータ点の各々と複数のピボットの各々との間の距離が記憶されている。
中心座標更新部40は、複数のクラスタの中心の各々について、当該中心に所属しているデータ点を中心ID記憶部34から読み込み、当該中心に所属しているデータ点を調べる。そして、中心座標更新部40は、複数のクラスタの中心の各々について、当該中心に所属するデータ点の座標をデータ点座標記憶部26から読み込み、読み込まれた複数のデータ点の重心を算出し、算出された重心を、当該中心の新たな座標として中心座標記憶部28に記憶させる。
ピボット中心距離計算部42は、中心座標記憶部28に記憶された複数のクラスタの中心の座標と、ピボット座標記憶部32に記憶された複数のピボットの座標とを取得し、複数のクラスタの中心の各々と、複数のピボットの各々との間の距離を計算する。具体的には、ピボット中心距離計算部42は、全ての中心とピボットとの組み合わせについて、中心とピボットとのユークリッド距離を計算し、ピボット中心距離記憶部44に記憶させる。
ピボット中心距離記憶部44は、全ての中心とピボットとの組み合わせについて、複数のクラスタの中心の各々と、複数のピボットの各々との間の距離が記憶されている。
所属変更判定部46は、複数のデータ点の各々について、ピボットデータ点距離記憶部38に記憶された、当該データ点と複数のピボットの各々との間の距離、及びピボット中心距離計算部42に記憶された、複数のクラスタの中心の各々と複数のピボットの各々との間の距離に基づいて、距離の三角不等式を用いて、データ点が所属するクラスタを変更するか否かを判定する。そして、所属変更判定部46は、データ点が所属するクラスタを変更すると判定された場合には、データ点が所属するクラスタを変更する。
また、所属変更判定部46は、複数のデータ点の各々について当該データ点が所属するクラスタを変更しないと判定されるまで、所属変更判定部46による判定及び変更を繰り返すことにより、複数のデータの各々について、当該データ点が所属するクラスタを決定する。
具体的には、所属変更判定部46は、データ点の集合Xの全てのデータ点について、下記の手順(1)〜(4)に従って、当該データ点と最も近い距離に存在する中心に、当該データ点を所属させる。この際、一つでも所属する中心に変更があったデータ点が存在した場合、中心座標更新部40に戻る。一方、一つも存在しなかった場合、分割結果処理部48に進む。
(1)データ点xの所属する中心cを中心ID記憶部34から取得する。
(2)データ点xの座標と、当該データ点xが所属する中心cの座標とを、それぞれデータ点座標記憶部26と中心座標記憶部28とから読み込む。
(3)データ点xと中心cとの距離d(x,c)を算出する。
(4)中心c以外のすべての中心cについて下記を行う。
1.全てのピボットpについて下記を行う。
(ア)ピボットpとデータ点xとの距離d(p,x)をピボットデータ点距離記憶部38から読み込み、ピボットpと中心cとの距離d(p,c)をピボット中心距離記憶部44から読み込む。
(イ)|d(p,x)−d(p,c)|を算出する。(距離の三角不等式より、これはd(x,c)の距離の下限である。)
(ウ)d(x,c)と|d(p,x)−d(p,c)|とを比較し、d(x,c)<|d(p,x)−d(p,c)|であればd(x,c)を計算するまでもなくd(x,c)<d(x,c)であるので、所属の変更は起こらない。次の中心cについて(4)1.に進む。
2.cの座標を中心座標記憶部28から読み込み、d(x,c)を算出する。
3. d(x,c)とd(x,c)との距離の大きさを比べ、d(x,c)>d(x,c)であれば、xの所属をcに変更し、中心ID記憶部34に記憶させる。
図2に、所属変更判定部46による処理の概念図を示す。図2に示すように、本発明の実施の形態では、距離計算の省略を判定するにあたり、d(p,x)とd(p,c)とについて、全てのピボットとデータ点及び中心との組み合わせ数だけ記憶している。記憶する個数はd(p,x)、d(p,c)それぞれについてj×N個,j×k個の計j×(N+k)個である。一方、Elkanの方法は距離計算の省略用に全てのデータ点と中心との組み合わせについて「データ点と中心との距離の下限」を計N×k個記憶していた。N,kがともに大きな数である場合、本発明の実施の形態は、ピボットの数jがクラスタの数kより小さいため、記憶個数についてElkanの方法に比べて効率的になる。なお、ピボットの数jがクラスタの数kに比べ十分小さいほど、少ない記憶容量で済むが、距離計算の省略率は低くなる。また、ピボットの数jがクラスタの数kに近づくほど、大きな記憶容量が必要となり、距離計算の省略率は高くなる。そのため、ピボットの数jは、記憶容量と距離計算の省略率とのかねあいに基づき、決定してもよい。
分割結果処理部48は、複数のクラスタの中心c(i=1,2,...,k)の各々について、当該中心に所属するデータ点を中心ID記憶部34から取得する。そして、分割結果処理部48は、複数のクラスタの中心の各々について、当該中心に所属するデータ点の集合Y(i=1,2,...,k)を出力する。
出力部50は、分割結果処理部48によって出力されたデータ点の集合Y(i=1,2,...,k)を結果として出力する。
<クラスタリング装置100の作用>
次に、本実施の形態に係るクラスタリング装置100の作用について説明する。クラスタリング装置100にデータ点の集合Xとクラスタの数kとが入力されると、図3に示すデータ分割処理ルーチンが実行される。
<データ分割処理ルーチン>
ステップS100において、入力部10によって、データ点の集合Xと、クラスタの数kとを受け付ける。
次に、ステップS102において、データ・分割数処理部24によって、上記ステップS100で受け付けた集合Xに含まれる全てのデータ点のユークリッド座標を、データ点座標記憶部26に記憶させる。また、データ・分割数処理部24によって、上記ステップS100で受け付けたクラスタの数kに基づいて、k個のクラスタの各々について、当該クラスタの中心の仮の中心座標を中心座標記憶部28に記憶させる。
ステップS104において、ピボット選択部30によって、ピボット選択処理が行われる。ステップS104は、図4に示すピボット選択処理ルーチンによって実現される。
<ピボット選択処理ルーチン>
ステップS200において、データ点の集合Xの複数のデータ点の各々について、データ点の所属を、ランダムにクラスタの中心に割り振る。
ステップS202において、複数のクラスタの中心の各々について、中心の初期座標を、当該中心に所属しているデータ点の重心に設定し、中心座標記憶部28に記憶させる。
ステップS204において、データ点の集合Xの複数のデータ点の各々について、k個の中心と当該データ点との距離を計算し、最も距離が近い中心に当該データ点の所属を変更する。また、データ点の集合Xの複数のデータ点の各々について、当該データ点が所属するクラスタの中心のIDを、中心ID記憶部34に記憶させる。
ステップS206において、上記ステップS202で得られたk個の中心の初期座標のうち、所属するデータ点の数が最も大きい中心の初期座標を最初のピボットとし、最初のピボットの座標をピボット座標記憶部32に記憶させる。
ステップS208において、ピボット選択部30によって、第2ピボット選択処理が行われる。ステップS208は、図5及び図6に示す第2ピボット選択処理ルーチンによって実現される。
<第2ピボット選択処理ルーチン>
ステップS300において、全てのクラスタの中心cについて、count(c)を初期化する。なお、中心の集合Cから既存ピボット集合Pを除いた集合に含まれる中心cについて、count(c)を初期化してもよい。
ステップS302において、上記ステップS206又は後述するステップS332でピボットとして選択された中心とは異なる中心cを設定する。
ステップS304において、データ点の集合Xから、上記ステップS302で設定された中心cに所属する1つのデータ点xを設定する。
ステップS306において、上記ステップS304で設定されたデータ点xが所属していない中心cを設定する。
ステップS308において、既存ピボット集合Pから、1つのピボットpを設定する。
ステップS310において、flagに0を代入する。
ステップS312において、上記ステップS304で設定されたデータ点xと当該データ点xが所属する中心cとの間の距離d(x,c)を算出する。また、上記ステップS308で設定されたピボットpと上記ステップS306で設定された中心cとの間の距離d(p,c)を算出する。そして、上記ステップS308で設定されたピボットpと上記ステップS304で設定されたデータ点xとの間の距離d(p,x)を算出する。
ステップS314において、上記ステップS312で算出された各距離に基づいて、d(x,c)<|d(p,c)−d(p,x)|であるか否かを判定する。d(x,c)<|d(p,c)−d(p,x)|である場合には、距離計算の省略が行えていると判定し、ステップS316へ進む。一方、d(x,c)<|d(p,c)−d(p,x)|でない場合には、距離計算の省略が行えていないと判定し、ステップS318へ移行する。
ステップS316において、flagに1を代入する。
ステップS318において、既存ピボット集合に含まれる全てのピボットについて、上記ステップS308〜S314の各処理を実行したか否かを判定する。既存ピボット集合に含まれる全てのピボットについて、上記ステップS308〜S314の各処理を実行した場合には、ステップS320へ進む。一方、上記ステップS308〜S314の各処理を実行していないピボットが存在する場合には、ステップS308へ戻る。
ステップS320において、flagは0であるか否かを判定する。flagが0である場合には、ステップS322へ移行する。一方、flagが0でない場合には、ステップS306へ戻る。
ステップS322において、count(c)を1インクリメントする。
ステップS324において、count(c)を1インクリメントする。
ステップS326において、上記ステップS304で設定したデータ点xが所属していない中心の全てについて、上記ステップS306〜S324の各処理を実行したか否かを判定する。データ点xが所属していない中心の全てについて、上記ステップS306〜S324の各処理を実行した場合には、ステップS328へ進む。一方、上記ステップS306〜S324の各処理を実行していない中心が存在する場合には、ステップS306へ戻る。
ステップS328において、データ点の集合Xに含まれる全てのデータ点について、上記ステップS304〜ステップS326の各処理を実行したか否かを判定する。データ点の集合Xに含まれる全てのデータ点について、上記ステップS304〜ステップS326の各処理を実行した場合には、ステップS330へ進む。一方、上記ステップS304〜ステップS326の各処理を実行していないデータ点が存在する場合には、ステップS304へ戻る。
ステップS330において、ピボットとして選択されていない中心の全てについて、上記ステップS302〜S328の各処理を実行したか否かを判定する。ピボットとして選択されていない中心の全てについて、上記ステップS302〜S328の各処理を実行した場合には、ステップS332へ進む。一方、上記ステップS302〜S328の各処理を実行していない中心が存在する場合には、ステップS302へ戻る。
ステップS332において、上記式(1)を満たす中心cを、ピボットとして選択し、選択されたピボットの座標を、ピボット座標記憶部32に記憶させる。
ステップS334において、j−1個のピボットが選択されたか否かを判定する。j−1個のピボットが選択された場合には、第2ピボット選択処理ルーチンを終了する。一方、j−1個のピボットが選択されていない場合には、ステップS300へ戻る。
次に、データ分割処理ルーチンに戻り、ステップS106において、ピボットデータ点距離計算部36によって、上記ステップS102でデータ点座標記憶部26に記憶された複数のデータ点の座標と、上記ステップS322でピボット座標記憶部32に記憶された複数のピボットの座標とを取得し、複数のデータ点の各々と複数のピボットの各々との間の距離を計算する。そして、ピボットデータ点距離計算部36によって、全てのピボットとデータ点との組み合わせについて、計算されたピボットとデータ点との距離を、ピボットデータ点距離記憶部38に記憶させる。
ステップS108において、中心座標更新部40によって、複数のクラスタの中心の各々について、当該中心に所属しているデータ点を中心ID記憶部34から読み込む。そして、中心座標更新部40によって、複数のクラスタの中心の各々について、当該中心に所属するデータ点の座標をデータ点座標記憶部26から読み込み、読み込まれた複数のデータ点の重心を算出し、算出された重心を、当該中心の新たな座標として中心座標記憶部28に記憶させる。
ステップS110において、ピボット中心距離計算部42によって、上記ステップS108で中心座標記憶部28に記憶された複数のクラスタの中心の座標と、上記ステップS322でピボット座標記憶部32に記憶された複数のピボットの座標とを取得し、複数のクラスタの中心の各々と、複数のピボットの各々との間の距離を計算する。具体的には、ピボット中心距離計算部42は、全ての中心とピボットとの組み合わせについて、中心とピボットとのユークリッド距離を計算し、ピボット中心距離記憶部44に記憶させる。
ステップS112において、所属変更判定部46によって、所属変更判定処理が行われる。ステップS112は、図7及び図8に示す所属変更判定処理ルーチンによって実現される。
<所属変更判定処理ルーチン>
ステップS400において、データ点の集合Xから、1つのデータ点xを設定する。
ステップS402において、上記ステップS400で設定されたデータ点xの所属する中心cを中心ID記憶部34から取得する。
ステップS404において、上記ステップS400で設定されたデータ点xの座標を、データ点座標記憶部26から取得する。また、上記ステップS402で取得された中心cの座標を中心座標記憶部28から取得する。
ステップS406において、上記ステップS404で取得されたデータ点xの座標及び中心cの座標に基づいて、データ点xと中心cとの間の距離d(x,c)を算出する。
ステップS408において、上記ステップS402で取得された中心cとは異なる中心cを設定する。
ステップS410において、既存ピボット集合Pから、1つのピボットpを設定する。
ステップS412において、上記ステップS400で設定されたデータ点xと、上記ステップS410で設定されたピボットpとの距離d(p,x)を、ピボットデータ点距離記憶部38から取得する。
ステップS414において、上記ステップS408で設定された中心cと、上記ステップS410で設定されたピボットpとの距離d(p,c)を、ピボット中心距離記憶部44から取得する。
ステップS416において、上記ステップS412で取得されたd(p,x)と、上記ステップS414で取得されたd(p,c)とに基づいて、|d(p,x)−d(p,c)|を算出する。
ステップS418において、上記ステップS406で算出されたd(x,c)と、上記ステップS416で算出された|d(p,x)−d(p,c)|とに基づいて、d(x,c)<|d(p,x)−d(p,c)|を満たすか否かを判定する。d(x,c)<|d(p,x)−d(p,c)|を満たす場合には、ステップS408へ戻る。一方、d(x,c)<|d(p,x)−d(p,c)|を満たさない場合には、ステップS420へ進む。
ステップS420において、上記ステップS408で取得された中心cの座標を、中心座標記憶部28から取得する。
ステップS422において、上記ステップS404で取得されたデータ点xの座標と、上記ステップS420で取得されたた中心cの座標とに基づいて、データ点xと中心cとの間の距離d(x,c)を算出する。
ステップS424において、上記ステップS406で算出されたd(x,c)と、上記ステップS422で算出されたd(x,c)とに基づいて、d(x,c)>d(x,c)を満たすか否かを判定する。d(x,c)>d(x,c)を満たす場合には、ステップS426へ進む。一方、d(x,c)>d(x,c)を満たさない場合には、ステップS428へ移行する。
ステップS426において、上記ステップS400で設定されたデータ点xの所属を、上記ステップS408で設定された中心cに対応するクラスタへ変更し、中心ID記憶部34に記憶させる。
ステップS428において、上記ステップS402で取得された中心c以外の全ての中心cについて、上記ステップS408〜S426の各処理を実行したか否かを判定する。全ての中心cについて、上記ステップS408〜S426の各処理を実行した場合には、ステップS430へ進む。一方、上記ステップS408〜S426の各処理を実行していない中心cが存在する場合には、ステップS408へ戻る。
ステップS430において、データ点の集合Xに含まれる全てのデータ点について、上記ステップS400〜S428の各処理を実行したか否かを判定する。データ点の集合Xに含まれる全てのデータ点について、上記ステップS400〜S428の各処理を実行した場合には、所属変更判定処理ルーチンを終了する。一方、上記ステップS400〜S428の各処理を実行していないデータ点が存在する場合には、ステップS400へ戻る。
次に、データ分割処理ルーチンに戻り、ステップS114において、上記ステップS112でクラスタの変更があったデータ点が存在するか否かを判定する。クラスタの変更があったデータ点が存在しない場合には、ステップS116へ進む。一方、クラスタの変更があったデータ点が存在する場合には、ステップS108へ戻る。
ステップS116において、分割結果処理部48によって、複数のクラスタの中心c(i=1,2,...,k)の各々について、当該中心に所属するデータ点を中心ID記憶部34から取得する。そして、分割結果処理部48によって、複数のクラスタの中心の各々について、当該中心に所属するデータ点の集合Y(i=1,2,...,k)を出力する。
ステップS118において、出力部50によって、分割結果処理部48によって出力されたデータ点の集合Y(i=1,2,...,k)を結果として出力して、データ分割処理ルーチンを終了する。
以上のように、ユーザは、本発明の実施の形態に係るクラスタリング装置を用いて、ユークリッド空間上のN個のデータ点の集合Xと、集合Xを分割するクラスタの数k(k<N)を入力し、k個の集合Y(i=1,2,...,k)を出力として得ることができる。
以上説明したように、第1の実施の形態に係るクラスタリング装置によれば、複数のデータ点の各々について、ピボットデータ点距離記憶部38に記憶された、データ点と複数のピボットの各々との間の距離、及びピボット中心距離記憶部44に記憶された、複数のクラスタの中心の各々と複数のピボットの各々との間の距離に基づいて、データ点が所属するクラスタを決定することにより、データ点の数及びクラスタの数が大きな値であっても、少ない記憶容量で複数のデータ点を高速にクラスタリングすることができる。また、距離計算の省略が行えていない回数が多い中心をピボットとして選択することにより、上述したピボットとして望まれる性質「(イ)同一の領域に複数のピボットが存在しないこと。」を満たしやすいピボットが選択される。
また、データ点の数Nとデータ点の分割数kが共に大きい場合に高速にk−meansクラスタリングを実行することができる。大規模データは多数のクラスタから形成される可能性が高いため、N,kがともに大きな場合に高速にk−meansクラスタリングを実行できることは重要である。
また、データ点の数Nと、データ点の分割数kがともに大きな数である場合、記憶個数については、上記非特許文献2のElkanの方法に比べて効率的になる。
また、本実施の形態は、データ点とクラスタ中心の経由点であるピボットを用いることを特徴とする。Nをデータ点の数、kをクラスタ数、jをピボット数とし、j<k<Nとする。クラスタリング手法の1つであるElkan法は、O(N×k)の記憶領域を必要とする。一方、本実施の形態の手法は、O((N+k)×j)の記憶領域を必要とする。
例えば、データ点数を1つ記憶するのに8バイトが必要(double型を想定)で、データ点数が10億個であり、1,000個のクラスタに分割しようとすると、Elkan法では8テラバイトのメモリが必要だが、ピボットの個数を10個とすると本実施の形態の手法では80ギガバイトのメモリで済む。これにより、これまでElkan法が現実的には取り扱えなかった大規模なデータを、本実施の形態の手法は取り扱うことができる。
本実施の形態の手法がこのような効果を生み出すことができるのは、ピボットを導入したためである。Elkan法と本実施の形態の手法の両方とも、距離計算を省略することにより計算時間の短縮を図っている。Elkan法は、データ点と移動前のクラスタ中心と移動後のクラスタ中心の3点間について、距離の三角不等式を用いて距離計算の省略を図っている。これに対し本実施の形態の手法は、データ点とクラスタ中心とピボットの3点間について、距離の三角不等式を用いて距離計算の省略を図る。この工夫により、上述のようなメモリ節減の効果が生み出される。
[第2の実施の形態]
次に、本発明の第2の実施の形態について説明する。なお、第2の実施の形態に係るクラスタリング装置の構成は、第1の実施の形態と同様の構成となるため、同一符号を付して説明を省略する。
第2の実施の形態では、クラスタの中心とデータ点との間の距離の下限と、クラスタの中心とデータ点との間の実距離との誤差が大きい中心を、ピボットとして選択する点が、第1の実施の形態と異なっている。
上記第1の実施の形態では、2個目からj個目のピボットは、ピボットに選ばれていない中心のうち、既存のピボットを用いて距離の三角不等式によって「距離計算の省略が行えていない回数が多い中心」をピボットとして採用したが、第2の実施の形態では「距離の三角不等式によって得られる中心とデータ点との距離の下限と実距離との誤差が大きい中心」をピボットとして選択する。
<クラスタリング装置の構成>
第2の実施の形態に係るクラスタリング装置のピボット選択部30は、上記第1の実施の形態と同様の手法により、最初のピボットを選択する。ピボット選択部30は、2個目からj個目のピボットについて、複数のデータ点の各々について、データ点と当該データ点が所属するクラスタの中心との距離と、ピボットとデータ点との距離と、ピボットとデータ点が所属するクラスタの中心との距離とに基づいて、以下の式(2)を満たす中心cを再帰的にピボットとして選択する。
<クラスタリング装置の作用>
次に、第2の実施の形態に係るクラスタリング装置の作用について説明する。第2の実施の形態に係るクラスタリング装置では、上記図3に示すデータ分割処理ルーチンと同様の処理ルーチンが実行される。
なお、以下の処理における「error(c)」は、上記式(2)における
に対応する。
データ分割処理ルーチンのステップS104において、ピボット選択部30によって、ピボット選択処理が行われる。ステップS104は、上記図4に示すピボット選択処理ルーチンによって実現される。
ピボット選択処理ルーチンのステップS208において、ピボット選択部30によって、第2ピボット選択処理が行われる。ステップS208は、図9に示す第2ピボット選択処理ルーチンによって実現される。
<第2ピボット選択処理ルーチン>
ステップS500において、1つのクラスタの中心cを設定する。
ステップS502において、上記ステップS500で設定されたクラスタの中心cに対するerror(c)に0を代入する。
ステップS504において、上記ステップS500で設定された中心cに所属する1つのデータ点xを設定する。
ステップS506において、既存ピボット集合に含まれるピボットpの各々について、d(x,c)−|d(p,c)−d(p,x)|の値を算出し、算出された値の各々のうち、最小となるd(x,c)−|d(p,c)−d(p,x)|の値を選択する。
ステップS508において、上記ステップS502で初期化されたerror(c)又は前回の本ステップS508で更新されたerror(c)に、上記ステップS506で選択されたd(x,c)−|d(p,c)−d(p,x)|の最小値を加算して、error(c)を更新する。
ステップS510において、上記ステップS500で設定された中心cに所属する全てのデータ点について、上記ステップS504〜S508の各処理を実行したか否かを判定する。上記ステップS500で設定された中心cに所属する全てのデータ点について、上記ステップS504〜S508の各処理を実行した場合には、ステップS512へ進む。一方、上記ステップS504〜S508の各処理を実行していないデータ点が存在する場合には、ステップS504へ戻る。
ステップS512において、全てのクラスタの中心について上記ステップS500〜S510の各処理を実行したか否かを判定する。全てのクラスタの中心について上記ステップS500〜S510の各処理を実行した場合には、ステップS514へ進む。一方、上記ステップS500〜S510の各処理を実行していないクラスタの中心が存在する場合には、ステップS500へ戻る。
ステップS514において、上記式(2)を満たす中心cを、ピボットとして選択し、選択されたピボットの座標を、ピボット座標記憶部32に記憶させる。
ステップS516において、j−1個のピボットが選択されたか否かを判定する。j−1個のピボットが選択された場合には、第2ピボット選択処理ルーチンを終了する。一方、j−1個のピボットが選択されていない場合には、ステップS500へ戻る。
以上説明したように、第2の実施の形態に係るクラスタリング装置によれば、距離の三角不等式によって得られる中心とデータ点との間の距離の下限と実距離との差が大きい中心をピボットとして選択し、複数のデータ点の各々について、ピボットデータ点距離記憶部38に記憶された、データ点と複数のピボットの各々との間の距離、及びピボット中心距離記憶部44に記憶された複数のクラスタの中心の各々と、複数のピボットの各々との間の距離に基づいて、データ点が所属するクラスタを決定することにより、データ点の数及びクラスタの数が大きな値であっても、少ない記憶容量で複数のデータ点を高速にクラスタリングすることができる。また、距離の三角不等式によって得られる中心とデータ点との間の距離の下限と実距離との差が大きい中心をピボットとして選択することにより、上述したピボットとして望まれる性質「(イ)同一の領域に複数のピボットが存在しないこと。」を満たしやすいピボットが選択される。
[第3の実施の形態]
次に、本発明の第3の実施の形態について説明する。なお、第1又は第2の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
第3の実施の形態では、Lloyd法を適用することなくピボット選択を行う点が、第1又は第2の実施の形態と異なっている。
第1又は第2の実施の形態では、Lloyd法を1反復適用し、得られた中心に基づいてピボットを選択したが、第3の実施の形態では、Lloyd法を適用することなくピボットを選択する。
<クラスタリング装置の構成>
図10に示すように、第3の実施の形態に係るクラスタリング装置300は、機能的には、入力部10と、演算部20と、出力部50とを含んだ構成で表すことができる。
演算部20は、クラスタリング部322と、データ点座標記憶部26と、中心座標記憶部28と、ピボット座標記憶部32と、ピボットデータ点距離記憶部38と、中心ID記憶部34と、ピボット中心距離記憶部44と、分割結果処理部48とを備えている。
クラスタリング部322は、データ・分割数処理部24と、ピボット選択部30と、ピボットデータ点距離計算部36と、初期所属中心決定部329と、中心座標更新部40と、ピボット中心距離計算部42と、所属変更判定部46とを備えている。
初期所属中心決定部329は、中心座標記憶部28に記憶されている中心の数から分割数kを取得する(または、データ・分割数処理部24から直接取得してもよい)。そして、初期所属中心決定部329は、データ点の集合Xのデータ点の各々について、当該データ点の所属をそれぞれランダムにクラスタの中心に割り振り、当該データ点が所属する中心のID番号を中心ID記憶部34に記憶させる。
第3の実施の形態に係るクラスタリング装置300のピボット選択部30は、たとえば、データ点の集合Xから、ランダムに初期ピボットを選択し、以降、既存ピボット集合から最も遠いデータ点を再帰的にj−1回選択する。そして、ピボット選択部30は、選択されたピボットの座標をピボット座標記憶部32に記憶させる。
<クラスタリング装置の作用>
次に、第3の実施の形態に係るクラスタリング装置の作用について説明する。第3の実施の形態に係るクラスタリング装置では、図11に示すデータ分割処理ルーチンが実行される。なお、図11に示すデータ分割処理ルーチンにおける、第1の実施の形態におけるデータ分割処理ルーチンと同一の処理については、同一符号を付して、詳細な説明を省略する。
ステップS103において、初期所属中心決定部329によって、データ点の集合Xのデータ点の各々について、当該データ点の所属をそれぞれランダムにクラスタの中心に割り振り、当該データ点が所属する中心のID番号を中心ID記憶部34に記憶させる。
ステップS104において、ピボット選択部30によって、ピボット選択処理が行われる。ステップS104は、図12に示すピボット選択処理ルーチンによって実現される。
<ピボット選択処理ルーチン>
ステップS600において、データ点の集合Xから、1つのピボットを選択する。
ステップS602において、データ点の集合Xから、上記ステップS600で選択された最初のピボットと前回までの本ステップS602で選択されたピボットとを含むピボット集合から最も遠いデータ点を、ピボットとして選択する。
ステップS604において、j個のピボットが選択されたか否かを判定する。j個のピボットが選択された場合には、ピボット選択処理ルーチンを終了する。一方、j個のピボットが選択されていない場合には、ステップS600へ戻る。
なお、第3の実施の形態に係るクラスタリング装置の他の構成及び作用については、第1の実施の形態と同様であるため、説明を省略する。
以上説明したように、第3の実施の形態に係るクラスタリング装置によれば、既存ピボット集合から最も遠いデータ点を再帰的にピボットとして選択し、複数のデータ点の各々について、ピボットデータ点距離記憶部38に記憶された、データ点と複数のピボットの各々との間の距離、及びピボット中心距離記憶部44に記憶された、複数のクラスタの中心の各々と複数のピボットの各々との間の距離に基づいて、データ点が所属するクラスタを決定することにより、データ点の数及びクラスタの数が大きな値であっても、少ない記憶容量で複数のデータ点を高速にクラスタリングすることができる。また、既存ピボット集合から最も遠いデータ点を再帰的にピボットとして選択することにより、上述したピボットとして望まれる性質「(イ)同一の領域に複数のピボットが存在しないこと。」を満たしやすいピボットが選択される。
[第4の実施の形態]
次に、本発明の第4の実施の形態について説明する。なお、第4の実施の形態に係るクラスタリング装置の構成は、第3の実施の形態と同様の構成となるため、同一符号を付して説明を省略する。
第4の実施の形態では、確率的にピボットの選択を行う点が、第1〜第3の実施の形態と異なっている。
上記第1〜第3の実施の形態では、決定論的にピボットの選択を行ったが、第4の実施の形態では、確率的にピボットの選択を行う。
<クラスタリング装置の構成>
第4の実施の形態に係るクラスタリング装置のピボット選択部30は、ランダムに最初のピボットを選択する。ピボット選択部30は、2個目からj個目のピボットについて、データ点の集合Xから既存ピボット集合Pを除いた集合から、以下の式(3)に示す確率に従って、x’∈X\Pをピボットとして選択する。
なお、D(x)は既存ピボット集合のうち、最もデータ点xと近い距離に存在するピボットと、データ点xとの間の距離を表す。
<クラスタリング装置の作用>
次に、第4の実施の形態に係るクラスタリング装置の作用について説明する。第4の実施の形態に係るクラスタリング装置では、上記図11に示すデータ分割処理ルーチンと同様の処理ルーチンが実行される。
ステップS104において、ピボット選択部30によって、ピボット選択処理が行われる。ステップS104は、図13に示すピボット選択処理ルーチンによって実現される。
<ピボット選択処理ルーチン>
ステップS700において、ランダムに1つ目のピボットを選択し、ピボット座標記憶部32に記憶させる。
ステップS702において、データ点の集合Xから、1つのデータ点xを設定する。
ステップS704において、ピボット座標記憶部32から、既存ピボット集合に含まれるピボットの各々の座標を取得し、上記ステップS702で設定されたデータ点xと最も近い距離に存在するピボットとデータ点xとの間の距離D(x)を算出する。
ステップS706において、データ点の集合Xに含まれる全てのデータ点について、上記ステップS702〜S704の各処理を実行したか否かを判定する。全てのデータ点について、上記ステップS702〜S704の各処理を実行した場合には、ステップS708へ進む。一方、上記ステップS702〜S704の各処理を実行していないデータ点が存在する場合には、ステップS702へ戻る。
ステップS708において、データ点の集合Xから既存ピボット集合Pを除いた集合について、上記ステップS704で算出されたD(x)の各々の和を算出する。
ステップS710において、データ点の集合Xから、上記式(3)に示す確率に従って、x’∈X\Pをピボットとして選択し、選択されたピボットの座標を、ピボット座標記憶部32に記憶させる。
ステップS712において、j個のピボットが選択されたか否かを判定する。j個のピボットが選択された場合には、ピボット選択処理ルーチンを終了する。一方、j個のピボットが選択されていない場合には、ステップS710へ戻る。
なお、第4の実施の形態に係るクラスタリング装置の他の構成及び作用については、第1又は第3の実施の形態と同様であるため、説明を省略する。
以上説明したように、第4の実施の形態に係るクラスタリング装置によれば、確率的にピボットを選択し、複数のデータ点の各々について、ピボットデータ点距離記憶部38に記憶された、データ点と複数のピボットの各々との間の距離、及びピボット中心距離記憶部44に記憶された、複数のクラスタの中心の各々と複数のピボットの各々との間の距離に基づいて、データ点が所属するクラスタを決定することにより、データ点の数及びクラスタの数が大きな値であっても、少ない記憶容量で複数のデータ点を高速にクラスタリングすることができる。また、確率的にピボットを選択することにより、データ点の疎な領域に存在するデータ点がピボットとして選択されにくくなるため、上述したピボットとして望まれる性質「(ア)ユークリッド空間中でデータ点の密な領域に存在すること。」を満たしやすいピボットが選択される。
[第5の実施の形態]
次に、本発明の第5の実施の形態について説明する。なお、第5の実施の形態に係るクラスタリング装置の構成は、第3又は第4の実施の形態と同様の構成となるため、同一符号を付して説明を省略する。
第5の実施の形態では、距離計算の省略が行えていない回数が多く、かつ既存のピボットから遠い中心を確率的にピボットとして選択する点が、第1〜第4の実施の形態と異なっている。
上記第1の実施の形態では、count(c)を用いて「距離計算の省略が行えていない回数が多い中心」をピボットとして選択したが、第5の実施の形態では、ピボットの選択にピボット同士の距離の要素を加味することで、ピボットが遠くの領域に配置されやすくする。
<クラスタリング装置の構成>
第5の実施の形態に係るクラスタリング装置のピボット選択部30は、上記第1の実施の形態と同様の手法により、最初のピボットを選択する。ピボット選択部30は、2個目からj個目のピボットについて、複数のデータ点の各々について、データ点と当該データ点が所属するクラスタの中心との距離と、ピボットとデータ点との距離と、ピボットとデータ点が所属するクラスタの中心との距離とに基づいて、中心の集合Cから既存ピボット集合Pを除いた集合から、以下の式(4)に示す確率に従って、中心c∈C\Pをピボットとして選択する。
なお、D(c)は既存のピボットのうち最も中心cと近い距離に存在するピボットと、中心cとの間の距離を表す。
<クラスタリング装置の作用>
次に、第5の実施の形態に係るクラスタリング装置の作用について説明する。第5の実施の形態に係るクラスタリング装置では、上記図11に示すデータ分割処理ルーチンと同様の処理ルーチンが実行される。
データ分割処理ルーチンのステップS104において、ピボット選択部30によって、ピボット選択処理が行われる。ステップS104は、図14及び図15に示すピボット選択処理ルーチンによって実現される。
<ピボット選択処理ルーチン>
ステップS800において、ピボット座標記憶部32から、既存ピボット集合に含まれるピボットの各々の座標を取得し、ステップS302で設定された中心cと最も近い距離に存在するピボットと中心cとの間の距離D(c)を算出する。
ステップS802において、中心の集合Cから既存ピボット集合Pを除いた集合について、上記ステップS800で算出されたD(c)の各々の和を算出する。
ステップS804において、中心の集合Cから、上記式(4)に示す確率に従って、c∈C\Pをピボットとして選択し、選択されたピボットの座標を、ピボット座標記憶部32に記憶させる。
ステップS806において、j個のピボットが選択されたか否かを判定する。j個のピボットが選択された場合には、ピボット選択処理ルーチンを終了する。一方、j個のピボットが選択されていない場合には、ステップS300へ戻る。
なお、第5の実施の形態に係るクラスタリング装置の他の構成及び作用については、第4の実施の形態と同様であるため、説明を省略する。
以上説明したように、第5の実施の形態に係るクラスタリング装置によれば、距離計算の省略が行えていない回数が多く、かつ既存のピボットから遠い中心を確率的にピボットとして選択し、複数のデータ点の各々について、ピボットデータ点距離記憶部38に記憶された、データ点と複数のピボットの各々との間の距離、及びピボット中心距離記憶部44に記憶された複数のクラスタの中心の各々と、複数のピボットの各々との間の距離に基づいて、データ点が所属するクラスタを決定することにより、データ点の数及びクラスタの数が大きな値であっても、少ない記憶容量で複数のデータ点を高速にクラスタリングすることができる。また、距離計算の省略が行えていない回数が多く、かつ既存のピボットから遠い中心を確率的にピボットとして選択することにより、上述したピボットとして望まれる性質「(ア)ユークリッド空間中でデータ点の密な領域に存在すること。」及び「(イ)同一の領域に複数のピボットが存在しないこと。」を満たしやすいピボットが選択される。
[第6の実施の形態]
次に、本発明の第6の実施の形態について説明する。なお、第1〜第5の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
第6の実施の形態では、複数のデータ点をクラスタリングする際に、クラスタリングの繰り返し計算においてクラスタの中心が移動しない場合に、データ点とクラスタの中心との間の距離計算を省略する点が第1〜第5の実施の形態と異なっている。
<クラスタリング装置の構成>
図16に示すように、第6の実施の形態に係るクラスタリング装置600は、機能的には、入力部10と、演算部620と、出力部50とを含んだ構成で表すことができる。
演算部620は、クラスタリング部622と、データ点座標記憶部26と、中心座標記憶部28と、中心ID記憶部34と、分割結果処理部48とを備えている。
クラスタリング部622は、複数のデータ点の各々について、当該データ点の所属するクラスタの決定に応じて当該クラスタの中心の位置が変更されたか否かに基づいて、データ点が所属するクラスタを決定する。クラスタリング部622は、データ・分割数処理部24と、初期所属中心決定部329と、中心座標更新部640と、所属変更判定部646とを備えている。
中心座標更新部640は、複数のクラスタの中心の各々について、当該中心に所属しているデータ点を中心ID記憶部34から読み込み、当該中心に所属しているデータ点を調べる。そして、中心座標更新部640は、複数のクラスタの中心の各々について、当該中心に所属するデータ点の座標をデータ点座標記憶部26から読み込み、読み込まれた複数のデータ点の重心を算出し、算出された重心を、当該中心の新たな座標として中心座標記憶部28に記憶させる。
また、中心座標更新部640は、複数のクラスタの中心の各々について、上記更新処理によって、当該クラスタの中心が移動したか否かを所属変更判定部646へ出力する。
所属変更判定部646は、複数のクラスタの中心の各々の中心が移動したか否かに基づいて、複数のデータ点の各々に対し、当該データ点と複数のクラスタの中心の各々との間の距離を計算するか否かを判定する。そして、所属変更判定部646は、複数のデータ点の各々について、計算されたデータ点とクラスタの中心との間の距離に基づいて、データ点が所属するクラスタを変更するか否かを判定する。
図17に所属変更判定部646の処理の概念図を示す。図17(A)に示すように、データ点xと中心c,cとが空間上に存在していると仮定する。なお、添え字「’」が付与された中心c’は、中心cが中心座標更新部640によって更新された後の中心を表す。また、データ点xが中心cに所属していると仮定する。
図17(B)に示すように、中心座標更新部640による更新処理によって、中心c及び中心cが移動しない場合には、データ点xの所属は中心cのままであるため、データ点xとクラスタの中心cとの間の距離計算を省略することができる。
一方、図17(C)に示すように、中心座標更新部640による更新処理によって、中心c及び中心cの少なくとも一方が移動した場合には、データ点xと中心c’との間の距離d(x,c’)、及びデータ点xと中心c’との間の距離d(x,c’)を計算し、計算した距離d(x,c’)及び距離d(x,c’)に基づいて、データ点が所属するクラスタを変更するか否かを判定する。
<クラスタリング装置の作用>
次に、第6の実施の形態に係るクラスタリング装置の作用について説明する。第6の実施の形態に係るクラスタリング装置では、図18に示すデータ分割処理ルーチンが実行される。なお、図18に示すデータ分割処理ルーチンにおける、第1〜第5の実施の形態におけるデータ分割処理ルーチンと同一の処理については、同一符号を付して、詳細な説明を省略する。
ステップS112において、所属変更判定部646によって、所属変更判定処理が行われる。ステップS112は、図19に示す所属変更判定処理ルーチンによって実現される。
ステップS900において、ステップS108での更新処理によって中心c及び中心cの少なくとも1つの中心が移動したか否かを判定する。少なくとも1つの中心が移動した場合には、ステップS420へ進む。一方、全ての中心が移動していない場合には、ステップS428へ移行する。
なお、第6の実施の形態に係るクラスタリング装置の他の構成及び作用については、第1の実施の形態と同様であるため、説明を省略する。
以上説明したように、第6の実施の形態に係るクラスタリング装置によれば、複数のクラスタの中心の各々について、当該クラスタの中心が移動したか否かに基づいて、複数のデータ点の各々に対し、当該データ点と複数のクラスタの中心の各々との間の距離を計算するか否かを判定し、複数のクラスタの中心の各々について、当該クラスタの中心が移動した場合には、当該データ点と複数のクラスタの中心の各々との間の距離に基づいて、データ点が所属するクラスタを変更するか否かを判定することにより、データ点の数及びクラスタの数が大きな値であっても、少ない記憶容量で複数のデータ点を高速にクラスタリングすることができる。また、データ点が所属するクラスタの中心cと、データ点が所属するクラスタ以外のクラスタの中心cとが移動したか否かの計算コストO(k)は、Elkanの手法の計算コストO(k×N)に比べて、高効率である。
また、第6の実施の形態に係るクラスタリング装置は、クラスタの中心があまり移動しなくなる、クラスタリングの繰り返し計算の終盤において、効果的である。
[第7の実施の形態]
次に、本発明の第7の実施の形態について説明する。なお、第1〜第6の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
第7の実施の形態では、複数のデータ点をクラスタリングする際に、データ点が所属するクラスタの中心cと、データ点が所属するクラスタの中心c以外の中心cとの間の距離に基づいて、データ点と中心cとの間の距離計算の省略を行う点が第1〜第6の実施の形態と異なっている。
<クラスタリング装置の構成>
図20に示すように、第7の実施の形態に係るクラスタリング装置700は、機能的には、入力部10と、演算部720と、出力部50とを含んだ構成で表すことができる。
演算部720は、クラスタリング部722と、データ点座標記憶部26と、中心座標記憶部28と、中心ID記憶部34と、中心間距離記憶部735と、分割結果処理部48とを備えている。
クラスタリング部722は、複数のデータ点の各々について、複数のクラスタの中心間の距離に基づいて、当該データ点が所属するクラスタを決定する。クラスタリング部722は、データ・分割数処理部24と、初期所属中心決定部329と、中心座標更新部740と、中心間距離算出部745と、所属変更判定部746とを備えている。
第7の実施の形態に係るクラスタリング装置の中心座標更新部740は、複数のクラスタの中心の各々について、当該中心に所属しているデータ点を中心ID記憶部34から読み込み、当該中心に所属しているデータ点を調べる。そして、中心座標更新部740は、複数のクラスタの中心の各々について、当該中心に所属するデータ点の座標をデータ点座標記憶部26から読み込み、読み込まれた複数のデータ点の重心を算出し、算出された重心を、当該中心の新たな座標として中心座標記憶部28に記憶させる。
中心間距離算出部745は、複数のクラスタの中心のペアの各々について、中心と他の中心との間の距離を算出し、算出された距離を、中心間距離記憶部735へ記憶させる。
中心間距離記憶部735には、複数のクラスタの中心のペアの各々について、中心と他の中心との間の距離が記憶される。
所属変更判定部746は、複数のデータ点の各々について、複数のクラスタの各々に対し、中心間距離記憶部735に記憶された、当該データ点と当該データ点が所属するクラスタの中心と当該データ点が所属するクラスタ以外のクラスタの中心との間の距離に基づいて、当該データ点と複数のクラスタの中心の各々との間の距離を計算するか否かを判定する。そして、所属変更判定部746は、複数のデータ点の各々について、計算されたデータ点とクラスタの中心との間の距離に基づいて、データ点が所属するクラスタを変更するか否かを判定する。
図21に所属変更判定部746の処理の概念図を示す。図21に示すように、データ点xと、中心座標更新部740による更新処理後の中心c,cとが空間上に存在していると仮定する。また、データ点xは中心cに所属していると仮定する。
所属変更判定部746は、図21(A)に示すように、データ点xと当該データ点が所属するクラスタの中心cとの間の距離d(x,c)を算出する。次に、所属変更判定部746は、データ点が所属するクラスタの中心cと、当該データ点が所属するクラスタ以外のクラスタの中心cとの間の距離d(c,c)を、中心間距離記憶部735から取得する。そして、所属変更判定部746は、d(x,c)≦d(c,c)/2である場合には、データ点xと中心cとの間の距離d(x,c)の計算を省略する。この場合には、データ点xは、中心c半径d(c,c)/2の円内に存在し、データ点xの所属は中心cのままであるため、データ点xと中心cとの間の距離d(x,c)の計算は省略することができる。
一方、所属変更判定部646は、図21(B)に示すように、d(x,c)>d(c,c)/2である場合には、データ点xと中心cとの間の距離d(x,c)の計算を行う。データ点xが中心c半径d(c,c)/2の円内に存在しないため、データ点xと中心cとの間の距離d(x,c)の計算を行い、データ点xの所属を決定する。
<クラスタリング装置の作用>
次に、第7の実施の形態に係るクラスタリング装置の作用について説明する。第7の実施の形態に係るクラスタリング装置では、図22に示すデータ分割処理ルーチンが実行される。なお、図22に示すデータ分割処理ルーチンにおける、第1〜第6の実施の形態におけるデータ分割処理ルーチンと同一の処理については、同一符号を付して、詳細な説明を省略する。
ステップS1000において、中心間距離算出部745によって、複数のクラスタの中心のペアの各々について、当該中心と他の中心との間の距離を算出し、算出された距離を、中心間距離記憶部735へ記憶させる。
ステップS112において、所属変更判定部746によって、所属変更判定処理が行われる。ステップS112は、図23に示す所属変更判定処理ルーチンによって実現される。
ステップS1002において、ステップS402で取得した中心cと、ステップS408で設定された中心cとに基づいて、中心cと中心cとの間の距離d(c,c)を中心間距離記憶部735から取得する。
ステップS1004において、ステップS406で算出したデータ点xと中心cとの間の距離d(x,c)と、上記ステップS1002で取得した中心cと中心cとの間の距離d(c,c)とに基づいて、d(x,c)>d(c,c)/2であるか否かを判定する。d(x,c)>d(c,c)/2である場合には、ステップS420へ進む。一方、d(x,c)>d(c,c)/2でない場合には、ステップS428へ進む。
なお、第7の実施の形態に係るクラスタリング装置の他の構成及び作用については、第6の実施の形態と同様であるため、説明を省略する。
以上説明したように、第7の実施の形態に係るクラスタリング装置によれば、複数のデータ点の各々について、複数のクラスタの各々に対し、当該データ点と当該データ点が所属するクラスタの中心と、当該データ点が所属するクラスタ以外のクラスタの中心との間の距離に基づいて、当該データ点と複数のクラスタの中心の各々との間の距離を計算するか否かを判定することにより、データ点の数及びクラスタの数が大きな値であっても、少ない記憶容量で複数のデータ点を高速にクラスタリングすることができる。
また、データ点が所属するクラスタの中心cと、データ点が所属するクラスタ以外のクラスタの中心cとの間の距離d(c,c)の計算コストは、メモリ、計算量共にO(k)であり、Elkanの手法の計算コストO(k×N)に比べて、高効率である。
なお、本発明は、上記実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
例えば、上記第6及び第7の実施の形態では、ピボットを用いずに、データ点の所属するクラスタの中心を変更するか否かを判定する場合を例に説明したが、これに限定されるものではなく、ピボットを用いた処理と組み合わせてもよい。
なお、上記第6又は第7の実施の形態においてピボットを用いた処理と組み合わせる場合には、ピボットによる距離計算の省略の判定処理と、クラスタの中心間の情報に基づく距離計算の省略の判定処理とは、何れを先に実行してもよい。
また、ピボットによる距離計算の省略の判定処理とクラスタの中心間の情報に基づく距離計算の省略の判定処理との2つの処理を適応的に組み合わせてもよい。
例えば、ピボットがj個存在する場合に、ピボットによる距離計算の省略の判定処理の回数は、最小1回最大j回であり、クラスタの中心間の情報に基づく距離計算の省略の判定処理は1回であるという性質に基づいて、クラスタの中心間の情報に基づく判定処理を行った後にピボットによる判定処理を行ってもよい。
また、例えば、クラスタリングの繰り返し計算の前半ではクラスタの中心の移動が頻繁に起こり、後半ではクラスタの中心の移動が収束に向かうというクラスタリング処理の性質に基づいて、繰り返し計算の前半では、ピボットによる判定処理を行った後にクラスタの中心間の情報に基づく判定処理を行い、繰り返し計算の後半では、クラスタの中心間の情報に基づく判定処理を行った後にピボットによる判定処理を行ってもよい。
また、ピボットを用いた処理を組み合わせる場合には、データ点xと中心cとの間の距離d(x,c)は、ピボットを用いた処理において算出されるため、再度算出しなくともよい。
また、本実施の形態では、ユークリッド空間を対象としたが、他の空間を対象としてもよい。
また、上記実施の形態では、データ点座標記憶部26、中心座標記憶部28、ピボット座標記憶部32、中心ID記憶部34、ピボットデータ点距離記憶部38、及びピボット中心距離記憶部44を備えている場合について説明したが、例えばデータ点座標記憶部26、中心座標記憶部28、ピボット座標記憶部32、中心ID記憶部34、ピボットデータ点距離記憶部38、及びピボット中心距離記憶部44の少なくとも1つがクラスタリング装置の外部装置に設けられ、クラスタリング装置は、外部装置と通信手段を用いて通信することにより、データ点座標記憶部26、中心座標記憶部28、ピボット座標記憶部32、中心ID記憶部34、ピボットデータ点距離記憶部38、及びピボット中心距離記憶部44の少なくとも1つを参照するようにしてもよい。
また、上述のクラスタリング装置は、内部にコンピュータシステムを有しているが、コンピュータシステムは、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、本願明細書中において、プログラムが予めインストールされている実施の形態として説明したが、外部の記憶装置や記録媒体等に格納されたプログラムを随時読み込んで、またインターネットを介してダウンロードして実行するようにしてもよい。また、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
20,620,720 演算部
10 入力部
22,322,622,722 クラスタリング部
24 データ・分割数処理部
26 データ点座標記憶部
28 中心座標記憶部
30 ピボット選択部
32 ピボット座標記憶部
34 中心ID記憶部
36 ピボットデータ点距離計算部
38 ピボットデータ点距離記憶部
40,640,740 中心座標更新部
42 ピボット中心距離計算部
44 ピボット中心距離記憶部
46,646,746 所属変更判定部
48 分割結果処理部
50 出力部
100,300,600,700 クラスタリング装置
329 初期所属中心決定部
735 中心間距離記憶部
745 中心間距離算出部

Claims (8)

  1. 複数のデータ点をクラスタリングするクラスタリング装置であって、
    複数のデータ点の各々と、前記データ点を表す空間上の点であるピボットとの間の距離を記憶したピボットデータ点距離記憶部と、
    複数のクラスタの中心の各々と、前記ピボットとの間の距離を記憶したピボット中心距離記憶部と、
    前記複数のデータ点の各々について、前記ピボットデータ点距離記憶部に記憶された、前記データ点と前記ピボットとの間の距離、及び前記ピボット中心距離記憶部に記憶された、前記複数のクラスタの中心の各々と前記ピボットとの間の距離に基づいて、前記データ点が所属する前記クラスタを決定するクラスタリング部と、
    を含むクラスタリング装置。
  2. 前記クラスタリング部は、
    前記複数のデータ点の各々について、前記ピボットデータ点距離記憶部に記憶された、前記データ点と前記ピボットとの間の距離、及び前記ピボット中心距離記憶部に記憶された、前記複数のクラスタの中心の各々と前記ピボットとの間の距離に基づいて、距離の三角不等式を用いて、前記データ点が所属する前記クラスタを変更するか否かを判定し、前記データ点が所属する前記クラスタを変更すると判定された場合に、前記データ点が所属する前記クラスタを変更する所属変更判定部を含み、
    前記所属変更判定部によって前記複数のデータ点の各々について前記データ点が所属する前記クラスタを変更しないと判定されるまで、前記所属変更判定部による判定及び変更を繰り返すことにより、前記複数のデータの各々について、前記データ点が所属する前記クラスタを決定する請求項1記載のクラスタリング装置。
  3. 前記複数のデータ点、又は前記複数のクラスタの中心に基づいて、前記空間上の点から、前記ピボットを選択するピボット選択部を更に含む
    請求項1又は請求項2に記載のクラスタリング装置。
  4. 複数のデータ点の各々と、前記データ点を表す空間上の点であるピボットの各々との間の距離を記憶したピボットデータ点距離記憶部と、複数のクラスタの中心の各々と、前記ピボットとの間の距離を記憶したピボット中心距離記憶部と、クラスタリング部とを含み、前記複数のデータ点をクラスタリングするクラスタリング装置におけるクラスタリング方法であって、
    前記クラスタリング部が、前記複数のデータ点の各々について、前記ピボットデータ点距離記憶部に記憶された、前記データ点と前記ピボットとの間の距離、及び前記ピボット中心距離記憶部に記憶された、前記複数のクラスタの中心の各々と前記ピボットとの間の距離に基づいて、前記データ点が所属する前記クラスタを決定するステップを含む
    クラスタリング方法。
  5. 前記クラスタリング部によって前記クラスタを決定するステップは、
    所属変更判定部が、前記複数のデータ点の各々について、前記ピボットデータ点距離記憶部に記憶された、前記データ点と前記ピボットとの間の距離、及び前記ピボット中心距離記憶部に記憶された、前記複数のクラスタの中心の各々と前記ピボットとの間の距離に基づいて、距離の三角不等式を用いて、前記データ点が所属する前記クラスタを変更するか否かを判定し、前記データ点が所属する前記クラスタを変更すると判定された場合に、前記データ点が所属する前記クラスタを変更するステップを含み、
    前記所属変更判定部によって前記複数のデータ点の各々について前記データ点が所属する前記クラスタを変更しないと判定されるまで、前記所属変更判定部による判定及び変更を繰り返すことにより、前記複数のデータの各々について、前記データ点が所属する前記クラスタを決定する
    請求項4記載のクラスタリング方法。
  6. ピボット選択部が、前記複数のデータ点、又は前記複数のクラスタの中心に基づいて、前記空間上の点から、前記ピボットを選択するステップを更に含む
    請求項4又は請求項5に記載のクラスタリング方法。
  7. コンピュータを、請求項1〜請求項3の何れか1項記載のクラスタリング装置の各部として機能させるためのプログラム。
  8. 複数のデータ点をクラスタリングするクラスタリング装置であって、
    前記複数のデータ点の各々について、複数のクラスタの中心間の距離、又は前記データ点の所属する前記クラスタの決定に応じて前記クラスタの中心の位置が変更されたか否かに基づいて、前記データ点が所属する前記クラスタを決定するクラスタリング部を含むクラスタリング装置。
JP2014165245A 2014-08-14 2014-08-14 クラスタリング装置、方法、及びプログラム Active JP6247613B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014165245A JP6247613B2 (ja) 2014-08-14 2014-08-14 クラスタリング装置、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014165245A JP6247613B2 (ja) 2014-08-14 2014-08-14 クラスタリング装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2016042237A true JP2016042237A (ja) 2016-03-31
JP6247613B2 JP6247613B2 (ja) 2017-12-13

Family

ID=55591980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014165245A Active JP6247613B2 (ja) 2014-08-14 2014-08-14 クラスタリング装置、方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6247613B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013121073A (ja) * 2011-12-07 2013-06-17 Ntt Docomo Inc 位置情報分析装置及び位置情報分析方法
JP2013182341A (ja) * 2012-02-29 2013-09-12 Sogo Keibi Hosho Co Ltd クラスタリング装置およびクラスタリング方法
JP2013218636A (ja) * 2012-04-12 2013-10-24 Nippon Telegr & Teleph Corp <Ntt> クラスタリング処理装置、クラスタリング処理方法、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013121073A (ja) * 2011-12-07 2013-06-17 Ntt Docomo Inc 位置情報分析装置及び位置情報分析方法
JP2013182341A (ja) * 2012-02-29 2013-09-12 Sogo Keibi Hosho Co Ltd クラスタリング装置およびクラスタリング方法
JP2013218636A (ja) * 2012-04-12 2013-10-24 Nippon Telegr & Teleph Corp <Ntt> クラスタリング処理装置、クラスタリング処理方法、及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GREG HAMERLY: "Making k-means even faster", IN PROCEEDINGS OF THE 2010 SIAM INTERNATIONAL CONFERENCE ON DATA MINING (SDM 2010), JPN7017002128, 1 May 2010 (2010-05-01), US, ISSN: 0003590849 *
村田 昇: "統計学における分類 データのクラスタリング", 数理科学, vol. 第51巻、第10号, JPN6017024533, 1 October 2013 (2013-10-01), JP, pages 51 - 57, ISSN: 0003643833 *

Also Published As

Publication number Publication date
JP6247613B2 (ja) 2017-12-13

Similar Documents

Publication Publication Date Title
US8861506B2 (en) Shortest path determination for large graphs
KR102305568B1 (ko) 일정한 처리 시간 내에 k개의 극값을 찾는 방법
CN110647902A (zh) 对象的熵聚类
JP6350251B2 (ja) 経路情報処理装置、方法、及びプログラム
CN106203494B (zh) 一种基于内存计算的并行化聚类方法
JP5493597B2 (ja) 検索方法及び検索システム
JP2017162306A (ja) 情報処理装置、類似検索プログラム、及び類似検索方法
JP2006190191A (ja) 情報処理装置および方法、並びにプログラム
JP2015203946A (ja) ヒストグラムの重心を計算する方法
JP2011170774A (ja) 決定木生成装置、決定木生成方法、及びプログラム
CN105677755A (zh) 一种处理图数据的方法及装置
JP2013218636A (ja) クラスタリング処理装置、クラスタリング処理方法、及びプログラム
JP6705764B2 (ja) 生成装置、生成方法、及び生成プログラム
Sogabe et al. An acceleration method of short read mapping using FPGA
JP5600693B2 (ja) クラスタリング装置及び方法及びプログラム
JP6773412B2 (ja) コロプレスマップの設計
JP6247613B2 (ja) クラスタリング装置、方法、及びプログラム
JP3995099B2 (ja) 高次元データを塊に分割する装置
JP2014228975A (ja) 検索装置、検索方法および検索プログラム
JP6393982B2 (ja) 空間分割方法、空間分割装置および空間分割プログラム
JP6012814B1 (ja) 逐次クラスタリング装置、方法、及びプログラム
JP7121706B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2022019505A (ja) 大規模グラフの漸進的無損失要約のための電子装置およびその動作方法
CN110309139B (zh) 高维近邻对搜索方法和系统
WO2014168199A1 (ja) 論理演算方法および情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171030

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171117

R150 Certificate of patent or registration of utility model

Ref document number: 6247613

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150