一文搞懂K-Means 聚类!

推荐直接网站在线阅读:aicoting AI算法面试学习在线网站

什么是聚类?

聚类(Clustering)是一种典型的无监督学习方法,其目标是在没有标签信息的情况下,将数据样本按照相似性划分为若干簇,使得同一簇内的样本相似度高,不同簇之间差异显著。常见方法包括基于划分的 K-Means、基于层次的 层次聚类、以及基于密度的 DBSCAN、OPTICS 等。聚类广泛应用于用户分群、市场细分、文本主题发现、图像分割等任务,是数据挖掘和探索性分析中的重要工具。

K-Means 聚类

K-Means 是最经典的聚类算法之一,属于基于划分(Partition-based)的聚类方法。它通过迭代优化目标函数,将数据划分为 K 个簇,使得同簇内样本之间相似度最大化,而不同簇之间相似度最小化。一个簇说白了就是一组相同类别的东西,只是在这个方法里起了个名字叫簇,比如苹果,香蕉,橘子属于水果那一簇,彭于晏,刘亦菲和你们属于帅哥美女那一簇。由于其简单、高效,K-Means 在数据挖掘、文本分析、图像分割等领域被广泛应用。

K-Means 的目标是最小化簇内平方误差(Within-Cluster Sum of Squares, WCSS),即:

J = ∑ i = 1 K ∑ x ∈ C i ∥ x − μ i ∥ 2 J = \sum_{i=1}^{K} \sum_{x \in C_i} \| x - \mu_i \|^2J=i=1KxCixμi2

其中:

  • K KK:簇的个数
  • C i C_iCi:第i ii个簇
  • μ i μ_iμi:簇C i C_iCi的质心(均值向量)
  • ∥ x − μ i ∥ 2 \| x - \mu_i \|^2xμi2:样本点与簇中心的欧式距离 K-Means的核心思想就是不断更新簇划分与质心,直到收敛(目标函数不再显著下降)。

K-Means的算法流程也很容易理解:

  1. 初始化:随机选择K KK个样本作为初始质心。
  2. 分配样本:将每个样本分配到距离最近的簇中心。
  3. 更新质心:对每个簇,计算所有样本的均值作为新的质心。
  4. 迭代:重复步骤 2-3,直到簇划分不再变化或目标函数收敛。

下面基于Scikit-learn编写一段示例代码让咱们更好的理解一下:

from sklearn.datasets import make_blobs from sklearn.cluster import KMeans import matplotlib.pyplot as plt # 1. 生成模拟数据 X, y = make_blobs(n_samples=300, centers=4, cluster_std=0.6, random_state=42) # 2. 训练 K-Means kmeans = KMeans(n_clusters=4, random_state=42, n_init=10) y_pred = kmeans.fit_predict(X) # 3. 可视化结果 plt.scatter(X[:, 0], X[:, 1], c=y_pred, s=30, cmap='viridis') plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], c='red', marker='X', s=200, label='Centroids') plt.legend() plt.title("K-Means Clustering") plt.show()

运行结果如下,不同颜色表示不同簇,红色 X 为聚类中心。

总结环节!K-Means 作为经典的无监督学习方法,凭借其高效性和直观性,成为最常用的聚类算法之一。但在实际应用中,需要注意簇数选择、初始点敏感性以及对复杂分布的适用性问题。针对这些不足,研究者提出了 K-Means++、Mini-Batch K-Means 等改进方法,使其在大规模机器学习任务中依然具有重要地位。

最新的文章都在公众号aicoting更新,别忘记关注哦!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1172708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Logoly:几秒钟做出「P站 风格」Logo 的开源小工具

很多人做个人主页、公众号封面、技术分享 PPT,都会遇到一个共同问题: 想要一个眼前一亮的 Logo,但又不会设计,也懒得打开 PS / Figma。 Logoly 就是为这种场景而生的一个开源项目: 一个可以在线生成 Pornhub / OnlyFa…

未知 = 希望?

未知 ≠ 希望,但未知中蕴含希望的种子。 将“未知”直接等同于“希望”,是浪漫化的认知简化;而真正的力量,来自于 在未知中主动构建确定性 的能力。一、哲学层面:未知是中性的,希望是主动的 ▶ 1. 未知的本…

iStoreOS_24.10.4 兼容性列表及镜像下载地址更新日志

iStoreOS_24.10.4 兼容性列表及镜像下载地址&更新日志 iStoreOS是什么? iStoreOS 是基于 OpenWrt 深度优化的开源免费路由与轻 NAS 一体化系统,兼顾强大功能与易用性,既继承了 OpenWrt 的灵活性和多硬件适配能力,又通过简化…

2026年四川按摩椅选购看什么?这份深度评测与口碑排名推荐给你答案 - 十大品牌推荐

摘要 随着健康生活理念的普及和消费升级,家用按摩椅正从高端奢侈品转变为提升生活品质的健康消费品。四川地区作为中国西部重要的消费市场,消费者在选择按摩椅品牌时,面临着信息繁杂、品牌众多、技术参数难辨等决策…

未知 = 确定性?

