集群混合高斯数据使用软聚类

此示例示出了如何从高斯分布的混合执行关于模拟数据软聚类。

估计群集成员后验概率,然后给每个点对应于最大后验概率群集。软聚类是一种替代的聚类方法,其允许一些数据点属于多个集群。要实现软聚类:

  1. 分配一个群集成员分数来描述每个点的相似程度各分组的原型每个数据点。对于高斯分布的混合,群集原型被相应的组件的平均,并且组件可以是所估计的群集成员后验概率。

  2. 通过他们的集群成员分数排名积分。

  3. 检查分数,并确定群集成员。

对于使用后验概率作为评分算法,数据点是对应于最大后验概率的集群的成员。然而,如果有其他的簇与对应的后验概率是接近最大,则数据点也可以是这些集群的成员。这是很好的做法,确定分数是群集之前产生多个群集成员的门槛。

这个例子从如下集群混合高斯数据使用硬聚类

从两个二元高斯分布的混合模拟数据。

RNG(0,“扭腰”%用于重现MU1 = [1 2];sigma1 = [3 0.2;0.2 2];MU2 = [-1 -2];σ-2 = [2 0;0 1];X = [mvnrnd(MU1,sigma1,200);mvnrnd(MU2,sigma2,100)];

适合的双组分高斯混合模型(GMM)。因为有两个部件,假设与集群成员资格后验概率在区间[0.4,0.6]的任何数据点可以是两个群集的成员。

GM = fitgmdist(X,2);阈值= [0.4 0.6]。

估计组件构件的后验概率为使用拟合的GMM的所有数据点。这些代表群集成员资格分数。

P =后部(GM,X);

对于每个群集,排名的所有数据点的会员资格分数。对于每个群集,绘制每个数据点的成员分数相对于它的排名相对于其他所有的数据点。

N =尺寸(X,1);[〜,为了] =排序(P(:,1));图图(1:N,P(顺序,1),'R-',1:N,P(顺序,2),'B-')图例({“集群1”“集群2”})ylabel(“集群成员分数”)xlabel(“点分级”)标题(“GMM具有完全停止共享协方差”

虽然明确分离是苦中数据的散点图来看,绘制会员分数表明拟合分布不将数据分为组的一个好工作。

绘制通过最大后验概率的数据,并分配集群。确定可无论是集群中的点。

IDX =簇(GM,X);idxBoth =找到(P(:,1)> =阈值(1)&P(:,1)<=阈值(2));numInBoth = numel(idxBoth)
numInBoth = 7
图gscatter(X(:,1),X(:,2),IDX,'RB''+ O'5)保持积(X(idxBoth,1),X(idxBoth,2),'KO''MarkerSize',10)图例({“集群1”“集群2”“两个集群”},'位置''东南')标题(“散点图 -  GMM具有完全停止共享协方差”)保持

使用得分阈值的时间间隔,七个数据点可以是群集。

使用GMM软聚类类似于模糊ķ-means聚类,这也给每个点与一个成员分数的每个群集。模糊ķ-means算法假定簇的形状大致为球形,并且所有大致相等的尺寸。这相当于与跨所有部件共享的单个协方差矩阵的高斯混合分布,并且是单位矩阵的倍数。相反,gmdistribution允许你指定不同的协方差结构。缺省值是估计一个单独的,无约束的协方差矩阵的每个分量。更严格的选择,更贴近ķ-means,是估计一个共享的,对角的协方差矩阵。

安装一个GMM的数据,但指定的组件共享相同的,对角协方差矩阵。该规范类似于实现模糊ķ-means聚类,而是通过允许不等方差不同的变量提供了更多的灵活性。

gmSharedDiag = fitgmdist(X,2,'CovType''对角线''SharedCovariance',真正');

估计组件构件的后验概率为使用拟合的GMM的所有数据点gmSharedDiag。估计软集群分配。

[idxSharedDiag,〜,PSharedDiag] =簇(gmSharedDiag,X);idxBothSharedDiag =找到(PSharedDiag(:,1)> =阈值(1)&...PSharedDiag(:,1)<=阈值(2));numInBoth = numel(idxBothSharedDiag)
numInBoth = 5

假设组件之间共享,对角协方差,五个数据点可以是任一群集。

对于每个集群:

  1. 排名会员分数所有的数据点。

  2. 绘制每个数据点的成员分数相对于它的排名相对于其他所有的数据点。

[〜,orderSharedDiag] =排序(PSharedDiag(:,1));图图(1:N,PSharedDiag(orderSharedDiag,1),'R-'...1:N,PSharedDiag(orderSharedDiag,2),'B-')图例({“集群1”“集群2”},'位置''东北')ylabel(“集群成员分数”)xlabel(“点分级”)标题(“GMM使用共享对角分量协方差”

绘制数据和从所述GMM分析假设组件之间的共享,对角协识别硬,聚类分配。此外,鉴定可能要么集群中的数据点。

图gscatter(X(:,1),X(:,2),idxSharedDiag,'RB''+ O'5)保持积(X(idxBothSharedDiag,1),X(idxBothSharedDiag,2),'KO''MarkerSize',10)图例({“集群1”“集群2”“两个集群”},'位置''东南')标题(“散点图 -  GMM使用共享对角分量协方差”)保持

也可以看看

||

相关话题