可视化K Means的时候怎么把聚类的中心点和样本点连起来?

  统计/机器学习 无监督学习 数据可视化 Python    浏览次数: 930
0

K Means每个聚类都有个中心点,有没有什么方法可以把中心点和归属它的样本点连起来?


我在网站上看到的示意图如下


请问python里可以实现吗?我试了matplotlib.pyplot的scatter散点图,但是它不能画连线,只能标出散点。

谢谢!


 

ggg818   2017-12-07 00:27



   1个回答 
4

其实也不一定非要用plt.scatter。

不知道你的数据格式是怎么样的,所以我就用numpy.array做个例子

下面是我自己用plt.plot写了一段

import matplotlib.pyplot as plt; plt.style.use('ggplot')
a = np.random.normal(4, 1, 10)
b = np.random.normal(4, 1, 10)
center = [4, 4]
for point in zip(a, b):
    plt.plot([center[0], point[0]], [center[1], point[1]], marker='o', markersize=15, color='g', alpha=0.4)
plt.show()

效果如下



a = np.random.normal(0, 1, 10)
b = np.random.normal(0, 1, 10)
center = [0, 0]
for point in zip(a, b):
    plt.plot([center[0], point[0]], [center[1], point[1]], marker='o', markersize=15, color='g', alpha=0.4)
a = np.random.normal(4, 1, 10)
b = np.random.normal(4, 1, 10)

center = [4, 4]
for point in zip(a, b):
    plt.plot([center[0], point[0]], [center[1], point[1]], marker='o', markersize=15, color='r', alpha=0.4)
plt.show()

效果如下

希望对你有帮助!


SofaSofa数据科学社区 DS面经 问答 实战

Lydia   2017-12-07 08:51

厉害了,我还以为非要用scatter才能画散点图呢 - ggg818   2017-12-10 16:13


  相关主题

关于online KMeans步骤中成员更新分类的问题?   1回答

关于小批量K均值(mini-batch K Means)的问题   3回答

通俗地解释c-means以及fuzzy c-means是什么意思   1回答

K Means初始点必须是样本中的点吗   2回答

Jenks和K Means在一维数据时,是不是等价的?   2回答

K-MEANS初始点选择的问题   2回答

如何用K Means做异常点检测?   3回答

K-Means实现mini-batch online learning的原理是什么?   1回答

k-medoids和k-means区别   3回答

二分法K Means的算法是什么?和普通的K Means有什么区别?   2回答

为什么K Means算法对样本的输入顺序比较敏感?   2回答

K-means怎么选K?   6回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!