K-means 聚类算法:从原理到实战的完整知识点
1. 引言K-means 聚类是机器学习领域最经典、应用最广泛的无监督学习算法之一。它通过迭代计算将数据集划分为 K 个互斥的簇cluster使得同一簇内的数据点尽可能相似而不同簇间的数据点尽可能不同。由于其思想直观、实现简单、效率较高K-means 被广泛应用于客户分群、图像分割、文档归类、异常检测等诸多场景。本文将系统性地梳理 K-means 聚类的完整知识点涵盖其核心思想、数学原理、算法步骤、关键参数与优化、优缺点分析以及 Python 实战示例帮助你从零开始全面掌握这一重要算法。2. 核心思想与目标K-means 算法的核心思想可以概括为“物以类聚”。给定一个包含 N 个数据点的数据集和预设的簇数量 K算法的目标是将每个数据点分配到离其最近的“簇中心”centroid所代表的簇中。根据每个簇中所有数据点的位置重新计算该簇的簇中心通常取均值。不断迭代上述两个步骤直到簇中心的位置不再发生显著变化或达到最大迭代次数此时认为算法收敛。其优化的目标函数是最小化簇内平方和Within-Cluster Sum of Squares, WCSS也称为畸变DistortionJ∑i1K∑x∈Ci∣∣x−μi∣∣2 J \sum_{i1}^{K} \sum_{\mathbf{x} \in C_i} ||\mathbf{x} - \boldsymbol{\mu}_i||^2Ji1∑K​x∈Ci​∑​∣∣x−μi​∣∣2其中KKK是簇的个数。CiC_iCi​是第iii个簇。μi\boldsymbol{\mu}_iμi​是第iii个簇的质心均值向量。x\mathbf{x}x是簇CiC_iCi​中的一个数据点。∣∣x−μi∣∣2||\mathbf{x} - \boldsymbol{\mu}_i||^2∣∣x−μi​∣∣2是数据点到其所属簇质心的欧氏距离的平方。算法通过不断调整数据点的分配和簇中心的位置来最小化这个目标函数JJJ。3. 算法步骤详解标准的 K-means 算法遵循以下步骤步骤 1初始化随机从数据集中选择 K 个点作为初始簇中心质心。步骤 2分配阶段对于数据集中的每一个数据点计算其到 K 个簇中心的距离通常使用欧氏距离并将其分配给距离最近的簇中心所对应的簇。步骤 3更新阶段对于每一个簇重新计算其质心。新的质心是该簇所有数据点的均值向量。步骤 4迭代重复步骤 2分配和步骤 3更新直到满足停止条件。常见的停止条件有质心的位置变化小于某个阈值。目标函数JJJ的变化小于某个阈值。达到预设的最大迭代次数。下面的流程图清晰地展示了这一迭代过程否是开始输入数据集与K值随机初始化K个质心将每个数据点分配到最近的质心重新计算每个簇的质心取簇内点的均值质心是否变化显著或达到最大迭代次数输出最终的K个簇及质心4. 关键参数与优化4.1 如何选择 K 值K 是一个需要预先指定的超参数其选择至关重要。肘部法则Elbow Method绘制不同 K 值对应的 WCSS 曲线。WCSS 会随着 K 增大而减小当 K 增加到真实簇数时WCSS 的下降幅度会突然变缓曲线形似“肘部”该点对应的 K 值可作为参考。轮廓系数Silhouette Score结合了簇内的凝聚度和簇间的分离度。轮廓系数的取值范围为 [-1, 1]值越大表示聚类效果越好。可以计算不同 K 值下的平均轮廓系数选择使其最大化的 K。业务理解很多时候K 值由实际应用场景决定例如将客户分为高、中、低价值3类。4.2 初始化的改进K-means随机初始化可能导致算法收敛到局部最优解。K-means 是一种智能初始化方法随机选择第一个质心。对于每个数据点计算其与已选质心的最短距离D(x)D(x)D(x)。按照D(x)2D(x)^2D(x)2的概率分布随机选择下一个质心距离越远的点被选中的概率越大。重复步骤 2-3直到选出 K 个质心。这种方法能使初始质心彼此远离通常能获得更快、更好的收敛结果。sklearn中的KMeans默认使用initk-means。4.3 距离度量默认使用欧氏距离适用于连续数值型数据。对于其他类型的数据可以考虑曼哈顿距离、余弦相似度等但标准的 K-means 算法基于均值计算质心与欧氏距离最小化在数学上等价。5. 算法的优缺点5.1 优点原理简单易于理解和实现。对于大数据集计算效率相对较高时间复杂度约为O(N⋅K⋅I⋅d)O(N \cdot K \cdot I \cdot d)O(N⋅K⋅I⋅d)其中NNN为样本数III为迭代次数ddd为维度。当簇的形状为凸球形且大小相近时效果很好。5.2 缺点与局限性需要预先指定 K 值且 K 值选择不当会影响结果。对初始质心敏感可能收敛到局部最优使用 K-means 可缓解。对噪声和离群点敏感因为它们会显著影响均值的计算。不适合发现非凸形状的簇如环形、月牙形。对数据尺度敏感在应用前通常需要进行标准化如 Z-score 标准化。6. Python 实战示例下面我们使用scikit-learn和matplotlib库演示一个完整的 K-means 聚类流程。6.1 环境准备与数据生成importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.datasetsimportmake_blobsfromsklearn.clusterimportKMeansfromsklearn.metricsimportsilhouette_scorefromsklearn.preprocessingimportStandardScaler# 生成模拟数据X,y_truemake_blobs(n_samples300,centers4,cluster_std0.60,random_state0)plt.scatter(X[:,0],X[:,1],s50)plt.title(原始数据)plt.show()6.2 使用肘部法则选择 K 值# 肘部法则wcss[]foriinrange(1,11):kmeansKMeans(n_clustersi,initk-means,max_iter300,n_init10,random_state0)kmeans.fit(X)wcss.append(kmeans.inertia_)# inertia_ 属性即 WCSSplt.plot(range(1,11),wcss)plt.title(肘部法则)plt.xlabel(簇的数量 (K))plt.ylabel(WCSS)plt.show()观察图形WCSS 下降的“肘部”通常出现在 K4 附近。6.3 训练 K-means 模型并可视化# 根据肘部法则选择 K4kmeansKMeans(n_clusters4,initk-means,max_iter300,n_init10,random_state0)y_kmeanskmeans.fit_predict(X)# 可视化聚类结果plt.scatter(X[y_kmeans0,0],X[y_kmeans0,1],s50,clightblue,label簇 1)plt.scatter(X[y_kmeans1,0],X[y_kmeans1,1],s50,corange,label簇 2)plt.scatter(X[y_kmeans2,0],X[y_kmeans2,1],s50,cgreen,label簇 3)plt.scatter(X[y_kmeans3,0],X[y_kmeans3,1],s50,cred,label簇 4)# 绘制质心plt.scatter(kmeans.cluster_centers_[:,0],kmeans.cluster_centers_[:,1],s200,cblack,markerX,label质心)plt.title(K-means 聚类结果)plt.legend()plt.show()print(f簇中心坐标:\n{kmeans.cluster_centers_})print(f轮廓系数:{silhouette_score(X,y_kmeans):.4f})6.4 对非球形数据的局限性演示fromsklearn.datasetsimportmake_moons# 生成月牙形数据X_moons,_make_moons(n_samples200,noise0.05,random_state0)kmeans_moonsKMeans(n_clusters2,random_state0)y_moons_predkmeans_moons.fit_predict(X_moons)plt.scatter(X_moons[:,0],X_moons[:,1],cy_moons_pred,s50,cmapviridis)plt.scatter(kmeans_moons.cluster_centers_[:,0],kmeans_moons.cluster_centers_[:,1],s200,cred,markerX)plt.title(K-means 对非凸形状聚类效果不佳)plt.show()可以看到K-means 无法正确划分月牙形数据此时应考虑 DBSCAN 或谱聚类等算法。7. 总结与扩展K-means 是聚类分析的基石。掌握其原理、实现和局限性是学习更复杂聚类算法如 DBSCAN、层次聚类、高斯混合模型的良好起点。在实际应用中请注意数据预处理务必进行标准化/归一化。多次运行由于随机初始化可以多次运行算法n_init参数并选择最优结果。结合业务验证聚类结果最终需要结合业务知识进行解读和验证。探索变体如 K-medoids对离群点更鲁棒、Mini-Batch K-means适用于大数据集。希望这篇完整的知识点梳理能帮助你深入理解并有效应用 K-means 聚类算法。

