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

开发者社区> 一个处女座的程序猿> 正文

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

简介: ML之K-means:基于DIY数据集利用K-means算法聚类(测试9种不同聚类中心的模型性能)
+关注继续查看

输出结果

image.png


设计思路

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

image.png


实现代码

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()


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ML之CatboostC:基于titanic泰坦尼克数据集利用catboost算法实现二分类
ML之CatboostC:基于titanic泰坦尼克数据集利用catboost算法实现二分类
24 0
DL之Attention:基于ClutteredMNIST手写数字图片数据集分别利用CNN_Init、ST_CNN算法(CNN+SpatialTransformer)实现多分类预测(二)
DL之Attention:基于ClutteredMNIST手写数字图片数据集分别利用CNN_Init、ST_CNN算法(CNN+SpatialTransformer)实现多分类预测
37 0
DL之RNN:人工智能为你写小说——基于TF利用RNN算法训练数据集(William Shakespeare的《Coriolanus》)替代你写英语小说短文、训练&测试过程全记录
DL之RNN:人工智能为你写小说——基于TF利用RNN算法训练数据集(William Shakespeare的《Coriolanus》)替代你写英语小说短文、训练&测试过程全记录
23 0
Redis不同数据类型命令使用及应用场景
Redis不同数据类型命令使用及应用场景
2201 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
1701
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载