(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-06
(45)【発行日】2023-01-17
(54)【発明の名称】クラスタリングの評価値算出方法及びクラスタ数決定方法
(51)【国際特許分類】
G06F 16/906 20190101AFI20230110BHJP
G06N 20/00 20190101ALI20230110BHJP
【FI】
G06F16/906
G06N20/00 160
(21)【出願番号】P 2019533991
(86)(22)【出願日】2018-07-05
(86)【国際出願番号】 JP2018025498
(87)【国際公開番号】W WO2019026523
(87)【国際公開日】2019-02-07
【審査請求日】2021-06-17
(31)【優先権主張番号】P 2017151146
(32)【優先日】2017-08-03
(33)【優先権主張国・地域又は機関】JP
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成26年度、独立行政法人科学技術振興機構、戦略的創造研究推進事業(ACCEL)、「縦型BC-MOSFETによる三次元集積工学と応用展開」に係る委託研究、産業技術力強化法第19条の適用を受ける特許出願
(73)【特許権者】
【識別番号】504157024
【氏名又は名称】国立大学法人東北大学
(74)【代理人】
【識別番号】110002675
【氏名又は名称】弁理士法人ドライト国際特許事務所
(72)【発明者】
【氏名】遠藤 哲郎
(72)【発明者】
【氏名】沈 暉
【審査官】早川 学
(56)【参考文献】
【文献】SAITTA, S. et al.,A comprehensive validity index for clustering,Intelligent Data Analysis,IOS Press,2008年,Vol.12, No.6,pp.529-548,特に、p.533, Sec.3
【文献】ARBELAITZ, Olatz et al.,An extensive comparative study of cluster validity indices,Pattern Recognition,Elsevier B.V.,2013年01月,Vol.46, Issue 1,pp.243-256,特に、p.245
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
複数のデータをクラスタリングしたときのクラスタ数によるクラスタリング状態の評価値を演算装置で算出するクラスタリングの評価値算出方法において、
クラスタリングされたデータに関する情報を取得する取得ステップと、
取得した前記情報に基づいて前記評価値を算出する算出ステップと
を有し、
前記算出ステップは、
クラスタ内のデータの分散の程度を示す各々の前記クラスタについての第1の指標値を当該クラスタのデータ数に基づく第1の値で規格化した値の各前記クラスタの総和である内的結合度と、
前記クラスタ間の距離の指標となる各々の前記クラスタについての第2の指標値の総和を前記クラスタ数に基づく第2の値で規格化した外的分離度であって、前記第2の指標値が、当該クラスタ内の第2の代表点と他の前記クラスタ内の第2の代表点との間のクラスタ間距離のうち、最も小さい前記クラスタ間距離または最も小さい前記クラスタ間距離を二乗した値である外的分離度と
をそれぞれ求め、
前記内的結合度と前記外的分離度とを変数とする所定の演算式から前記評価値を算出
し、
前記演算装置が前記取得ステップ及び前記算出ステップを実行する
クラスタリングの評価値算出方法。
【請求項2】
各々の前記クラスタの前記第1の指標値は、当該クラスタ内の第1の代表点と当該クラスタ内の各データとの間のクラスタ内距離の和または二乗和であることを特徴とする請求項1に記載のクラスタリングの評価値算出方法。
【請求項3】
前記第1の代表点は、前記クラスタ内のデータの重心であることを特徴とする請求項2に記載のクラスタリングの評価値算出方法。
【請求項4】
前記第1の値は、前記クラスタ内のデータ数であることを特徴とする請求項1ないし3のいずれか1項に記載のクラスタリングの評価値算出方法。
【請求項5】
前記内的結合度と前記外的分離度との比を前記評価値として算出することを特徴とする請求項1ないし4のいずれか1項に記載のクラスタリングの評価値算出方法。
【請求項6】
請求項1ないし
5のいずれか1項に記載のクラスタリングの評価値算出方法を用いて、前記クラスタ数の異なるクラスタリングの結果に対する前記評価値をそれぞれ算出し、
前記評価値のうちの極値、または最大値若しくは最小値の前記評価値に対応する前記クラスタ数を最適値として判定する
ことを特徴とするクラス
タ数決定方法。
【請求項7】
複数のデータをクラスタリングしたときのクラスタ数によるクラスタリング状態の評価値を演算装置で算出するクラスタリングの評価値算出方法において、
クラスタリングされたデータに関する情報を取得する取得ステップと、
取得した前記情報に基づいて前記評価値を算出する算出ステップと、
を有し、
前記評価値は、以下の式で表され、
【数8】
または、前記式の逆数で表され
、
前記演算装置が前記取得ステップ及び前記算出ステップを実行する
クラスタリングの評価値算出方法。
【請求項8】
前記クラスタ内距離および前記クラスタ間距離はユークリッド距離であることを特徴とする請求項
7に記載のクラスタリングの評価値算出方法。
【請求項9】
前記取得ステップにおいて取得される前記クラスタリングされたデータに関する情報には、クラスタリングの演算途中に生成された結果が含まれ、
前記算出ステップは、
前記クラスタリングの演算途中に生成された結果を流用して、前記評価値を求めることを特徴とする請求項
7または
8に記載のクラスタリングの評価値算出方法。
【請求項10】
前記基準点は、全データの重心であることを特徴とする請求項
7ないし
9のいずれか1項に記載のクラスタリングの評価値算出方法。
【請求項11】
請求項
7ないし
10のいずれか1項に記載のクラスタリングの評価値算出方法を用いて、前記クラスタ数の異なるクラスタリングの結果に対する前記評価値をそれぞれ算出し、
前記評価値のうちの極値、または最大値若しくは最小値の前記評価値に対応する前記クラスタ数を最適値として判定する
ことを特徴とするクラス
タ数決定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クラスタリングの評価値算出方法及びクラスタ数決定方法に関する。
【背景技術】
【0002】
分類対象の複数のデータの集合を複数のクラスタ(データ群)に分類するクラスタリング(クラスタ分析)が知られており、近年、画像解析、データマイニング、ビッグデータの解析等で頻繁に利用されている。クラスタリングでは、類似するデータ同士を同じクラスタに分類し、クラスタ間ではデータができるだけ類似しないように分類することによって、その分類結果からデータの傾向や特徴の抽出等を行うものである。
【0003】
複数のデータをクラスタに分類するクラスタリング手法としては、種々の方法が知られており、代表的なクラスタリングの手法の1つとしてk-means法が知られている。k-means法では、予めクラスタ数kが設定され、例えばN個の全データのうちから任意のk個のデータが選択され、それらをk個のクラスタの重心の初期値とする(手順1)。次に、各データのそれぞれについて、当該データとの距離が最も短い重心のクラスタに分類する(手順2)。各クラスタについて、クラスタ内のデータの平均を新たなクラスタの重心に設定する(手順3)。そして、各クラスタの重心が変化しなくなるまで、手順2と手順3とを繰り返し行う。
【0004】
上記のようなクラスタリング手法は、予め設定されたクラスタ数のクラスタにデータを分類するものであって、クラスタ数を予め設定する必要がある。通常、最適なクラスタ数を決定するために、クラスタ数を変化させてクラスタリングした各結果のそれぞれについての評価値を求め、評価値が極値、あるいは最大値ないし最小値のクラスタ数を最適なクラスタ数としている。評価値にも種々のものが提案されており、代表的なものの1つのとしてVRC(以下、評価値VRCという)が知られている(例えば、非特許文献1)。
【0005】
評価値VRCは、全データ数で規格化された内的結合度に対するクラスタ数で規格化した外的分離度の比である。評価値VRCにおける外的分離度の規格化前の値は、全データの重心とクラスタの重心との距離に当該クラスタ内のデータ数で重み付けした各クラスタのそれぞれの値の総和である。また、評価値VRCにおける内的結合度の規格化前の値は、クラスタの重心と当該クラスタ内の各データとの距離のクラスタごとの和を、各クラスタについて合計したものである。
【先行技術文献】
【非特許文献】
【0006】
【文献】CALINSKI, Tadeusz; HARABASZ, Jerzy. A dendrite method for cluster analysis. Communications in Statistics-theory and Methods, 1974, 3.1:1-27.
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、上記評価値VRCを用いた場合、全データ内において、他のデータに対して、範囲の大きなデータのまとまりがある場合やデータの分布密度が高いデータのまとまりがある場合、その大きな範囲のデータのまとまりや分布密度が高いデータのまとまりを過剰に分類して、クラスタ数が大きくなる傾向がある。すなわち、そのような大きな範囲のデータのまとまりや分布密度が高いデータのまとまりを1個のクラスタに分類するよりも、複数のクラスタに分類した場合に、評価値VRCが大きくなる傾向にある。
【0008】
本発明は、上記事情を鑑みてなされたものであり、過剰な分類を抑制することができるクラスタリング状態を評価する評価値を得ることができるクラスタリングの評価値算出方法及びその評価値を用いたクラスタ数決定方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、複数のデータをクラスタリングしたときのクラスタ数によるクラスタリング状態の評価値を演算装置で算出するクラスタリングの評価値算出方法において、クラスタリングされたデータに関する情報を取得する取得ステップと、取得した前記情報に基づいて前記評価値を算出する算出ステップとを有し、前記算出ステップは、クラスタ内のデータの分散の程度を示す各々の前記クラスタについての第1の指標値を当該クラスタのデータ数に基づく第1の値で規格化した値の各前記クラスタの総和である内的結合度と、前記クラスタ間の距離の指標となる各々の前記クラスタについての第2の指標値の総和を前記クラスタ数に基づく第2の値で規格化した外的分離度とをそれぞれ求め、前記内的結合度と前記外的分離度とを変数とする所定の演算式から前記評価値を算出するものである。
【0010】
また、本発明のクラスタ数決定方法は、上記評価値算出方法を用いて、クラスタ数の異なるクラスタリングの結果に対する評価値をそれぞれ算出し、各前記評価値のうちの極値、または最大値若しくは最小値の評価値に対応するクラスタ数を最適値として判定するものである。
【発明の効果】
【0011】
本発明によれば、内的結合度をクラスタ内の各データの分散の程度を示す各々のクラスタについての第1の指標値をクラスタのデータ数に基づく第1の値で規格化した値の総和とし、外的分離度をクラスタ間の距離の指標となる各々のクラスタについての第2の指標値の総和をクラスタ数に基づく第2の値で規格化したものとして、評価値を算出するので、過剰な分類を抑制することができる評価値を得ることができる。
【図面の簡単な説明】
【0012】
【
図1】本発明を実施した演算装置の構成を示すブロック図である。
【
図2】評価値が極大値となるクラスタリング結果を取得する処理手順を示すフローチャートである。
【
図3】評価値が最大値となるクラスタリング結果を取得する処理手順を示すフローチャートである。
【
図4】クラスタ間距離を用いた評価値E1(c)を求める場合の各値を説明する説明図である。
【
図5】基準点クラスタ間距離を用いた評価値E2(c)を求める場合の各値を説明する説明図である。
【
図6】サンプル1とデータの分類の状態を示す説明図である。
【
図9】サンプル1のクラスタ数に対する評価値E1(c)の変化を示すグラフである。
【
図10】サンプル1のクラスタ数に対する評価値E2(c)の変化を示すグラフである。
【
図11】サンプル1のクラスタ数に対する評価値VRC(c)の変化を示すグラフである。
【
図12】サンプル2のクラスタ数に対する評価値E1(c)の変化を示すグラフである。
【
図13】サンプル2のクラスタ数に対する評価値E2(c)の変化を示すグラフである。
【
図14】サンプル2のクラスタ数に対する評価値VRC(c)の変化を示すグラフである。
【
図15】サンプル3のクラスタ数に対する評価値E1(c)の変化を示すグラフである。
【
図16】サンプル3のクラスタ数に対する評価値E2(c)の変化を示すグラフである。
【
図17】サンプル3のクラスタ数に対する評価値VRC(c)の変化を示すグラフである。
【発明を実施するための形態】
【0013】
図1において、演算装置10は、複数のデータに対してクラスタリングを行うとともに、クラスタリング状態を評価する評価値を算出し、その評価値に基づいて最適なクラスタリング数でのクラスタリング結果を取得するように構成される。最適なクラスタリング数を得るために、演算装置10は、複数のデータに対して、クラスタ数を変えて複数回のクラスタリングを行う。演算装置10は、例えばコンピュータで構成されており、評価値演算部11、クラスタリング部12、これらを統括的に制御する制御部13、データ記憶部14として機能する。
【0014】
データ記憶部14は、コンピュータのハードディスクやメモリで構成されており、クラスタリングの対象となる複数のデータが予め書き込まれている。これらデータは、q(qは、1以上の整数)次元ベクトルであり、例えば画像の色や濃淡、色の分布等の内容をq次元ベクトルにしたものである。データ記憶部14には、クラスタリング部12で実施されたクラスタリング結果や、クラスタリングの演算途中の結果等が書き込まれる。
【0015】
クラスタリング部12は、データ記憶部14からクラスタリングの対象となるデータを読み出して、クラスタリングを行い、その結果をデータ記憶部14に保存する。クラスタリング部12によるクラスタリングは、この例では上述のk-means(k平均)法を用いて行われる。評価値演算部11による評価値の算出手法は、k-means法に限らず、各データを1つのクラスタに属するように分類するハードクラスタリングに適用することができる。このようなハードクラスタリングとしては、「k-means++」法、スペクトラルクラスタリング、単連結法、ウォード法等がある。
【0016】
評価値演算部11は、クラスタリング部12が1つのクラスタ数c(cは、2以上の整数)についてクラスタリングを行うごとに、評価値E1(c)を算出する。評価値演算部11は、データ記憶部14からクラスタリングされたデータに関する情報としてのクラスタリング結果を取得する。評価値演算部11は、取得したクラスタリング結果に基づいて、そのクラスタリング結果についてのクラスタリング状態を評価する評価値E1(c)を算出する。評価値演算部11は、評価値E1(c)を制御部13に出力する。なお、この評価値E1(c)の算出の詳細については後述する。
【0017】
評価値演算部11が取得するクラスタリングされたデータに関する情報としては、クラスタリングの演算途中に生成される結果、例えばk-means法では後述するようにクラスタの重心、クラスタ内距離等をクラスタリングの際に求めているので、それらを含めることができ、それを評価値E1(c)の算出に利用することができる。このようにクラスタリングの際にされる演算結果を評価値E1(c)の算出に利用することは演算時間の短縮等の点で好ましい。
【0018】
制御部13は、評価値演算部11で算出された各評価値E1(c)を比べることにより、最適なクラスタ数cを判別する。この例では、制御部13は、
図2に示す山登り方式の手順に基づいて、極値(この例では極大値)をとる評価値E1(c)に対応するクラスタ数cを最適なものと判別する。すなわち、評価値E1(c)が算出されるごとに、その算出された評価値E1(c)と前回に算出された評価値E1(c)とを比べ、後者が前者よりも小さくなった場合に、前回に算出された評価値E1(c)が極大値であるとして、その評価値E1(c)に対応するクラスタ数cを最適なものと判別する。
【0019】
図2に示すように、制御部13は、ステップST1でクラスタ数cを初期化するとともに、前回の評価値を示す変数E0を「0」にして初期化する。クラスタ数cは、この例の初期化では「2」に設定される。ステップST2で、制御部13は、設定されたクラスタ数の下でk-means法によるクラスタリングをクラスタリング部12に実施させ、その後のステップST3でクラスタリングの結果に基づいたクラスタ数cについての評価値E1(c)を評価値演算部11に算出させる。なお、クラスタ数cは、上述のk-means法におけるクラスタ数kである。
【0020】
ステップST4では、制御部13は、今回算出した評価値E1(c)と変数E0とを比較する。この比較において、評価値E1(c)が変数E0以上である場合には、ステップST5、ST6の後に、再びステップST2においてクラスタリング部12にクラスタリングを実施させる。ステップST5では、変数E0を今回算出された評価値E1(c)にし、ステップST6では、クラスタ数cを「1」だけインクリメントする。これにより、クラスタ数cを「1」だけ増加させて次のクラスタリングが行われ(ステップST2)、ステップST3で新たに得られる評価値E1(c)が前回のものと比較される(ステップST4)。
【0021】
一方、評価値E1(c)が変数E0よりも小さい場合には、制御部13は、評価値E1(c)が減少に転じたものとして、ステップST7により、クラスタ数(c-1)に対応したクラスタリング結果を取得する。すなわち、クラスタリングを最後に行ったときのクラスタ数をcとしたときのクラスタ数(c-1)がクラスタ数として最適な値であると判定する。
【0022】
なお、設定されたクラスタ数cの範囲内で最大となるクラスタ数を最適な値として判別してもよい。この場合は、
図3に手順を示すように、まずステップST11でクラスタ数cの初期値と設定最大値が設定されることで、評価するクラスタ数cの範囲が設定される。制御部13は、ステップST12でクラスタ数cを初期値に設定する。ステップST13では、ステップST12で設定されたクラスタ数cの下でクラスタリングをクラスタリング部12で行い、その後のステップST14でクラスタリングの結果に基づいたクラスタ数cについての評価値E1(c)を評価値演算部11に算出させる。ステップST15では、クラスタ数cが設定された設定最大値以上であるか否かを調べる。クラスタ数cが設定最大値に達していない場合には、ステップST16でクラスタ数cを「1」だけインクリメントした後に、再びステップST13によるクラスタリングを行う。これにより、クラスタ数cが設定最大値に達するまで、クラスタ数cを「1」ずつインクリメントしながら繰り返しクラスタリングが行われ、クラスタリングごとに評価値E1(c)が算出される。そして、設定最大値のクラスタ数cについてのクラスタリングの終了後、各クラスタ数cについての評価値E1(c)が比較され、その中で最大の評価値E1(c)に対応するクラスタ数cを最適な値と判定し、そのクラスタ数cに対応したクラスタリング結果を制御部13が取得する(ステップST17)。
【0023】
次に、評価値演算部11が算出する評価値について説明する。評価値演算部11が算出する評価値E1(c)は、式(1)のように表される。
【数1】
【0024】
式(1)中の各値は、次の通りである。なお、i=1、2、・・・cである。また、クラスタ重心は、クラスタ内の各データの相加平均として求められる。
図4には、データx、i番目のクラスタc
i、クラスタc
iの重心v
i、クラスタ間距離dist(v
i,v
j)、クラスタ内距離dist(x、v
i)の一例を模式的に示す。
n:クラスタリングの対象となるデータ数(全データ数)
x:データ
c:クラスタ数
c
i:i番目のクラスタ
n
i:クラスタc
iのデータ数
v
i:クラスタc
iの重心(クラスタ重心)
D(x、v
i):クラスタc
i内のデータxについてのクラスタ内距離指標値
D(v
i,v
j): クラスタc
iと他のクラスタc
jとのクラスタ間距離指標値
dist(x、v
i):クラスタc
i内のクラスタ重心とデータxとの距離(クラスタ内距離)
dist(v
i,v
j):クラスタc
iと他のクラスタc
jとのクラスタ重心間の距離(クラスタ間距離)
【0025】
式(1)の右辺の分母は、クラスタ内におけるデータの分散(データ同士の類似)の程度を全クラスタについて示す内的結合度になっている。クラスタ内距離指標値(=D(x、vi))は、クラスタ内に設定される距離の基点としての第1の代表点とクラスタ内のデータとの距離の程度(隔たりの大きさ)を示すものであり、クラスタ内の各々のデータについて求められる。この例では、第1の代表点をクラスタ重心とし、このクラスタ重心とデータとの距離であるクラスタ内距離(=dist(x、vi))の二乗の値をクラスタ内距離指標値にしている。
【0026】
内的結合度は、クラスタごとの第1の指標値を当該クラスタ内のデータ数で除することで規格化した値の各クラスタについての総和として求められる。各クラスタの第1の指標値は、対応するクラスタ内のデータの分散の程度を示しており、この例では、対応するクラスタ内の各データについてのクラスタ内距離指標値の和である。
【0027】
式(1)の右辺の分子は、クラスタの分離の程度を全クラスタについて示す外的分離度になっている。クラスタ間距離指標値(=D(vi,vj))は、1のクラスタと他の1のクラスタとの間の距離の程度を示しており、この例ではクラスタ間の距離の基点となる各クラスタの第2の代表点をクラスタ重心として、1のクラスタと他の1のクラスタとのクラスタ重心間の距離であるクラスタ間距離(=dist(vi,vj))の二乗の値である。
【0028】
外的分離度は、クラスタごとの第2の指標値の各クラスタについての総和をクラスタ数で除して規格化した値である。第2の指標値は、1のクラスタと他の各クラスタとの分離の程度、すなわち当該1のクラスタについてのクラスタ間の距離の指標となる値であり、この例では、各々のクラスタについてのクラスタ間距離指標値の最小値である。
【0029】
また、この例では、クラスタ内距離、クラスタ間距離をいずれもユークリッド距離としている。2つのq次元ベクトルであるデータをそれぞれa(a1,a2,・・・aq)、b(b1,b2,・・・bq)とすると、aとbとのユークリッド距離は、式(A)のように表される。
【0030】
【0031】
評価値E1(c)では、上記のように、外的分離度は、クラスタごとのクラスタの分離の程度の指標となる第2の指標値の各クラスタについての総和をクラスタ数で規格化した値であり、内的結合度は、クラスタごとのクラスタ内の各データの分散の程度を示す第1の指標値をクラスタ内のデータ数で規格化した値の各クラスタについての総和である。このため、全データ内において、他のデータのまとまりに対して、範囲の大きなデータのまとまりがある場合やデータの分布密度が高いデータのまとまりがある場合等であっても、個々のクラスタ内におけるデータの分散の程度が内的結合度に適正に反映される。すなわち、過剰な分類がされた場合に、評価値E1(c)がより大きくなるようなことがなく過剰な分類が抑制される。
【0032】
評価値E1(c)は、クラスタリング状態が良好であれば、その程度に応じて値が大きくなる。したがって、評価値E1(c)が、極大値または最大値をとるようにクラスタ数cを決めればよい。なお、式(1)の右辺の逆数を評価値E1(c)とする場合には、評価値E1(c)が、極小値または最小値をとるようにクラスタ数cを決めればよい。また、クラスタ重心やクラスタ間距離は、k-means法の演算過程の途中結果を用いることができ演算数の削減に有利である。
【0033】
上記評価値E1(c)では、クラスタ間の距離の指標である第2の指標値をクラスタ間距離指標値を用いて求めているが、式(2)に示す評価値E2(c)のように、予め設定された基準点からのクラスタまでの距離の程度を示す基準点クラスタ間距離指標値を用いて求めた値を第2の指標値とすることができる。評価値E2(c)は、詳細を後述するように、それを求める際の演算数が評価値E1(c)に比べて少なくなる。
【0034】
【0035】
式(2)中の各値は、次の通りである。なお、その他の値は、式(1)のものと同じである、また、この例では、基準点をクラスタリングの対象となるn個の全データの重心としている。
図5には、データx、i番目のクラスタc
i、クラスタc
iの重心v
i、基準点クラスタ間距離dist(v
i,m)、クラスタ内距離dist(x、v
i)の一例を模式的に示す。
m:基準点
D(vi,m):クラスタc
iの基準点クラスタ間距離指標値
dist(vi,m):クラスタc
iのクラスタ重心と基準点との距離(基準点クラスタ間距離)
【0036】
上記式(2)は、評価値E1(c)の式(1)と同じく、その右辺の分子が外的分離度であり、右辺の分母が内的結合度である。評価値E2(c)の外的分離度は、第2の指標値の各クラスタにつての総和であるが、基準点クラスタ間距離指標値をクラスタ内のデータ数で重み付けした値を第2の指標値としている。基準点クラスタ間距離指標値は、この例では、クラスタリング対象となるn個の全データの重心(以下、データ重心という)を基準点とし、基準点に対するクラスタリング側の距離の基点となる第2の代表点をクラスタ重心として、基準点とクラスタ重心との距離である基準点クラスタ間距離(=dist(vi,m))の二乗の値を基準点クラスタ間距離指標値としている。なお、基準点クラスタ間距離指標値に重み付けをする場合、重み付けする値は、クラスタ内のデータ数に限定されず、クラスタ内のデータ数に基づく値で重み付けしてもよい。
【0037】
上記の評価値E2(c)においても、評価値E1(c)と同様に、外的分離度が、クラスタ間の距離の指標となるクラスタごとの第2の指標値の各クラスタについての総和をクラスタ数で規格化した値であり、内的結合度が、クラスタごとのクラスタ内の各データの分散の程度を示す第1の指標値をクラスタ内のデータ数で規格化した値の各クラスタについての総和になっているから、過剰な分類がされた場合に、評価値E2(c)がより大きくなるようなことがなく過剰な分類が抑制される。
【0038】
評価値E2(c)は、評価値E1(c)と同じく、クラスタリング状態が良好であれば、その程度に応じて値が大きくなる。したがって、評価値E2(c)が、極大値または最大値をとるようにクラスタ数cを決めればよい。なお、式(2)の右辺の逆数を評価値E2(c)とする場合には、評価値E2(c)が、極小値または最小値をとるようにクラスタ数cを決めればよい。
【0039】
なお、上記の評価値E1(c)、評価値E2(c)のように、クラスタ内距離指標値、クラスタ間距離指標値、基準点クラスタ間距離指標値として、対応するユークリッド距離(クラスタ内距離、クラスタ間距離、基準点クラスタ間距離)を二乗した値を用いる他に、対応するユークリッド距離そのものを用いることもできる。上記の例のように、対応するユークリッド距離を二乗した値を用いる場合には、ユークリッド距離そのものを用いるよりも、計算量を少なくすることができるという利点がある。
【0040】
上記評価値E1(c)及び評価値E2(c)におけるクラスタ内距離、クラスタ間距離、基準点クラスタ間距離は、ユークリッド距離に限定されない。例えば、式(B)に示すマンハッタン距離や式(C)に示すミンコフスキー距離であってもよい。なお、式(C)におけるpは1以上の任意の値であるが、周知のようにp=1のときはマンハッタン距離に、p=2のときはユークリッド距離と同義である。また、この他にも「Point symmetry distance」等を用いてもよい。
【0041】
【0042】
【0043】
さらに、評価値E1(c)、評価値E2(c)では、クラスタ内の各データについてのクラスタ内距離の基点である第1の代表点、クラスタ間距離の各クラスタの基点または基準点クラスタ間距離のクラスタ側の基点である第2の代表点をいずれもクラスタ重心にしているが、これに限定されない。例えば、第1の代表点、第2の代表点を各クラスタ内において、クラスタ重心に最も近いデータとしてもよい。また、第2の代表点は、クラスタ同士または基準点とクラスタとの離れた具合(距離)を測る上での基点であるから、隣接したクラスタあるいは基準点に最も近いまたは最も離れたクラスタ内のデータ等としてもよい。さらに、第1の代表点及び第2の代表点を、別途定めた基準によって決まるクラスタ内の点またはデータやクラスタ内の任意の点またはデータとしてもよい。
【0044】
式(2)の基準点は、任意の点やデータに設定することができ、上記のようなデータ重心の他に、データ重心に最も近いデータ、いずれかのクラスタの第2の代表点、外部より指定する点やデータ、外部から指定された記憶装置のアドレスに格納されているデータ、最初に入力されたデータ等のように別途定めた基準によって決まる点やデータにしてもよい。
【0045】
また、評価値E1(c)、評価値E2(c)では、内的結合度を求める際に、第1の指標値を、第1の値としての当該クラスタのデータ数niで規格化しているが、規格化するための第1の値は、これに限定されるものではなく、当該クラスタのデータ数niに基づく値とすることができる。例えば、当該クラスタのデータ数niの冪(ni
2、ni
3、ni
1/2、ni
-2等)、データ数niを定数倍した値、データ数niに一定数を減算または加算した値、データ数niとクラスタ数cとを予め決めた関数F(ni,c)、例えば「F(ni,c)=ni-c」、kを定数とした「F(ni,c)=k・ni-c」等に適用した結果等を第1の値として用いることができる。
【0046】
また、外的分離度を求める際に、第2の値としてのクラスタ数cで規格化しているが、第2の値は、これに限定されるものではなく、クラスタ数cに基づく値で規格化することができる。クラスタ数c以外のクラスタ数に基づく値としては、第1の値と同様に、例えば、クラスタ数cの冪、クラスタ数cを定数倍した値、クラスタ数cに一定数を減算または加算した値、クラスタ数cと全データ数nとを予め決めた関数G(n,c)に適用した結果等を第2の値として用いることができる。
【0047】
上記では、評価値E1(c)、評価値E2(c)は、評価値を求める演算を内的結合度と外的分離度との比とするものであるが、評価値を求める演算はこれに限定されない。上記のように求められる内的結合度は、その値が小さいほど、クラスタ内のデータ相互の類似性が高くなるように各クラスタ内のデータがまとまったクラスタリング状態となることを意味する。一方で、上記のように求められる外的分離度は、その値が大きいほど、クラスタ相互間の類似性が低くなるように各クラスタが相互に離れたクラスタリング状態となることを意味する。このため、内的結合度と外的分離度とから評価値を求める演算は、内的結合度が小さくなる方向に変化したとき、また外的分離度が大きくなる方向に変化したときに、評価値が増加または減少の一方に変化するようにすればよく、そのような結果が得られる内的結合度と外的分離度とを変数とする演算式を用いればよい。
【0048】
評価値を求める演算としては、上述のように内的結合度と外的分離度との比とするものの他に、例えば、次の各式に示すように、内的結合度と外的分離度の一方の逆数と他方とをそれぞれ重み付けして加算することで評価値Eを求めるもの、内的結合度と外的分離度の一方から他方をそれぞれ重み付けして減算することで評価値Eを求めるもの等を用いることができる。なお、式中の値Compは内的結合度を、Sepは外的分離度を、Wa、Wbは重み付けの定数であり、Wa,Wb≠0である。
E=Wb・Sep+Wa・(1/Comp)
E=Wb・(1/Sep)+Wa・Comp
E=Wb・Sep-Wa・Comp
E=Wa・Comp-Wb・Sep
【実施例】
【0049】
以下、サンプルのデータをクラスタリングし、評価値E1(c)、評価値E2(c)を用いて最適なクラスタ数を決定した実施例1、2について説明する。実施例1、2では、クラスタリング手法としてk-means法を用い、最適なクラスタ数の決定の手順としては、
図3に示すものを用いて評価値が最大となるものとした。クラスタリング数の範囲は、2~10とした。また、比較例1として、同様な条件の下で、非特許文献1に記載された評価値VRC(c)を用いて最適なクラスタ数を決定した。
【0050】
評価値VRC(c)の算出式を式(3)に示す。なお、式(3)の各値は、式(1)または式(2)のもとの同じである。評価値VRC(c)では、式(6)の分母の値が内的結合度を示しており、分子の値が外的分離度を示している。
【0051】
【0052】
実施例1、2及び比較例1では、
図6(a)に示すサンプル1、
図7に示すサンプル2、
図8に示すサンプル3に対してクラスタリングを実施した。これら
図6(a)、
図7、
図8は、いずれも2次元ベクトルのデータの分布状態を示している。
【0053】
サンプル1では、データが互いに離れた小領域と、この小領域よりもサイズが大きい大領域にそれぞれ同じ密度で分布させている。小領域のデータ数は、100個、大領域のデータ数は、400個であり、大領域は、小領域の4倍の面積である。このサンプル1について、クラスタ数cを2~10の範囲で変化させてクラスタリングした場合の評価値E1(c)、評価値E2(c)及び評価値VRC(c)の変化を
図9ないし
図11にそれぞれ示す。
【0054】
評価値E1(c)、評価値E2(c)のいずれの場合にも、クラスタ数cが「2」のときに評価値が最大となり、そのときのクラスタリングの状態は、
図6(b)に示すようなものになり、小領域のデータと大領域のデータとがそれぞれ1つのクラスタに分類される結果となった。この結果は、サンプル1のデータの分布に対する人間の感覚的な判断と一致している。一方、評価値VRC(c)では、クラスタ数cが「5」のときに評価値が最大となり、そのときのクラスタリングの状態は、
図6(c)に示すように、小領域のデータが1つのクラスタに分類され、大領域のデータは4つのクラスタに分類される結果になった。なお、クラスタリング手法として同じ手法を用いているため、クラスタ数cが同じであれば、評価値E1(c)、評価値E2(c)、評価値VRC(c)のいずれにおいてもクラスタリングの状態は同じである。
【0055】
上記同様にして、サンプル2についての評価値E1(c)、評価値E2(c)、評価値VRC(c)の変化を調べた結果を
図12ないし
図14に、またサンプル3についての評価値E1(c)、評価値E2(c)、評価値VRC(c)の変化を調べた結果を
図15ないし
図17にそれぞれ示す。
【0056】
サンプル2は、互いに離れた同じサイズの低密度領域と高密度領域にデータを分布させたものであり、低密度領域よりも高密度領域のデータの密度が高くなっている。サンプル2では、低密度領域のデータ数が50個であり、高密度領域のデータ数が500個である。サンプル3では、互いに離れた小領域とこの小領域よりもサイズが大きい大領域とに、異なる密度でデータを分布させたものであり、小領域よりも大領域のデータの密度が高くなっている。サンプル3では、データ数は、小領域が50個、大領域が400個であり、大領域は、小領域の4倍の面積である。
【0057】
評価値E1(c)、E2(c)は、上記サンプル2、サンプル3についても、サンプル1と同じく、クラスタ数cが「2」のときに最大となり、サンプル2、3の領域ごとにそれらのデータが1つのクラスタに分類される結果となった。一方、評価値VRC(c)は、サンプル2、サンプル3についても、クラスタ数cが「5」のときに最大となり、サンプル2の低密度領域、サンプル3の小領域のデータがそれぞれ1つのクラスタに分類され、サンプル2の高密度領域、サンプル3の大領域のデータがそれぞれ4つのクラスタに分類された。
【0058】
表1に、サンプル1~3についてのクラスタ数cが「2」と「5」の場合の各評価値の値を示す。なお、最大値となった評価値に対して表1中の「結果」の欄に丸印を付してある。
【0059】
【0060】
また、表2には、サンプル1について、クラスタ数cが「2」、「5」各場合の評価値E2(c)、VRC(c)における内的結合度及び外的分離度の詳細を示す。クラスタ数cが「5」のときの評価値E2(c)における内的結合度は、クラスタ数cが「2」のときのものに比べて僅かに小さな値になっているが、クラスタ数cが「5」のときの評価値VRC(c)における内的結合度は、クラスタ数cが「2」のものに比べて1/3以下の値であり、かなり小さな値になっている。
【0061】
【0062】
上述のように評価値E2(c)は、クラスタごとのクラスタ内距離指標値の和、すなわちクラスタごとの第1の指標値を、当該クラスタ内のデータ数niで除して規格化した値の各クラスタについての総和を内的結合度にしている。一方、評価値VRC(c)の内的結合度は、上記式(3)から分かるように、クラスタごとに求めた第1の指標値の各クラスタについての総和を「n-c(=全データ数-クラスタ数)」で除して規格化した値である。なお、全データ数nに対してクラスタ数cの変化量ないし値を無視しても問題ないので、便宜上、全データ数nで除して規格化しているものとして説明する。
【0063】
上述のように、サンプル1は、クラスタ数cが「2」のときには、小領域のデータと大領域のデータとがそれぞれ1つのクラスタに分類され(
図6(b))、クラスタ数cが「5」のときには、小領域のデータが1つのクラスタに分類され、大領域のデータは4つのクラスタに分類される(
図6(c))。クラスタ数cが「2」のときに比べて、クラスタ数cが「5」ときには、大領域のデータは4つのクラスタに分類されることにともない、それら4個のクラスタ内の各データについてのクラスタ内距離指標値がかなり小さくなる。この結果、それら4個のクラスタのそれぞれについての第1の指標値(=クラスタ内距離指標値の和)もかなり小さくなり、第1の指標値の各クラスタについての総和もかなり小さくなる。
【0064】
評価値VRC(c)の内的結合度は、第1の指標値の各クラスタについての総和を全データ数nで規格化した値であり、全データ数nは変化しない値である。したがって、クラスタ数cが大きくなって第1の指標値の総和がかなり小さくなると、それに応じて内的結合度もかなり小さくなる。このため、クラスタ数cが「5」のときの評価値VRC(c)における内的結合度は、クラスタ数cが「2」のものに比べて1/3以下の値になっている。
【0065】
上記のようにクラスタ数cが大きくなることによって、第1の指標値がかなり小さくなる点については、評価値E2(c)を求める場合においても全く同じである。しかしながら、評価値E2(c)では、上記のように、クラスタごとの第1の指標値を当該クラスタ内のデータ数niで除して規格化しており、そのデータ数niは、クラスタの範囲が狭くなることによって小さな値になる。したがって、クラスタ数cが大きくなることによって第1の指標値が小さくなっても、内的結合度の変化は小さい。このため、上記のようにクラスタ数cが「5」のときの評価値E2(c)における内的結合度は、クラスタ数cが「2」のものに比べて僅かな減少になっている。
【0066】
クラスタ数の増減にともなう外的分離度の変化によっても、評価値E2(c)、評価値VRC(c)は変化するが、サンプル1のようなデータの分布については、評価値VRC(c)では、上記のようにクラスタ数cが増大したときに内的結合度が大きく減少する傾向により、クラスタ数cが「5」のときに、その値が最も高くなり、人間の感覚的な判断よりも過剰に分類された結果になったと考えられる。これに対して、評価値E2(c)では、クラスタ数cが増大したときに内的結合度が大きく減少する傾向がないため、クラスタ数cが「2」のときに最も高くなり、過剰な分類が抑制されて人間の感覚的な判断と一致した結果になったと考えられる。なお、他のサンプル2、3についてもサンプル1と同様であり、評価値E1(c)についても評価値E2(c)と同様である。
【0067】
また、
図18に示すサンプルA~Eについて、実施例3、比較例2、3を実施した。実施例3では評価値E1(c)を、比較例2では評価値VRC(c)を、比較例3では、既知のDBインデックス(以下、評価値DB(c)と称する)をそれぞれ用いて、最適なクラスタ数を調べた。サンプルA~EのうちサンプルBは、データが三次元ベクトルであり、その他はデータが二次元ベクトルである。評価値DB(c)は、式(4)で求められる。
【0068】
【0069】
式(4)中の各値は、次の通りである。
di(上にバ-):i番目のクラスタにおけるクラスタ内距離の平均値
dj(上にバ-):j番目のクラスタにおけるクラスタ内距離の平均値
di,j:i番目とj番目の各クラスタの重心間の距離(クラスタ間距離)
【0070】
上述のように、評価値E1(c)、E2(c)では、クラスタ内の各データの分散の程度を示す各々のクラスタについての第1の指標値をクラスタのデータ数に基づく第1の値で規格化した値の総和を内的結合度とし、クラスタ間の距離の指標となる各々のクラスタについての第2の指標値の総和をクラスタ数に基づく第2の値で規格化した値を外的分離度としており、評価値E1(c)、E2(c)は、それら内的結合度と外的分離度との比として求められる。これに対して、評価値DB(c)では、一のクラスタを含む一対のクラスタに関してクラスタリング状態が最も悪いと評価される他の一のクラスタとの組み合わせにおける各クラスタ内のデータ分散の程度と当該一のクラスタ及び当該の他の一のクラスタの分離の程度との比を各クラスタについてそれぞれ求め、評価値DB(c)は、それら各クラスタの比の平均であり、評価値E1(c)、E2(c)とは異なる。
【0071】
各評価値を用いて判別された最適なクラスタ数の結果を表3に示す。なお、評価値E1(c)、評価値VRC(c)については、それらが最大値となるクラスタ数を最適なクラスタ数とし、評価値DB(c)は、それが最小値となるクラスタ数を最適なクラスタ数とした。
【0072】
【0073】
実施例3では、サンプルA~Eのいずれにおいても、クラスタリング数を含むクラスタリングの結果が人間の感覚的な判断と一致した結果となった。これに対して、比較例2は、サンプルC~Eにおいて、人間の感覚的な判断によるクラスタ数と比較してクラスタ数が多くなり過剰に分割される結果となった。また、比較例3では、人間の感覚的な判断と比較して、比較例2のように過剰な分割とはならなかったが、サンプルCにおいてクラスタリング数が少ない結果となった。すなわち、比較例3の評価値DB(c)は、データの複数のまとまりが相互に近接している場合には、それらをまとめて1つのクラスタに分類したときに値が高くなる傾向があることが分かる。
【符号の説明】
【0074】
10 演算装置
11 評価値演算部
12 クラスタリング部
13 制御部
14 データ記憶部
E1(c) 評価値
E2(c) 評価値