sklearn实现k-means算法
2021/11/15 22:14:27
本文主要是介绍sklearn实现k-means算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
from sklearn.cluster import KMeans import numpy as np import matplotlib.pyplot as plt
# 载入数据 data = np.genfromtxt("kmeans.txt", delimiter=" ") # 设置k值 k = 4
# 训练模型 model = KMeans(n_clusters=k) model.fit(data)
# 分类中心点坐标 centers = model.cluster_centers_ print(centers)
# 预测结果 result = model.predict(data) print(result)
model.labels_
# 画出各个数据点,用不同颜色表示分类 mark = ['or', 'ob', 'og', 'oy'] for i,d in enumerate(data): plt.plot(d[0], d[1], mark[result[i]]) # 画出各个分类的中心点 mark = ['*r', '*b', '*g', '*y'] for i,center in enumerate(centers): plt.plot(center[0],center[1], mark[i], markersize=20) plt.show()
# 获取数据值所在的范围 x_min, x_max = data[:, 0].min() - 1, data[:, 0].max() + 1 y_min, y_max = data[:, 1].min() - 1, data[:, 1].max() + 1 # 生成网格矩阵 xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02), np.arange(y_min, y_max, 0.02)) z = model.predict(np.c_[xx.ravel(), yy.ravel()])# ravel与flatten类似,多维数据转一维。flatten不会改变原始数据,ravel会改变原始数据 z = z.reshape(xx.shape) # 等高线图 cs = plt.contourf(xx, yy, z) # 显示结果 # 画出各个数据点,用不同颜色表示分类 mark = ['or', 'ob', 'og', 'oy'] for i,d in enumerate(data): plt.plot(d[0], d[1], mark[result[i]]) # 画出各个分类的中心点 mark = ['*r', '*b', '*g', '*y'] for i,center in enumerate(centers): plt.plot(center[0],center[1], mark[i], markersize=20) plt.show()
这篇关于sklearn实现k-means算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-04敏捷管理与看板工具:提升研发、设计、电商团队工作效率的利器
- 2025-01-04智慧养老管理工具如何重塑养老生态?
- 2025-01-04如何打造高绩效销售团队:工具与管理方法的结合
- 2025-01-04解决电商团队协作难题,在线文档工具助力高效沟通
- 2025-01-04春节超市管理工具:解锁高效运营与顾客满意度的双重密码
- 2025-01-046种主流销售预测模型:如何根据场景选用最佳方案
- 2025-01-04外贸服务透明化:增强客户信任与合作的最佳实践
- 2025-01-04重新定义电商团队协作:在线文档工具的战略作用
- 2025-01-04Easysearch Java SDK 2.0.x 使用指南(三)
- 2025-01-04百万架构师第八课:设计模式:设计模式容易混淆的几个对比|JavaGuide