这个例子展示了如何在混合高斯分布的模拟数据上实现软聚类。
集群
估计聚类隶属度的后验概率,然后根据最大后验概率将每个点赋给聚类。软聚类是一种允许某些数据点属于多个聚类的替代聚类方法。实现软集群:
为每个数据点分配一个集群成员评分,以描述每个点与每个集群原型的相似程度。对于混合高斯分布,聚类原型是对应的分量均值,分量可以是估计的聚类隶属后验概率。
根据他们的集群成员得分对分数进行排名。
检查分数并确定聚类成员。
对于使用后验概率作为评分的算法,数据点是最大后验概率对应的聚类成员。但是,如果有其他相应的后验概率接近最大值的簇,那么数据点也可以是这些簇的成员。最好的做法是在聚类之前确定产生多个聚类成员的分数的阈值。
下面是这个例子用硬聚类方法聚类高斯混合数据.
模拟两个二元高斯分布的混合数据。
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”)
尽管在数据的散点图中很难看到清晰的分离,绘制成员分数表明拟合分布在将数据分成组方面做得很好。
绘制数据并根据最大后验概率分配聚类。确定可能在任何一个集群中的点。
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”)举行从
使用评分阈值间隔,可以在任何一组中有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
假设组件之间共享的对角协方差,五个数据点可以在任何一个集群中。
对于每个集群:
对所有数据点的会员分数进行排名。
绘制每个数据点的隶属度得分与它的排名相对于所有其他数据点。
[~, orderSharedDiag] =排序(PSharedDiag (: 1));图的阴谋(1:n, PSharedDiag (orderSharedDiag, 1),的r -,...1: n, PSharedDiag (orderSharedDiag, 2),“b -”)({传奇“集群1”《集群2》},“位置”,“东北”) ylabel (集群成员的分数的)包含(“点排名”)标题(“具有共享对角分量协方差的GMM”)
绘制数据,并从GMM分析中确定困难的聚类分配,假设组件之间共享的对角协方差。另外,确定那些可能在任何集群中的数据点。
图gscatter (X (: 1), (:, 2), idxSharedDiag,rb的,' + o ', 5)在情节(X (idxBothSharedDiag, 1), X (idxBothSharedDiag, 2),“柯”,“MarkerSize”10)传奇({“集群1”,《集群2》,这两组患者的},“位置”,“东南”)标题(“散点图-具有共享对角分量协方差的GMM”)举行从