首页 > 编程语言 >[Python数据分析]最通俗入门Kmeans聚类分析,可视化展示代码。

[Python数据分析]最通俗入门Kmeans聚类分析,可视化展示代码。

时间:2024-09-30 14:50:46浏览次数:9  
标签:plt means Python kmeans Kmeans 聚类 数据 centers 聚类分析

 什么是k-means分析?【头条@William数据分析,看原版】

       想象一下,你有一堆五颜六色的糖果,你想把它们按照颜色分成几堆。k-means分析就是这么一个自动分类的过程。它会根据糖果的颜色特征,把它们分成若干个组,每个组里的糖果颜色都比较相似。dfd906e26d8d46209a81116798959bbe.jpeg

更专业一点说,k-means分析是一种常用的聚类算法,它会将数据集中的数据点分成k个不同的簇。每个簇都有一个中心点,这个中心点就是簇中所有数据点的平均值。算法的目标是使得每个数据点都属于离它最近的中心点对应的簇,从而使得簇内的点尽可能相似,簇间的点尽可能不同。

k-means分析的应用场景

k-means分析在很多领域都有广泛的应用,比如:

  • 市场细分: 将客户按照消费习惯、兴趣爱好等特征分成不同的群体,以便针对性地进行营销。
  • 图像分割: 将图像分成不同的区域,以便进行目标识别或图像压缩。
  • 文本聚类: 将文本文档分成不同的主题,以便进行信息检索或文本分类。
  • 异常检测: 通过发现与其他数据点距离较远的点来识别异常数据。b20b52bb7661462d8f7c0d75e1d8cbb4.jpeg

2e8dda1285c3487183f99c5d183b230d.jpegk-means分析的步骤

k-means算法的步骤如下:

  1. 选择k值: 首先确定要将数据分成多少个簇。这个值的选择会影响最终的聚类结果。
  2. 随机初始化中心点: 在数据集中随机选择k个点作为初始的簇中心。
  3. 分配数据点: 计算每个数据点到各个簇中心的距离,将每个数据点分配到距离它最近的簇中。
  4. 更新中心点: 计算每个簇中所有数据点的平均值,将平均值作为新的簇中心。
  5. 重复步骤3和4: 重复步骤3和4,直到簇中心不再发生明显变化或达到最大迭代次数。

87aa3161d4084b4ebb4b46828f4e9332.jpeg代码实现:

# k-means聚类分析可视化展示
# author :头条@William数据分析
# date : 2024/9/29
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

# 生成示例数据
np.random.seed(0)
X = np.random.rand(200, 2)*10

# 进行K-means聚类
k = 5
kmeans = KMeans(n_clusters=k)
kmeans.fit(X)
y_kmeans = kmeans.predict(X)
centers = kmeans.cluster_centers_

# 绘制聚类结果
plt.figure(figsize=(12, 6))

# 使用viridis颜色映射
colors = plt.cm.viridis(np.linspace(0, 1, k))

# 绘制原始数据点
plt.subplot(1, 2, 1)
plt.scatter(X[:, 0], X[:, 1], c='gray', s=50)
plt.title('Original Data Points')

# 绘制聚类结果和连线
plt.subplot(1, 2, 2)
for i in range(k):
    # 绘制簇的数据点
    plt.scatter(X[y_kmeans == i, 0], X[y_kmeans == i, 1], c=colors[i], s=50, label=f'Cluster {i}')
    # 绘制簇中心
    plt.scatter(centers[i, 0], centers[i, 1], c=colors[i], s=200, alpha=0.75, marker='X', label=f'Center {i}')
    # 绘制数据点与簇中心的连线
    for point in X[y_kmeans == i]:
        plt.plot([point[0], centers[i, 0]], [point[1], centers[i, 1]], color=colors[i], linestyle='-', linewidth=0.5)

plt.title(f'K-means Clustering(k={k})')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.legend()
plt.savefig(f'聚类对比(k={k}).jpg')
plt.show()

标签:plt,means,Python,kmeans,Kmeans,聚类,数据,centers,聚类分析
From: https://blog.csdn.net/weixin_45933029/article/details/142656806

相关文章

  • 基于Python星载气溶胶数据处理与反演分析
    MODIS(中分辨率成像光谱仪)和CALIOP(云-气溶胶偏振激光雷达)是两种重要的星载遥感观测平台,它们提供了大量的气溶胶数据。MODIS通过成像光谱技术获取不同波长的遥感数据,从而得到气溶胶的空间分布、光学厚度等信息,而CALIOP则通过激光雷达技术获取气溶胶的类型和垂直分布信息。这两者......
  • 【25届计算机毕设选题推荐】基于python+MySQL的社区医院挂号就诊管理系统的设计与实现
    ✍✍计算机毕业编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • 【2025计算机毕设选题推荐】基于python+MySQL的社区医院管理系统的设计与实现
    ✍✍计算机毕业编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • 基于卷积神经网络的宠物皮肤病识别系统,resnet50,mobilenet模型【pytorch框架+python】
       更多目标检测和图像分类识别项目可看我主页其他文章功能演示:基于卷积神经网络的宠物皮肤病识别系统,resnet50,mobilenet【pytorch框架,python,tkinter】_哔哩哔哩_bilibili(一)简介基于卷积神经网络的宠物皮肤病识别系统是在pytorch框架下实现的,这是一个完整的项目,包括代码......
  • <免费开题>python英汉电子词典论文|全套源码+文章lw+毕业设计+课程设计+数据库+ppt
    <免费开题>python英汉电子词典论文|全套源码+文章lw+毕业设计+课程设计+数据库+ppt摘要字典的运用已经非常的普遍了,从每一个人从入学开始,通过字典能够更好的进行生僻字的查找,而在学习英语的过程中,现在英语的教育越来越普遍,人们应用英语的场景也越来越多,而使用字典来对不懂的......
  • 基于python+flask框架的瑞奇宠物店宠物寄存管理系统的设计与实现(开题+程序+论文) 计算
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加速和人们生活水平的提高,宠物已成为许多家庭的重要成员,宠物经济蓬勃发展。宠物店作为宠物服务的重要一环,不仅提供宠物商......
  • 基于python+flask框架的软件工程类课程实验项目管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的快速发展,软件工程类课程在实验教学中的地位日益凸显。这类课程不仅要求学生掌握理论知识,更强调实践操作和项目开发能力。然......
  • 基于python+flask框架的软件测试智能管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展,软件在各行各业中的应用日益广泛,其质量和稳定性直接关系到用户体验和企业的竞争力。然而,软件开发的复杂性不断提升......
  • [Python手撕]字典序的第K小数字
    classSolution:deffindKthNumber(self,n:int,k:int)->int:deffindk(n,k):defcountsteps(prefix,n):start=prefixend=prefix+1steps=0whilestart<......
  • 用 Python 制作一个桌面宠物,好玩!
     今天,我们来分享一个宠物桌面小程序,全程都是通过PyQT来制作的,对于PythonGUI感兴趣的朋友,千万不要错过哦!我们先来看看最终的效果,对于一个小小的娱乐项目来说,还是不错啦!如果你正在学习Python并且找不到方向的话可以试试我这一份学习方法+籽料呀!点击领取(不要米米)好......