ドキュメンテーション

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

clusterdata

データから作成される凝集型クラスター

構文

T = clusterdata(X,cutoff)
T = clusterdata(X,Name,Value)

説明

T = clusterdata(X,cutoff) は、データ (X) の各観測 (行) のクラスターのインデックス (T) を返しますが、階層ツリーの切り取りについてはしきい値 (cutoff) に従います。

T = clusterdata(X,Name,Value) は、追加のオプションを使用してクラスタリングします。このオプションは Name,Value のペアの引数で指定されたものです。

入力引数

X

2 行以上の行列。行は観測を表し、列は分類または次元を表します。

cutoff

0 < cutoff < 2 の場合、clusterdata は不整合値が cutoff より大きい場合はクラスターを形成します (inconsistent を参照)。cutoff2 以上の整数の場合、clusterdatacutofflinkage で生成された階層ツリー内に保持するクラスターの最大数と解釈します。

名前と値のペアの引数

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

'Criterion'

'inconsistent' または 'distance'

'Cutoff'

不整合または距離計量に対するカットオフ。正のスカラー。0 < Cutoff < 2 の場合、clusterdata は不整合値が Cutoff より大きい場合はクラスターを形成します (inconsistent を参照)。Cutoff2 以上の整数の場合、clusterdataCutofflinkage で生成された階層ツリー内に保持するクラスターの最大数と解釈します。

'Depth'

不整合値を計算する深さ。正の整数。

'Distance'

pdist で許容される距離計量名のいずれか。

説明
'euclidean'

ユークリッド距離 (既定の設定)。

'squaredeuclidean'

2 乗ユークリッド距離(効率向上のみを目的に提供されているオプション。三角不等式は満たさない)。

'seuclidean'

標準化されたユークリッド距離。観測値間の各座標差は、標準偏差 S = nanstd(X) の対応する要素で除算することによりスケーリングされます。

'mahalanobis'

X の標本共分散を使用したマハラノビス距離、C = nancov(X)

'cityblock'

市街地距離。

'minkowski'

ミンコフスキー距離。指数の既定値は 2 です。異なる指数 P を使用するには、'minkowski',P というように、'minkowski' の後で P を指定します。P は正のスカラー値です。

'chebychev'

チェビシェフ距離 (最大座標差)。

'cosine'

1 から、ベクトルとして扱われる点の間の夾角の余弦を引いた値。

'correlation'

1 から、値の系列として扱われる点の間の標本相関を引いた値。

'hamming'

異なる座標の比率を示すハミング距離。

'jaccard'

1 から、ジャカード係数 (異なる非ゼロ座標の比率) を引いた値。

'spearman'

1 から、観測値間の標本スピアマンの順位相関 (値の系列として扱われる) を引いた値。

@distfun

カスタム距離関数のハンドル。距離関数の形式は次のようになります。

function D2 = distfun(ZI,ZJ)
% calculation of  distance
...
ここで、

  • ZI は、単一の観測値が含まれている 1n 列のベクトルです。

  • ZJ は、複数の観測値が含まれている m2n 列の行列です。distfun は、任意の個数の観測値が含まれている行列 ZJ を受け入れなければなりません。

  • D2m21 列の距離のベクトルであり、D2(k) は観測値 ZIZJ(k,:) の間の距離です。

データがスパースでない場合は、関数ハンドルを使用するよりも、組み込み distance を使用した方が一般的に高速です。

これらの距離計量の詳細は、距離計量を参照してください。

'Linkage'

linkage で許可されている任意のリンケージ メソッド

  • 'average'

  • 'centroid'

  • 'complete'

  • 'median'

  • 'single'

  • 'ward'

  • 'weighted'

詳細は、関数 linkage のリファレンス ページの定義を参照してください。

'Maxclust'

形成するクラスターの最大数、正の整数。

'Savememory'