相关新闻

ESP-SR终极指南:如何为嵌入式设备快速添加离线语音识别功能

ESP-SR终极指南:如何为嵌入式设备快速添加离线语音识别功能

ESP-SR终极指南:如何为嵌入式设备快速添加离线语音识别功能 【免费下载链接】esp-sr Speech recognition 项目地址: https://gitcode.com/gh_mirrors/es/esp-sr 想象一下,你的智能设备能够听懂你的指令,无需连接云端,完全离…

2026/8/12 18:41:34 阅读更多 →
Prometheus 监控 Google Cloud Monitoring Exporter 全栈实战:从 GCE 到 Cloud Run 的 GCP 资源可观测性

Prometheus 监控 Google Cloud Monitoring Exporter 全栈实战:从 GCE 到 Cloud Run 的 GCP 资源可观测性

Prometheus 监控 Google Cloud Monitoring Exporter 全栈实战:从 GCE 到 Cloud Run 的 GCP 资源可观测性在 Google Cloud Platform (GCP) 上,无数计算、存储、数据库和无服务器资源支撑着现代应用。GCP 的 Cloud Monitoring(原 Stackdriver&a…

2026/8/12 18:41:34 阅读更多 →
流状态“失忆”与“脑裂”:Spring Boot 流处理状态管理与容错,从灾难到强韧的涅槃之路

流状态“失忆”与“脑裂”:Spring Boot 流处理状态管理与容错,从灾难到强韧的涅槃之路

流状态“失忆”与“脑裂”:Spring Boot 流处理状态管理与容错,从灾难到强韧的涅槃之路 你用 Spring Boot 配合 Kafka Streams 或 Flink 构建了实时流处理服务,订单风控、实时特征计算跑得风生水起。然而一个周五的下午,服务滚动重…

2026/8/12 18:41:34 阅读更多 →

最新新闻

深入解析Cursor Free VIP:如何绕过Cursor AI的试用限制实现Pro功能永久使用

深入解析Cursor Free VIP:如何绕过Cursor AI的试用限制实现Pro功能永久使用

深入解析Cursor Free VIP:如何绕过Cursor AI的试用限制实现Pro功能永久使用 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Yo…

2026/8/12 19:21:59 阅读更多 →
5个核心功能揭秘:League Akari英雄联盟智能助手完全指南

5个核心功能揭秘:League Akari英雄联盟智能助手完全指南

5个核心功能揭秘:League Akari英雄联盟智能助手完全指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一款基于官…

2026/8/12 19:21:59 阅读更多 →
二维码修复终极指南:QRazyBox让损坏二维码重获新生

二维码修复终极指南:QRazyBox让损坏二维码重获新生

二维码修复终极指南:QRazyBox让损坏二维码重获新生 【免费下载链接】qrazybox QR Code Analysis and Recovery Toolkit 项目地址: https://gitcode.com/gh_mirrors/qr/qrazybox 你是否曾因重要二维码损坏而束手无策?QRazyBox作为一款功能完整的免…

2026/8/12 19:21:59 阅读更多 →
3分钟免费激活Office:Ohook让你的Microsoft 365永久免费使用

3分钟免费激活Office:Ohook让你的Microsoft 365永久免费使用

3分钟免费激活Office:Ohook让你的Microsoft 365永久免费使用 【免费下载链接】ohook An universal Office "activation" hook with main focus of enabling full functionality of subscription editions 项目地址: https://gitcode.com/gh_mirrors/oh/…

2026/8/12 19:21:59 阅读更多 →
暗黑破坏神2存档修改工具:Web端终极方案实战宝典

暗黑破坏神2存档修改工具:Web端终极方案实战宝典

暗黑破坏神2存档修改工具:Web端终极方案实战宝典 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 作为一名暗黑破坏神2的忠实玩家,你是否曾为繁琐的角色培养过程感到疲惫?是否想要快速体验不同…

2026/8/12 19:21:59 阅读更多 →
PKC 第 102 个开关:跨端命令的位置、验证方法与风险边界

PKC 第 102 个开关:跨端命令的位置、验证方法与风险边界

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》 《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》 《超简单:用Python让Excel飞起来》…

2026/8/12 19:20:59 阅读更多 →

日新闻

Ubuntu 22.04安装与使用tree命令:高效管理Linux目录结构

Ubuntu 22.04安装与使用tree命令:高效管理Linux目录结构

1. 为什么需要一个“目录树”工具?在Linux世界里,尤其是Ubuntu这样的发行版,命令行是很多人的主战场。我们每天都要和文件、目录打交道。ls命令是查看目录内容的首选,它简洁、高效,能列出文件名、权限、大小等关键信息…

2026/8/12 9:33:34 阅读更多 →
博思AI智能体:意图识别、思考链与性能优化的工程实践

博思AI智能体:意图识别、思考链与性能优化的工程实践

在AI应用从“能用”走向“好用”的进程中,系统的响应速度、决策透明度与高并发稳定性是决定用户体验的关键。博思AI智能体近期完成了一次重要的专项优化,聚焦于意图识别、思考链展示与全链路压测三大核心领域,将系统从功能实现推向了工程卓越…

2026/8/12 9:33:34 阅读更多 →
子代理架构:AI智能体任务分解与协同执行的核心原理与实践

子代理架构:AI智能体任务分解与协同执行的核心原理与实践

1. 项目概述:为什么我们需要“子代理”?最近在折腾各种AI应用和自动化流程时,我越来越频繁地遇到一个瓶颈:单个AI智能体(Agent)的能力边界。无论是处理复杂的多步骤任务,还是需要同时调用多个专…

2026/8/12 9:33:34 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/12 1:11:09 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →