news 2026/9/3 3:37:09

一文搞懂K-Means 聚类!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一文搞懂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更新,别忘记关注哦!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 0:26:04

【雷达回波】高频地波雷达电离层回波方向估计Matlab实现

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

作者头像 李华
网站建设 2026/9/3 0:28:01

【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 数组就不会被析构,造成内存泄露。…

作者头像 李华
网站建设 2026/9/3 0:28:00

从贝多芬到柴可夫斯基|NotaGen一键生成古典乐

从贝多芬到柴可夫斯基|NotaGen一键生成古典乐 在AI音乐创作迅速发展的今天,传统MIDI序列建模方法正面临表达力不足、风格迁移困难等瓶颈。尤其是在古典音乐这一高度结构化且情感丰富的领域,如何让机器真正“理解”巴洛克的严谨、浪漫主义的激…

作者头像 李华
网站建设 2026/9/2 17:30:48

论文信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

系统架构设计### 摘要 随着信息技术的快速发展,高校及科研机构对论文管理的需求日益增长。传统的手工管理方式效率低下,容易出错,且难以满足大规模数据存储和检索的需求。论文信息管理系统通过数字化手段,实现了论文信息的集中存储…

作者头像 李华
网站建设 2026/9/2 13:22:49

IQuest-Coder-V1-Loop变体解析:轻量化部署的性能表现

IQuest-Coder-V1-Loop变体解析:轻量化部署的性能表现 1. 背景与技术演进 随着大语言模型在代码生成领域的广泛应用,模型不仅需要具备强大的推理能力,还需兼顾实际部署中的资源效率。IQuest-Coder-V1系列作为面向软件工程和竞技编程的新一代…

作者头像 李华
网站建设 2026/9/2 21:54:27

开源大模型2026年展望:Qwen3-4B+弹性GPU部署实践

开源大模型2026年展望:Qwen3-4B弹性GPU部署实践 1. 技术背景与趋势 随着大模型在自然语言处理、代码生成和多模态任务中的广泛应用,轻量级高性能开源模型正成为企业与开发者落地AI应用的关键选择。2025年以来,以Qwen系列为代表的中等规模模…

作者头像 李华