説明

高次元データを塊に分割する装置

【課題】 クラスタリング対象のデータ数、及び最終的なクラスタ数の制限を受けず、従来の手法に比較して、高速にクラスタリングが行えるクラスタリングシステムを提供する。
【解決手段】 本発明のクラスタリングシステムは、類似性閾値範囲の類似性を有するデータの組合せを抽出する類似集合抽出部と、各データポイントにおけるデータ密度が、密度閾値以上のデータを対象として抽出するデータ抽出部と、クラスタの最小のデータ番号を抽出し、クラスタラベル番号とし、クラスタラベル番号及びクラスタ内のデータ番号の対応表を生成する対応表生成部と、クラスタラベル番号のデータが、他に属することを検出すると、他のクラスタのクラスタラベル番号に書き換えるリスト入替部と複数の閾値組に対するクラスタリング結果を再構成し、適切なクラスタを抽出するクラスタリング再構成部とを有している。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、類似性または非類似性を基準にして、大量のデータを高速に分類するためのクラスタリングシステムに関する。
【背景技術】
【0002】
近年、大規模データベースから、様々なデータ解析手法を用いて、データベースに内在する、新しい、有用な、理解しやすいパターンを発掘し、得られたパターンを専門化の知識と照合して新しい知識を発見する「データベースからの知識発見、およびデータマイニング」が注目を浴びている。
その中でも、特性が似ている(類似性のある)もの、及び違っている(非類似性のある)ものにより、システムが分類のための演算を行い、場合分けをする基準を作り出すクラスタリング方法がある。
【0003】
このクラスタリング方法を用いて、膨大なデータから、類似性の高いデータを抽出することで同じクラスタ(塊)として認識する。
このクラスタリング方法にも幾つかの手法があり、以前から知られているクラスタリングのアルゴリズムとしては非階層的クラスタリング法であるk−means法,EM法,階層的クラスタリング法(非特許文献2)、及び密度ベース法(非特許文献1)などがある。
k−means法及びEM法は、アルゴリズムが比較的簡単であり、ある初期分割から始めて、各手法毎に定められた任意の評価基準において良い分割結果が得られる様に、対象を分類し直すことを繰り返して最終的な分割結果を得る。
【0004】
階層的クラスタリング法は、各対象をバラバラの1つのクラスタと見なして、近いクラスタを次々と統合することにより、最終的な分類結果を得るものであり、比較的に性質の良い分類結果が得られる。
また、密度ベース法は、所定のデータの密度を有し、距離が近いデータ同士を結合していくものである。
【非特許文献1】A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise( http://ifsc.ualr.edu/xwxu/publications/kdd-96.pdf)
【非特許文献2】Data Clustering: A Review. ACM Computer Surveys, 31(3), Sept 1999(http://citeseer.nj.nec.com/jain99data.html)
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のクラスタリング方法には、それぞれ長所及び短所が有り、以下に示す理由により、多くのクラスタを抽出する場合に適用するのが困難である。
(1)k−means法及びEM法においては、最終的に分類されるクラスタの数を、クラスタリング開始時に指定することが必要であり、その指定数を特定することが困難であった。
例えば、最も良いクラスタの数として、100が良いのかまたは101が良いのかを、実際にクラスタリングする時点において設定することができず、クラスタリングの結果を解析して再設定等を行う必要がある。特に、最終的なクラスタの数が、平均的なクラスタ内の点の数を上回るような場合には、クラスタの数を決定することは不可能であった。
【0006】
(2)階層的クラスタリング法においては、クラスタの個数を事前に決定せずに用いることができ、有効なクラスタリングを行うことができるが、各データをツリー構造により類似性のあるデータ同士を結合させてクラスタを作成するため、演算に時間がかかる手法であり、データ数が多くなるにつれ、現実的な時間内では終了できない欠点を有している。
【0007】
(3)密度ベースにおいては、密度・非類似度を満足するクラスタを際限なく結合していくため、生成されるクラスタの大きさを制限することができない欠点を有している。
また、地理情報・空間情報などの2次元及び3次元のデータに対するクラスタリングには適しているが、より高次元データに対しては、各データ毎に近傍のデータ密度の演算を行うため、クラスタリングの処理に長い時間がかかる。
【0008】
本発明は、このような事情に鑑みてなされたもので、クラスタリング対象のデータ数、及び最終的なクラスタ数の制限を受けず、かつ従来の手法に比較して、高速にクラスタリングが行えるクラスタリングシステム、クラスタリング方法及びクラスタリングプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明のクラスタリングシステムは、クラスタリング対象のデータから、所定の類似性閾値範囲の類似性を有するデータの組合わせの集合を抽出する類似集合抽出部と、各々のデータを対象データとし、この対象データを中心として、この中心から前記閾値範囲内から計算可能なデータ密度が、所定の密度閾値以上である対象データの集合を抽出するデータ抽出部と、各クラスタに含まれるデータから類似性閾値範囲以内に存在するデータのデータポイント番号の中から最も小さな番号を抽出し、このデータのデータ番号をクラスタラベル番号として、クラスタラベル番号及びこのクラスタラベル番号の示すクラスタに含まれるデータのデータポイント番号の対応表を生成する対応表生成部と、前記対応表により、クラスタラベル番号であるデータが、他のクラスタに属しているか否かの検出を行い、他のクラスタに属していることが検出されると、このクラスタラベル番号を、他のクラスタのクラスタラベル番号に書き換えるリスト入替部と、を有し、前記リスト入替部が、書き換え前と書き換え後との表が同一となることを検出するまで書き換え処理を行うことを特徴とする。
【0010】
本発明のクラスタリングシステムは、前記リスト入替部がクラスタラベルを書き換えることにより生成されたクラスタ間において、前記閾値範囲内のデータが異なったクラスタに含まれているか否かを検出する収束判定部を有することを特徴とする。
【0011】
本発明のクラスタリングシステムは、前記収束判定部が、前記検出処理において、異なったクラスタに含まれていることを検出した場合、これらのクラスタを結合させ、結合により生成されたクラスタのクラスタラベル番号を、結合したクラスタのクラスタラベル番号の内、最も小さなクラスタラベル番号とすることを特徴とする。
【0012】
本発明のクラスタリングシステムは、前記リスト入替部におけるクラスタラベルの書き換え処理と、閾値範囲内のデータが異なったクラスタに含まれているか否かの検出処理とを、双方の処理結果が収束するまで行うことを特徴とする。
【0013】
本発明のクラスタリングシステムは、前記類似性閾値及び密度閾値の閾値組が複数設定され、条件の厳しい閾値組から緩い閾値組へ順次、組毎の条件によりクラスタリングを実施するクラスタリング制御部を有することを特徴とする。
【0014】
本発明のクラスタリングシステムは、複数の閾値組で生成されたクラスタを、順次、閾値組の条件が緩くなる方向に並べることにより、クラスタのツリー構造を生成することを特徴とする。
本発明のクラスタリングシステムは、各閾値組で生成されたクラスタにおいて、それぞれのクラスタで最も類似性のないデータ間の非類似度が所定の設定非類似度より大きいか否かの検出を行い、前記設定非類似度より大きいクラスタを検出した場合、検出されたクラスタが生成された閾値組より一つ条件の厳しい閾値組におけるクラスタリング結果を目的の結果とするクラスタリング再構成部を有することを特徴とする。
【0015】
本発明のクラスタリング方法は、クラスタリング対象のデータから、所定の類似性閾値範囲の類似性を有するデータの組合わせの集合を抽出する類似集合抽出過程と、各々のデータを対象データとし、この対象データを中心として、この中心から前記類似性閾値範囲内から計算可能なデータ密度が、所定の密度閾値以上である対象データの集合を抽出するデータ抽出過程と、各クラスタに含まれるデータから類似性閾値範囲以内に存在するデータのデータポイント番号の中から最も小さな番号を抽出し、このデータのデータ番号をクラスタラベル番号として、クラスタラベル番号及びこのクラスタラベル番号の示すクラスタに含まれるデータのデータポイント番号の対応表を生成する対応表生成過程と、前記対応表により、クラスタラベル番号であるデータが、他のクラスタに属しているか否かの検出を行い、他のクラスタに属していることが検出されると、このクラスタラベル番号を、他のクラスタのクラスタラベル番号に書き換えるリスト入替過程と、を有し、前記リスト入替過程において、書き換え前と書き換え後との表が同一となることを検出するまで書き換え処理が行うことを特徴とする。
【0016】
本発明のクラスタリング方法は、前記リスト入替過程において、クラスタラベルを書き換えることにより生成されたクラスタ間に、前記閾値範囲内のデータが異なったクラスタに含まれているか否かを検出する収束判定過程を有することを特徴とする。
本発明のクラスタリング方法は、前記収束判定過程において、前記検出処理のとき、異なったクラスタに含まれていることを検出した場合、これらのクラスタを結合させ、結合により生成されたクラスタのクラスタラベル番号を、結合したクラスタのクラスタラベル番号の内、最も小さなクラスタラベル番号とすることを特徴とする。
【0017】
本発明のクラスタリング方法は、複数の閾値組で生成されたクラスタを、順次、閾値組の条件が緩くなる方向に並べることにより、クラスタのツリー構造を生成するクラスタリング結果再構成過程を有することを特徴とする。
本発明のクラスタリング方法は、クラスタリング結果再構成過程において、各閾値組で生成されたクラスタにおいて、それぞれのクラスタで最も類似性のないデータ間の非類似度が所定の設定非類似度より大きいか否かの検出を行い、前記設定非類似度より大きいクラスタを検出した場合、検出されたクラスタが生成された閾値組より条件の一つ厳しい閾値組におけるクラスタリング結果を目的の結果とすることを特徴とする。
【0018】
本発明のプログラムは、複数のデータに対して、各々のデータの類似性に基づいてクラスタリングを行うクラスタリングプログラムであり、クラスタリング対象のデータから、所定の閾値範囲の類似性を有するデータの組合わせの集合を抽出する組合集合抽出処理と、各々のデータを対象データとし、この対象データを中心として、この中心から前記閾値範囲内から計算可能なデータ密度が、所定の密度閾値以上である対象データの集合を抽出するデータ抽出処理と、各クラスタに含まれる対象データから閾値以内に存在する対象データの中の最も小さな番号をクラスタラベル番号として、クラスタラベル番号及びこのクラスタラベル番号の示すクラスタに含まれるデータのデータポイント番号の対応表を生成する対応表生成処理と、前記対応表により、クラスタラベル番号であるデータが、他のクラスタに属しているか否かの検出を行い、他のクラスタに属していることが検出されると、このクラスタラベル番号を、他のクラスタのクラスタラベル番号に書き換えるリスト入替処理と、を有し、前記リスト入替処理において、書き換え前と書き換え後との表が同一となることを検出するまで書き換え処理を行うことを特徴とするコンピュータが実行可能なプログラムである。
【0019】
本発明のプログラムは、前記リスト入替処理において、クラスタラベルを書き換えることにより生成されたクラスタ間に、前記閾値範囲内のデータが異なったクラスタに含まれているか否かを検出する収束判定部を有するコンピュータの実行可能なプログラムである。
本発明のプログラムは、前記収束判定処理において、前記検出処理を行うとき、異なったクラスタに含まれていることを検出した場合、これらのクラスタを結合させ、結合により生成されたクラスタのクラスタラベル番号を、結合したクラスタのクラスタラベル番号の内、最も小さなクラスタラベル番号とすることを特徴とするコンピュータが実行可能なプログラムである。
【0020】
本発明のプログラムは、複数の閾値組で生成されたクラスタを、順次、閾値組の条件が緩くなる方向に並べることにより、クラスタのツリー構造を生成するクラスタリング結果再構成処理を有することを特徴とするコンピュータが実行可能なプログラムである。
本発明のプログラムは、前記クラスタリング結果再構成処理において、各閾値組で生成されたクラスタにおいて、それぞれのクラスタで最も類似性のないデータ間の非類似度が所定の設定非類似度より大きいか否かの検出を行い、前記設定非類似度より大きいクラスタを検出した場合、検出されたクラスタが生成された閾値組より条件の一つ厳しい閾値組におけるクラスタリング結果を目的の結果とすることを特徴とするコンピュータが実行可能なプログラムである。
【発明の効果】
【0021】
以上説明したように、本発明によれば、クラスタラベル番号と、このクラスタラベル番号に含まれるデータのデータ番号との対応を示す表を用い、データが共有されるクラスタを順次結合し、新たなクラスタとして生成するため、類似性を演算してクラスタを結合させる従来例とことなり、特別に複雑な演算をすることなく、設定された閾値組に対応したクラスタリングを高速に行うことができるという効果が得られる。
【0022】
また、本発明によれば、複数の閾値組(類似性閾値,密度閾値)を用いて、各閾値組毎にクラスタリングを行うことにより、各閾値組に対応するクラスタを生成し、これらのクラスタを閾値組の順番、すなわち緩い閾値から厳しい閾値まで順に並べることにより、階層構造クラスタリングに比較して短い時間で、容易にツリー構造を構成するという効果が得られる。
【発明を実施するための最良の形態】
【0023】
本発明のクラスタリングシステムは、分類対象の各データの類似性の基準を用い、この基準に対する閾値を設定してクラスタリングを行うものである。
この類似性の基準としては、2つのデータが似ているか否かを測るための指標として、類似度または非類似度が用いられる。
データ間の類似性を示す距離は非類似度を表すための典型的な例であり、一方、相関係数は類似度の典型的な例である。
本発明のクラスタリングシステムは、類似性を示す基準として、類似度及び非類似度いずれを使用しても構わず、種々の類似性の定義を用いて、クラスタリングを行うことができる。
以降の説明において、非類似度の表現を用いるが、非類似度の閾値に対する大小関係を逆にすることにより、類似度に置き換えても同様である。
【0024】
以下、本発明の一実施形態によるクラスタリングシステムを図面を参照して説明する。図1は同実施形態の構成例を示すブロック図である。
データベースDBは、大容量のデータの取り扱いに対応できるRDBMS(Relational DataBase Management System)が用いられており、クラスタリングの対象となるデータを格納している。
今まで、多くのクラスタリングシステムには、主記憶装置を使用することが前提とされていた。しかしながら、主記憶装置は高速にアクセス可能であるが、容量としては限られてしまう。
一方、本発明のクラスタリングシステムは、RDBMSを用いるために、主記憶容量の制限を受けることがない。
【0025】
この図において、クラスタリング制御部1は、非類似度閾値ε及び密度閾値ρの閾値組を、厳しい閾値から緩い閾値まで、複数の段階に分割された閾値組{(ε1,ρ1),(ε2,ρ2),…,(εm,ρm)}が予め設定され、クラスタリングに際して、各閾値組を選択して、類似度集合抽出部2へ非類似度閾値εを出力し、データ抽出部4へ密度閾値ρを出力する。
ここで、クラスタリング制御部1は、厳しい非類似度閾値及び密度閾値の閾値組から、緩い非類似度閾値及び密度閾値の閾値組まで、各閾値組におけるクラスタリングが終了すると、次の閾値組を選択して、類似度集合抽出部2へ非類似度閾値を出力し、データ抽出部4へ密度閾値ρを出力し、対応表生成部6に初期クラスタを出力する。
【0026】
類似度集合抽出部2は、入力される非類似度閾値εにより、データベースDBにおけるクラスタリング対象の全データポイント(データの有する複数の評価値をそれぞれ次元として、この評価値の次元の空間におけるデータの座標位置)の集合Xから、2つのデータポイント同士の値の非類似度の集合Dを生成する。
X:={x1,x2,…,xn}
D≡{d(i,j)|i,j∈X}
また、類似度集合抽出部2は、上記集合Dにおいて、所定の非類似度閾値ε範囲の類似性を有するデータポイントの組み合わせ、例えば、非類似度が上記非類似度閾値以下となるデータポイントの組合せのデータの集合Dεを抽出する。
Dε≡{d(i,j)∈D|d(i,j)≦ε}
【0027】
データ抽出部4は、集合Xに含まれる各々のデータを対象データとし、この対象データを中心として、この中心のデータポイントから上記非類似度閾値εの範囲内で計算可能なデータ密度が、所定の密度閾値ρ以上である対象データの集合XCOREを抽出する。
XCORE≡{x∈X|ρ|ε(x)≧ρ}
クラスタリング制御部1は、データ抽出部4の結果を受け取り、直前に行われた閾値組のクラスタリング結果と結合して初期のクラスタQを生成し、対応表生成部6へ出力する。
【0028】
対応表生成部6は、各クラスタに含まれる対象データから非類似度閾値ε以内に存在する対象データの中の最も小さい番号をクラスタラベル番号として、このクラスタラベル番号及びこのクラスタラベル番号の示すクラスタに含まれるデータポイントのデータ番号の対応表(図3参照)を生成する。
リスト入替部7は、上記対応表により、クラスタラベル番号であるデータポイントが、他のクラスタに属しているか否かの検出を行い、他のクラスタに属していることが検出されると、このクラスタラベル番号(すなわち、現在のクラスタにおいて最も小さいが、他のクラスタに属していることが検出されたデータポイントのデータ番号)を、上記他のクラスタのクラスタラベル番号に書き換える。
【0029】
ここで、あるクラスタC1のクラスタラベル番号となっているデータポイントが、他のクラスタラベル番号のクラスタC2に属しているとき、他のクラスタC2のクラスタラベル番号が当然にクラスタC1のクラスタラベル番号より小さい構造となっている。
また、リスト入替部7は、書き換え前と書き換え後との対応表が同一、すなわち対応表に変化が無くなることを検出するまで書き換え処理を行う。
収束判定部8は、上記リスト入替部7がクラスタラベル番号を書き換えることにより生成されたクラスタ間において、非類似度閾値ε範囲内のデータポイントが異なったクラスタに含まれているか否かを検出する。
【0030】
また、収束判定部8は、上記検出処理において、非類似度閾値ε範囲内のデータポイントが異なったクラスタに含まれていることを検出した場合、これらのデータポイントの含まれるクラスタ同士を結合させ、結合により生成されたクラスタのクラスタラベル番号を、結合したクラスタのクラスタラベル番号の内、最も小さなクラスタラベル番号とする。
クラスタリング制御部1は、リスト入替部7におけるクラスタラベルの書き換え処理と、収束判定部8における閾値ε範囲内のデータが異なったクラスタに含まれているか否かの検出処理とが、双方の処理結果が収束するまで行わせる。
また、クラスタリング再構成部5は、各非類似度閾値ε及び密度閾値ρの閾値組で生成されたクラスタにおいて、それぞれのクラスタで最も類似性のないデータ間の非類似度が所定の設定非類似度より大きいか否かの検出を行い、上記設定非類似度より大きいクラスタを検出した場合、検出されたクラスタが生成された閾値組より条件の一つ厳しい閾値組のクラスタをクラスタリング結果とする。
すなわち、クラスタリング再構成部5は、クラスタに属するデータ間の非類似度の比較を行うことで、設定された非類似度範囲内にないデータポイントを含むクラスタを淘汰し、得られた複数の閾値組に対するクラスタリング結果を再構成し、再構成された各閾値組におけるクラスタリング結果を、全体として一つのクラスタリング結果として抽出する。
【0031】
次に、図1に示すクラスタリングシステムのクラスタリングの動作を図2を参照して説明する。図2は、図1のクラスタリングシステムの動作例を示すフローチャートである。
クラスタリングを行うために、2つのデータが似ているか否かを判定するのに、類似度及び非類似度のいずれを用いても同様な処理を行うことが可能であるが、以下の説明においては、非類似度を用いたクラスタリングについて
ステップS1において、クラスタリング制御部1は、まず、複数の非類似度閾値と密度閾値の閾値組{(ε1,ρ1),(ε2,ρ2),...,(εm,ρm)}を、設定する。この各閾値組の非類似度閾値と密度閾値は後述するツリー構造を作成するための基準を満たしている必要がある。
そして、クラスタリング制御部1は、このなかから、厳しい条件の閾値組を選択して、順次、厳しい条件の閾値組から順番に、クラスタリングの処理を実施していく。
【0032】
ステップS2において、類似集合抽出部2は、クラスタリング制御部1の選択した非類似度閾値εが入力されると、
全データポイント
X:={x1,x2,…,xn}
に含まれるデータポイント同士の非類似度の集合D
D≡{d(i,j)|i,j∈X}
を生成する。
そして、類似集合抽出部2は、非類似度が非類似度閾値ε以下となるデータ間の組み合わせの集合Dε
Dε≡{d(i,j)∈D|d(i,j)≦ε}
を、集合Dから抽出する。
【0033】
データ抽出部4は、クラスタリング制御部1から入力される密度閾値ρにより、各データポイントにおけるデータ密度が密度閾値ρ以上のデータポイントを抽出する。ここで、密度定義の例として、「半径ε(非類似度閾値)以内に含まれるデータポイントの数」を採用することもできる。
すなわち、
ρ|ε(x)≧ρ
であり、左辺の密度ρはεを母数(パラメータ)とする密度計算のための関数であり、右辺のρは設定された密度閾値であり、密度計算は、ε以内の非類似度のみが影響を及ぼすような計算方法を用いる。
【0034】
そして、データ抽出部4は、周囲に所定の密度を有するデータポイントとして、Xの部分集合XCOREを、
XCORE≡{x∈X|ρ|ε (x)≧ρ}
として求める。
これにより、非類似度が大きいもの、及び周囲に他のデータポイントが少なく、クラスタが生成される可能性がないデータポイントを排除する。
【0035】
次に、ステップS3において、クラスタリング制御部1は、クラスタリングに対する初期値、すなわち初期のクラスタを定義することとなる。
ここで、クラスタリング制御部1は、データ抽出部4の抽出した各データポイントの所属するクラスタを表現するため、各クラスタに対してクラスタラベルを与える。
また、クラスタリング制御部1は、クラスタの初期値として、直前に実行された閾値組に対する結果を初期クラスタとする。また、この中に含まれておらず、XCOREに含まれているデータポイントは、おのおの一つのクラスタとする。
【0036】
そして、対応表生成部6は、クラスタリング対象のデータポイントの集合XCOREにおいて、クラスタに所属するデータポイントから、非類似度が非類似度閾値ε以内のデータポイントの集合を見つけ出し、この集合に含まれる最も小さなデータポイント番号をクラスタのラベル番号(クラスタを代表する番号)として、図3に示す対応表を生成する(ステップS3)。
ここで、対応表生成部6は、クラスタラベル番号を付加することにより、すなわち最も小さいデータポイント番号を代表してクラスタラベル番号としたクラスタをクラスタQとする。
【0037】
次にステップS4において、リスト入替部7は、図3に示す対応表を用いて、類似するクラスタQ間の接続処理を行う。
この時点において、クラスタと見なされているクラスタQは、上記クラスタラベル番号により代表されるデータポイントの集合である。
次に、図4を用いて、リスト入替部7によるクラスタQ間の接続処理を説明する。
図4においては、右の表のデータポイント番号をA、クラスタラベル番号をBとし、また左の表のデータポイント番号をC、クラスタラベル番号をDとする。なお、図4の右及び左の2つの表は全く同一のデータの対応、すなわち図3の表を示すものである。
【0038】
そして、リスト入替部7は、図3における上記クラスタラベル番号を参照しつつ、図4に示すように、右の表のクラスタラベル番号(B)をデータポイント番号と見なして、左の表のデータポイント番号(C)と比較し、そのデータポイント番号(C)に対応する左のテーブルのクラスタラベル番号(D)を読みとり、クラスタラベル番号(B)をこのクラスタラベル番号(D)に変更する処理を行う。
例えば、リスト入替部7は、データポイント番号3(A)がクラスタラベル番号1(B)に対応していることを検出し、そして、このクラスタラベル番号1(B)が左のテーブルにおいて、データポイント番号1(C)に対応していることを検出し、さらに、このデータポイント番号1(C)がクラスタラベル番号1(D)に対応していることを検出する。
【0039】
そして、リスト入替部7は、クラスタラベル番号1(B)及びクラスタラベル番号1(D)の番号が一致しているため、すなわち、すでに同一のクラスタに属しているとして番号を変更する必要がないことを検出する。
一方、リスト入替部7は、データポイント番号4(A)がクラスタラベル番号3(B)に対応していることを検出し、これは、クラスタラベル番号3(B)が左のテーブルにおいてデータポイント番号3(C)に対応していることを検出する。
さらに、リスト入替部7は、データポイント番号3(C)がクラスタラベル番号1(D)に対応していることを検出する。
これにより、リスト入替部7は、クラスタラベル番号3(B)とクラスタラベル番号1(D)が相違しているため、同一のクラスタに属していないことを検出して、データポイント番号4(A)に対応するクラスタ番号を1(D)に変更する。
これにより、リスト入替部7は、クラスタQが複数結合されたクラスタRを作成する。
【0040】
次に、ステップS5において、リスト入替部7は、テーブルにおける全てのクラスタラベル番号(B)が変化しない状態となることを検出すると、すなわち、データポイント番号3(B)のように、対応表を辿っていっても、その先のクラスタラベル番号(D)が、対象となるデータポイントの含まれるクラスタにおける最も小さなデータポイント番号であると、ステップS5の処理を停止し、処理をステップS6へ進める。
一方、リスト入替部7は、対応表において、1つでもクラスタラベル番号(B)が変化した場合、ステップS4の処理を繰り返す。
【0041】
上述したステップS4及びステップS5において、表におけるリストの入れ替え処理により、データ番号を辿っていくことによりたどり着けるもっとも小さな番号をクラスタラベル番号として持つことになる。すなわち、あるクラスタQ1に含まれていたデータポイントと他のクラスタQ2に含まれていたデータポイントが接続されているという状況があった場合に、この2つのクラスタQ1,Q2が結合され、より大きなクラスタRに成長していくこととなる。
しかしながら、上述したステップS4の処理は、単なる図3の対応表を用いた番号の操作なので、複雑な形状のクラスタに対しては、十分な収束をせず、非類似度の小さなデータポイントを有したクラスタQが分割された状態のままとなる可能性がある。
たとえば、データポイント番号が大きいデータポイント同士がまとまり、クラスタが接続されている場合、上述したように、ステップS4及びS5の操作では収束しない。
【0042】
上述した収束しない場合を検討すると、隣接しているクラスタ間において、図5の様に、データポイント1,3及び5がクラスタQ1を形成し、また、データポイント2,4及び6がクラスタQ2を形成しているとする。
このとき、データポイント5及び6が、非類似度において、非類似度閾値εより小さく、類似しているため、この2つのクラスタQ1及びQ2は結合処理されなければならないが、クラスタQ1はクラスタラベル番号1に収束しており、クラスタQ2はクラスタラベル番号2に収束している。
このため、ステップS4及び5における処理では、大きなデータポイント番号が小さなデータポイント番号に置き換えられてしまうため、直接データポイント5及び6が直接に非類似度の検出が行われず、また置き換えられたデータポイント番号1及び2が非類似度閾値εより大きな非類似度であるため、直接の対応関係になく、クラスタQ1及びQ2がリスト入れ替え処理のみで結合されることはない。
【0043】
上述したクラスタが無くなるように、ステップS6においては、本来、結合するデータポイントを有するクラスタの検出処理を行う。
すなわち、ステップS6において、収束判定部8は、集合Dεに含まれるデータポイント番号の組み合わせにおいて、異なったクラスタラベル番号と対応関係となっているデータポイント番号の有無の検出を行う。
これにより、収束判定部8は、非類似度が非類似度閾値より小さなデータポイント同士が異なったクラスタに属していることを検出すると、全体としてクラスタリングの処理が収束していないとして、処理をステップS7へ進める。
一方、収束判定部8は、非類似度が非類似度閾値より小さなデータポイント番号の組み合わせにおいて異なったクラスタに属していないことを検出すると、全体としてクラスタリングの処理が収束しているとして、処理をステップS8へ進める。
【0044】
次に、ステップS7において、収束判定部8は、ステップS6において検出された、異なったクラスタ間で、それぞれ有するデータポイントの間の非類似度が非類似度閾値より小さなデータポイントの組み合わせを検出した場合、これらのデータポイントを含むクラスタQを結合させ、新たなクラスタRを生成する。
このとき、このクラスタRに含まれるデータポイントにおいて、最も小さなデータポイント番号を、このクラスタRを代表するクラスタラベル番号とし、テーブルのデータポイント番号(C)に対応するクラスタラベル番号(D)を書き換え、処理をステップS4へ戻し、再度、図3の対応表を用いたリスト入替処理を行う。
【0045】
例えば、図5において、クラスタQ1及びクラスタQ2が合成されることにより、クラスタRが生成され、このクラスタRのクラスタラベル番号はクラスタQ1及びQ2双方における最も小さなデータポイント番号1とされる。
つまり、図3に示すテーブルにおいて、データポイント番号1,2,3,4,5,6のデータポイント各々が、クラスタラベル番号1のクラスタに属するように書き換えられる。
【0046】
上述したように、図4に示す表を用いて、各データポイントのデータポイント番号に対応するクラスタラベル番号を、このデータポイントが属しているクラスタのクラスタラベル番号(クラスタ内で最も小さなデータポイント番号)に変更する処理(ステップS4及び5)と、図3のテーブル及び集合Dεを用いた収束判定の処理(ステップS6)と、収束判定において収束されていない場合に行うクラスタの結合処理と、の3つの操作を、ステップS6の収束判定で収束されていることが検出されるまで繰り返すことにより、集合Dεの非類似度の集合に関連するデータポイントの集合を、非類似度閾値εで設定された範囲での類似度を有するクラスタに分類することができる。
【0047】
次に、ステップS8において、クラスタリング制御部1は、あらかじめ設定されている閾値組{(ε1,ρ1),(ε2,ρ2),……,(εm,ρm)}の全てが終了したか否かの検出を行う。
そして、クラスタリング制御部1は、閾値組(εi,ρi)が終了したことを検出すると、全ての閾値組のクラスタリングが終了していないことを検出して、処理をステップS2に戻し、次に設定された閾値組に対応したクラスタリングの処理を行う。
このとき、閾値組の非類似度閾値及び密度閾値が序々に緩くなるように、(εm,ρm)→…→(ε2,ρ2)→(ε1,ρ1)と順次設定して、各非類似度閾値毎にステップS2からステップS8の処理を行い、各比類似度閾値及び密度閾値の組毎のクラスタリングを行う。
一方、クラスタリング制御部1は、予め設定した閾値の組み合わせ(例えば、{(ε1,ρ1),(ε2,ρ2),……,(εm,ρm)})における全ての閾値に対してクラスタリングが行われたことを検出すると、処理をステップS9へ進める。
【0048】
各々の閾値組において生成されたクラスタは、図6に示すように、各々他の閾値組により生成されたクラスタと交わることはなく、各々のクラスタはより緩い閾値組で生成されたクラスタに含まれるようにできる。
すなわち、緩い閾値を有する閾値組で生成されたクラスタと、厳しい閾値を有する閾値組で生成されたクラスタとは包含関係(緩い閾値を有する閾値組のクラスタが厳しい閾値を有する閾値組のクラスタを包含する)にできる。これは、密度関数・閾値の与え方に依存する。
例えば、非類似度として距離を、密度関数として、「半径ε以内に存在するデータポイントの数」を採用した場合には、密度閾値として一定値を採用し、非類似度閾値として、厳しい方として小さい値を使用し、緩い方として大きい値を採用する。
次に、ステップS9において、クラスタリング結果再構成部5は、閾値組が緩くなる方向に順次並べることにより、各閾値組で生成されたクラスタを上記包含関係とすることができ、図6に示すようにツリー構造を構成する。
すなわち、クラスタリング結果再構成部5は、複数の閾値組(閾値,密度閾値)を用い、各閾値組毎にクラスタリングが行われることにより得られた、クラスタを閾値組の順番に、すなわち緩い閾値から厳しい閾値まで順に並べることにより、階層構造クラスタリングに比較して短い時間で、ツリー構造を容易に構成する。
【0049】
このツリー構造において、多くの閾値を設定することにより、クラスタの分類を細かくして、微妙なツリー構造を確認することもでき、また、大雑把なクラスタの状態を確認するために、閾値を所定の幅を有する間隔で区切って設定することもできる。
上述した閾値は、クラスタの生成状態を確認してユーザが設定しても良いし、また、以下の様に集合Dにおいて、含まれるデータポイントの組み合わせにおける非類似度を求め、順位(Rank)という考え方を用いて、システムにより設定するようにしても良い。
【0050】
ここで順位は、例えば、
Rank:=10N/6
で定義され、上記式において、N=1,2,…である。
ε10=(101/6 ≒1番目に小さな非類似度)
ε9=(102/6 ≒2番目に小さな非類似度)
ε8=(103/6 ≒3番目に小さな非類似度)
ε7=(104/6 ≒4番目に小さな非類似度)
ε6=(105/6 ≒6番目に小さな非類似度)
ε5=(106/6 ≒10番目に小さな非類似度)
ε4=(107/6 ≒14番目に小さな非類似度)
ε3=(108/6≒21番目に小さな非類似度)
ε2=(109/6 ≒31番目に小さな非類似度)
ε1=(1010/6≒46番目に小さな非類似度)
のように、各々何番目に小さい非類似度により(非類似度の順位を基準として)設定しても良い。
ε10は「1.4677…」、ε9は「2.1544…」となり、非類似度閾値が設定されることとなる。
【0051】
ツリー構造を作成した結果、図7に示すように、非常に複雑な形状をしたクラスタが生成されることがある。図7は、類似度を演算する次元が2次元の場合に、平面にクラスタ形状を示す画像が表示されている図である。
等高線のように示される表示の濃さは、各非類似度閾値におけるクラスタ形状を示すものであり、上述したように包含関係にあるため、色の濃い部分はより小さな非類似度閾値によりクラスタリングされたものである。
【0052】
図7に示すように、非常に複雑な形状を示すクラスタが生成される場合もあり、複雑な形状を認める場合にはこの状態で構わないが、より含まれるデータポイント相互の関連性が高いクラスタを得たい場合には、より円(高次元の場合は超球)に近い単純な形状のクラスタを得ることが必要なため、クラスタリング結果再構成部5は、複数の非類似度閾値により得られたツリー構造のなかから、概略の直径(クラスタに含まれるデータポイントの組合せで最も類似性がないものの非類似度または類似度)が制限値(クラスタの大きさを制限するために予め設定されている非類似度または類似度のクラスタ閾値)以下のクラスタを適切なクラスタとして抽出する。
具体的には、クラスタリング結果再構成部5は、一つのデータポイントに着目し、閾値の厳しい方から順番に処理を行い、上記制限値を超える直前の閾値におけるクラスタリング結果を適切なクラスタとして抽出する。
【0053】
なお、図1に示すクラスタリングシステムの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりクラスタリングを行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0054】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【図面の簡単な説明】
【0055】
【図1】本発明の一実施形態によるクラスタリングシステムの構成を示すブロック図である。
【図2】図1のクラスタリングシステムの動作例を示すフローチャートである。
【図3】図1の対応表生成部6により生成される対応表の構造を示す概念図である。
【図4】図1のリスト入替部7の動作を説明するための概念図である。
【図5】図1の収束判定部8のクラスタの結合動作を説明するための概念図である。
【図6】図1のクラスタリングシステムによるツリー構造生成処理を説明する概念図である。
【図7】図1のクラスタリングシステムにより生成されたクラスタの形状を示すものであり、緩い閾値組で生成されたクラスタがより厳しい閾値組で生成されたクラスタを包含していることを示す概念図である。
【符号の説明】
【0056】
1…クラスタリング制御部
2…類似度集合抽出部
4…データ抽出部
5…クラスタリング結果再構成部
6…対応表生成部
7…リスト入替部
8…収束判定部
DB…データベース

【特許請求の範囲】
【請求項1】
クラスタリング対象のデータから、所定の類似性閾値範囲の類似性を有するデータの組合わせの集合を抽出する類似集合抽出部と、
各々のデータを対象データとし、この対象データを中心として、この中心から前記類似性閾値範囲内から計算可能なデータ密度が、所定の密度閾値以上である対象データの集合を抽出するデータ抽出部と、
各クラスタに含まれるデータから類似性閾値範囲以内に存在するデータのデータポイント番号の中から最も小さな番号を抽出し、このデータのデータ番号をクラスタラベル番号として、クラスタラベル番号及びこのクラスタラベル番号の示すクラスタに含まれるデータのデータポイント番号の対応表を生成する対応表生成部と、
前記対応表により、クラスタラベル番号であるデータが、他のクラスタに属しているか否かの検出を行い、他のクラスタに属していることが検出されると、このクラスタラベル番号を、他のクラスタのクラスタラベル番号に書き換えるリスト入替部と、
を有し、
前記リスト入替部が、書き換え前と書き換え後との表が同一となることを検出するまで書き換え処理を行うことを特徴とするクラスタリングシステム。
【請求項2】
前記リスト入替部がクラスタラベルを書き換えることにより生成されたクラスタ間において、前記閾値範囲内のデータが異なったクラスタに含まれているか否かを検出する収束判定部を有することを特徴とする請求項1記載のクラスタリングシステム。
【請求項3】
前記収束判定部が、前記検出処理において、異なったクラスタに含まれていることを検出した場合、これらのクラスタを結合させ、結合により生成されたクラスタのクラスタラベル番号を、結合したクラスタのクラスタラベル番号の内、最も小さなクラスタラベル番号とすることを特徴とする請求項2記載のクラスタリングシステム。
【請求項4】
前記リスト入替部におけるクラスタラベルの書き換え処理と、閾値範囲内のデータが異なったクラスタに含まれているか否かの検出処理とを、双方の処理結果が収束するまで行うことを特徴とする請求項2または請求項3に記載のクラスタリングシステム。
【請求項5】
前記類似性閾値及び密度閾値の閾値組が複数設定され、条件の厳しい閾値組から緩い閾値組へ順次、組毎の条件によりクラスタリングを実施するクラスタリング制御部を有することを特徴とする請求項1から請求項4のいずれかに記載のクラスタリングシステム。
【請求項6】
複数の閾値組で生成されたクラスタを、順次、閾値組の条件が緩くなる方向に並べることにより、クラスタのツリー構造を生成することを特徴とする請求項5に記載のクラスタリングシステム。
【請求項7】
各閾値組で生成されたクラスタにおいて、それぞれのクラスタで最も類似性のないデータ間の非類似性が所定の設定非類似性より大きいか否かの検出を行い、前記設定非類似性より大きいクラスタを検出した場合、検出されたクラスタが生成された閾値組より一つ条件の厳しい閾値組におけるクラスタリング結果を目的の結果とするクラスタリング再構成部を有することを特徴とする請求項6に記載のクラスタリングシステム。
【請求項8】
クラスタリング対象のデータから、所定の類似性閾値範囲の類似性を有するデータの組合わせの集合を抽出する類似集合抽出過程と、
各々のデータを対象データとし、この対象データを中心として、この中心から前記類似性閾値範囲内から計算可能なデータ密度が、所定の密度閾値以上である対象データの集合を抽出するデータ抽出過程と、
各クラスタに含まれるデータから類似性閾値範囲以内に存在するデータのデータポイント番号の中から最も小さな番号を抽出し、このデータのデータ番号をクラスタラベル番号として、クラスタラベル番号及びこのクラスタラベル番号の示すクラスタに含まれるデータのデータポイント番号の対応表を生成する対応表生成過程と、
前記対応表により、クラスタラベル番号であるデータが、他のクラスタに属しているか否かの検出を行い、他のクラスタに属していることが検出されると、このクラスタラベル番号を、他のクラスタのクラスタラベル番号に書き換えるリスト入替過程と、
を有し、
前記リスト入替過程において、書き換え前と書き換え後との表が同一となることを検出するまで書き換え処理を行うことを特徴とするクラスタリング方法。
【請求項9】
前記リスト入替過程において、クラスタラベルを書き換えることにより生成されたクラスタ間に、前記閾値範囲内のデータが異なったクラスタに含まれているか否かを検出する収束判定過程を有することを特徴とする請求項8記載のクラスタリング方法。
【請求項10】
前記収束判定過程において、前記検出処理のとき、異なったクラスタに含まれていることを検出した場合、これらのクラスタを結合させ、結合により生成されたクラスタのクラスタラベル番号を、結合したクラスタのクラスタラベル番号の内、最も小さなクラスタラベル番号とすることを特徴とする請求項9記載のクラスタリング方法。
【請求項11】
複数の閾値組で生成されたクラスタを、順次、閾値組の条件が緩くなる方向に並べることにより、クラスタのツリー構造を生成するクラスタリング結果再構成過程を有することを特徴とする請求項10記載のクラスタリング方法。
【請求項12】
前記クラスタリング結果再構成過程において、各閾値組で生成されたクラスタにおいて、それぞれのクラスタで最も類似性のないデータ間の非類似度が所定の設定非類似度より大きいか否かの検出を行い、前記設定非類似度より大きいクラスタを検出した場合、検出されたクラスタが生成された閾値組より一つ条件の厳しい閾値組におけるクラスタリング結果を目的の結果とすることを特徴とする請求項11に記載のクラスタリング方法。
【請求項13】
複数のデータに対して、各々のデータの類似性に基づいてクラスタリングを行うクラスタリングプログラムであり、
クラスタリング対象のデータから、所定の類似性閾値範囲の類似性を有するデータの組合わせの集合を抽出する組合集合抽出処理と、
各々のデータを対象データとし、この対象データを中心として、この中心から前記類似性閾値範囲内から計算可能なデータ密度が、所定の密度閾値以上である対象データの集合を抽出するデータ抽出処理と、
各クラスタに含まれる対象データから類似性閾値範囲以内に存在する対象データの中の最も小さな番号をクラスタラベル番号として、クラスタラベル番号及びこのクラスタラベル番号の示すクラスタに含まれるデータのデータポイント番号の対応表を生成する対応表生成処理と、
前記対応表により、クラスタラベル番号であるデータが、他のクラスタに属しているか否かの検出を行い、他のクラスタに属していることが検出されると、このクラスタラベル番号を、他のクラスタのクラスタラベル番号に書き換えるリスト入替処理と、
を有し、
前記リスト入替処理において、書き換え前と書き換え後との表が同一となることを検出するまで書き換え処理とを有することを特徴とするコンピュータが実行可能なプログラム。
【請求項14】
前記リスト入替処理において、クラスタラベルを書き換えることにより生成されたクラスタ間に、前記閾値範囲内のデータが異なったクラスタに含まれているか否かを検出する収束判定部を有することを特徴とする請求項13記載のコンピュータが実行可能なプログラム。
【請求項15】
前記収束判定処理において、前記検出処理を行うとき、異なったクラスタに含まれていることを検出した場合、これらのクラスタを結合させ、結合により生成されたクラスタのクラスタラベル番号を、結合したクラスタのクラスタラベル番号の内、最も小さなクラスタラベル番号とすることを特徴とする請求項14記載のコンピュータが実行可能なプログラム。
【請求項16】
複数の閾値組で生成されたクラスタを、順次、閾値組の条件が緩くなる方向に並べることにより、クラスタのツリー構造を生成するクラスタリング結果再構成処理を有することを特徴とする請求項15記載のコンピュータが実行可能なプログラム。
【請求項17】
前記クラスタリング結果再構成処理に措いて、各閾値組で生成されたクラスタにおいて、それぞれのクラスタで最も類似性のないデータ間の非類似度が所定の設定非類似度より大きいか否かの検出を行い、前記設定非類似度より大きいクラスタを検出した場合、検出されたクラスタが生成された閾値組より一つ条件の厳しい閾値組におけるクラスタリング結果を目的の結果とすることを特徴とする請求項16に記載のコンピュータが実行可能なプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2006−39970(P2006−39970A)
【公開日】平成18年2月9日(2006.2.9)
【国際特許分類】
【出願番号】特願2004−219285(P2004−219285)
【出願日】平成16年7月27日(2004.7.27)
【出願人】(597128004)国立医薬品食品衛生研究所長 (22)
【出願人】(397065480)エヌ・ティ・ティ・コムウェア株式会社 (187)
【Fターム(参考)】