ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

GapEvaluation

パッケージ: clustering.evaluation
スーパークラス: clustering.evaluation.ClusterCriterion

ギャップ基準クラスタリング評価オブジェクト

説明

GapEvaluation は、標本データ、クラスタリング データおよびギャップ基準値で構成されるオブジェクトであり、最適なクラスター数を評価するために使用されます。evalclusters を使用して、ギャップ基準クラスタリング評価オブジェクトを作成します。

構築

eva = evalclusters(x,clust,'Gap') は、ギャップ基準クラスタリング評価オブジェクトを作成します。

eva = evalclusters(x,clust,'Gap',Name,Value) は、1 つまたは複数の名前と値のペア引数で指定された追加オプションを使用して、ギャップ基準クラスタリング評価オブジェクトを作成します。

入力引数

すべて展開する

N 行 P 列の行列として指定される入力データ。N は観測値の数、P は変数の数です。

データ型: single | double

クラスタリング アルゴリズム。次のいずれかとして指定します。

'kmeans'x のデータを kmeans クラスタリング アルゴリズムを使用してクラスタリングします。'EmptyAction''singleton''Replicates'5 に設定されます。
'linkage'x のデータを clusterdata 凝集型クラスタリング アルゴリズムを使用してクラスタリングします。'Linkage''ward' に設定されます。
'gmdistribution'x のデータを gmdistribution 混合ガウス分布アルゴリズムを使用してクラスタリングします。'SharedCov'true'Replicates'5 に設定されます。

criterion'CalinskiHarabasz''DaviesBouldin' または 'silhouette' の場合、関数ハンドル (MATLAB)を使用してクラスタリング アルゴリズムを指定できます。この関数は C = clustfun(DATA,K) (DATA はクラスタリングするデータ、K はクラスター数) という形式でなければなりません。clustfun の出力は、次のいずれかでなければなりません。

  • DATA の各観測値のクラスター インデックスを表す整数のベクトル。このベクトルには K 個の一意の値がなければなりません。

  • n 個の観測値と K 個のクラスのスコアから成る n 行 K 列の数値行列。この場合、各観測値のクラスター インデックスは各行の最大スコアの値に基づいて決定されます。

criterion'CalinskiHarabasz''DaviesBouldin' または 'silhouette' の場合は、clust を推奨されるクラスタリングの解を含む n 行 K 列の行列として指定することもできます。n は標本データの観測値の数、K は推奨されるクラスタリングの解の数です。列 j に、j 番目のクラスタリングの解として、N 個の各点に対するクラスター インデックスが格納されます。

データ型: single | double | char | string | 関数ハンドル

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で閉じなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: 'KList',[1:5],'Distance','cityblock' は、市街地距離計量を使用して、1、2、3、4 および 5 つのクラスターを検定するよう指定します。

参照分布 ReferenceDistribution から生成される参照データセットの数。'B' と正の整数値で構成されるコンマ区切りのペアとして指定します。

例: 'B',150

データ型: single | double

基準値の計算に使用する距離計量。'Distance' と以下のいずれかで構成されるコンマ区切りのペアとして指定します。

'sqEuclidean'2 乗ユークリッド距離
'Euclidean'ユークリッド距離
'cityblock'差の絶対値の総和
'cosine'1 から、ベクトルとして扱われる点の間の夾角の余弦を引いた値
'correlation'1 から、値の系列として扱われる点の間の標本相関を引いた値

それぞれの距離計量の詳細は、関数 pdist を参照してください。

関数ハンドル (MATLAB) を使用して距離計量の関数を指定することもできます。距離関数は次の形式でなければなりません。

d2 = distfun(XI,XJ),
ここで、XI は 1 行の入力行列 X に対応する 1 行 n 列のベクトル、XJ は複数行の X に対応する m2 行 n 列の行列です。distfun は距離 d2 の m2 行 1 列のベクトルを返さなければなりません。k 番目の要素は XIXJ(k,:) の間の距離です。

