主要内容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 = [zero (1000,1);ones(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

图中包含一个axes对象。标题为空白S ct e r空白P l t空白an d空白F it e d空白G a S S in空白M i x t r e空白co t r S的轴类对象包含3个类型为直线、函数轮廓的对象。这些对象表示模型0、模型1。gydF4y2Ba

从两个二元高斯分布的混合物中生成数据。创建第三个预测器,它是第一个和第二个预测器的和。gydF4y2Ba

Mu1 = [1 2];Sigma1 = [10 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) error = exception.messagegydF4y2Ba结束gydF4y2Ba
拟合高斯混合模型存在误差gydF4y2Ba
error = '在迭代2时创建的病态协方差。'gydF4y2Ba

协方差估计是病态的。因此,优化停止并出现错误。gydF4y2Ba

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

提高(3);gydF4y2Ba重置种子为共同的起始值gydF4y2BaGMModel = fitgmdist (X 2gydF4y2Ba“RegularizationValue”gydF4y2Ba, 0.1)gydF4y2Ba
GMModel =三维2组分的高斯混合分布。组分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'} {'versicolor'} {'virginica'}gydF4y2Ba

数据集包含虹膜的三大类。分析继续进行,好像这是未知的。gydF4y2Ba

利用主成分分析将数据降维为二维,便于可视化。gydF4y2Ba

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

通过指定1,2,3个分量,将三个高斯混合模型拟合到数据中。将优化迭代的次数增加到gydF4y2Ba1000gydF4y2Ba.使用点表示法来存储最终的参数估计。默认情况下,软件适合每个组件的完全和不同的协方差。gydF4y2Ba

GMModels =细胞(3,1);gydF4y2Ba%预先配置gydF4y2Ba选择= statset (gydF4y2Ba“麦克斯特”gydF4y2Ba, 1000);rng (1);gydF4y2Ba%的再现性gydF4y2Ba为gydF4y2Baj = 1:3 GMModels{j} = fitgmdist(score,j,gydF4y2Ba“选项”gydF4y2Ba、选择);流(gydF4y2Ba'\n %i分量(s)通用均值\n'gydF4y2Ba,j) Mu = GMModels{j}.mugydF4y2Ba结束gydF4y2Ba
1分量的GM均值(s)gydF4y2Ba
μ=gydF4y2Ba1×2gydF4y2Ba10gydF4y2Ba-14年gydF4y2Ba×0.1020 - -0.0436gydF4y2Ba
2分量GM均值(s)gydF4y2Ba
μ=gydF4y2Ba2×2gydF4y2Ba1.3212 -0.0954 -2.6424 0.1909gydF4y2Ba
3分量的GM均值gydF4y2Ba
μ=gydF4y2Ba3×2gydF4y2Ba0.4856 -0.1287 1.4484 -0.0904 -2.6424 0.1909gydF4y2Ba

GMModelsgydF4y2Ba包含三个单元的阵列是否合适gydF4y2BagmdistributiongydF4y2Ba模型。三种成分模型的均值不同,说明该模型对三种虹膜种有一定的区分。gydF4y2Ba

在拟合的高斯混合模型等高线上绘制分数。由于数据集包括标签,使用gydF4y2BagscattergydF4y2Ba区分成分的真实数量。gydF4y2Ba

数字gydF4y2Ba为gydF4y2BaJ = 1:3 subplot(2,2, J) h1 = gscatter(score(:,1),score(:,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'GM模型- %i组件'gydF4y2Ba, j));包含(gydF4y2Ba第一主成分的gydF4y2Ba);ylabel (gydF4y2Ba第二主成分的gydF4y2Ba);gydF4y2Ba如果gydF4y2Ba(j ~= 3)图例gydF4y2Ba从gydF4y2Ba;gydF4y2Ba结束gydF4y2Ba持有gydF4y2Ba从gydF4y2Ba结束gydF4y2Bag =传奇(h1);g.Position = [0.7 0.25 0.1 0.1];gydF4y2Ba

图中包含3个轴对象。标题为GM Model - 1 Component(s)的axis对象1包含4个类型为line、function等高线的对象。这些物品代表了彩色,彩色,处女。标题为GM Model - 2 Component(s)的axis对象2包含4个类型为line、function - contour的对象。这些物品代表了彩色,彩色,处女。标题为GM Model - 3 Component(s)的axis对象3包含4个类型为line、功能为contour的对象。这些物品代表了彩色,彩色,处女。gydF4y2Ba

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

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

  • 使用信息标准(例如AIC或BIC)比较具有不同数量成分的多个模型。gydF4y2Ba

  • 估计使用的集群数量gydF4y2BaevalclustersgydF4y2Ba,它支持Calinski-Harabasz准则和差距统计量,或其他准则。gydF4y2Ba

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

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

Mu1 = [1 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

图中包含一个axes对象。标题为Scatter Plot的axes对象包含一个类型为line的对象。gydF4y2Ba

假设你不知道潜在的参数值,散点图显示:gydF4y2Ba

  • 有两个组成部分。gydF4y2Ba

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

  • 簇内的方差是相同的。gydF4y2Ba

  • 簇内不存在协方差。gydF4y2Ba

拟合双组分高斯混合模型。基于散点图检验,指定协方差矩阵是对角线的。输出最后的迭代和对数似然统计信息到命令窗口gydF4y2BastatsetgydF4y2Ba的值gydF4y2Ba选项gydF4y2Ba名称-值对的论点。gydF4y2Ba

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

GMModelgydF4y2Ba是一个安装gydF4y2BagmdistributiongydF4y2Ba模型。gydF4y2Ba

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

AIC = 0(1、4);GMModels =细胞(1、4);选择= statset (gydF4y2Ba“麦克斯特”gydF4y2Ba, 500);gydF4y2Ba为gydF4y2BaGMModels{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
BestModel =二维2组分的高斯混合分布。组分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

Mu = [1 1;2 2;3 3];Sigma(:,:,1) = [1 1;1 2];Sigma(:,:,2) = 2*[1 1;1 2];Sigma(:,:,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])-min([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 m空白I I I l空白V l包含4个类型为轮廓、直线的对象。这些物品代表了处女,七彩,布景。坐标轴对象2,标题空白I I I l空白V a l s空白f r m空白la bl s包含4个类型的等高线对象。这些物品代表了处女,七彩,布景。坐标轴对象3,标题空白I I I l空白V a le s空白f r m空白th e空白s t u u u ur e包含4个类型的等高线对象。这些物品代表了处女,七彩,布景。gydF4y2Ba

根据轮廓,gydF4y2BaGMModel2gydF4y2Ba似乎表明一个轻微的三模态,而其他的表明双峰分布。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

南gydF4y2BaS表示缺失值。该软件删除行gydF4y2BaXgydF4y2Ba至少包含一个gydF4y2Ba南gydF4y2Ba拟合前,减少了有效样本量。gydF4y2Ba

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

拟合高斯混合模型时使用的分量数,指定为正整数。例如,如果您指定gydF4y2Bak = 3gydF4y2Ba,然后软件拟合一个高斯混合模型,该模型具有三种不同的均值、协方差矩阵和数据的分量比例(gydF4y2BaXgydF4y2Ba).gydF4y2Ba

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

名称-值参数gydF4y2Ba

指定可选参数对为gydF4y2BaName1 = Value1,…,以=家gydF4y2Ba,在那里gydF4y2Ba的名字gydF4y2Ba参数名称和gydF4y2Ba价值gydF4y2Ba对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。gydF4y2Ba

在R2021a之前,名称和值之间用逗号隔开,并括起来gydF4y2Ba的名字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 表示对数似然函数值的终止公差的正标量。默认值是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是对数似然最大的拟合。gydF4y2Ba

例子:gydF4y2Ba“复制”,10gydF4y2Ba

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

标志,指示所有协方差矩阵是否相同(即,符合池估计),指定为逗号分隔的对,由gydF4y2Ba“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标量的向量,表示每种成分的初始混合比例。默认为uniform。gydF4y2Ba

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

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

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

拟合高斯混合模型,返回为gydF4y2BagmdistributiongydF4y2Ba模型。gydF4y2Ba

访问的属性gydF4y2BaGMModelgydF4y2Ba使用点符号。例如,通过输入显示AICgydF4y2BaGMModel。另类投资会议gydF4y2Ba.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.这是gydF4y2BaEgydF4y2BaEM算法的-step。gydF4y2Ba

  2. 该算法以成分隶属度后验概率为权重,利用极大似然估计成分均值、协方差矩阵和混合比例。这是gydF4y2Ba米gydF4y2BaEM算法的-step。gydF4y2Ba

算法迭代这些步骤直到收敛。由于似然面复杂,算法可能收敛到局部最优。此外,得到的局部最优可能取决于初始条件。gydF4y2BafitgmdistgydF4y2Ba有几个选择初始条件的选项,包括观察的随机分量分配和gydF4y2BakgydF4y2Ba——+ +算法。gydF4y2Ba

kgydF4y2Ba-means++初始化算法gydF4y2Ba

的gydF4y2BakgydF4y2Ba-means++算法使用启发式方法寻找质心种子gydF4y2BakgydF4y2Ba——集群。gydF4y2BafitgmdistgydF4y2Ba可以应用同样的原理初始化EM算法,使用k-means++算法为拟合的高斯混合模型选择初始参数值。gydF4y2Ba

的gydF4y2BakgydF4y2Ba-means++算法假设簇数为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. 计算每个观测点到每个质心的马氏距离,并将每个观测点分配到其最近的质心。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.霍博肯,新泽西州:约翰·威利父子公司,2000年。gydF4y2Ba

版本历史gydF4y2Ba

介绍了R2014agydF4y2Ba

Baidu
map