机器学习(1)-K均值聚类
1、K-means基本概念
-
聚类(Clustering):是一种无监督学习方法,不依赖人工标注的类别,而是根据数据本身的特征,将相似的数据点自动分为若干类。
-
K均值聚类:是最常用的聚类算法之一,它的核心思想是:
换句话说:K均值就是找K个点作为簇的代表,让每个数据点都“靠近”其中一个代表。-
给定一个参数 K,表示希望划分成的簇(cluster)数量;
-
找到每个簇的“中心点”(质心,centroid),让同一簇内的点尽可能相似,不同簇之间的点尽可能不同。
-
二、算法原理
K均值的目标是最小化簇内平方误差和(Within-Cluster Sum of Squares,WCSS):
其中:
-
Ci :第 i个簇
-
μi:第 iii 个簇的中心(均值)
-
:样本点与簇中心的欧式距离平方
三、算法步骤(迭代过程)
K均值算法通常按以下步骤执行:
-
初始化质心:随机选择K个点作为初始簇中心。
-
分配簇:将每个数据点分配给最近的簇中心。
-
更新中心:对每个簇,重新计算其所有成员的均值,作为新的簇中心。
-
迭代:重复步骤2和3,直到簇中心不再发生显著变化,或达到最大迭代次数。
-
⚡ 特点:
-
简单直观,计算速度快。
-
可能会收敛到局部最优。
四、算法优缺点
✅ 优点
-
实现简单,容易理解。
-
计算效率高,适用于大规模数据。
-
在簇较为“球状”“均匀分布”时效果好。
❌ 缺点
-
需要事先指定簇数K。
-
对初始中心敏感,不同初始化可能导致不同结果。
-
只适合凸形簇,对形状复杂的数据(比如“环形”)效果不好。
-
对噪声和异常点敏感。
五、K的选择问题
实际使用中,K值往往难以事先确定。常见方法:
-
肘部法则(Elbow Method):
-
计算不同K下的簇内平方误差和(WCSS);
-
绘制曲线,找到“拐点”位置作为合适的K。
-
-
轮廓系数(Silhouette Score):
-
衡量样本点在本簇与最近簇之间的紧密度和分离度;
-
取值范围[-1,1],值越大越好。
公式:
-
a i表示第 i 个向量到同一聚类内其他点的距离的平均值;b i 表示第 i 个向量到相邻聚类内所有点的平均距离的最小值。
六、应用场景
K均值聚类广泛用于:
-
用户行为分析(例如电信用户分群)
-
图像分割(基于像素聚类)
-
市场细分(把客户分为不同群体)
-
文本聚类(主题发现)
-
异常检测(找出与簇差异过大的点)
七、简单示例
假设有二维数据点如下:
(1,2),(1,4),(1,0),(10,2),(10,4),(10,0)(1,2), (1,4), (1,0), (10,2), (10,4), (10,0)(1,2),(1,4),(1,0),(10,2),(10,4),(10,0)
若设定 K=2:
-
初始化随机选择两个中心,比如 (1,2) 和 (10,2);
-
将数据点分配给最近的中心(左边三点一类,右边三点一类);
-
更新中心:左类均值 = (1,2),右类均值 = (10,2);
-
发现中心没变,收敛,最终得到两个簇。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)