Main Content

SilhouetteEvaluation

シルエット基準クラスタリング評価オブジェクト

    説明

    SilhouetteEvaluation は、最適なデータ クラスター数 (OptimalK) を評価するために使用される標本データ (X)、クラスタリング データ (OptimalY)、およびシルエット基準値 (CriterionValues) で構成されるオブジェクトです。各点 (X の観測値) のシルエット値は、他のクラスターの点と比べて、その点が同じクラスター内の他の点にどれくらい相似しているかを示す尺度です。ほとんどの点のシルエット値が高い場合、クラスタリング ソリューションは適切です。多くの点のシルエット値が小さいか負である場合、クラスター化の解に含まれるクラスターの個数が多すぎるか少なすぎる可能性があります。詳細は、シルエット値とシルエット基準を参照してください。

    作成

    シルエット基準クラスタリング評価オブジェクトを作成するには、関数 evalclusters を使用し、基準を "silhouette" と指定します。

    その後、compact を使用して、コンパクトなバージョンのシルエット基準クラスタリング評価オブジェクトを作成できます。この関数は、プロパティ XOptimalY、および Missing の内容を削除します。

    プロパティ

    すべて展開する

    クラスタリング評価のプロパティ

    この プロパティ は読み取り専用です。

    標本データのクラスタリングに使用されるクラスタリング アルゴリズム。'kmeans''linkage''gmdistribution'、または関数ハンドルとして返されます。クラスタリング評価オブジェクトを作成する際に evalclusters の入力引数としてクラスタリングの解を指定した場合、ClusteringFunction は空になります。

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

    データ型: double | char | function_handle

    この プロパティ は読み取り専用です。

    各クラスターの事前確率。'empirical' または 'equal' として返されます。

    説明
    'empirical'すべての点のシルエット値を平均化することによって、クラスタリングの解のシルエット基準値を計算します。各クラスターは、サイズに比例して基準値に寄与します。
    'equal'各クラスター内のすべての点のシルエット値を平均化し、次にそれらの値をすべてのクラスターについて平均化することによって、クラスタリングの解のシルエット基準値を計算します。各クラスターは、サイズに関係なく、基準値に均等に寄与します。

    この プロパティ は読み取り専用です。

    InspectedK の推奨されるクラスター数のそれぞれに対応する平均シルエット値。数値ベクトルの cell 配列として返されます。推奨されるクラスター数 k のそれぞれについて、ベクトル ClusterSilhouettes{k} に各クラスターの平均シルエット値が格納されます。

    たとえば、evaluation がシルエット基準クラスタリング評価オブジェクトで、evaluation.InspectedK1:5 であるとします。この場合、evaluation.ClusterSilhouettes{4}(3) は、合計 4 つのクラスターを含むクラスタリングの解のうちの 3 番目のクラスター内の点の平均シルエット値です。

    データ型: cell

    この プロパティ は読み取り専用です。

    クラスタリングの評価に使用される基準の名前。'Silhouette' として返されます。

    この プロパティ は読み取り専用です。

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

    データ型: double

    この プロパティ は読み取り専用です。

    データのクラスタリングと基準値の計算に使用される距離計量。次の表のいずれかの値、関数ハンドル、または関数 pdist から返される数値ベクトルとして返されます。

    説明
    'sqEuclidean'2 乗ユークリッド距離
    'Euclidean'ユークリッド距離
    'cityblock'差の絶対値の総和
    'cosine'1 から、ベクトルとして扱われる点の間の夾角の余弦を引いた値
    'correlation'1 から、値の系列として扱われる点の間の標本相関を引いた値
    'Hamming'一致しない座標の比率
    'Jaccard'ゼロ以外の一致しない座標の比率

    データ型: single | double | char | function_handle

    この プロパティ は読み取り専用です。

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

    データ型: double

    この プロパティ は読み取り専用です。

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

    データ型: double

    この プロパティ は読み取り専用です。

    OptimalK に対応する最適なクラスタリングの解。正の整数列ベクトルとして返されます。OptimalY の各行は、X の対応する観測値 (または行) のクラスター インデックスを表します。クラスタリング評価オブジェクトを作成する際に evalclusters の入力引数としてクラスタリングの解を指定した場合、またはコンパクトなクラスタリング評価オブジェクトの場合 (compact を参照)、OptimalY は空になります。

    データ型: double

    標本データのプロパティ

    この プロパティ は読み取り専用です。

    除外データ。logical 列ベクトルとして返されます。Missing の要素が true の場合、データ行列 X の対応する観測値 (または行) がクラスタリングの解で使用されません。コンパクトなクラスタリング評価オブジェクトの場合 (compact を参照)、Missing は空になります。

    データ型: double | logical

    この プロパティ は読み取り専用です。

    データ行列 X の観測値の数。欠損値 (NaN) がある観測値は無視されます。正の整数スカラーとして返されます。

    データ型: double

    この プロパティ は読み取り専用です。

    クラスタリングに使用されるデータ。数値行列として返されます。行は観測値に対応し、列は変数に対応します。コンパクトなクラスタリング評価オブジェクトの場合 (compact を参照)、X は空になります。

    データ型: single | double

    オブジェクト関数

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

    すべて折りたたむ

    シルエット クラスタリング評価基準を使用して最適なクラスター数を評価します。

    異なるパラメーター値をもつ 3 つの多変量分布による乱数を含む標本データを作成します。

    rng("default") % For reproducibility
    n = 200;
    
    mu1 = [2 2];
    sigma1 = [0.9 -0.0255; -0.0255 0.9];
    
    mu2 = [5 5];
    sigma2 = [0.5 0; 0 0.3];
    
    mu3 = [-2 -2];
    sigma3 = [1 0; 0 0.9];
    
    X = [mvnrnd(mu1,sigma1,n); ...
         mvnrnd(mu2,sigma2,n); ...
         mvnrnd(mu3,sigma3,n)];

    シルエット基準を使用して最適なクラスター数を評価します。データのクラスタリングには kmeans を使用します。

    evaluation = evalclusters(X,"kmeans","silhouette","KList",1:6)
    evaluation = 
      SilhouetteEvaluation with properties:
    
        NumObservations: 600
             InspectedK: [1 2 3 4 5 6]
        CriterionValues: [NaN 0.8055 0.8551 0.7155 0.6071 0.6232]
               OptimalK: 3
    
    
    

    OptimalK の値は、シルエット基準に基づく最適なクラスター数が 3 つであることを示しています。

    テストした各クラスター数について、シルエット基準の値をプロットします。

    plot(evaluation)

    Figure contains an axes object. The axes object with xlabel Number of Clusters, ylabel Silhouette Values contains 2 objects of type line.

    このプロットは、最大シルエット値が 3 個のクラスターのときに起きることを示しており、最適なクラスター数が 3 であることを提案しています。

    推薦されたクラスターを視覚的に調べるためにグループ化された散布図を作成します。

    clusters = evaluation.OptimalY;
    gscatter(X(:,1),X(:,2),clusters,[],"xod")

    Figure contains an axes object. The axes object contains 3 objects of type line. One or more of the lines displays its values using only markers These objects represent 1, 2, 3.

    このプロットには、データに含まれている 3 種類のクラスターが示されています。クラスター 1 は左下隅に、クラスター 2 は右上隅に、クラスター 3 はプロットの中央付近にあります。

    詳細

    すべて展開する

    参照

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

    [2] Rouseeuw, P. J. “Silhouettes: a graphical aid to the interpretation and validation of cluster analysis.” Journal of Computational and Applied Mathematics. Vol. 20, No. 1, 1987, pp. 53–65.

    バージョン履歴

    R2013b で導入