主要内容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 = [20 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

图中包含一个轴对象。带有标题空白的轴对象a t t e r空白p l o t空白a n d空白f i t t e blank g a U s s i s s i a n空白m i x t u r e r e r e r e r e r e 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)错误=异常gydF4y2Ba结束gydF4y2Ba
高斯混合模型的拟合存在误差gydF4y2Ba
ERROR ='在迭代中创建的不良协方差2.'gydF4y2Ba

协方差估计是不良状态。因此,优化停止且出现错误。gydF4y2Ba

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

提高(3);gydF4y2Ba重置种子的普通开始值gydF4y2BaGMModel = fitgmdist (X 2gydF4y2Ba“RegularizationValue”gydF4y2Ba, 0.1)gydF4y2Ba
成分1:混合比例:0.536725 Mean: 2.8831 3.9506 6.8338成分2:混合比例:0.463275 Mean: 0.8813 1.9758 2.8571gydF4y2Ba

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

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

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

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

数据集包含三类鸢尾物种。分析继续进行,似乎这是未知的。gydF4y2Ba

使用主成分分析将数据的维数降为二维以实现可视化。gydF4y2Ba

[〜,得分] = PCA(MEA,gydF4y2Ba“NumComponents”gydF4y2Ba2);gydF4y2Ba

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

GMModels =细胞(3,1);gydF4y2Ba%预先配置gydF4y2Ba选择= statset (gydF4y2Ba“麦克斯特”gydF4y2Ba, 1000);rng (1);gydF4y2Ba%的再现性gydF4y2Ba为gydF4y2BaGMModels{j} = fitgmdist(score,j,gydF4y2Ba'选项'gydF4y2Ba、选择);流(gydF4y2Ba'\n GM Mean for %i Component(s)\n'gydF4y2Ba,j) Mu = GMModels{j}.mugydF4y2Ba结束gydF4y2Ba
GM意味着1个组分gydF4y2Ba
μ=gydF4y2Ba1×2gydF4y2Ba10gydF4y2Ba-15gydF4y2Ba×0.9666 - -0.4234gydF4y2Ba
gm意思是2个组分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),species);甘氨胆酸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组件(s)”gydF4y2Ba, j));包含(gydF4y2Ba'第1个主成分'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)”的轴对象1包含类型线、功能轮廓4个对象。这些物品代表着维珍卡。标题为“GM模型- 2组件”的轴对象2包含类型线、功能轮廓等4个对象。这些物品代表着维珍卡。标题为“GM模型- 3组件”的轴对象3包含类型线、功能轮廓等4个对象。这些物品代表着维珍卡。gydF4y2Ba

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

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

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

  • 估计使用的集群数量gydF4y2BaevalclustersgydF4y2Ba它支持Calin万博1manbetxski-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

图中包含一个轴对象。标题为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次迭代,对数似然= -4787.38gydF4y2Ba

GMModelgydF4y2Ba是一个安装gydF4y2BagmdistributiongydF4y2Ba模型。gydF4y2Ba

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

AIC = 0(1、4);GMModels =细胞(1、4);选择= statset (gydF4y2Ba“麦克斯特”gydF4y2Ba, 500);gydF4y2Ba为gydF4y2Ba{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
成分1:混合比例:0.501719 Mean: 1.9824 4.0013成分2:混合比例:0.498281 Mean: 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];西格玛(:,:,1)= [1 1;1 2];西格玛(:,:,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,3,gydF4y2Ba“开始”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个轴对象。具有标题空白R和d、m空白的轴对象1和空白V和u包含类型为轮廓、线的4个对象。这些物品代表了维珍尼卡,花斑,塞托萨。具有标题空白的轴对象2与空白的V、u、r和空白的l、b、l包含类型轮廓、线的4个对象。这些物品代表了维珍尼卡,花斑,塞托萨。具有标题空白、空白、空白、空白和空白的坐标轴对象3包含类型轮廓、线条等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

指定可选的逗号分隔的对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 * D.gydF4y2Ba协方差参数,在哪里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 表示对数似然函数值的终止容限的正标量。默认值是gydF4y2Ba1E-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符合最大的loglikelihie。gydF4y2Ba

例子:gydF4y2Ba“复制”,10gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

指定为所有协方差矩阵是否相同的标志(即,适合汇总估计),指定为包括的逗号分隔对gydF4y2Ba'SharedCovariance'gydF4y2Ba或者是逻辑值gydF4y2Ba假gydF4y2Ba或gydF4y2Ba真正的gydF4y2Ba.gydF4y2Ba

如果gydF4y2BaSharedCovariance.gydF4y2Ba是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.这是gydF4y2BaEgydF4y2Ba-step的EM算法。gydF4y2Ba

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

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

kgydF4y2Ba- mean++初始化算法gydF4y2Ba

的gydF4y2BakgydF4y2Ba-means++算法使用启发式查找质心种子gydF4y2BakgydF4y2Ba——集群。gydF4y2BafitgmdistgydF4y2Ba对于拟合的高斯混合模型,可以采用相同的原理对EM算法进行初始化,使用k- mean++算法选择初始参数值。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 var.gydF4y2Ba (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

G. McLachlan和D. Peel。gydF4y2Ba有限混合物模型gydF4y2Ba.《中国科学院大学学报(自然科学版)》,2000。gydF4y2Ba

介绍了R2014agydF4y2Ba