恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

K-means聚类算法原理与Python实现详解

  • 首页
  • 资讯中心
  • /
  • K-means聚类算法原理与Python实现详解

相关资讯

Windows 10安装MySQL 8.3完整指南:从初始化到远程访问避坑全记录 2026/9/13 12:56:57
Three.js几何体核心概念与性能优化实战 2026/9/13 12:56:57
Haystack Pinecone 集成:PineconeDocumentStore 与 PineconeEmbeddingRetriever 完整参考 2026/9/13 12:56:57

最新资讯

手语识别中的姿态关键点提取与时序建模
用 Reactive Controller 封装 Web 平台 Observer:@lit-labs/observers 完全解析
POD方法在流场分析中的原理与实践
Python+OpenGL游戏开发入门:从环境搭建到渲染三角形
@fhevm/sdk 版本演进全解读:从协议兼容到统一解密许可体系
Renovate 的 Changelog 解析原理:从 AngularJS 发布说明看 release-notes 模块的切片与抽取实现

今日推荐

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

K-means聚类算法原理与Python实现详解

发布时间:2026/9/13 12:56:57
K-means聚类算法原理与Python实现详解 1. K-means算法核心原理剖析K-means作为最经典的聚类算法之一其核心思想可以用一个生活场景来理解假设你要把一堆杂乱的衣物按颜色分类但事先不知道有多少种主色调。你会先随机选定几个颜色中心点比如红、蓝、绿然后每件衣服都归到最近的中心点接着重新计算每个颜色组的平均色作为新中心不断重复直到中心点不再移动——这就是K-means的具象化体现。1.1 数学建模过程算法通过最小化平方误差函数实现聚类目标J ΣΣ ||x - μ_i||²其中x是样本点μ_i是第i个簇的中心。这个目标函数使得簇内距离最小化通过以下步骤迭代优化随机初始化K个质心cluster centroids计算每个样本到质心的欧氏距离将样本分配到最近的质心所属簇重新计算每个簇的质心均值点重复2-4步直到质心变化小于阈值或达到最大迭代次数关键点欧氏距离计算采用标准的L2范数公式这也是K-means对球形分布数据效果好的原因。1.2 算法特性与局限优势维度时间复杂度O(nkt)适合大规模数据n样本数k簇数t迭代次数实现简单且容易并行化对密集的球形簇结构效果显著典型局限需要预先指定K值可通过肘部法则确定对噪声和离群点敏感初始质心选择影响结果可通过k-means优化只能发现凸形簇对带状分布效果差2. 手撕K-means解题全流程2.1 经典例题演示给定数据集A(1,1), B(1,2), C(2,2), D(5,4), E(6,5), F(6,6), G(7,5)要求分为2类K2初始质心选A(1,1)和D(5,4)。第一轮迭代计算所有点到质心的距离到A的距离A(0), B(1), C(1.41), D(5), E(6.4), F(6.7), G(7.2)到D的距离A(5), B(4.24), C(3.6), D(0), E(1.41), F(2.23), G(2.23)分配结果簇1A,B,C簇2D,E,F,G更新质心新质心1( (112)/3, (122)/3 ) (1.33, 1.67)新质心2( (5667)/4, (4565)/4 ) (6, 5)第二轮迭代重新计算距离后簇分配不变算法收敛。最终聚类结果簇1A,B,C簇2D,E,F,G2.2 解题技巧备忘录距离矩阵法建议先构建距离矩阵避免重复计算质心更新验证每次更新后检查是否仍在样本空间内终止条件设定常用Δ质心位置1e-4或迭代次数100空簇处理当某簇无样本时可重新选择最远点作为新质心3. Python实现与工程实践3.1 原生代码实现import numpy as np def k_means(X, k, max_iters100): # 随机初始化质心 centroids X[np.random.choice(len(X), k, replaceFalse)] for _ in range(max_iters): # 分配样本到最近质心 distances np.sqrt(((X - centroids[:, np.newaxis])**2).sum(axis2)) labels np.argmin(distances, axis0) # 更新质心 new_centroids np.array([X[labelsi].mean(axis0) for i in range(k)]) # 收敛判断 if np.allclose(centroids, new_centroids): break centroids new_centroids return labels, centroids # 示例数据 data np.array([[1,1],[1,2],[2,2],[5,4],[6,5],[6,6],[7,5]]) labels, centers k_means(data, k2) print(Cluster labels:, labels) print(Final centers:, centers)3.2 工业级优化方案使用sklearn的MiniBatchKMeans处理大数据from sklearn.cluster import MiniBatchKMeans mbk MiniBatchKMeans(n_clusters2, batch_size100) mbk.fit(data)特征标准化最佳实践from sklearn.preprocessing import StandardScaler scaler StandardScaler() X_scaled scaler.fit_transform(X)并行计算配置KMeans(n_clusters3, n_init10, n_jobs-1) # n_jobs-1使用所有CPU核心4. 实战避坑指南4.1 参数选择黄金法则K值确定方法对比方法实现方式适用场景肘部法则观察SSE下降拐点数据分布明显轮廓系数计算样本与其簇的相似度各类形状簇Gap Statistic比较实际数据与参考分布噪声较多数据初始质心优化# k-means初始化 from sklearn.cluster import KMeans kmeans KMeans(n_clusters3, initk-means)4.2 典型问题解决方案问题1聚类结果不稳定方案设置random_state参数固定随机种子代码KMeans(n_clusters3, random_state42)问题2存在离群点干扰方案1使用DBSCAN预处理去除噪声点方案2改用K-medoids算法基于中心点而非均值问题3高维数据效果差降维处理from sklearn.decomposition import PCA pca PCA(n_components0.95) # 保留95%方差 X_reduced pca.fit_transform(X)5. 进阶应用场景5.1 图像颜色量化from sklearn.utils import shuffle image plt.imread(flower.jpg) w, h, d image.shape image_array shuffle(image.reshape(w*h, d), n_samples1000) kmeans KMeans(n_clusters64).fit(image_array) new_colors kmeans.cluster_centers_[kmeans.predict(image.reshape(w*h, d))] plt.imshow(new_colors.reshape(w, h, d))5.2 用户分群实战电商用户RFM聚类特征工程R最近购买时间F购买频率M消费金额三维特征标准化寻找最佳K值from sklearn.metrics import silhouette_score scores [] for k in range(2,8): kmeans KMeans(n_clustersk).fit(rfm_data) scores.append(silhouette_score(rfm_data, kmeans.labels_)) optimal_k np.argmax(scores) 2 # 索引偏移补偿工程经验商业场景中常结合业务知识调整聚类结果比如将高价值用户单独细分。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号