主要内容gydF4y2Ba

fitgmdistgydF4y2Ba

符合高斯混合模型的数据gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

GMModelgydF4y2Ba= fitgmdist (gydF4y2BaXgydF4y2Ba,gydF4y2BakgydF4y2Ba)gydF4y2Ba返回一个高斯混合分布模型(gydF4y2BaGMModelgydF4y2Ba),gydF4y2BakgydF4y2Ba组件安装数据(gydF4y2BaXgydF4y2Ba)。gydF4y2Ba

例子gydF4y2Ba

GMModelgydF4y2Ba= fitgmdist (gydF4y2BaXgydF4y2Ba,gydF4y2BakgydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba返回一个高斯混合分布模型由一个或多个指定附加选项gydF4y2Ba名称,值gydF4y2Ba对参数。gydF4y2Ba

例如,您可以指定一个正则化值或协方差类型。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

生成数据从两个二维高斯分布的混合物。gydF4y2Ba

mu1 = (1 - 2);Sigma1 = [2 0;0 0.5);mu2 = [3 - 5];Sigma2 = [1 0; 0 1];rng (1);gydF4y2Ba%的再现性gydF4y2BaX = [mvnrnd (mu1 Sigma1 1000);mvnrnd (mu2 Sigma2 1000)];gydF4y2Ba

适合一个高斯混合模型。指定组件有两个。gydF4y2Ba

GMModel = fitgmdist (X, 2);gydF4y2Ba

情节在高斯混合模型拟合轮廓数据。gydF4y2Ba

图y = [0 (1000 1), 1 (1000 1)];h = gscatter (X (: 1), X (:, 2), y);持有gydF4y2Ba在gydF4y2BagmPDF = @ (x, y) arrayfun (@ (x0, y0) pdf (GMModel (x0 y0)), x, y);甘氨胆酸g =;fcontour (gmPDF (g。XLim g.YLim]) title({\ bf散点图和安装高斯混合轮廓}”gydF4y2Ba)传说(h,gydF4y2Ba“模型0”gydF4y2Ba,gydF4y2Ba“Model1”gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba

图包含一个坐标轴对象。坐标轴对象与标题空白S c a t t e r P l o t空白n d空白F i t t e d空白G u S S n空白M我x t u r e空白c o n t o u r S包含3类型的对象,functioncontour。这些对象模型代表0,Model1。gydF4y2Ba

生成数据从两个二维高斯分布的混合物。创建第三个因素,第一个和第二个预测因素的总和。gydF4y2Ba

mu1 = (1 - 2);Sigma1 = [1 0;0 1];mu2 = [3 - 4];Sigma2 = (0.5 0;0 0.5);提高(3);gydF4y2Ba%的再现性gydF4y2BaX1 = [mvnrnd (mu1 Sigma1,100); mvnrnd (mu2 Sigma2,100)];X = (X1, X1 (: 1) + X1 (:, 2)];gydF4y2Ba

的列gydF4y2BaXgydF4y2Ba是线性相关的。这可能会导致坏心肠的协方差估计。gydF4y2Ba

符合高斯混合模型的数据。您可以使用gydF4y2Ba试一试gydF4y2Ba/gydF4y2Ba抓gydF4y2Ba语句来帮助管理错误消息。gydF4y2Ba

rng (1);gydF4y2Ba%重置种子为常见的开始值gydF4y2Ba试一试gydF4y2BaGMModel = fitgmdist (X, 2)gydF4y2Ba抓gydF4y2Ba异常disp (gydF4y2Ba”有一个混合高斯模型误差拟合的gydF4y2Ba)错误= exception.messagegydF4y2Ba结束gydF4y2Ba
有一个误差拟合高斯混合模型gydF4y2Ba
错误= '坏心肠的协方差在迭代2创建的。”gydF4y2Ba

协方差估计是坏脾气的。因此,优化停止和一个错误出现。gydF4y2Ba

再次符合高斯混合模型,但使用正则化。gydF4y2Ba

提高(3);gydF4y2Ba%重置种子为常见的开始值gydF4y2BaGMModel = fitgmdist (X 2gydF4y2Ba“RegularizationValue”gydF4y2Ba,0.1)gydF4y2Ba
与2组件GMModel =高斯混合分布在三维组件1:混合比例:0.536725的意思是:2.8831 3.9506 6.8338组件2:混合比例:0.463275的意思是:0.8813 1.9758 2.8571gydF4y2Ba

在这种情况下,由于正则化算法收敛于一个解决方案。gydF4y2Ba

高斯混合模型要求您指定数量的组件之前适合数据。对于许多应用程序,可能很难知道适当数量的组件。这个例子展示了如何探索数据,并试图得到一个初始猜测组件使用主成分分析的数量。gydF4y2Ba

加载费雪的虹膜数据集。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2Ba类=独特(物种)gydF4y2Ba
类=gydF4y2Ba3 x1细胞gydF4y2Ba{' setosa}{“癣”}{' virginica '}gydF4y2Ba

iris数据集包含三个类的物种。分析所得,仿佛这是未知的。gydF4y2Ba

使用主成分分析来降低数据的维数为可视化两个维度。gydF4y2Ba

[~,分数]= pca(量,gydF4y2Ba“NumComponents”gydF4y2Ba2);gydF4y2Ba

适合三个高斯混合模型的数据通过指定1,2,3组件。优化的迭代的数量增加gydF4y2Ba1000年gydF4y2Ba。使用点符号存储最后一个参数估计。默认情况下,该软件适合每个组件的完整和不同的协方差。gydF4y2Ba

GMModels =细胞(3,1);gydF4y2Ba%预先配置gydF4y2Ba选择= statset (gydF4y2Ba“麦克斯特”gydF4y2Ba,1000);rng (1);gydF4y2Ba%的再现性gydF4y2Ba为gydF4y2Baj = 1:3 GMModels {j} = fitgmdist(得分,j,gydF4y2Ba“选项”gydF4y2Ba、选择);流(gydF4y2Ba“\ n通用意味着%我组件(s) \ n”gydF4y2Baj)μ= GMModels {j} .mugydF4y2Ba结束gydF4y2Ba
通用汽车对1意味着组件(年代)gydF4y2Ba
μ=gydF4y2Ba1×2gydF4y2Ba10gydF4y2Ba-15年gydF4y2Ba×0.9666 - -0.4234gydF4y2Ba
通用汽车对2意味着组件(年代)gydF4y2Ba
μ=gydF4y2Ba2×2gydF4y2Ba1.3212 -0.0954 -2.6424 0.1909gydF4y2Ba
通用汽车意味着3组件(年代)gydF4y2Ba
μ=gydF4y2Ba3×2gydF4y2Ba0.4856 -0.1287 1.4484 -0.0904 -2.6424 0.1909gydF4y2Ba

GMModelsgydF4y2Ba是一个包含三个单元阵列,安装吗gydF4y2BagmdistributiongydF4y2Ba模型。手段的三个组件模型是不同的,表明该模型区分三虹膜的物种。gydF4y2Ba

情节上的分数高斯混合模型轮廓。因为数据集包含标签,使用gydF4y2BagscattergydF4y2Ba区分真正的组件的数量。gydF4y2Ba

图gydF4y2Ba为gydF4y2Baj = 1:3次要情节(2,2,j) h1 = gscatter(分数(:1),分数(:,2),物种);甘氨胆酸h =;持有gydF4y2Ba在gydF4y2BagmPDF = @ (x, y) arrayfun (@ (x0, y0) pdf (GMModels {j}, [x0 y0]), x, y);fcontour (gmPDF (h。XLim h.YLim),gydF4y2Ba“MeshDensity”gydF4y2Ba,100)标题(sprintf (gydF4y2Ba“通用模型——%我组件(年代)gydF4y2Ba,j));包含(gydF4y2Ba第一主成分的gydF4y2Ba);ylabel (gydF4y2Ba第二主成分的gydF4y2Ba);gydF4y2Ba如果gydF4y2Ba(j ~ = 3)传奇gydF4y2Ba从gydF4y2Ba;gydF4y2Ba结束gydF4y2Ba持有gydF4y2Ba从gydF4y2Ba结束gydF4y2Bag =传奇(h1);g。位置= (0.7 - 0.25 0.1 - 0.1);gydF4y2Ba

图包含3轴对象。坐标轴对象与标题通用模型1 - 1组件(s)包含4线类型的对象,functioncontour。杂色的,这些对象代表setosa virginica。坐标轴对象与标题通用模型2 - 2组件(s)包含4线类型的对象,functioncontour。杂色的,这些对象代表setosa virginica。坐标轴对象与标题通用模型3 - 3组件(s)包含4线类型的对象,functioncontour。杂色的,这些对象代表setosa virginica。gydF4y2Ba

三分量高斯混合模型,结合主成分分析,看起来区分三个虹膜的物种。gydF4y2Ba

还有其他的选项可以用来帮助选择适当的组件数量高斯混合模型。例如,gydF4y2Ba

  • 比较多个模型和不同数量的组件使用信息标准,例如,AIC和BIC。gydF4y2Ba

  • 估计集群使用的数量gydF4y2BaevalclustersgydF4y2Ba支持,Calin金宝appski-Harabasz标准和统计数据的差距,或其他标准。gydF4y2Ba

高斯混合模型要求您指定数量的组件之前适合数据。对于许多应用程序,可能很难知道适当数量的组件。下面的例子使用了AIC适合统计来帮助你选择最佳的拟合高斯混合模型对不同数量的组件。gydF4y2Ba

生成数据从两个二维高斯分布的混合物。gydF4y2Ba

mu1 = [1];Sigma1 = (0.5 0;0 0.5);mu2 = 2 [4];Sigma2 = (0.2 0;0 0.2);rng (1);X = [mvnrnd (mu1 Sigma1 1000); mvnrnd (mu2 Sigma2 1000)];情节(X (: 1) X (:, 2),gydF4y2Ba“柯”gydF4y2Ba)标题(gydF4y2Ba“散点图”gydF4y2Ba)xlim ([min (X (:)) max (X (:))))gydF4y2Ba%使轴有相同的规模gydF4y2Baylim ([min (X (:)) max (X (:))))gydF4y2Ba

图包含一个坐标轴对象。标题为散点图的坐标轴对象包含一个类型的对象。gydF4y2Ba

假设你不知道底层参数值,散点图显示:gydF4y2Ba

  • 有两个组件。gydF4y2Ba

  • 集群之间的差异是不同的。gydF4y2Ba

  • 集群内的方差是相同的。gydF4y2Ba

  • 没有集群内的协方差。gydF4y2Ba

适合双组分高斯混合模型。根据散点图检查,指定该协方差矩阵是对角。打印最后的迭代和loglikelihood命令窗口通过统计gydF4y2BastatsetgydF4y2Ba结构的价值gydF4y2Ba选项gydF4y2Ba名称-值对的论点。gydF4y2Ba

选择= statset (gydF4y2Ba“显示”gydF4y2Ba,gydF4y2Ba“最后一次”gydF4y2Ba);GMModel = fitgmdist (X 2gydF4y2Ba“CovarianceType”gydF4y2Ba,gydF4y2Ba“对角线”gydF4y2Ba,gydF4y2Ba“选项”gydF4y2Ba、选择);gydF4y2Ba
11个迭代,对数似= -4787.38gydF4y2Ba

GMModelgydF4y2Ba是一个安装gydF4y2BagmdistributiongydF4y2Ba模型。gydF4y2Ba

检查AIC在不同数量的组件。gydF4y2Ba

AIC = 0 (1、4);GMModels =细胞(1、4);选择= statset (gydF4y2Ba“麦克斯特”gydF4y2Ba,500);gydF4y2Ba为gydF4y2Bak = 1:4 GMModels {k} = fitgmdist (X, k,gydF4y2Ba“选项”gydF4y2Ba选项,gydF4y2Ba“CovarianceType”gydF4y2Ba,gydF4y2Ba“对角线”gydF4y2Ba);AIC (k) = GMModels {k} .AIC;gydF4y2Ba结束gydF4y2Ba[minAIC, numComponents] = min (AIC);numComponentsgydF4y2Ba
numComponents = 2gydF4y2Ba
BestModel = GMModels {numComponents}gydF4y2Ba
与2组件BestModel =高斯混合分布在二维组件1:混合比例:0.501719的意思是:1.9824 - 4.0013组件2:混合比例:0.498281的意思是:0.9880 - 1.0511gydF4y2Ba

最小的AIC发生在软件适合双组分高斯混合模型。gydF4y2Ba

高斯混合模型参数估计可能随不同的初始值。这个例子展示了如何控制初始值时配合使用高斯混合模型gydF4y2BafitgmdistgydF4y2Ba。gydF4y2Ba

加载费雪的虹膜数据集。用花瓣长度和宽度作为预测因子。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX =量(:,3:4);gydF4y2Ba

适合一个高斯混合模型来使用默认初始值的数据。有三个虹膜物种,所以指定gydF4y2BakgydF4y2Ba= 3组件。gydF4y2Ba

rng (10);gydF4y2Ba%的再现性gydF4y2BaGMModel1 = fitgmdist (X, 3);gydF4y2Ba

默认情况下,软件:gydF4y2Ba

  1. 实现了gydF4y2Bak - means + +算法初始化gydF4y2Ba选择gydF4y2BakgydF4y2Ba= 3初始集群中心。gydF4y2Ba

  2. 设置初始协方差矩阵为对角,元素(gydF4y2BajgydF4y2Ba,gydF4y2BajgydF4y2Ba)的方差gydF4y2BaX (:, j)gydF4y2Ba。gydF4y2Ba

  3. 将初始混合比例视为均匀。gydF4y2Ba

适合通过连接每一个高斯混合模型观察其标签。gydF4y2Ba

y = 1(大小(X, 1), 1);y (strcmp(物种,gydF4y2Ba“setosa”gydF4y2Ba))= 2;y (strcmp(物种,gydF4y2Ba“virginica”gydF4y2Ba))= 3;GMModel2 = fitgmdist (X 3gydF4y2Ba“开始”gydF4y2Ba,y);gydF4y2Ba

符合高斯混合模型通过显式地指定初始意味着,协方差矩阵和混合比例。gydF4y2Ba

μ= [1 1;2 2;3 3];σ(::1)= (1 1;1 2];σ(::2)= 2 * (1 1;1 2];σ(::3)= 3 * (1 1;1 2];PComponents = (1/2、1/4, 1/4); S = struct(“亩”gydF4y2Ba亩,gydF4y2Ba“σ”gydF4y2Baσ,gydF4y2Ba“ComponentProportion”gydF4y2Ba,PComponents);GMModel3 = fitgmdist (X 3gydF4y2Ba“开始”gydF4y2Ba,年代);gydF4y2Ba

使用gydF4y2BagscattergydF4y2Ba绘制散点图,区分了虹膜的物种。对于每个模型,画出轮廓拟合高斯混合模型。gydF4y2Ba

图次要情节(2 2 1)h = gscatter (X(: 1),(:, 2),物种,[],gydF4y2Ba“o”gydF4y2Ba4);甘氨胆酸haxis =;xlim = haxis.XLim;ylim = haxis.YLim;d = (max ([xlim ylim])分钟([xlim ylim])) / 1000;[X1Grid, X2Grid] = meshgrid (xlim (1): d: xlim (2), ylim (1): d: ylim (2));持有gydF4y2Ba在gydF4y2Ba轮廓(X1Grid X2Grid,重塑(pdf (GMModel1, [X1Grid (:) X2Grid (:))),gydF4y2Ba…gydF4y2Ba大小(X1Grid, 1),大小(X1Grid, 2)), 20) uistack (h,gydF4y2Ba“高级”gydF4y2Ba)标题(gydF4y2Ba“{\ bf随机初始值}”gydF4y2Ba);包含(gydF4y2Ba“花萼长度”gydF4y2Ba);ylabel (gydF4y2Ba萼片宽的gydF4y2Ba);传说gydF4y2Ba从gydF4y2Ba;持有gydF4y2Ba从gydF4y2Ba次要情节(2 2 2)h = gscatter (X(: 1),(:, 2),物种,[],gydF4y2Ba“o”gydF4y2Ba4);持有gydF4y2Ba在gydF4y2Ba轮廓(X1Grid X2Grid,重塑(pdf (GMModel2, [X1Grid (:) X2Grid (:))),gydF4y2Ba…gydF4y2Ba大小(X1Grid, 1),大小(X1Grid, 2)), 20) uistack (h,gydF4y2Ba“高级”gydF4y2Ba)标题(gydF4y2Ba“{}\ bf初始值从标签”gydF4y2Ba);包含(gydF4y2Ba“花萼长度”gydF4y2Ba);ylabel (gydF4y2Ba萼片宽的gydF4y2Ba);传说gydF4y2Ba从gydF4y2Ba持有gydF4y2Ba从gydF4y2Ba次要情节(2,2,3)h = gscatter (X(: 1),(:, 2),物种,[],gydF4y2Ba“o”gydF4y2Ba4);持有gydF4y2Ba在gydF4y2Ba轮廓(X1Grid X2Grid,重塑(pdf (GMModel3, [X1Grid (:) X2Grid (:))),gydF4y2Ba…gydF4y2Ba大小(X1Grid, 1),大小(X1Grid, 2)), 20) uistack (h,gydF4y2Ba“高级”gydF4y2Ba)标题(gydF4y2Ba”{\ bf初始值结构}’gydF4y2Ba);包含(gydF4y2Ba“花萼长度”gydF4y2Ba);ylabel (gydF4y2Ba萼片宽的gydF4y2Ba);传奇(gydF4y2Ba“位置”gydF4y2Ba,0.7,0.25,0.1,0.1);持有gydF4y2Ba从gydF4y2Ba

图包含3轴对象。坐标轴对象1标题空白R n d o m空白我n t l空白V l u e s包含4类型的对象轮廓,线。杂色的,这些对象代表virginica setosa。坐标轴对象2标题空白我n t l空白V l u e s空白f r o m空白l b e l s包含4类型的对象轮廓,线。杂色的,这些对象代表virginica setosa。坐标轴对象3标题空白我n t l空白V l u e s空白f r o m空白t h e空白s t r u c t u r e包含4类型的对象轮廓,线。杂色的,这些对象代表virginica setosa。gydF4y2Ba

根据轮廓,gydF4y2BaGMModel2gydF4y2Ba似乎在暗示轻微trimodality,而其他人则建议双峰分布。gydF4y2Ba

显示估计组件的意思。gydF4y2Ba

表(GMModel1.mu GMModel2.mu GMModel3.mu,gydF4y2Ba“VariableNames”gydF4y2Ba,gydF4y2Ba…gydF4y2Ba{gydF4y2Ba“Model1”gydF4y2Ba,gydF4y2Ba“Model2”gydF4y2Ba,gydF4y2Ba“Model3”gydF4y2Ba})gydF4y2Ba
ans =gydF4y2Ba3×3表gydF4y2BaModel1 Model2 Model3 _________________ ___________ ___________ 5.2115 2.0119 4.2857 1.3339 1.4604 0.2429 1.461 0.24423 1.462 0.246 4.7509 1.4629 4.6829 1.4429 5.5507 2.0316 5.0158 1.8592gydF4y2Ba

GMModel2gydF4y2Ba似乎区分虹膜物种最好的。gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

数据的高斯混合模型是合适的,指定为一个数字矩阵。gydF4y2Ba

的行gydF4y2BaXgydF4y2Ba对应于观测的列gydF4y2BaXgydF4y2Ba对应的变量。观察的数量必须大于以下:变量的数量和组件的数量。gydF4y2Ba

南gydF4y2Ba年代显示缺失值。软件删除行gydF4y2BaXgydF4y2Ba包含至少一个gydF4y2Ba南gydF4y2Ba在装配之前,这降低了有效的样本大小。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

数量的组件时使用合适的高斯混合模型,指定为一个正整数。例如,如果您指定gydF4y2Bak = 3gydF4y2Ba,那么软件符合高斯混合模型与三个不同的意思,协方差矩阵,比例和组件的数据(gydF4y2BaXgydF4y2Ba)。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

名称-值参数gydF4y2Ba

指定可选的逗号分隔条gydF4y2Ba名称,值gydF4y2Ba参数。gydF4y2Ba的名字gydF4y2Ba参数名称和吗gydF4y2Ba价值gydF4y2Ba相应的价值。gydF4y2Ba的名字gydF4y2Ba必须出现在引号。您可以指定几个名称和值对参数在任何顺序gydF4y2BaName1, Value1,…,的家gydF4y2Ba。gydF4y2Ba

例子:gydF4y2Ba“RegularizationValue”, 0.1,“CovarianceType”、“对角线”gydF4y2Ba指定了正则化参数值为0.1,符合对角协方差矩阵。gydF4y2Ba

类型的数据协方差矩阵来适应,指定为逗号分隔组成的gydF4y2Ba“CovarianceType”gydF4y2Ba,要么gydF4y2Ba“对角线”gydF4y2Ba或gydF4y2Ba“全部”gydF4y2Ba。gydF4y2Ba

如果你设置gydF4y2Ba“对角线”gydF4y2Ba,那么软件适合对角协方差矩阵。在这种情况下,软件估计gydF4y2Bak * dgydF4y2Ba协方差参数,gydF4y2BadgydF4y2Ba列的数量吗gydF4y2BaXgydF4y2Ba(例如,gydF4y2Bad =大小(X, 2)gydF4y2Ba)。gydF4y2Ba

否则,该软件适合全协方差矩阵。在这种情况下,软件估计gydF4y2Bak * d * (d + 1) / 2gydF4y2Ba协方差参数。gydF4y2Ba

例子:gydF4y2Ba“CovarianceType”、“对角线”gydF4y2Ba

迭代EM算法优化选项,指定为逗号分隔组成的gydF4y2Ba“选项”gydF4y2Ba和一个gydF4y2BastatsetgydF4y2Ba选择结构。gydF4y2Ba

此表描述了可用的参数名称-值对。gydF4y2Ba

的名字gydF4y2Ba 价值gydF4y2Ba
“显示”gydF4y2Ba

“最后一次”gydF4y2Ba:显示最终的输出。gydF4y2Ba

“通路”gydF4y2Ba:显示一些函数迭代输出到命令窗口;否则显示最终的输出。gydF4y2Ba

“关闭”gydF4y2Ba:不要显示优化信息。gydF4y2Ba

“麦克斯特”gydF4y2Ba 正整数表示迭代允许的最大数量。默认值是gydF4y2BaOne hundred.gydF4y2Ba
“TolFun”gydF4y2Ba 积极的标量表示终止对loglikelihood函数值。默认值是gydF4y2Ba1 e-6gydF4y2Ba。gydF4y2Ba

例子:gydF4y2Ba“选项”,statset(“显示”、“最后”,“麦克斯特”,1500年,“TolFun”, 1 e-5)gydF4y2Ba

对后验概率,指定为逗号分隔组成的gydF4y2BaProbabilityTolerancegydF4y2Ba和一个负的标量值的范围gydF4y2Ba[0,1 e-6]gydF4y2Ba。gydF4y2Ba

在每个迭代中,后验概率的估计,gydF4y2BafitgmdistgydF4y2Ba集的后验概率不大于公差值为零。使用一个非零容忍可能加快gydF4y2BafitgmdistgydF4y2Ba。gydF4y2Ba

例子:gydF4y2Ba“ProbabilityTolerance”, 0.0000025gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

正则化参数值,指定为逗号分隔组成的gydF4y2Ba“RegularizationValue”gydF4y2Ba和一个负的标量。gydF4y2Ba

集gydF4y2BaRegularizationValuegydF4y2Ba小正的标量,确保估计协方差矩阵是正定的。gydF4y2Ba

例子:gydF4y2Ba“RegularizationValue”, 0.01gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

多次重复EM算法使用一套新的初始值,指定为逗号分隔组成的gydF4y2Ba“复制”gydF4y2Ba和一个正整数。gydF4y2Ba

如果gydF4y2Ba复制gydF4y2Ba大于gydF4y2Ba1gydF4y2Ba,那么:gydF4y2Ba

  • 名称-值对的观点gydF4y2Ba开始gydF4y2Ba必须gydF4y2Ba+gydF4y2Ba(默认)或gydF4y2BarandSamplegydF4y2Ba。gydF4y2Ba

  • GMModelgydF4y2Ba是符合loglikelihood最大的。gydF4y2Ba

例子:gydF4y2Ba“复制”,10gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

标志指示是否所有协方差矩阵完全相同(即。,fit a pooled estimate), specified as the comma-separated pair consisting of“SharedCovariance”gydF4y2Ba和逻辑值gydF4y2Ba假gydF4y2Ba或gydF4y2Ba真正的gydF4y2Ba。gydF4y2Ba

如果gydF4y2BaSharedCovariancegydF4y2Ba是gydF4y2Ba真正的gydF4y2Ba,那么所有gydF4y2BakgydF4y2Ba协方差矩阵相等,和协方差参数的数量是按比例缩小的一个因素gydF4y2BakgydF4y2Ba。gydF4y2Ba

初始值设定方法,指定为逗号分隔组成的gydF4y2Ba“开始”gydF4y2Ba和gydF4y2Ba“randSample”gydF4y2Ba,gydF4y2Ba“+”gydF4y2Ba、一个整数向量或一个结构数组。gydF4y2Ba

的价值gydF4y2Ba开始gydF4y2Ba确定所需的初始值为每个高斯组件参数优化程序——意思是,协方差和混合比例。这个表总结了可用的选项。gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba
“randSample”gydF4y2Ba 软件选择gydF4y2BakgydF4y2Ba观察从gydF4y2BaXgydF4y2Ba在随机初始组件的意思。混合比例是统一的。所有组件的初始协方差矩阵是对角,元素的地方gydF4y2BajgydF4y2Ba对角线上的方差gydF4y2BaX (:, j)gydF4y2Ba。gydF4y2Ba
“+”gydF4y2Ba 软件选择gydF4y2BakgydF4y2Ba观察从gydF4y2BaXgydF4y2Ba使用gydF4y2BakgydF4y2Ba——+ +算法gydF4y2Ba。最初的混合比例是统一的。所有组件的初始协方差矩阵是对角,元素的地方gydF4y2BajgydF4y2Ba对角线上的方差gydF4y2BaX (:, j)gydF4y2Ba。gydF4y2Ba
向量的整数gydF4y2Ba 一个向量的长度gydF4y2BangydF4y2Ba(观察)包含组件的初始猜测为每个点指数。也就是说,从1到每个元素是一个整数gydF4y2BakgydF4y2Ba,对应于一个组件。相对应的软件收集所有观察相同的组件,计算方式,协方差,和混合比例,这些统计数据并设置初始值。gydF4y2Ba
结构数组gydF4y2Ba

假设有gydF4y2BadgydF4y2Ba变量(例如,gydF4y2Bad =大小(X, 2)gydF4y2Ba)。结构数组,例如,gydF4y2Ba年代gydF4y2Ba,必须有三个字段:gydF4y2Ba

  • S.mugydF4y2Ba:一个gydF4y2BakgydF4y2Ba——- - - - - -gydF4y2BadgydF4y2Ba矩阵指定每个组件的最初的意思gydF4y2Ba

  • S.SigmagydF4y2Ba:一个数值数组指定每个组件的协方差矩阵。gydF4y2BaσgydF4y2Ba是下列之一:gydF4y2Ba

    • 一个gydF4y2BadgydF4y2Ba——- - - - - -gydF4y2BadgydF4y2Ba——- - - - - -gydF4y2BakgydF4y2Ba数组中。gydF4y2Baσ(:,:,j)gydF4y2Ba组件的初始协方差矩阵吗gydF4y2BajgydF4y2Ba。gydF4y2Ba

    • 一个gydF4y2Ba1gydF4y2Ba——- - - - - -gydF4y2BadgydF4y2Ba——- - - - - -gydF4y2BakgydF4y2Ba数组中。gydF4y2Ba诊断接头(σ(:,:,j))gydF4y2Ba组件的初始协方差矩阵吗gydF4y2BajgydF4y2Ba。gydF4y2Ba

    • 一个gydF4y2BadgydF4y2Ba——- - - - - -gydF4y2BadgydF4y2Ba矩阵。gydF4y2BaσgydF4y2Ba是所有组件的初始协方差矩阵。gydF4y2Ba

    • 一个gydF4y2Ba1gydF4y2Ba——- - - - - -gydF4y2BadgydF4y2Ba向量。gydF4y2Ba诊断接头(σ)gydF4y2Ba是所有组件的初始协方差矩阵。gydF4y2Ba

  • S.ComponentProportiongydF4y2Ba:一个gydF4y2Ba1gydF4y2Ba——- - - - - -gydF4y2BakgydF4y2Ba指定初始向量的标量混合比例的每个组件。缺省值是统一的。gydF4y2Ba

例子:gydF4y2Ba的“开始”,(n, 1)gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba结构体gydF4y2Ba

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

高斯混合模型,作为一个返回gydF4y2BagmdistributiongydF4y2Ba模型。gydF4y2Ba

访问的属性gydF4y2BaGMModelgydF4y2Ba使用点符号。例如,显示AIC通过输入gydF4y2BaGMModel.AICgydF4y2Ba。gydF4y2Ba

提示gydF4y2Ba

fitgmdistgydF4y2Ba可能:gydF4y2Ba

  • 收敛到一个解决方案的一个或多个组件有一个坏脾气的或奇异协方差矩阵。gydF4y2Ba

    下面的问题可能导致一个坏脾气的协方差矩阵:gydF4y2Ba

    • 维度数据的数量是相对较高的和没有足够的观察。gydF4y2Ba

    • 一些预测因素(变量)的数据是高度相关的。gydF4y2Ba

    • 部分或全部是离散的特性。gydF4y2Ba

    • 你试图把太多的组件的数据。gydF4y2Ba

    一般来说,你可以避免坏心肠的协方差矩阵通过使用下列预防措施之一:gydF4y2Ba

    • 预处理数据删除相关特性。gydF4y2Ba

    • 集gydF4y2Ba“SharedCovariance”gydF4y2Ba来gydF4y2Ba真正的gydF4y2Ba为每个组件使用一个平等的协方差矩阵。gydF4y2Ba

    • 集gydF4y2Ba“CovarianceType”gydF4y2Ba来gydF4y2Ba“对角线”gydF4y2Ba。gydF4y2Ba

    • 使用gydF4y2Ba“RegularizationValue”gydF4y2Ba添加一个很小的正数的对角协方差矩阵。gydF4y2Ba

    • 尝试另一组初始值。gydF4y2Ba

  • 通过一个中间步骤的一个或多个组件有一个坏脾气的协方差矩阵。尝试另一组初始值,以避免这个问题在不改变您的数据或模型。gydF4y2Ba

算法gydF4y2Ba

全部折叠gydF4y2Ba

高斯混合模型优化的可能性gydF4y2Ba

可能使用的软件优化高斯混合模型的迭代采用(EM)算法。gydF4y2Ba

fitgmdistgydF4y2Ba适合gmm使用迭代的数据gydF4y2Ba采用gydF4y2Ba(EM)算法。使用初始值组件意味着,协方差矩阵,和混合比例,EM算法所得使用这些步骤。gydF4y2Ba

  1. 对于每一个观察,部分会员的算法计算后验概率。你能想到的结果作为一个gydF4y2BangydF4y2Ba——- - - - - -gydF4y2BakgydF4y2Ba矩阵,元素(gydF4y2Ba我gydF4y2Ba,gydF4y2BajgydF4y2Ba)包含观察的后验概率gydF4y2Ba我gydF4y2Ba从组件gydF4y2BajgydF4y2Ba。这是gydF4y2BaEgydF4y2Ba一步一步的EM算法。gydF4y2Ba

  2. 使用component-membership后验概率作为权重,该算法组件意味着估计协方差矩阵,通过应用最大似然法和混合比例。这是gydF4y2Ba米gydF4y2Ba一步一步的EM算法。gydF4y2Ba

该算法遍历这些步骤,直到收敛。可能表面复杂,算法可能收敛于局部最优。另外,由此产生的局部最优可能取决于初始条件。gydF4y2BafitgmdistgydF4y2Ba有几个选项,选择初始条件,包括随机组件为观察和作业gydF4y2BakgydF4y2Ba——+ +算法。gydF4y2Ba

kgydF4y2Ba——+ +算法初始化gydF4y2Ba

的gydF4y2BakgydF4y2Ba——+ +算法使用一个启发式找到重心的种子gydF4y2BakgydF4y2Ba——集群。gydF4y2BafitgmdistgydF4y2Ba可以应用同样的原理来初始化EM算法通过使用k - means + +算法选择合身的高斯混合模型的初始参数值。gydF4y2Ba

的gydF4y2BakgydF4y2Ba——+ +算法假设集群的数量gydF4y2BakgydF4y2Ba并选择初始参数值如下。gydF4y2Ba

  1. 选择组件混合概率的均匀概率gydF4y2Ba pgydF4y2Ba 我gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba kgydF4y2Ba ,在那里gydF4y2Ba我gydF4y2Ba= 1,…,gydF4y2BakgydF4y2Ba。gydF4y2Ba

  2. 选择协方差矩阵是对角和相同,gydF4y2Ba σgydF4y2Ba 我gydF4y2Ba =gydF4y2Ba dgydF4y2Ba 我gydF4y2Ba 一个gydF4y2Ba ggydF4y2Ba (gydF4y2Ba 一个gydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba 一个gydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba …gydF4y2Ba ,gydF4y2Ba 一个gydF4y2Ba kgydF4y2Ba )gydF4y2Ba 和gydF4y2Ba 一个gydF4y2Ba jgydF4y2Ba =gydF4y2Ba vargydF4y2Ba (gydF4y2Ba XgydF4y2Ba jgydF4y2Ba )gydF4y2Ba 。gydF4y2Ba

  3. 选择第一个初始组件中心gydF4y2BaμgydF4y2Ba1gydF4y2Ba从所有数据点均匀gydF4y2BaXgydF4y2Ba。gydF4y2Ba

  4. 选择中心gydF4y2BajgydF4y2Ba:gydF4y2Ba

    1. 计算Mahalanobis距离每个观察每一个重心,并分配每个观察最亲密的重心。gydF4y2Ba

    2. 为gydF4y2Ba米gydF4y2Ba= 1,…,gydF4y2BangydF4y2Ba和gydF4y2BapgydF4y2Ba= 1,…,gydF4y2BajgydF4y2Ba- 1,选择重心gydF4y2BajgydF4y2Ba随机从gydF4y2BaXgydF4y2Ba的概率gydF4y2Ba

      dgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba xgydF4y2Ba 米gydF4y2Ba ,gydF4y2Ba μgydF4y2Ba pgydF4y2Ba )gydF4y2Ba ∑gydF4y2Ba hgydF4y2Ba ;gydF4y2Ba xgydF4y2Ba hgydF4y2Ba ∈gydF4y2Ba ΜgydF4y2Ba pgydF4y2Ba dgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba xgydF4y2Ba hgydF4y2Ba ,gydF4y2Ba μgydF4y2Ba pgydF4y2Ba )gydF4y2Ba

      在哪里gydF4y2Ba dgydF4y2Ba (gydF4y2Ba xgydF4y2Ba 米gydF4y2Ba ,gydF4y2Ba μgydF4y2Ba pgydF4y2Ba )gydF4y2Ba 是观察之间的距离gydF4y2Ba米gydF4y2Ba和gydF4y2BaμgydF4y2BapgydF4y2Ba,gydF4y2Ba米gydF4y2BapgydF4y2Ba所有观测接近重心吗gydF4y2BaμgydF4y2BapgydF4y2Ba和gydF4y2BaxgydF4y2Ba米gydF4y2Ba属于gydF4y2Ba米gydF4y2BapgydF4y2Ba。gydF4y2Ba

      ,选择每个后续中心一个概率成正比的距离自己最近的中心,你已经选择了。gydF4y2Ba

  5. 重复步骤4,直到gydF4y2BakgydF4y2Ba选上的重心。gydF4y2Ba

引用gydF4y2Ba

[1]克劳克兰,G。,d .皮。gydF4y2Ba有限混合模型gydF4y2Ba。新泽西州霍博肯:约翰·威利& Sons Inc ., 2000年。gydF4y2Ba

介绍了R2014agydF4y2Ba