ドキュメンテーション

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

clustering.evaluation.CalinskiHarabaszEvaluation クラス

パッケージ: clustering.evaluation
スーパークラス: clustering.evaluation.ClusterCriterion

Calinski-Harabasz 基準クラスタリング評価オブジェクト

説明

clustering.evaluation.CalinskiHarabaszEvaluation は、最適なクラスター数を評価するために使用される標本データ、クラスタリング データおよび Calinski-Harabasz 基準値で構成されるオブジェクトです。evalclusters を使用して、Calinski-Harabasz 基準クラスタリング評価オブジェクトを作成します。

構築

eva = evalclusters(x,clust,'CalinskiHarabasz') は、Calinski-Harabasz 基準クラスタリング評価オブジェクトを作成します。

eva = evalclusters(x,clust,'CalinskiHarabasz',Name,Value) は、1 つまたは複数の名前と値のペアの引数で指定された追加オプションを使用して、Calinski-Harabasz 基準クラスタリング評価オブジェクトを作成します。

入力引数

すべて折りたたむ

x — 入力データ行列

N 行 P 列の行列として指定される入力データ。N は観測値の数、P は変数の数です。

データ型: single | double

clust — クラスタリング アルゴリズム'kmeans' | 'linkage' | 'gmdistribution' | クラスタリングの解の行列 | 関数ハンドル

クラスタリング アルゴリズム。次のいずれかとして指定します。

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

Criterion'CalinskHarabasz''DaviesBouldin' または 'silhouette' の場合は、function_handle (@) 演算子を使用してクラスタリング アルゴリズムを指定できます。この関数は C = clustfun(DATA,K) (DATA はクラスタリングするデータ、K はクラスター数) という形式でなければなりません。clustfun の出力は、次のいずれかでなければなりません。

  • DATA の各観測値のクラスター インデックスを表す整数のベクトル。このベクトルには K 個の一意の値がなければなりません。

  • n 個の観測値と K 個のクラスのスコアから成る n 行 K 列の数値行列。この場合、各観測値のクラスター インデックスは各行の最大スコアの値に基づいて決定されます。

Criterion'CalinskHarabasz''DaviesBouldin' または 'silhouette' の場合は、clust を推奨されるクラスタリングの解を含む n 行 K 列の行列として指定することもできます。n は標本データの観測値の数、K は推奨されるクラスタリングの解の数です。列 j に、j 番目のクラスタリングの解として、N 個の各点に対するクラスター インデックスが格納されます。

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: 'KList',[1:6] は、最適な数を検出するために 1、2、3、4、5 および 6 個のクラスターの検定を指定します。

'KList' — 評価するクラスター数のリストベクトル

評価するクラスター数のリスト。'KList' と正の整数値ベクトルで構成されるコンマ区切りのペアとして指定します。KList を指定しなければならないのは、clust がクラスタリング アルゴリズム名の文字列または関数ハンドルの場合です。criterion'gap' の場合、clust は文字列または関数ハンドルでなければならないため、KList を指定しなければなりません。

例: 'KList',[1:6]

プロパティ

ClusteringFunction

入力データのクラスタリングに使用されるクラスタリング アルゴリズム。有効なクラスタリング アルゴリズム名の文字列または関数ハンドルとして格納されます。クラスタリングの解を入力で指定した場合、ClusteringFunction は空になります。

CriterionName

クラスタリングの評価に使用される基準の名前。有効な基準名の文字列として格納されます。

CriterionValues

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

Distance

データのクラスタリングに使用される距離測定。有効な距離測定名の文字列として格納されます。

InspectedK

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

Missing

除外データを表す論理フラグ。論理値の列ベクトルとして格納されます。Missingtrue の場合、データ行列 x の対応する値がクラスタリングの解で使用されません。

NumObservations

データ行列 X の観測値の数から X の欠損値 (NaN) の数を除いた値。正の整数値として格納されます。

OptimalK

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

OptimalY

OptimalK に対応する最適なクラスタリングの解。正の整数値の列ベクトルとして格納されます。クラスタリングの解を入力で指定した場合、OptimalY は空になります。

X

クラスタリングに使用されるデータ。数値の行列として格納されます。

メソッド

継承メソッド

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

定義

Calinski-Harabasz 基準

Calinski-Harabasz 基準は分散比基準 (VRC) と呼ばれる場合もあります。Calinski-Harabasz インデックスは次のように定義されます。

VRCk=SSBSSW×(Nk)(k1),

ここで SSB はクラスター間の全体の分散、SSW はクラスター内の全体の分散、k はクラスター数、N は観測数です。

クラスター間の全体の分散 SSB は次のように定義されます。

SSB=i=1knimim2,

ここで k はクラスター数、mi はクラスター i の重心、m は標本データの全体の平均、mim は 2 つのベクトル間の L2 ノルム (ユークリッド距離) です。

クラスター内の全体の分散 SSW は次のように定義されます。

SSW=i=1kxcixmi2,

ここで k はクラスター数、x はデータ点、ci は i 番目のクラスター、mi はクラスター i の重心、xmi は 2 つのベクトル間の L2 ノルム (ユークリッド距離) です。

適切に定義されたクラスターでは、クラスター間の分散 (SSB) は大きくなり、クラスター内の分散 (SSW) は小さくなります。VRCk 比が大きくなるほどデータ分割は優れています。最適なクラスター数を決定するには、k に関して VRCk を最大化します。最適なクラスターの数は、最も大きな Calinski-Harabasz インデックス値をもつ解です。

Calinski-Harabasz 基準は、二乗ユークリッド距離を使用する k 平均クラスタリング ソリューションに最適です。

すべて折りたたむ

Calinski-Harabasz 基準によるクラスタリングの解の評価

Calinski-Harabasz クラスタリング評価基準を使用して最適なクラスター数を評価します。

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

load fisheriris;

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

Calinski-Harabasz 基準を使用して最適なクラスター数を評価します。データのクラスタリングには kmeans を使用します。

rng('default');  % For reproducibility
eva = evalclusters(meas,'kmeans','CalinskiHarabasz','KList',[1:6])
eva = 

  CalinskiHarabaszEvaluation with properties:

    NumObservations: 150
       InspectecedK: [1 2 3 4 5 6]
    CriterionValues: [1x6 double]
           OptimalK: 3

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

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

figure;
plot(eva);

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

グループ化した散布図を作成して花弁の長さと幅の関係を調べます。データは推奨されるクラスターごとにグループ化します。

PetalLength = meas(:,3);
PetalWidth = meas(:,4);
ClusterGroup = eva.OptimalY;
figure;
gscatter(PetalLength,PetalWidth,ClusterGroup,'rbg','xod');

このプロットは、左下のクラスター 1 が他の 2 つのクラスターから完全に分離されていることを示しています。クラスター 1 には花弁の幅と長さが最も小さい花が含まれています。クラスター 3 は右上にあり、花弁の幅と長さが最も大きい花が含まれています。クラスター 2 はプロットの中央近くにあり、これら 2 つの極値の間にある測定値の花が含まれています。

参考文献

[1] Calinski, T., and J. Harabasz. “A dendrite method for cluster analysis.” Communications in Statistics. Vol. 3, No. 1, 1974, pp. 1–27.

この情報は役に立ちましたか?