Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

plot

クラスタリング評価オブジェクト基準値のプロット

    説明

    plot(evaluation) は、クラスタリング評価オブジェクト evaluation 内の値に基づいて、基準値とクラスター数の対比のプロットを表示します。

    h = plot(evaluation) は、Line オブジェクトを返します。このオブジェクトは、プロット ラインのプロパティを調べたり調整したりするために使用します。プロパティの一覧については、Line のプロパティを参照してください。

    すべて折りたたむ

    クラスタリング評価オブジェクトに格納されている各クラスタリング ソリューションについて、基準値とクラスター数の対比をプロットします。

    fisheriris データセットを読み込みます。このデータには、3 種のアヤメの花のがく片と花弁からの長さと幅の測定値が含まれています。

    load fisheriris

    クラスタリング評価オブジェクトを作成します。kmeans を使用してデータをクラスタ化し、Calinski-Harabasz 基準値を使って、クラスタの最適数を評価します。

    rng("default") % For reproducibility
    evaluation = evalclusters(meas,"kmeans","CalinskiHarabasz","KList",1:6);

    テストした各クラスター数について、Calinski-Harabasz 基準値をプロットします。

    plot(evaluation)

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

    このプロットは Calinski-Harabasz の最大値が 3 個のクラスターのときに発生することを示しており、最適なクラスター数が 3 であることを示唆しています。

    4 つのクラスタリング評価基準のそれぞれを使用してデータをクラスタリングします。それぞれの基準について、基準値のプロットを作成し、最適なクラスター数を示します。

    異なるパラメーター値をもつ 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 を使用してデータをクラスタリングし、Calinski-Harabasz、Davies-Bouldin、ギャップ、およびシルエットの各基準を使用して最適なクラスター数を評価します。

    calinskiEvaluation = evalclusters(X,"kmeans","CalinskiHarabasz", ...
        "KList",1:6);
    daviesEvaluation = evalclusters(X,"kmeans","DaviesBouldin", ...
        "KList",1:6);
    gapEvaluation = evalclusters(X,"kmeans","gap","KList",1:6);
    silhouetteEvaluation = evalclusters(X,"kmeans","silhouette", ...
        "KList",1:6);

    各クラスタリング評価オブジェクトについて、推奨されるクラスター数に対する基準値をプロットします。それぞれのプロットで、プロット ラインの色を変更し、最適なクラスター数を示す垂直線を追加します。

    t = tiledlayout(2,2);
    title(t,"Optimal Number of Clusters for Different Criteria")
    colors = lines(4);
    
    % Calinski-Harabasz Criterion Plot
    nexttile
    h1 = plot(calinskiEvaluation);
    h1.Color = colors(1,:);
    hold on
    xline(calinskiEvaluation.OptimalK,"--","Optimal K", ...
        "LabelVerticalAlignment","middle")
    hold off
    
    % Davies-Bouldin Criterion Plot
    nexttile
    h2 = plot(daviesEvaluation);
    h2.Color = colors(2,:);
    hold on
    xline(daviesEvaluation.OptimalK,"--","Optimal K", ...
        "LabelVerticalAlignment","middle")
    hold off
    
    % Gap Criterion Plot
    nexttile
    h3 = plot(gapEvaluation);
    h3.Color = colors(3,:);
    hold on
    xline(gapEvaluation.OptimalK,"--","Optimal K", ...
        "LabelVerticalAlignment","middle")
    hold off
    
    % Silhouette Criterion Plot
    nexttile
    h4 = plot(silhouetteEvaluation);
    h4.Color = colors(4,:);
    hold on
    xline(silhouetteEvaluation.OptimalK,"--","Optimal K", ...
        "LabelVerticalAlignment","middle")
    hold off

    Figure contains 4 axes objects. Axes object 1 with xlabel Number of Clusters, ylabel CalinskiHarabasz Values contains 3 objects of type line, constantline. Axes object 2 with xlabel Number of Clusters, ylabel DaviesBouldin Values contains 3 objects of type line, constantline. Axes object 3 with xlabel Number of Clusters, ylabel Gap Values contains 3 objects of type errorbar, line, constantline. Axes object 4 with xlabel Number of Clusters, ylabel Silhouette Values contains 3 objects of type line, constantline.

    4 つのプロットから、クラスタリング基準に関係なく、最適なクラスター数が 3 であることがわかります。

    入力引数

    すべて折りたたむ

    クラスタリング評価データ。CalinskiHarabaszEvaluationDaviesBouldinEvaluationGapEvaluationSilhouetteEvaluation のいずれかのクラスタリング評価オブジェクトとして指定します。クラスタリング評価オブジェクトの作成には evalclusters を使用します。

    バージョン履歴

    R2013b で導入