主要内容

调整高斯混合模型

这个例子展示了如何确定最佳高斯混合模型(GMM)适合通过调整数量的组件和组件协方差矩阵结构。

加载费雪的虹膜数据集。考虑到花瓣测量预测。

负载fisheririsX =量(:,3:4);(氮、磷)= (X)大小;rng (1)%的再现性图绘制(X (: 1), (:, 2),“。”,“MarkerSize”15)标题(费舍尔”年代虹膜数据集)包含(“花瓣长度(厘米)”)ylabel (“花瓣宽度(cm)”)

图包含一个坐标轴对象。坐标轴对象与费舍尔的虹膜数据集包含一个类型的对象。

假设k是所需的组件的数量或集群, Σ 是所有组件的协方差结构。遵循以下步骤来优化GMM。

  1. 选择一个(k, Σ ),然后配合使用选择的GMM参数规范和整个数据集。

  2. 估计AIC和BIC。

  3. 重复步骤1和2,直到你排气(k, Σ )对感兴趣的。

  4. 选择安装GMM平衡低AIC与简单。

对于这个示例,选择一个网格的值k周围,包括2和3,一些数字。指定所有可用的选择协方差结构。如果k太高的数据集,那么估计协方差分量可以严重的条件。指定使用正则化来避免严重的协方差矩阵。EM算法的迭代的数量增加到10000。

k = 1:5;nK =元素个数(k);σ= {“对角线”,“全部”};nSigma =元素个数(σ);SharedCovariance ={真,假};SCtext = {“真正的”,“假”};nSC =元素个数(SharedCovariance);RegularizationValue = 0.01;选择= statset (“麦克斯特”,10000);

适合使用所有的gmm参数组合。计算AIC和BIC健康。跟踪每个合适的终端融合状态。

%预先配置通用=细胞(nK、nSigma nSC);aic = 0 (nK、nSigma nSC);bic = 0 (nK、nSigma nSC);聚合= false (nK、nSigma nSC);%配合所有的模型m = 1: nSCj = 1: nSigmai = 1: nK通用{i, j, m} = fitgmdist (X, k(我),“CovarianceType”σ{j},“SharedCovariance”,SharedCovariance {m},“RegularizationValue”RegularizationValue,“选项”、选择);通用aic (i, j, m) = {i, j, m} .AIC;bic (i, j, m) = {i, j, m} .BIC通用;聚合(i, j, m) = {i, j, m} .Converged通用;结束结束结束allConverge =(总和(聚合(:))= = nK * nSigma * nSC)
allConverge =逻辑1

通用汽车包含所有的单元阵列安装吗gmdistribution模型对象。所有的配件实例聚合。

情节单独的条形图比较AIC和BIC都适合。集团的酒吧k

图酒吧(重塑(aic、nK、nSigma * nSC))标题(的各种k美元和AIC \σ选择美元”,“翻译”,“乳胶”)包含(“k美元”,“翻译”,“乳胶”)ylabel (“另类投资会议”)({传奇“Diagonal-shared”,“Full-shared”,“Diagonal-unshared”,“Full-unshared”})

图包含一个坐标轴对象。坐标轴对象与标题AIC各种k和σ选择包含4对象类型的酒吧。这些对象代表Diagonal-shared、Full-shared Diagonal-unshared Full-unshared。

图酒吧(重塑(bic、nK、nSigma * nSC))标题(的各种k美元和BIC \σ选择美元”,“翻译”,“乳胶”)包含(“c美元”,“翻译”,“乳胶”)ylabel (“BIC”)({传奇“Diagonal-shared”,“Full-shared”,“Diagonal-unshared”,“Full-unshared”})

图包含一个坐标轴对象。坐标轴对象标题BIC各种k和σ选择包含4对象类型的酒吧。这些对象代表Diagonal-shared、Full-shared Diagonal-unshared Full-unshared。

根据AIC和BIC值,最好的模型有3个组件和一个完整的、专有的协方差矩阵结构。

集群使用最好的拟合模型训练数据。集群的数据和组件椭圆的阴谋。

gmb =通用{3 2 2};clusterX =集群(gmb X);kGMM = gmBest.NumComponents;d = 500;x1 = linspace (min (X(: 1)) - 2,马克斯(X (: 1)) + 2, d);x2 = linspace (min (X(:, 2)) - 2,马克斯(X (:, 2)) + 2, d);[x1grid, x2grid] = meshgrid (x1, x2);X0 = [x1grid (:) x2grid (:));mahalDist =泰姬陵(gmb, X0);阈值=√chi2inv (0.99, 2)); figure h1 = gscatter(X(:,1),X(:,2),clusterX); holdj = 1: kGMM idx = mahalDist (:, j) < =阈值;颜色= h1 (j) .Color * 0.75 + -0.5 * (h1 (j)。颜色- 1);h2 =情节(X0 (idx, 1), X0 (idx, 2),“。”,“颜色”、颜色、“MarkerSize”1);uistack (h2,“底”)结束情节(gmBest.mu (: 1) gmBest.mu (:, 2),“kx”,“线宽”2,“MarkerSize”10)标题(“集群数据和组件结构”)包含(“花瓣长度(厘米)”)ylabel (“花瓣宽度(cm)”)传说(h1、“集群1”,《集群2》,“集群3”,“位置”,“西北”)举行

图包含一个坐标轴对象。坐标轴标题集群数据对象和组件结构包含7线类型的对象。这些对象代表集群,集群,集群3。

这个数据集包括标签。确定好gmb集群的数据通过比较每个预测真正的标签。

物种=分类(物种);Y = 0 (n, 1);= = Y(物种“多色的”)= 1;= = Y(物种“virginica”)= 2;= = Y(物种“setosa”)= 3;miscluster = Y ~ = clusterX;clusterError = (miscluster) / n
clusterError = 0.0800

最好的拟合GMM组8%的观察到错误的集群。

集群并不总是保持集群顺序。也就是说,如果你集群几个安装gmdistribution模型,集群可能分配不同的集群类似组件的标签。

另请参阅

||

相关的话题