ドキュメンテーション

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

silhouette

シルエット プロット

構文

silhouette(X,clust)
s = silhouette(X,clust)
[s,h] = silhouette(X,clust)
[...] = silhouette(X,clust,metric)
[...] = silhouette(X,clust,distfun,p1,p2,...)

説明

silhouette(X,clust) は、np 列のデータ行列 Xclust で定義されるクラスターについて、クラスター シルエットをプロットします。X の行は点に、列は座標に対応します。clust は、各点のクラスター名が含まれているカテゴリカル変数、数値ベクトル、文字行列、string 配列、または文字ベクトルの cell 配列にすることができます。silhouetteclust 内の NaN または空の値を欠損値として扱い、X の対応する行を無視します。既定の設定では、silhouetteX の点間の 2 乗ユークリッド距離を使用します。

s = silhouette(X,clust) は、シルエット値を n 行 1 列のベクトル s に返しますが、クラスター シルエットはプロットしません。

[s,h] = silhouette(X,clust) は、シルエットをプロットし、n 行 1 列のベクトル s にシルエット値を、h に図のハンドルを返します。

[...] = silhouette(X,clust,metric) は、metric で指定した点間距離の関数を使用して、シルエットをプロットします。選択可能な metric を、次の表に示します。

計量説明
'Euclidean'

ユークリッド距離

'sqEuclidean'

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

'cityblock'

差の絶対値の総和

'cosine'

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

'correlation'

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

'Hamming'

一致しない座標の比率

'Jaccard'

ゼロ以外の一致しない座標の比率

ベクトル

pdist で作成されるような、上三角ベクトル形式の数値距離行列。この場合 X は使用せず、[] に設定しても安全です。

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

[...] = silhouette(X,clust,distfun,p1,p2,...) は、次の形式の距離に対する関数ハンドル distfun を受け取ります。

d = distfun(X0,X,p1,p2,...)

ここで、X01p 列の点、Xnp 列の点の行列、p1,p2,... はオプションで追加する引数です。関数 distfunX0X (行) の各点間の距離の、n1 列のベクトル d を返します。引数 p1p2... は関数 distfun に直接渡されます。

すべて折りたたむ

クラスタリングしたデータからシルエット プロットを作成します。

無作為標本データを生成します。

rng default  % For reproducibility
X = [randn(10,2)+ones(10,2);randn(10,2)-ones(10,2)];

kmeans を使用して X 内のデータをクラスタリングします。

cidx = kmeans(X,2);

クラスタリングしたデータからシルエット プロットを作成します。

silhouette(X,cidx)

クラスタリングしたデータからシルエット値を計算します。

無作為標本データを生成します。

rng default  % For reproducibility
X = [randn(10,2)+ones(10,2);randn(10,2)-ones(10,2)];

kmeans を使用して、距離の差の絶対値の総和に基づいて X のデータをクラスタリングします。

cidx = kmeans(X,2,'distance','cityblock');

クラスタリングしたデータからシルエット値を計算します。metric'cityblock' として指定し、kmeans クラスタリングが差の絶対値の総和に基づいていることを示します。

s = silhouette(X,cidx,'cityblock')
s = 20×1

    0.0816
    0.5848
    0.1906
    0.2781
    0.3954
    0.4050
    0.0897
    0.5416
    0.6203
    0.6664
      ⋮

詳細

すべて折りたたむ

シルエット値

各点のシルエット値は、他のクラスターの点と比べて、その点が自身のクラスター内の他の点にどれくらい相似しているかを示す尺度です。i 番目の点のシルエット値 Si は、次のように定義されます。

Si = (bi-ai)/ max(ai,bi)

ここで aii 番目の点から i と同じクラスターの他の点までの平均距離で、bii 番目の点から別のクラスターの点までの最小平均距離です。

シルエット値の範囲は -1 ~ +1 です。高いシルエット値は、i が自身のクラスターに適切に一致し、近隣のクラスターにはあまり一致しないことを示しています。ほとんどの点のシルエット値が高い場合、クラスタリング ソリューションは適切です。シルエット値が低いまたは負の値である点が多い場合、クラスタリング ソリューションに含まれるクラスターの数が多すぎるか、少なすぎるかどちらかの可能性があります。シルエット クラスタリング評価基準は、どの距離計量でも使用できます。

参照

[1] Kaufman L., and P. J. Rousseeuw. Finding Groups in Data: An Introduction to Cluster Analysis. Hoboken, NJ: John Wiley & Sons, Inc., 1990.

R2006a より前に導入