打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ML之K-means:基于DIY数据集利用K-means算法聚类(测试9种不同聚类中心的模型性能)

ML之K-means:基于DIY数据集利用K-means算法聚类(测试9种不同聚类中心的模型性能)


输出结果

设计思路

  • 1、使用均匀分布函数随机三个簇,每个簇周围10个数据样本。
  • 2、绘制30个数据样本的分布图像。
  • 3、测试9种不同聚类中心数量下,每种情况的聚类质量,并作图。

实现代码

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans 
from scipy.spatial.distance import cdist

 
#1、使用均匀分布函数随机三个簇,每个簇周围10个数据样本。
cluster1 = np.random.uniform(0.5, 1.5, (2, 10))
cluster2 = np.random.uniform(5.5, 6.5, (2, 10))
cluster3 = np.random.uniform(3.0, 4.0, (2, 10))
 
#2、绘制30个数据样本的分布图像。
X = np.hstack((cluster1, cluster2, cluster3)).T
plt.scatter(X[:,0], X[:, 1])
plt.xlabel('x1')
plt.ylabel('x2')
plt.title('DIY data:30, Random 3 clusters(10 data samples around each cluster)')
plt.show()
 
 
#3、测试9种不同聚类中心数量下,每种情况的聚类质量,并作图。
K = range(1, 10)
meandistortions = []
 
for k in K:
    kmeans = KMeans(n_clusters=k)
    kmeans.fit(X)
    meandistortions.append(sum(np.min(cdist(X, kmeans.cluster_centers_, 'euclidean'), axis=1))/X.shape[0])
     
plt.plot(K, meandistortions, 'bx-')
plt.xlabel('k')
plt.ylabel('Average Dispersion')
plt.title('K-means: Selecting k with the Elbow Method')
plt.show()
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
☀️机器学习入门☀️(三) 图解K-Means聚类算法 | 附加小练习
利用轮廓系数评价不同类簇数量的k-means聚类实例 (Python 机器学习及实践)))
K-means聚类:原理简单的聚类算法
Python实现基于机器学习的RFM模型
如何利用K-Means将文件夹中图像进行分类?
手把手教你如何利用K均值聚类实现异常值的识别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服