'on' または 'off'。適用可能な場合、'on' を設定すると、距離行列を計算せずに関数 clusterdata でクラスターが作成されます。Savememory は、次の場合に適用されます。

  • Linkage'centroid''median'、または 'ward' である

  • Distance'euclidean' (既定) である

Savememory'on' のときは、linkage の実行時間は、次元数 (X の列数) に比例します。Savememory'off' のときは、linkage に必要なメモリ量は、N2 に比例します。ここで、N は観測値の数です。そのため、Savememory に最適な (高速になる) 設定値を選択する方法は、問題の次元数、観測値の数および利用可能なメモリ量に依存します。既定の Savememory の設定は、最適な設定のラフな近似です。

既定値: X の列数が 20 以下、またはコンピューターに距離行列を保存するための十分なメモリがない場合には 'on'、それ以外の場合には 'off'

出力引数

T

T は、観測値ごとのクラスター番号を含む、サイズ m のベクトルです。

  • 0 < cutoff < 2 の場合、T = clusterdata(X,cutoff) は以下と等価です。

    Y = pdist(X,'euclid'); 
    Z = linkage(Y,'single'); 
    T = cluster(Z,'Cutoff',cutoff); 
  • cutoff2 以上の整数の場合、T = clusterdata(X,cutoff) は以下と等価です。

    Y = pdist(X,'euclid'); 
    Z = linkage(Y,'single'); 
    T = cluster(Z,'Maxclust',cutoff); 

すべて折りたたむ

この例では、標本データから階層クラスター ツリーを作成する方法および 3 次元の散布図を使用してクラスターを可視化する方法を示します。

標準一様分布からの乱数を含む標本のデータ行列を作成します。

rng('default');  % For reproducibility
X = [gallery('uniformdata',[10 3],12);...
    gallery('uniformdata',[10 3],13)+1.2;...
    gallery('uniformdata',[10 3],14)+2.5];

アイテム間の距離を計算し、標本データから階層クラスター ツリーを作成します。クラスター 2 のアイテムをすべて表示します。

T = clusterdata(X,'Maxclust',3); 
find(T==2)
ans = 10×1

    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

各クラスターが別の色で表示されるようにデータをプロットします。

scatter3(X(:,1),X(:,2),X(:,3),100,T,'filled')

この例では、ウォードの連結を使用して階層クラスター ツリーを作成する方法および 3 次元の散布図を使用してクラスターを可視化する方法を示します。

標準一様分布から生成された 20,000 行 3 列の標本データの行列を作成します。

rng('default');  % For reproducibility
X = rand(20000,3);

ウォードの連結を使用して標本データから階層クラスター ツリーを作成します。距離行列を計算せずにクラスターを作成するために、'savememory''on' に設定します。

c = clusterdata(X,'Linkage','ward','Savememory','on','Maxclust',4);

各クラスターが別の色で表示されるようにデータをプロットします。

scatter3(X(:,1),X(:,2),X(:,3),10,c)

ヒント

  • centroid および median メソッドは、単調ではないクラスター ツリーを作成できます。これは、2 つのクラスター r および s の結合から 3 番目のクラスターまでの距離が r と s の間の距離より短い場合に起こります。この場合、既定の方向に描画した系統樹では、葉からルート ノードへのパスは下向きになります。これを回避するには、別のメソッドを使用してください。次の図に非単調のクラスター ツリーを示します。

    この場合、クラスター 1 とクラスター 3 が結合され新しいクラスターになっていますが、この新しいクラスターとクラスター 2 の間の距離はクラスター 1 とクラスター 3 の間の距離よりも短くなっています。このため、非単調な木になります。

  • ツリーを表示する関数 dendrogram、クラスターに点を割り当てる関数 cluster、不整合の程度を計算する関数 inconsistent およびコーフェン相関係数を計算する関数 cophenet などを含む、その他の関数に出力 T を提供することができます。

R2006a より前に導入