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


相关文章
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
57 4
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
162 4
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
34 11
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
53 13
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
49 10
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
122 13
性能和压力测试
【10月更文挑战第10天】性能和压力测试
129 60
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
82 1
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
68 4
如何在实际应用中测试和比较React和Vue的性能?
总之,通过多种方法的综合运用,可以相对客观地比较 React 和 Vue 在实际应用中的性能表现,为项目的选择和优化提供有力的依据。
51 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等