gmdistribution
混合ガウス モデルの作成
説明
gmdistribution
オブジェクトは混合ガウス分布 (混合ガウス モデル (GMM) とも呼ばれます) を格納します。これは、複数の多変量ガウス分布成分から構成される多変量分布です。各成分は平均と共分散によって定義されます。混合は混合比率のベクトルによって定義されます。ここで各混合比率は、対応する成分によって表される母集団の比率を表します。
作成
gmdistribution
モデル オブジェクトは 2 つの方法で作成できます。
分布パラメーターを指定することにより、関数
gmdistribution
(ここで説明) を使用してgmdistribution
モデル オブジェクトを作成する。関数
fitgmdist
を使用して、固定数の成分についてgmdistribution
モデル オブジェクトをデータにあてはめる。
説明
入力引数
mu
— 平均
k 行 m 列の数値行列
多変量ガウス分布の成分の平均。k 行 m 列の数値行列を指定します。k は成分の個数、m は各成分の変数の個数です。mu(i,:)
は成分 i
の平均です。
データ型: single
| double
sigma
— 共分散
数値ベクトル | 数値行列 | 数値配列
多変量ガウス分布の成分の共分散。数値ベクトル、行列または配列を指定します。
成分の個数 k および各成分の変数の個数 m に対して、sigma
は次の表のいずれかの値になります。
値 | 説明 |
---|---|
m x m x k の配列 | sigma(:,:,i) は成分 i の共分散行列です。 |
1 x m x k の配列 | 共分散行列は対角行列です。sigma(1,:,i) には成分 i の共分散行列の対角要素が格納されます。 |
m 行 m 列の行列 | 共分散行列はどの成分でも同じです。 |
1 行 m 列のベクトル | 共分散行列は対角行列であり、どの成分でも同じです。 |
データ型: single
| double
p
— 混合成分の混合比率
長さ k の数値ベクトル
混合成分の混合比率。長さ k の数値ベクトルを指定します。k は成分の個数です。既定値は 1/k から成る行ベクトルで、等しい比率が設定されます。p
の合計が 1
にならなければ、gmdistribution
は正規化を行いません。
データ型: single
| double
プロパティ
分布パラメーター
mu
— 平均
k 行 m 列の数値行列
この プロパティ は読み取り専用です。
多変量ガウス分布の成分の平均。k 行 m 列の数値行列を指定します。k は成分の個数、m は各成分の変数の個数です。mu(i,:)
は成分 i
の平均です。
データ型: single
| double
Sigma
— 共分散
数値ベクトル | 数値行列 | 数値配列
この プロパティ は読み取り専用です。
多変量ガウス分布の成分の共分散。数値ベクトル、行列または配列を指定します。
成分の個数 k および各成分の変数の個数 m に対して、Sigma
は次の表のいずれかの値になります。
値 | 説明 |
---|---|
m x m x k の配列 | Sigma(:,:,i) は成分 i の共分散行列です。 |
1 x m x k の配列 | 共分散行列は対角行列です。Sigma(1,:,i) には成分 i の共分散行列の対角要素が格納されます。 |
m 行 m 列の行列 | 共分散行列はどの成分でも同じです。 |
1 行 m 列のベクトル | 共分散行列は対角行列であり、どの成分でも同じです。 |
データ型: single
| double
分布特性
CovarianceType
— 共分散行列のタイプ
'diagonal'
| 'full'
この プロパティ は読み取り専用です。
共分散行列のタイプ。'diagonal'
または 'full'
を指定します。
関数
gmdistribution
を使用してgmdistribution
オブジェクトを作成した場合、このプロパティはgmdistribution
の入力引数sigma
における共分散行列のタイプによって設定されます。関数
fitgmdist
を使用してgmdistribution
オブジェクトをデータにあてはめた場合、このプロパティはfitgmdist
の名前と値のペアの引数'CovarianceType'
によって設定されます。
DistributionName
— 分布名
'gaussian mixture distribution'
(既定値)
この プロパティ は読み取り専用です。
分布名。'gaussian mixture distribution'
を指定します。
SharedCovariance
— 共有されている共分散を示すフラグ
true
| false
この プロパティ は読み取り専用です。
共分散行列が混合成分間で共有されているかどうかを示すフラグ。true
または false
を指定します。
関数
gmdistribution
を使用してgmdistribution
オブジェクトを作成した場合、このプロパティはgmdistribution
の入力引数sigma
における共分散行列のタイプによって設定されます。関数
fitgmdist
を使用してgmdistribution
オブジェクトをデータにあてはめた場合、このプロパティはfitgmdist
の名前と値のペアの引数'SharedCovariance'
によって設定されます。
データ型: logical
あてはめたオブジェクトのプロパティ
以下のプロパティは、fitgmdist
で作成してあてはめたオブジェクトのみに適用されます。関数 gmdistribution
を使用して gmdistribution
オブジェクトを作成した場合、これらのプロパティの値は空になります。
AIC
— 赤池情報量基準
スカラー
この プロパティ は読み取り専用です。
赤池情報量基準 (AIC)。スカラーを指定します。AIC = 2*NlogL + 2*p
。NlogL
は負の対数尤度 (NegativeLogLikelihood
プロパティ)、p
は推定されたパラメーターの個数です。
AIC は、モデル選択ツールとして、同じデータにあてはめた複数モデルの比較に使用できます。AIC は尤度に基づくモデル近似の尺度として、複雑度に対するペナルティ (具体的にはパラメーター数) を含みます。複数のモデルを比較した場合に、AIC の値がより小さいモデルがより優れています。
関数 gmdistribution
を使用して gmdistribution
オブジェクトを作成した場合、このプロパティは空になります。
データ型: single
| double
BIC
— ベイズ情報量基準
スカラー
この プロパティ は読み取り専用です。
ベイズ情報量基準 (BIC)。スカラーを指定します。BIC = 2*NlogL + p*log(n)
。NlogL
は負の対数尤度 (NegativeLogLikelihood
プロパティ)、n
は観測値の個数、p
は推定されたパラメーターの個数です。
BIC は、モデル選択ツールとして、同じデータにあてはめた複数モデルの比較に使用できます。BIC は尤度に基づくモデル近似の尺度として、複雑度に対するペナルティ (具体的にはパラメーター数) を含みます。複数のモデルを比較した場合に、BIC の値が最も小さいモデルが最良近似モデルです。
関数 gmdistribution
を使用して gmdistribution
オブジェクトを作成した場合、このプロパティは空になります。
データ型: single
| double
Converged
— 収束を示すフラグ
true
| false
この プロパティ は読み取り専用です。
混合ガウス モデルをあてはめるときに期待値最大化 (EM) アルゴリズムが収束したかどうかを示すフラグ。true
または false
を指定します。
最適化オプションは、fitgmdist
の名前と値のペアの引数 'Options'
を使用して変更できます。
関数 gmdistribution
を使用して gmdistribution
オブジェクトを作成した場合、このプロパティは空になります。
データ型: logical
NegativeLogLikelihood
— 負の対数尤度
スカラー
この プロパティ は読み取り専用です。
fitgmdist
の入力データ X
に対してあてはめた混合ガウス モデルの負の対数尤度。スカラーを指定します。
関数 gmdistribution
を使用して gmdistribution
オブジェクトを作成した場合、このプロパティは空になります。
データ型: single
| double
NumIterations
— 反復回数
正の整数
この プロパティ は読み取り専用です。
期待値最大化 (EM) アルゴリズム内での反復回数。正の整数を指定します。
許容される最大反復回数などの最適化オプションは、fitgmdist
の名前と値のペアの引数 'Options'
を使用して変更できます。
関数 gmdistribution
を使用して gmdistribution
オブジェクトを作成した場合、このプロパティは空になります。
データ型: double
ProbabilityTolerance
— 事後確率の許容誤差
範囲 [0,1e-6]
の非負のスカラー値
この プロパティ は読み取り専用です。
事後確率の許容誤差。範囲 [0,1e-6]
の非負のスカラー値を指定します。
このプロパティは、fitgmdist
の名前と値のペアの引数 'ProbabilityTolerance'
によって設定されます。
関数 gmdistribution
を使用して gmdistribution
オブジェクトを作成した場合、このプロパティは空になります。
データ型: single
| double
RegularizationValue
— 正則化パラメーター値
非負のスカラー
この プロパティ は読み取り専用です。
正則化パラメーター値。非負のスカラーを指定します。
このプロパティは、fitgmdist
の名前と値のペアの引数 'RegularizationValue'
によって設定されます。
関数 gmdistribution
を使用して gmdistribution
オブジェクトを作成した場合、このプロパティは空になります。
データ型: single
| double
オブジェクト関数
例
gmdistribution
の使用による混合ガウス分布の作成
関数 gmdistribution
を使用して、2 成分の二変量混合ガウス分布を作成します。
2 つの二変量混合ガウス成分の分布パラメーター (平均と共分散) を定義します。
mu = [1 2;-3 -5];
sigma = cat(3,[2 .5],[1 1]) % 1-by-2-by-2 array
sigma = sigma(:,:,1) = 2.0000 0.5000 sigma(:,:,2) = 1 1
関数 cat
は、3 番目の配列次元に沿って共分散を連結します。定義される共分散行列は対角行列です。sigma(1,:,i)
には成分 i
の共分散行列の対角要素が格納されます。
gmdistribution
オブジェクトを作成します。既定では、関数 gmdistribution
は均等な比率の混合を作成します。
gm = gmdistribution(mu,sigma)
gm = Gaussian mixture distribution with 2 components in 2 dimensions Component 1: Mixing proportion: 0.500000 Mean: 1 2 Component 2: Mixing proportion: 0.500000 Mean: -3 -5
gm
オブジェクトのプロパティをリストします。
properties(gm)
Properties for class gmdistribution: NumVariables DistributionName NumComponents ComponentProportion SharedCovariance NumIterations RegularizationValue NegativeLogLikelihood CovarianceType mu Sigma AIC BIC Converged ProbabilityTolerance
これらのプロパティには、ドット表記を使用してアクセスできます。たとえば、混合成分の混合比率を表す ComponentProportion
プロパティにアクセスします。
gm.ComponentProportion
ans = 1×2
0.5000 0.5000
gmdistribution
オブジェクトには、あてはめたオブジェクトのみに適用されるプロパティがあります。あてはめたオブジェクトのプロパティは、AIC
、BIC
、Converged
、NegativeLogLikelihood
、NumIterations
、ProbabilityTolerance
および RegularizationValue
です。関数 gmdistribution
を使用し分布パラメーターを指定することによりオブジェクトを作成した場合、あてはめたオブジェクトのプロパティの値は空になります。たとえば、ドット表記を使用して NegativeLogLikelihood
プロパティにアクセスします。
gm.NegativeLogLikelihood
ans = []
gmdistribution
オブジェクトを作成後、そのオブジェクト関数を使用できます。累積分布関数 (cdf) と確率密度関数 (pdf) の値を計算するには、cdf
と pdf
を使用します。ランダムなベクトルを生成するには random
を使用します。クラスター分析には cluster
、mahal
と posterior
を使用します。
pdf
と fsurf
を使用してオブジェクトを可視化します。
gmPDF = @(x,y) arrayfun(@(x0,y0) pdf(gm,[x0 y0]),x,y); fsurf(gmPDF,[-10 10])
fitgmdist
の使用によるデータへの混合ガウス モデルのあてはめ
関数 mvnrnd
を使用して、2 つの二変量ガウス分布の混合に従う確率変量を生成します。関数 fitgmdist
を使用して、生成したデータに混合ガウスモデル (GMM) をあてはめます。
2 つの二変量混合ガウス成分の分布パラメーター (平均と共分散) を定義します。
mu1 = [1 2]; % Mean of the 1st component sigma1 = [2 0; 0 .5]; % Covariance of the 1st component mu2 = [-3 -5]; % 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)
gm = Gaussian mixture distribution with 2 components in 2 dimensions Component 1: Mixing proportion: 0.500000 Mean: -2.9617 -4.9727 Component 2: Mixing proportion: 0.500000 Mean: 0.9539 2.0261
gm
オブジェクトのプロパティをリストします。
properties(gm)
Properties for class gmdistribution: NumVariables DistributionName NumComponents ComponentProportion SharedCovariance NumIterations RegularizationValue NegativeLogLikelihood CovarianceType mu Sigma AIC BIC Converged ProbabilityTolerance
これらのプロパティには、ドット表記を使用してアクセスできます。たとえば、あてはめたモデルに対するデータ X
の負の対数尤度を表す NegativeLogLikelihood
プロパティにアクセスします。
gm.NegativeLogLikelihood
ans = 7.0584e+03
gmdistribution
オブジェクトを作成後、そのオブジェクト関数を使用できます。累積分布関数 (cdf) と確率密度関数 (pdf) の値を計算するには、cdf
と pdf
を使用します。確率変量を生成するには、random
を使用します。クラスター分析には cluster
、mahal
と posterior
を使用します。
scatter
を使用して、X
をプロットします。あてはめられたモデル gm
を pdf
とfcontour
を使用して可視化します。
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,[-8 6])
参照
[1] McLachlan, G., and D. Peel. Finite Mixture Models. Hoboken, NJ: John Wiley & Sons, Inc., 2000.
バージョン履歴
R2007b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)