主要内容

用软聚类方法聚类高斯混合数据

这个例子展示了如何在混合高斯分布的模拟数据上实现软聚类。

集群估计聚类隶属度的后验概率,然后根据最大后验概率将每个点赋给聚类。软聚类是一种允许某些数据点属于多个聚类的替代聚类方法。实现软集群:

  1. 为每个数据点分配一个集群成员评分,以描述每个点与每个集群原型的相似程度。对于混合高斯分布,聚类原型是对应的分量均值,分量可以是估计的聚类隶属后验概率。

  2. 根据他们的集群成员得分对分数进行排名。

  3. 检查分数并确定聚类成员。

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

下面是这个例子用硬聚类方法聚类高斯混合数据

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

rng (0,“旋风”%的再现性Mu1 = [1 2];Sigma1 = [3 .2;2 2);Mu2 = [-1 -2];Sigma2 = [20 0;0 1];X = [mvnrnd (mu1 sigma1,200);mvnrnd (mu2 sigma2,100)];

拟合二元高斯混合模型(GMM)。由于有两个组成部分,假设在区间[0.4,0.6]内任何具有聚类隶属后验概率的数据点都可以是两个聚类的成员。

通用= 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 (集群成员的分数的)包含(“点排名”)标题(“具有完全未共享协方差的GMM”

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

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

绘制数据并根据最大后验概率分配聚类。确定可能在任何一个集群中的点。

idx =集群(通用,X);idxBoth =找到(P(: 1) > =阈值(1)& P(: 1) < =阈值(2));numInBoth =元素个数(idxBoth)
numInBoth = 7
图gscatter (X (: 1), (:, 2), idx,rb的' + o ', 5)情节(X (idxBoth, 1), X (idxBoth, 2),“柯”“MarkerSize”10)传奇({“集群1”《集群2》这两组患者的},“位置”“东南”)标题(“散点图-具有完全非共享协方差的GMM”)举行

图中包含一个轴对象。标题为散点图-具有完全非共享协方差的GMM的轴对象包含3个类型为line的对象。这些对象表示集群1,集群2,两个集群。

使用评分阈值间隔,可以在任何一组中有7个数据点。

使用GMM的软聚类类似于模糊聚类k-表示聚类,它也将每个点分配给每个聚类,并给出成员分数。模糊k-意味着算法假设集群的形状大致为球形,所有集群的大小大致相同。这类似于高斯混合分布与一个协方差矩阵共享的所有组件,是单位矩阵的倍数。相比之下,gmdistribution允许您指定不同的协方差结构。默认情况下,为每个组件估计一个独立的、无约束的协方差矩阵。一个更受限的选择,更接近k-均值,是估计一个共享的对角协方差矩阵。

对数据拟合一个GMM,但指定组件共享相同的对角协方差矩阵。这个规范类似于实现模糊k-表示聚类,但通过允许不同变量的不等方差提供了更大的灵活性。

gmSharedDiag = fitgmdist (X 2“CovType”“对角线”...“SharedCovariance”,真正的);

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

[idxSharedDiag, ~, PSharedDiag] =集群(gmSharedDiag X);idxBothSharedDiag = find(PSharedDiag(:,1)>=阈值(1)&...PSharedDiag(: 1) < =阈值(2));numInBoth =元素个数(idxBothSharedDiag)
numInBoth = 5

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

对于每个集群:

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

  2. 绘制每个数据点的隶属度得分与它的排名相对于所有其他数据点。

[~, orderSharedDiag] =排序(PSharedDiag (: 1));图的阴谋(1:n, PSharedDiag (orderSharedDiag, 1),的r -...1: n, PSharedDiag (orderSharedDiag, 2),“b -”)({传奇“集群1”《集群2》},“位置”“东北”) ylabel (集群成员的分数的)包含(“点排名”)标题(“具有共享对角分量协方差的GMM”

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

绘制数据,并从GMM分析中确定困难的聚类分配,假设组件之间共享的对角协方差。另外,确定那些可能在任何集群中的数据点。

图gscatter (X (: 1), (:, 2), idxSharedDiag,rb的' + o ', 5)情节(X (idxBothSharedDiag, 1), X (idxBothSharedDiag, 2),“柯”“MarkerSize”10)传奇({“集群1”《集群2》这两组患者的},“位置”“东南”)标题(“散点图-具有共享对角分量协方差的GMM”)举行

图中包含一个轴对象。标题为散点图-共享对角分量协方差的GMM的轴对象包含3个类型为line的对象。这些对象表示集群1,集群2,两个集群。

另请参阅

||

相关的话题