python - 如何在Python中绘制重叠簇

标签 python matplotlib visualization cluster-analysis unsupervised-learning

我正在尝试绘制从模糊 C 均值聚类算法获得的聚类的可视化效果。对于通过 k-means 获得的清晰聚类,可以通过普通散点图(例如通过 matplotlib 获得的散点图)轻松可视化。是否有推荐的方法来绘制模糊聚类以可视化重叠?如果是,怎么办?

最佳答案

一种选择是将数据分为两组:归属度 >= 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_Acrisp_B 绘制为全色,然后使用 cm.hsv 或类似的工具来缩放 fuzzy_Afuzzy_B 按其各自的归属程度。

关于python - 如何在Python中绘制重叠簇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17757350/

相关文章:

python - 将要打印的图像发送到默认打印机...python

python - matplotlib 带有更改标签的 3D 绘图

python - matplotlib 图的插图缩放标记在错误的角上

julia - 在 Pluto 中交互式使用 Gadfly

java - 如何获取用于在 Mac 上创建火焰图的 Java 分析转储?

javascript - D3 X轴长标签重叠

python - 如何从 python 代码执行 pylint 命令。另外 pylint 中的哪些参数可以根据我的需要生成日志消息

python - 在 PyQt5 中实现 Canvas

python - 如何检测数据框中某些值的条纹?

python - 将 matplotlib 动画保存为 mp4