ドキュメンテーション

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

cluster

リンケージによる凝集型クラスターの構築

構文

T = cluster(Z,'cutoff',c)
T = cluster(Z,'cutoff',c,'depth',d)
T = cluster(Z,'cutoff',c,'criterion',criterion)
T = cluster(Z,'maxclust',n)

説明

T = cluster(Z,'cutoff',c) は、関数 linkage により生成される、凝集型の階層クラスター ツリー Z からクラスターを作成します。Z はサイズ (m – 1) 行 3 列の行列で、m は元のデータの観測値の数です。c は、Z をクラスターに切り取るためのしきい値です。クラスターはノードとそのすべてのサブノードが c より小さい inconsistent 値をもつ場合に形成されます。ノードの以下にあるすべてのリーフは 1 つのクラスターにグループ化されます。t は観測値ごとのクラスター割り当てを含むサイズ m のベクトルです。

c がベクトルの場合、T は 1 列にカットオフ値 1 つをもつクラスター割り当ての行列です。

T = cluster(Z,'cutoff',c,'depth',d) は、各ノードの下方の深さ d まで検索することによって不整合な値を評価します。既定の設定の深さは 2 です。

T = cluster(Z,'cutoff',c,'criterion',criterion) は、指定された基準をクラスターの形成に使用します。criterion'inconsistent' (既定) または 'distance' です。'distance' 規準はノードにマージされた 2 つのサブノード間の距離を使用し、ノードの高さを測定します。高さが c より小さいノードの以下にあるすべてのリーフは、1 つのクラスターにグループ化されます。

T = cluster(Z,'maxclust',n) は、'distance' 基準を使用して最大 n 個のクラスターを作成します。cluster は、木を水平に切り取ると n 個以下のクラスターが残る最低の高さを求めます。

n がベクトルの場合、T は 1 列に最大値 1 つをもつクラスター割り当ての行列です。

すべて折りたたむ

花のクラスターの割り当てを種類の分類と比較します。

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

load fisheriris

'average' メソッドと 'chebychev' 尺度を使用して、フィッシャーのアヤメのデータについて 3 つのクラスターを計算します。

Z = linkage(meas,'average','chebychev');
c = cluster(Z,'maxclust',3);

Z の系統樹図を作成します。3 つのクラスターを表示するため、3 番目から最後までのリンクと 2 番目から最後までのリンクの中間点にカットオフを設定して 'ColorThreshold' を使用します。

cutoff = median([Z(end-2,3) Z(end-1,3)]);
dendrogram(Z,'ColorThreshold',cutoff)

3 つのクラスターがどのようにして 1 つに結合されるかを調べるため、Z の最後の 2 行を表示します。linkage は、293 番目のクラスター (青) を 297 番目のクラスター (赤) と結合し、1.7583 というリンクで 298 番目のクラスターを形成します。そして、linkage は 296 番目のクラスター (緑) を 298 番目のクラスターと結合します。

lastTwo = Z(end-1:end,:)
lastTwo = 2×3

  293.0000  297.0000    1.7583
  296.0000  298.0000    3.4445

クラスターの割り当てが 3 つの種類に対応していることを確認します。たとえば、クラスターの 1 つには、2 番目の種類の花が 50 本、3 番目の種類の花が 40 本含まれています。

crosstab(c,species)
ans = 3×3

     0     0    10
     0    50    40
    50     0     0

20,000 件の観測値をもつ標本データを無作為に生成します。

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

ウォードの連結を使用して階層クラスター ツリーを作成します。このケースでは、既定では 'savememory''on' に設定されます。通常は、X の次元数と使用可能なメモリに基づいて 'savememory' に最適な値を選択します。

Z = linkage(X,'ward');

データを 4 グループにクラスター化し、結果をプロットします。

c = cluster(Z,'Maxclust',4);
scatter3(X(:,1),X(:,2),X(:,3),10,c)

R2006a より前に導入