クラスタリング アルゴリズム clust が距離計量として関数ハンドルを受け入れる場合のみ、Distance は関数ハンドルを受け入れます。たとえば、kmeans クラスタリング アルゴリズムは距離計量として関数ハンドルを受け入れません。したがって、kmeans アルゴリズムを使用して Distance の関数ハンドルを指定すると、エラーが発生します。

  • clust'kmeans' または 'gmdistribution' である場合、evalclustersDistance について指定された距離計量を使用してデータをクラスター化します。

  • clust'linkage' で、Distance'sqEuclidean' または 'Euclidean' の場合は、ユークリッド距離とウォード連結法がクラスタリング アルゴリズムで使用されます。

  • clust'linkage' で、Distance が他のいずれかの計量の場合は、指定した距離計量と平均連結法がクラスタリング アルゴリズムで使用されます。

  • それ以外の場合はいずれも、Distance に指定した距離計量とクラスタリング アルゴリズムで使用される距離計量が一致していないと有意な結果が得られません。

例: 'Distance','Euclidean'

データ型: single | double | char | string | 関数ハンドル

評価するクラスター数のリスト。'KList' と正の整数値ベクトルで構成されるコンマ区切りのペアとして指定します。KList を指定しなければならないのは、clust がクラスタリング アルゴリズム名または関数ハンドルの場合です。criterion'gap' の場合、clust は文字ベクトル、string スカラーまたは関数ハンドルでなければならず、KList を指定しなければなりません。

例: 'KList',[1:6]

データ型: single | double

参照データの生成方法。'ReferenceDistributions' と以下のいずれかで構成されるコンマ区切りのペアとして指定します。

'PCA'データ行列 x の主成分に合わせて整列されたボックスにおける一様分布から参照データを生成します。
'uniform'データ行列 x の各特徴の範囲で均一に参照データを生成します。

例: 'ReferenceDistribution','uniform'

最適なクラスター数の選択方法。'SearchMethod' と以下のいずれかで構成されるコンマ区切りのペアとして指定します。

'globalMaxSE'

KList で指定されたクラスター数のそれぞれを評価し、次の条件を満たす最小のクラスター数を選択します。

Gap(K)GAPMAXSE(GAPMAX),

K はクラスター数、Gap(K) は K 個のクラスターに対するクラスタリングの解のギャップ値、GAPMAX は最大ギャップ値、SE(GAPMAX) は最大ギャップ値に対応する標準誤差です。

'firstMaxSE'

KList で指定されたクラスター数のそれぞれを評価し、次の条件を満たす最小のクラスター数を選択します。

Gap(K)Gap(K+1)SE(K+1),

K はクラスター数、Gap(K) は K 個のクラスターに対するクラスタリングの解のギャップ値、SE(K + 1) は K + 1 個のクラスターに対するクラスターの解の標準誤差です。

例: 'SearchMethod','globalMaxSE'

プロパティ

B

参照分布から生成されるデータセットの数。正の整数値として格納されます。

ClusteringFunction

入力データのクラスタリングに使用されるクラスタリング アルゴリズム。有効なクラスタリング アルゴリズム名または関数ハンドルとして格納されます。クラスタリングの解を入力で指定した場合、ClusteringFunction は空になります。

CriterionName

クラスタリングの評価に使用される基準の名前。有効な基準名として格納されます。

CriterionValues

InspectedK の推奨されるクラスター数のそれぞれに対応する基準値。数値のベクトルとして格納されます。

Distance

データのクラスタリングに使用される距離計量。有効な距離計量名として格納されます。

ExpectedLogW

生成された参照データに基づく W の自然対数の期待値。スカラー値のベクトルとして格納されます。W は距離計量 Distance を使用して計算されるクラスター内の分散です。

InspectedK