未知 ≠ 确定性,但未知中可 主动构建确定性。 将“未知”等同于“确定性”是逻辑谬误;而真正的工程智慧,在于 在混沌中建立可验证、可重复、可积累的微确定性。一、哲学层面:未知与确定性的辩证关系 ▶ 1. 未知的本质 客观存在&am…

2026年四川按摩椅品牌推荐:2026年度横向对比评测与真实排名报告 - 十大品牌推荐

研究概述 随着健康生活理念的普及与消费升级,家用按摩椅已从高端奢侈品逐渐转变为提升生活品质的健康家居产品。对于四川地区的消费者而言,面对市场上品牌众多、功能各异、价格跨度大的按摩椅产品,如何基于本地化服…

2026年四川按摩椅品牌推荐:基于市场口碑与用户评价的TOP5排名深度评测 - 十大品牌推荐

摘要 随着健康消费意识的持续升级与居家养生场景的深化,家用按摩椅已从改善型消费品逐渐渗透为家庭健康管理的核心配置之一。对于四川地区的消费者与企业采购负责人而言,面对市场上品牌林立、技术概念纷繁、价格区间…

创业项目用 XinServer 打造零代码后端平台

创业项目用 XinServer 打造零代码后端平台 最近跟几个创业的朋友聊天,发现大家有个共同的痛点:产品想法贼棒,前端设计也酷炫,但一到后端开发就卡壳了。要么是团队里没有专门的后端,要么是后端兄弟忙不过来,…

2026年四川按摩椅品牌推荐:基于用户口碑的TOP5排名与深度评测 - 十大品牌推荐

摘要 随着健康消费理念的普及与生活品质的持续提升,家用按摩椅正从可选消费品类逐步转变为现代家庭健康管理的核心配置之一。对于身处四川地区的消费者而言,面对市场上品牌林立、技术概念纷繁、价格区间跨度巨大的复…

2026年冻干机厂家权威推荐榜单:真空冻干机/实验室冻干机/果蔬冻干机/宠物冻干机/进口冻干机源头厂家精选 - 品牌推荐官

在生物制药企业洁净车间内,一排排精密冻干设备正以-50℃的极低温将活性药物转化为稳定粉末,这项核心技术背后是年复合增长率超过3.2%的冻干机市场。 全球冻干设备和服务市场正稳步增长,预计到2031年将达到 44.28亿美…

2025年乌鲁木齐黄金回收公司权威推荐榜单:本地黄金回收 /黄金上门回收 /黄金首饰回收多少钱一克/ 黄金首饰加工/乌鲁木齐黄金回收优质服务商精选 - 品牌推荐官

在黄金投资与饰品更新需求日益增长的今天,选择一家专业、诚信、高效的黄金回收公司至关重要。乌鲁木齐作为新疆的核心城市,黄金回收市场活跃,服务商众多。本文基于实地探访、客户口碑、技术设备、价格透明度及服务流…

2026年四川按摩椅品牌推荐:2026年度权威评测与用户评价排名报告 - 十大品牌推荐

摘要 在消费升级与健康意识提升的双重驱动下,家用按摩椅已从高端奢侈品逐渐转变为追求生活品质家庭的健康投资选项。对于四川地区的消费者而言,面对市场上品牌众多、技术概念繁杂、价格区间跨度大的现状,如何从本地…

AI提示惊人的一致性

再写一个xray的管理页面,用户配置IP白名单机制,实现端口转发,前端有点菜,是非常菜,今天以前都没写过vue的任何代码。。。然后对照着deepseek在操作然后在遇到token过期,需要推出到登录页面的时候&#xff0…

【无人机三维路径规划】基于人工势场算法APF实现复杂山地模型下无人机路径规划附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &#…

深入解析:CCF-NOI2025第二试题目与解析(第二题、集合(set))

深入解析:CCF-NOI2025第二试题目与解析(第二题、集合(set))2026-01-17 08:40 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !imp…

电科金仓 KES Oracle 迁移避坑:核心障碍排查与解决

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

模拟器 金铲铲 界面显示异常 装备栏显示异常 解决方法 2026-01-17

模拟器 金铲铲 界面显示异常 装备栏显示异常 解决方法 2026-01-17 一、先把模拟器显示设置为 16:9.1 的比例 宽1600,高910,dpi 227(推荐)宽1920,高1104,dpi 280宽2560,高1472,dpi 320 二、进入游戏,在设置-战斗-界…

技术日报|Eigent协同工具爆火,单日狂揽2100+星登顶GitHub

🌟 TrendForge 每日精选 - 发现最具潜力的开源项目 📊 今日共收录 9 个热门项目,涵盖 50 种编程语言 🌐 智能中文翻译版 - 项目描述已自动翻译,便于理解 🏆 今日最热项目 Top 10 🥇 eigent-ai/…

常见的五个编译时异常和常见的五个编译时异常 - 实践

常见的五个编译时异常和常见的五个编译时异常 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&quo…

【C++】2.10智能指针详解

一、使用 1. 抛异常的安全性 int calc(int a, int b) {if (b 0) {throw("by 0");} else {return a / b;} } void func() {int* p1 new int[10];calc(1, 0); } 在这个函数中,calc 抛出异常,int 数组就不会被析构,造成内存泄露。…