当前位置:   article > 正文

K-means聚类算法编程实践_k均值聚类散点图怎么画

k均值聚类散点图怎么画

  大家好久不见!之前给大家介绍了分类和聚类的区别聚类的进一步介绍以及K-means聚类算法,大家看懂了吗? 

  本期,我们将带领大家动手实践,向大家讲解之前介绍的“K-means”算法如何通过编程实现。

4.1 Python的编程实现

  如果您有过Python的编程经验,那么可以动手试试下面的编程实践!

01、代码:数据获取

  1. #Python
  2. import matplotlib.pyplot as plt # 导入用于绘图的包(这里用的是matplotlib的工具)
  3. from sklearn.cluster import KMeans # 导入K-means算法的包
  4. from sklearn import datasets # 导入sklearn自带的数据集
  5. iris = datasets.load_iris() # 下载和导入iris鸢尾花数据集 英文单词iris : 鸢尾属植物
  6. X = iris.data[:, :4] # 抽取特征空间中的前4个维度
  7. print(X.shape)
  8. print(X)

  X.shape的输出结果:(150, 4)

  说明该数据集是有具有4个维度的150行数据

02、代码:绘制数据分布图

  1. # 绘制数据分布图
  2. plt.scatter(X[:, 0], X[:, 1], c="red", marker='D', alpha=0.3)
  3. # plt.scatter()函数的作用是绘制散点图 英文单词scatter : 零星散布的东西
  4. # “c”指的是color颜色,作用是为散点图上的点设置颜色; 在上面的代码中将散点图的点的颜色设置为红(red)
  5. # “marker”指的是散点图上的点的形状; 英文单词marker : 标识, 标记
  6. plt.xlabel('sepal length') # 设置横轴名称
  7. 补充:英文单词sepal : [植]萼片;花萼
  8. plt.ylabel('sepal width') # 设置纵轴名称
  9. plt.title(label='Data Distribution Map', # 图的标题
  10. fontsize=18, # 标题字体大小
  11. color='white', # 标题字体颜色
  12. backgroundcolor='#334f65', # 标题的底色
  13. pad=20)
  14. plt.show() # 展示绘制好的散点图

  数据分布图如下,横轴为花瓣长度,纵轴为花瓣宽度。

 03、代码:聚类并绘制结果

  1. #Python
  2. estimator = KMeans(n_clusters=3) # 构造聚类器, 设置聚类类别数为3
  3. estimator.fit(X) # 聚类
  4. label_pred = estimator.labels_ # 获取聚类标签
  5. x0 = X[label_pred == 0] # 获取类别是“0”的数据对象
  6. x1 = X[label_pred == 1] # 获取类别是“1”的数据对象
  7. x2 = X[label_pred == 2] # 获取类别是“2”的数据对象
  8. # “label_pred”的全称应为“label_prediction”
  9. # 绘制 k-means 聚类结果
  10. plt.scatter(x0[:, 0], x0[:, 1], c="red", marker='H', label='label0', alpha=0.3)
  11. # 补充: plt.scatter()是绘制散点图的函数
  12. # c指的是颜色
  13. # marker指的是散点的形状
  14. # label指的是标签的名称
  15. # alpha指的是散点的透明度,取值为[0, 1],0表示完全透明,1表示完全不透明
  16. plt.scatter(x1[:, 0], x1[:, 1], c="green", marker='*', label='label1', alpha=0.3)
  17. plt.scatter(x2[:, 0], x2[:, 1], c="blue", marker='D', label='label2', alpha=0.3)
  18. # 给散点图加上标题
  19. plt.title('Clustering results', # 标题的名称
  20. fontsize=18, # 标题的字体大小
  21. color='white', # 标题的字体颜色
  22. backgroundcolor='#334f65', # 标题的背景
  23. pad=20) # 标题的边距
  24. plt.xlabel('sepal length') # 横坐轴
  25. plt.ylabel('sepal width') # 纵坐轴
  26. plt.legend(loc=2) # 显示图例;“loc”为“location”的意思,设置这个
  27. # 英文单词legend: (图片或地图的)文字说明,图例
  28. plt.show() # 记得要加上这句话,散点图才会显示出来

最终K-means聚类结果如下图所示


如果还存在疑惑的,可以在评论区留下您的吐槽

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/529849
推荐阅读
相关标签
  

闽ICP备14008679号