如何在python中绘制重叠簇
Posted
技术标签:
【中文标题】如何在python中绘制重叠簇【英文标题】:How to plot overlapping clusters in python 【发布时间】:2013-07-19 09:41:33 【问题描述】:我正在尝试绘制从模糊 C 均值聚类算法获得的聚类的可视化。对于通过 k-means 获得的清晰集群,通过正常的散点图(例如通过 matplotlib 获得的散点图)很容易可视化。是否有推荐的方法来绘制模糊集群以可视化重叠?如果是,如何?
【问题讨论】:
你能给我们展示一个你试图生成的情节的例子吗? 【参考方案1】:一种选择是将您的数据分为两组:属于集群一部分且归属度 >= X 的点和小于 X 的点。将归属度 >= X 的点称为清晰组。对于那些小于 X 的人,您可以为每个不同的集群创建组,称这些为模糊组。每个模糊组都将具有不在清晰组中的所有数据点。
现在,当您进行绘图时,为每个集群分配一种颜色,假设您有三个集群 A、B 和 C。为它们分配蓝色、绿色和红色颜色。以 100% 的不透明度绘制清晰组的组颜色,然后为每个模糊组查看点的归属程度,并以集群颜色的一些缩小的不透明度绘制它们。
由于您必须为每个模糊组作为一个整体分配颜色,因此最好将它们“分类”为按归属程度的直方图,或者您可以一起跳过所有组并单独绘制每个点。
例如假设我们有 2 个集群 A 和 B,并且
data = [(0.2,0.8),(0.5,0.5),(0.65,0.35),(0.25,0.75)]
其中数据代表我们每个点的归属程度(A,B)(我不会列出其坐标,但假设它们可以用ptn
表示)。那么如果 X 是 0.7,我们会做 crisp_A = [pt1]
和 crisp_B = [pt4]
。然后fuzzy_A = [pt2, pt3]
和fuzzy_B = [pt2,pt2]
。将crisp_A
和crisp_B
绘制为全色,然后使用cm.hsv
或类似于fuzzy_A
和fuzzy_B
的东西按各自的归属程度进行缩放。
【讨论】:
以上是关于如何在python中绘制重叠簇的主要内容,如果未能解决你的问题,请参考以下文章