如何在python中绘制重叠的簇

时间:2013-07-20 00:19:18

标签: python matplotlib visualization cluster-analysis unsupervised-learning

我正在尝试绘制从模糊C均值聚类算法获得的聚类的可视化。通过像k-means获得的清晰簇,很容易通过正常的散点图(例如通过matplotlib获得的散点图)进行可视化。是否有建议的方法来绘制模糊聚类以显示重叠?如果有,怎么样?

1 个答案:

答案 0 :(得分:2)

一种选择是将您的数据划分为两组:属于属于> = X的群集的一部分的点,以及小于X的那些点。使用归属度调用点> = X清脆组。对于那些小于X的人,你可以为每个不同的集群制作组,称之为模糊组。每个模糊组都将拥有不在清晰组中的所有数据点。

现在,当您进行绘图时,为每个群集指定一种颜色,例如,您有三个群集A,B和C.将它们分配为蓝色,绿色和红色。以100%不透明度绘制清晰组的组颜色,然后为每个模糊组查看点的归属程度,并将它们绘制在簇的颜色的某个缩放后不透明度中。

由于你必须为每个模糊组分配一个颜色作为一个整体,最好按照归属程度将它们“分类”为直方图,或者你可以一起跳过这些组,然后分别绘制每个点。

e.g。说我们有2个集群A和B,并且

data = [(0.2,0.8),(0.5,0.5),(0.65,0.35),(0.25,0.75)]

其中数据表示我们每个点的归属程度(A,B)(其坐标我不会列出,但假设它们可以由ptn表示)。然后如果X是.7,我们会crisp_A = [pt1]crisp_B = [pt4]。然后是fuzzy_A = [pt2, pt3]fuzzy_B = [pt2,pt2]。将crisp_Acrisp_B绘制为全彩色,然后使用cm.hsv或类似于按其各自的归属度缩放fuzzy_Afuzzy_B的内容。