基準値の計算の対象となる推奨されるクラスター数のリスト。正の整数値のベクトルとして格納されます。

LogW

入力データに基づく W の自然対数。スカラー値のベクトルとして格納されます。W は距離計量 Distance を使用して計算されるクラスター内の分散です。

Missing

除外データを表す論理フラグ。論理値の列ベクトルとして格納されます。Missingtrue の場合、データ行列 x の対応する値がクラスタリングの解で使用されません。

NumObservations

データ行列 X の観測値の数から X の欠損値 (NaN) の数を除いた値。正の整数値として格納されます。

OptimalK

最適なクラスター数。正の整数値として格納されます。

OptimalY

OptimalK に対応する最適なクラスタリングの解。正の整数値の列ベクトルとして格納されます。クラスタリングの解を入力で指定した場合、OptimalY は空になります。

ReferenceDistribution

参照データの生成方法。有効な参照分布名として格納されます。

SE

InspectedK の各クラスター数の参照データに対する W の自然対数の標準誤差。スカラー値のベクトルとして格納されます。W は距離計量 Distance を使用して計算されるクラスター内の分散です。

SearchMethod

最適なクラスター数を判定する方法。有効な探索法名として格納されます。

StdLogW

InspectedK の各クラスター数の参照データに対する W の自然対数の標準偏差。W は距離計量 Distance を使用して計算されるクラスター内の分散です。

X

クラスタリングに使用されるデータ。数値の行列として格納されます。

メソッド

increaseB参照データセットの増加

継承メソッド

addK追加クラスター数の評価
compactコンパクト クラスタリング評価オブジェクト
plot クラスタリング評価オブジェクト基準値のプロット

すべて折りたたむ

ギャップ クラスタリング評価基準を使用して最適なクラスター数を評価します。

標本データを読み込みます。

load fisheriris

このデータには、3 種のアヤメの花のがく片と花弁の測定値が含まれています。

ギャップ基準値に基づいてクラスター数を評価します。データのクラスタリングには kmeans を使用します。

rng('default');  % For reproducibility
eva = evalclusters(meas,'kmeans','gap','KList',[1:6])
eva = 
  GapEvaluation with properties:

    NumObservations: 150
         InspectedK: [1 2 3 4 5 6]
    CriterionValues: [0.0720 0.5928 0.8762 1.0114 1.0534 1.0720]
           OptimalK: 5

OptimalK の値は、ギャップ基準に基づく最適なクラスター数が 5 であることを示しています。

検定した各クラスター数について、ギャップ基準値をプロットします。

plot(eva)

このプロットでは、クラスター数が 6 の場合にギャップ基準の値が最大になっています。しかし、クラスター数 5 に対する値は最大から 1 標準偏差以内にあるので、推奨される最適なクラスター数は 5 です。

グループ化した散布図を作成して花弁の長さと幅の関係を調べます。データは推奨されるクラスターごとにグループ化します。

figure
PetalLength = meas(:,3);
PetalWidth = meas(:,4);
ClusterGroup = eva.OptimalY;
gscatter(PetalLength,PetalWidth,ClusterGroup,'rbgkc','xod^*');

このプロットは、左下のクラスター 4 が他の 4 つのクラスターから完全に分離されていることを示しています。クラスター 4 には花弁の幅と長さが最も小さい花が含まれています。クラスター 2 は右上にあり、花弁の幅と長さが最も大きい花が含まれています。クラスター 5 はクラスター 2 の横にあり、クラスター 2 の花に対して花弁の幅は同様であるが長さは短い花が含まれています。クラスター 1 および 3 はプロットの中央付近にあり、測定値が極端な値ではない花が含まれています。

詳細

すべて展開する

参照

[1] Tibshirani, R., G. Walther, and T. Hastie. “Estimating the number of clusters in a data set via the gap statistic.” Journal of the Royal Statistical Society: Series B. Vol. 63, Part 2, 2001, pp. 411–423.