主要内容

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

此示例显示了如何在高斯分布的混合中实现对模拟数据的软群。

估计群集成员身份后续概率,然后将每个点分配到对应于最大后概率的集群。软群集是一种替代聚类方法,允许某些数据点属于多个群集。实现软群集:

  1. 将群集成员资格分数分配给描述每个群集的ARCHET类型的相似性的每个数据点。对于高斯分布的混合,群集原型是相应的组件均值,并且该组件可以是估计的集群成员身份后验概率。

  2. 根据其群集成员分数对分数进行排序。

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

对于使用后验概率作为分数的算法,数据点是与最大后验概率相对应的簇的成员。但是,如果有其他具有接近最大后验概率的簇,则数据点也可以是这些簇的成员。确定在聚类之前,重新确定产生多个聚类成员资格的分数阈值。

这个例子是如下基于硬聚类的高斯混合数据聚类

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

RNG(0,'twister'%为了再现性mu1 = [1 2];sigma1 = [3 .2;.2 2];mu2 = [-1 -2];sigma2 = [2 0;0 1];x = [mvnrnd(mu1,sigma1,200);mvnrnd(mu2,sigma2,100)];

适合双组分高斯混合模型(GMM)。由于有两个组件,假设在间隔中具有群集成员身份后续概率的任何数据点[0.4,0.6]可以是两个群集的成员。

gm=fitgmdist(X,2);阈值=[0.40.6];

使用装有GMM的所有数据点估算组件 - 成员后验概率GM.。这些代表集群成员资格分数。

p =后验(Gm,x);

对于每个群集,为所有数据点排列成员资格分数。对于每个群集,将每个数据点隶属相对于所有其他数据点的排名绘制。

n=大小(X,1);[~,顺序]=排序(P(:,1));图形图(1:n,P(顺序,1),'r-',1:n,P(阶数,2),“b-”)传奇({'集群1''集群2'})伊拉贝尔(“集群成员分数”)xlabel('点排名')头衔(“具有完全非共享协方差的GMM”

图中包含一个轴。标题为GMM且具有完全非共享协方差的轴包含2个line类型的对象。这些对象表示簇1和簇2。

虽然在数据散点图中很难看到清晰的分离,但绘制成员分数表明拟合分布在将数据分组方面做得很好。

通过最大的后验概率绘制数据并分配群集。识别可以在群集中的点。

idx=cluster(gm,X);idxBoth=find(P(:,1)>=threshold(1)&P(:,1)<=threshold(2));numInBoth=numel(idxBoth)
numinath=7
图g箭头(x(:,1),x(:,2),IDX,'rb'“+o”,5)保持在…上图(X(idxBoth,1),X(idxBoth,2),“高”“MarkerSize”(10)图例({'集群1''集群2''两个簇'},“位置”‘东南’)头衔(“散点图-具有完全非共享协方差的GMM”)持有

图包含轴。带有标题散点图的轴 - 具有完全未共享的CoviRACE的GMM包含3个类型线的对象。这些对象表示群集1,群集2,两个簇。

使用分数阈值区间,两个簇中都可以有七个数据点。

使用GMM的软聚类类似于模糊聚类K.-表示聚类,也就是将每个点分配给每个具有隶属度得分的聚类K.- emeans算法假设群集在形状中大致球形,并且所有大小的大小。这与具有在所有组件中共享的单个协方差矩阵的高斯混合分布相当,并且是身份矩阵的倍数。相比之下,gm分布允许您指定不同的协方差结构。默认设置是为每个组件估计单独的、不受约束的协方差矩阵。更受限制的选项更接近K.- 是,是估计共享的对角协方差矩阵。

对数据拟合GMM,但指定组件共享相同的对角协方差矩阵。此规范类似于实现模糊控制K.- 群集群集,但通过允许不同变量的差异来提供更大的灵活性。

gmSharedDiag=fitgmdist(X,2,'covtype''对角线''SharedCovariance',对);

使用装有GMM的所有数据点估算组件 - 成员后验概率GMShareddiag.。估计软群集分配。

[idxSharedDiag,~,PSharedDiag]=群集(gmSharedDiag,X);idxBothSharedDiag=查找(PSharedDiag(:,1)>=阈值(1)&......PSharedDiag(:,1)<=阈值(2));numInBoth=numel(idxBothSharedDiag)
numinath=5

假设组件中的共享,对角域的CoveriRces,可以在任一集群中进行五个数据点。

对于每个集群:

  1. 对所有数据点的成员资格分数进行排名。

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

[~,orderSharedDiag]=排序(PSharedDiag(:,1));图形图(1:n,PSharedDiag(orderSharedDiag,1),'r-'......1:n,pshareddiag(Ordershareddiag,2),“b-”)传奇({'集群1''集群2'},“位置”“东北”)伊拉贝尔(“集群成员分数”)xlabel('点排名')头衔(“具有共享对角分量协方差的GMM”

图中包含一个轴。标题为GMM且具有共享对角分量协方差的轴包含2个line类型的对象。这些对象表示簇1和簇2。

绘制数据并识别来自GMM分析的硬,群集分配假设组件之间的共享,对角心协方差。此外,确定可以在群集中的那些数据点。

图g箭偶(x(:,1),x(:,2),idxshareddiag,'rb'“+o”,5)保持在…上绘图(x(idxbothshareddiag,1),x(idxbothshareddiag,2),“高”“MarkerSize”(10)图例({'集群1''集群2''两个簇'},“位置”‘东南’)头衔('散射绘图 -  GMM与共享对角线组件CoviRACE')持有

图包含轴。带有标题散点图的轴 - 具有共享对角线组件的GMM包含3个类型的类型。这些对象表示群集1,群集2,两个簇。

也可以看看

||

相关话题