主要内容

符合高斯混合模型的数据

这个例子展示了如何从一个多元正态分布模拟数据,然后装一个高斯混合模型(GMM)对数据的使用fitgmdist。创建一个已知的,或完全指定,GMM对象,明白了创建高斯混合模型

fitgmdist需要一个矩阵的数据和组件在GMM的数量。创建一个有用的GMM,你必须选择k小心。太少的组件失败(即模型的数据准确。,underfitting数据)。太多的组件导致了over-fit模型奇异协方差矩阵。

两个二维高斯分布模拟数据的混合使用mvnrnd

mu1 = (1 - 2);sigma1 = [2 0;0。5);mu2 = [3 - 5];sigma2 = [1 0;0 1];rng (1);%的再现性X = [mvnrnd (mu1 sigma1 1000);mvnrnd (mu2 sigma2 1000)];

绘制模拟数据。

散射(X (: 1) X(:, 2), 10日“。”)%散点图的大小10标题(模拟数据的)

图包含一个坐标轴对象。坐标轴标题模拟数据对象包含一个类型的对象分散。

适合双组分GMM。使用“选项”名称-值对参数显示最终的输出拟合的算法。

选择= statset (“显示”,“最后一次”);通用= fitgmdist (X 2“选项”选项)
5次迭代,对数似= -7105.71通用组件为2 =高斯混合分布在二维组件1:混合比例:0.500000的意思是:-3.0377 - -4.9859组件2:混合比例:0.500000的意思是:0.9812 - 2.0563

策划了GMM的pdf。

gmPDF = @ (x, y) arrayfun (@ (x0, y0) pdf(通用、(x0 y0)), x, y);持有h = fcontour (gmPDF 8 [6]);标题(模拟数据和pdf的轮廓线);

图包含一个坐标轴对象。坐标轴对象标题模拟数据和等值线的pdf包含2对象类型的散射,functioncontour。

显示估计的均值,方差,混合比例

ComponentMeans = gm.mu
ComponentMeans =2×2-3.0377 -4.9859 0.9812 2.0563
ComponentCovariances = gm.Sigma
ComponentCovariances = ComponentCovariances (:: 1) = 1.0132 0.0482 0.0482 0.9796 ComponentCovariances (:,: 2) = 1.9919 0.0127 0.0127 0.5533
MixtureProportions = gm.ComponentProportion
MixtureProportions =1×20.5000 - 0.5000

适合四个模型的数据,每个与越来越多的组件,并比较Akaike信息准则(AIC)值。

AIC = 0 (1、4);通用=细胞(1、4);k = 1:4通用{k} = fitgmdist (X, k);AIC (k) = {k} .AIC通用;结束

显示组件的数量最小化AIC值。

[minAIC, numComponents] = min (AIC);numComponents
numComponents = 2

双组分模型具有最小的AIC值。

显示双组分GMM。

通用gm2 = {numComponents}
与2组件gm2 =高斯混合分布在二维组件1:混合比例:0.500000的意思是:-3.0377 - -4.9859组件2:混合比例:0.500000的意思是:0.9812 - 2.0563

AIC和贝叶斯信息准则(BIC)是基于可能性模型适合的措施,包括惩罚复杂性(具体来说,参数的个数)。您可以使用它们来确定一个适当的组件数量模型组件的数量是不确定的。

另请参阅

|||

相关的话题