Main Content

cluster

混合ガウス分布からクラスターを作成

説明

idx = cluster(gm,X) は、gm 内の k 個の混合ガウス成分によって決定される k 個のクラスターに X 内のデータを分割します。idx(i) の値は観測値 i のクラスター インデックスであり、観測値 i に対して事後確率が最大になる成分を示します。

[idx,nlogL] = cluster(gm,X) は、データ X に対する混合ガウス モデル gm の負の対数尤度も返します。

[idx,nlogL,P] = cluster(gm,X) は、X 内の各観測値に対する gm 内の各混合ガウス成分の事後確率も返します。

[idx,nlogL,P,logpdf] = cluster(gm,X) は、X 内の各観測値で評価した推定確率密度関数 (pdf) の対数も返します。

[idx,nlogL,P,logpdf,d2] = cluster(gm,X) は、gm 内の各混合ガウス成分に対する X 内の各観測値のマハラノビス平方距離も返します。

すべて折りたたむ

関数 mvnrnd を使用して、2 つの二変量ガウス分布の混合に従う確率変量を生成します。関数 fitgmdist を使用して、生成したデータに混合ガウスモデル (GMM) をあてはめます。次に、関数 cluster を使用して、あてはめた GMM の成分によって決定される 2 つのクラスターにデータを分割します。

2 つの二変量混合ガウス成分の分布パラメーター (平均と共分散) を定義します。

mu1 = [2 2];          % Mean of the 1st component
sigma1 = [2 0; 0 1];  % Covariance of the 1st component
mu2 = [-2 -1];        % Mean of the 2nd component
sigma2 = [1 0; 0 1];  % Covariance of the 2nd component

各成分から同じ個数の確率変量を生成し、2 組の確率変量を結合します。

rng('default') % For reproducibility
r1 = mvnrnd(mu1,sigma1,1000);
r2 = mvnrnd(mu2,sigma2,1000);
X = [r1; r2];

結合したデータセット X には、2 つの二変量ガウス分布の混合に従う確率変量が含まれています。

2 成分の GMM を X にあてはめます。

gm = fitgmdist(X,2);

scatterを使用して、X をプロットします。あてはめられたモデル gmpdffcontour を使用して可視化します。

figure
scatter(X(:,1),X(:,2),10,'.') % Scatter plot with points of size 10
hold on
gmPDF = @(x,y) arrayfun(@(x0,y0) pdf(gm,[x0 y0]),x,y);
fcontour(gmPDF,[-6 8 -4 6])

Figure contains an axes object. The axes object contains 2 objects of type scatter, functioncontour.

近似させた GMM とデータを cluster に渡すことにより、データをクラスターに分割します。

idx = cluster(gm,X);

gscatter を使用して、idx によってグループ化された散布図を作成します。

figure;
gscatter(X(:,1),X(:,2),idx);
legend('Cluster 1','Cluster 2','Location','best');

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Cluster 1, Cluster 2.

入力引数

すべて折りたたむ

混合ガウス分布。混合ガウス モデル (GMM) とも呼ばれます。gmdistribution オブジェクトを指定します。

gmdistribution オブジェクトは、gmdistribution または fitgmdist を使用して作成できます。分布パラメーターを指定して gmdistribution オブジェクトを作成するには、関数 gmdistribution を使用します。固定数の成分に対して gmdistribution モデルをデータにあてはめるには、関数 fitgmdist を使用します。

データ。n 行 m 列の数値行列を指定します。n は観測値の個数、m は各観測値の変数の個数です。

クラスター化の結果を意味のあるものにするには、gm の作成に使用したデータと同じ母集団から X が派生していなければなりません。

X の行に NaNs が含まれている場合、cluster はその行を計算から除外します。idxPlogpdf および d2 内の対応する値は NaN になります。

データ型: single | double

出力引数

すべて折りたたむ

クラスター インデックス。n 行 1 列の正の整数ベクトルとして返されます。n は X 内の観測値の個数です。

idx(i) は観測値 i のクラスター インデックスであり、観測値 i に対して事後確率が最大になる混合ガウス成分を示します。

データ X に対する混合ガウスモデル gm の負の対数尤度値。数値として返されます。

X 内の各観測値に対する gm 内の混合ガウス成分の事後確率。n 行 k 列の数値ベクトルとして返されます。n は X 内の観測値の個数、k は gm 内の混合成分の個数です。

P(i,j) は、観測値 i に対する j 番目の混合ガウス成分の事後確率、Probability(成分 j | 観測値 i) です。

X 内の各観測値で評価した推定 pdf の対数。n 行 1 列の数値ベクトルとして返されます。n は X 内の観測値の個数です。

logpdf(i) は、観測値 i における推定 pdf の対数です。関数 cluster は、各観測値に対する各成分の尤度と成分の確率を使用して推定 pdf を計算します。

logpdf(i)=logj=1kL(Cj|Oi)P(Cj),

L(Cj|Oj) は観測値 i に対する成分 j の尤度、P(Cj) は成分 j の確率です。関数 cluster は、観測値 i で評価した j 番目の混合ガウス成分の多変量正規 pdf を使用して尤度項を計算します。成分の確率は、混合成分の混合比率、つまり gmComponentProportion プロパティです。

gm 内の各混合ガウス成分に対する X 内の各観測値のマハラノビス平方距離。n 行 k 列の数値行列として返されます。n は X 内の観測値の個数、k は gm 内の混合成分の個数です。

d2(i,j) は、j 番目の混合ガウス成分に対する観測値 i の平方距離です。

バージョン履歴

R2007b で導入