logo

Python 聚类分析:二维散点图

作者:KAKAKA2024.02.18 20:51浏览量:18

简介:在Python中,使用聚类分析对二维散点图进行可视化是一种常见的方法。我们将使用scikit-learn库中的KMeans算法进行聚类,并使用matplotlib库来绘制散点图。

首先,我们需要导入所需的库。在Python中,我们可以使用以下代码导入所需的库:

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from sklearn.cluster import KMeans

接下来,我们需要生成一些二维数据。我们可以使用numpy库中的随机数生成器来生成数据。例如,我们可以生成100个随机的二维点:

  1. # 生成100个随机的二维点
  2. data = np.random.rand(100, 2)

现在我们有了数据,我们可以使用KMeans算法进行聚类。我们将设置聚类的数量为3,这意味着我们将数据点分成三个簇:

  1. # 使用KMeans算法进行聚类
  2. kmeans = KMeans(n_clusters=3)
  3. kmeans.fit(data)

现在我们已经得到了聚类的结果,我们可以将其绘制在散点图上。我们将使用matplotlib库中的scatter函数来绘制散点图,并使用不同的颜色来表示不同的簇:

  1. # 绘制散点图
  2. plt.scatter(data[:, 0], data[:, 1], c=kmeans.labels_, cmap='viridis')

为了更好地理解聚类的结果,我们可以在散点图上添加聚类的中心点。我们可以使用KMeans对象的clustercenters属性来获取聚类的中心点:

  1. # 添加聚类的中心点
  2. plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], c='red', s=100)

最后,我们可以显示散点图。在显示散点图之前,我们可以添加一个标题和坐标轴标签:

  1. # 显示散点图
  2. plt.title('Two-Dimensional Clustering')
  3. plt.xlabel('Dimension 1')
  4. plt.ylabel('Dimension 2')
  5. plt.show()

完整的代码如下所示:

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from sklearn.cluster import KMeans
  4. # 生成100个随机的二维点
  5. data = np.random.rand(100, 2)
  6. # 使用KMeans算法进行聚类
  7. kmeans = KMeans(n_clusters=3)
  8. kmeans.fit(data)
  9. # 绘制散点图
  10. plt.scatter(data[:, 0], data[:, 1], c=kmeans.labels_, cmap='viridis')
  11. # 添加聚类的中心点
  12. plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], c='red', s=100)
  13. # 显示散点图
  14. plt.title('Two-Dimensional Clustering')
  15. plt.xlabel('Dimension 1')
  16. plt.ylabel('Dimension 2')
  17. plt.show()

相关文章推荐

发表评论

活动