Arian Soleimanzadeh
  • 首页
  • 博客
  • 播客
  • 视频
  • 联系
العربيةArabic
DeutschGerman
EnglishEnglish
فارسیPersian
한국어Korean
中文Chinese
面板•快速联系

Languages

Choose your interface locale

ar

العربية

Arabic

de

Deutsch

German

en

English

English

fa

فارسی

Persian

ko

한국어

Korean

zh

中文

Chinese

预约咨询

发送一条简短消息——我会尽快回复。

LinkedIn快速回复
首页/文章/什么是K-Means?机器学习聚类实用指南
Machine Learning文章

什么是K-Means?机器学习聚类实用指南

K-Means是一种经典的无监督学习算法,用于把相似的数据自动划分为多个Cluster。本文介绍Centroid、K值选择、欧氏距离、特征缩放、收敛、应用场景以及主要优缺点。

2026年8月18日5 分钟阅读1 浏览
#Machine Learning#K-Means#Clustering#Unsupervised Learning#Data Science

Arian Soleimanzadeh

Software Engineer & Researcher

展示多个数据Cluster及其中心Centroid的K-Means概念图

Arian Soleimanzadeh

AI · 代码 · 产品

研究 + 工程
本页目录
核心思想标准步骤什么是Centroid?Euclidean Distance如何选择K?Elbow MethodSilhouette ScoreFeature ScalingCentroid初始化应用场景优点局限实现逻辑K-Means与KNN的区别总结

K-Means 是最经典的无监督学习(Unsupervised Learning)算法之一。它不要求训练数据具有Label,而是尝试自动发现数据中的自然分组,也就是Cluster。

核心思想

假设选择K = 3。

算法首先准备三个初始Centroid。每个数据点被分配给距离最近的Centroid,然后使用各Cluster中样本的平均位置重新计算Centroid。

该过程不断重复,直到分配结果趋于稳定。

标准步骤

  1. 选择K。
  2. 初始化K个Centroid。
  3. 计算每个点到所有Centroid的距离。
  4. 分配到最近的Cluster。
  5. 用Cluster中样本的平均值更新Centroid。
  6. 重复直到Convergence。

什么是Centroid?

Centroid是一个Cluster中所有样本坐标的平均位置,它并不一定是一个真实的数据样本。

Euclidean Distance

K-Means常使用欧氏距离:

d = sqrt((x2 - x1)^2 + (y2 - y1)^2)

如何选择K?

Elbow Method

对多个K值运行K-Means,并比较Cluster内部误差。随着K增加,误差会下降,但当继续增加K带来的改进开始明显变小时,就可能出现“肘部”位置。

Silhouette Score

Silhouette Score可以衡量样本与自身Cluster的匹配程度以及与其他Cluster的分离程度。

Feature Scaling

由于K-Means依赖距离,如果不同Feature的数值范围差距很大,结果可能被大尺度Feature主导。

因此通常会使用Standardization或Min-Max Scaling。

Centroid初始化

K-Means对初始Centroid比较敏感。较差的初始值可能得到不理想的局部结果。

**K-Means++**是一种常见的改进初始化方法。

所提供JavaScript项目中的实现直接使用前K个数据点作为初始中心。这种方式适合教学,但实际项目中通常会采用更稳健的初始化策略或多次运行。

应用场景

  • Customer Segmentation
  • 产品用户分群
  • 营销分析
  • 图像颜色压缩
  • Exploratory Data Analysis

优点

  • 原理简单
  • 计算效率较高
  • 非常适合Segmentation
  • 能够快速发现数据的基础结构

局限

  • 必须提前指定K
  • 对Outlier敏感
  • 初始Centroid会影响结果
  • 更适合相对紧凑的Cluster
  • 标准K-Means主要面向数值型数据

实现逻辑

choose K centroids

repeat:
    assign every point to nearest centroid
    recompute each centroid as cluster mean
until assignments stop changing

项目中的实现会建立距离信息,为每个数据点选择最近的Cluster,再根据Cluster成员的平均坐标计算新的Centroid,并重复直到分配稳定。

K-Means与KNN的区别

KNN通常属于Supervised Learning,使用带Label的邻居预测新样本。

K-Means属于Unsupervised Learning,不需要Label,而是寻找数据中的自然Cluster。

总结

K-Means是理解Clustering最重要的基础算法之一。实际使用时,需要重点考虑K值、Feature Scaling、初始Centroid、Outlier以及真实数据中的Cluster形状。

本页目录
核心思想标准步骤什么是Centroid?Euclidean Distance如何选择K?Elbow MethodSilhouette ScoreFeature ScalingCentroid初始化应用场景优点局限实现逻辑K-Means与KNN的区别总结

文章信息

发布时间、阅读时长和浏览数据。

发布

2026年8月18日

更新

2026年8月18日

阅读时长

5 分钟阅读

浏览

1

作者

Arian Soleimanzadeh

上一篇

什么是KNN?K-Nearest Neighbors实用指南

下一篇

什么是 CRM?软件工程中的客户关系管理

让我们构建清晰、快速而优雅的作品。

用于合作、咨询或产品工作的快速联系入口。

快速联系给我发邮件
Arian Soleimanzadeh

个人作品集,聚焦现代 Web 工程、UI 系统与实用型 AI 产品——干净的代码,清晰的设计。

快速链接

  • 关于
  • 博客
  • 项目
  • 联系

联系

  • info@ariansoleimanzadeh.site
  • soleimanzadeh.a.work@gmail.com

可联系时间: 工作日

通常回复时间在 24小时内。

订阅通讯

获取文章、项目与新版本发布的更新。

© 2026 ariansoleimanzadeh.site — 保留所有权利。

LinkedIn