Main Content

plot

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

    説明

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

    plot(ax,evaluation) は、現在の座標軸 (gca) ではなく ax によって指定される座標軸にプロットします。 (R2024a 以降)

    h = plot(___) は、前の構文におけるいずれかの入力引数の組み合わせを使用して 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)

    このプロットは 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

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

    入力引数

    すべて折りたたむ

    ターゲットの座標軸。axes オブジェクトとして指定します。座標軸を指定しない場合、plot は現在の座標軸 (gca) を使用します。

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

    バージョン履歴

    R2013b で導入

    すべて展開する