AI red teamer (人工智能红队)系列08-人工智能基础-k-均值算法(英文:k-means clustering)
k-均值算法是一种流行的无监督学习
算法,用于将数据集划分为 K
个不同的、不重叠的簇。其目的是将相似的数据点分组,而相似性通常是通过多维空间中数据点之间的距离来衡量的。
假设存在一个客户数据集,其中包含有关客户购买历史、人口统计和浏览活动的信息。k-均值算法
可根据这些客户的相似性将其划分为不同的细分市场。这对于有针对性的营销、个性化推荐和客户关系管理非常有价值。
k-均值算法
是一种迭代算法,旨在最小化每个聚类内部的方差。这意味着它试图对数据点进行分组,使一个聚类中的点尽可能相互接近,并尽可能远离其他聚类中的数据点。
该算法执行步骤如下
初始化:
从数据集中随机选择K 个
数据点作为初始聚类中心(中心点)。这些中心点代表每个聚类中的平均点。分配:
根据距离度量(如欧氏距离
)将每个数据点分配到最近的聚类中心。更新:
取分配给每个聚类的所有数据点的平均值,重新计算聚类中心。这将更新中心点,使其更好地代表聚类的中心。迭代:
重复步骤 2 和 3,直到聚类中心不再发生显著变化或达到最大迭代次数。这个迭代过程会不断完善聚类,直到它们趋于稳定。
欧式距离
欧氏距离(Euclidean distance)
是一种常用的距离度量,用于测量 k-均值算法
中数据点之间的相似性。它计算多维空间中两点之间的直线距离。
对于两个数据点 x
和 y
以及 n
特征,欧几里得距离
的计算公式为
d(x, y) = sqrt(Σ (xi - yi)^2)
xi
和 yi
分别是数据点 x
和 y
的第 i
个特征值。
选择最优的K值
在 k-均值算法
中,确定最优的聚类数目(K
)非常重要。K
的选择会对聚类结果及其可解释性产生重大影响。选择过少的聚类会导致过于宽泛的分组,而选择过多的聚类则会导致过于细化和可能毫无意义的聚类。
遗憾的是,没有一种适合所有情况的确定最优K值的方法。这通常需要结合多种技术和领域专业知识。
肘图法(Elbow Method)
肘图法是一种在k-均值算法
中寻找最优K值的图形方法。肘图在y轴上显示了与不同K值(在x轴上)相对应的簇内平方和(WCSS)值。最佳K值是图形形成弯头的点。
具体步骤如下
对一系列的K值运行K-means
:对K的不同值执行K-means聚类,通常从1开始,逐步增加。计算 WCSS:
对于K
的每个值,计算 WCSS。WCSS 衡量每个聚类内的总方差。WCSS 值越低,说明聚类内的数据点越相似。绘制 WCSS 与 K 的关系图:
绘制 WCSS 值与相应K
值的关系图。确定 "肘点":
在图表中寻找 "肘点"。这是 WCSS 开始以较慢速度下降的位置。这一点通常暗示了K
的良好值,表明在最小化簇内差异和避免过度粒度之间取得了平衡。
肘点代表了模型复杂性和模型拟合之间的权衡。增加 K
超过肘点可能会导致过度拟合,即模型捕捉的是数据中的噪声而不是有意义的模式。
轮廓分析
轮廓分析
提供了一种更量化的方法来评估 K
的不同值。它可以衡量一个数据点与其他数据点相比,与自己的聚类有多相似。
该流程分为四个步骤:
- 对K值进行范围运行
k-均值算法
:类似于肘图法,对不同的K值执行k-均值算法
。 - 计算轮廓得分:对于每个数据点,计算其轮廓得分。轮廓得分范围为-1到1,其中:
- 得分接近 1 表示数据点与其所在的聚类匹配度高,而与邻近聚类匹配度低。
- 得分接近 0 表示数据点位于或非常接近两个相邻集群之间的决策边界。
- 得分接近-1 表示该数据点可能被分配到了错误的群组中。
- 计算平均轮廓分数:对于K的每个值,计算所有数据点的平均轮廓分数。
- 选择得分最高的K:选择产生最高平均轮廓分数的K值。这表明具有最佳定义的聚类解决方案。
轮廓得分越高,通常表示聚类越清晰,数据点与其聚类的相似度越高,与其他数据点的相似度越低。
领域专业知识及其他考虑因素
虽然肘图法和轮廓分析提供了有价值的指导,但领域专业知识往往是选择最佳 K
的关键。考虑问题的具体背景和所需的聚类粒度水平。
在某些情况下,实际考虑因素可能会超过纯粹的量化措施。例如,如果目标是细分客户以进行有针对性的营销,您可能会选择一个 K
来匹配您可以实际管理的不同营销活动的数量。
其他需要考虑的因素包括:
计算成本:
K值越高,一般需要的计算资源就越多。可解释性:
由此产生的聚类应在问题的背景下是有意义和可解释的。
通过将这些技术相结合并考虑任务的特定要求,就可以有效地为 K
选择最佳的 k-均值算法
,从而获得有意义和有说服力的结果。
数据假设
k-均值算法
对数据做出了某些假设:
簇形状:
它假定簇是球形的,并且大小相似。这意味着,如果集群形状复杂或大小差异较大,它的性能可能会不理想。特征尺度:
它对特征的尺度很敏感。尺度较大的特征会对聚类结果产生较大影响。因此,在应用k-均值算法
之前,对数据进行标准化或归一化非常重要。异常值:
k-均值算法
对异常值(明显偏离常量的数据点)非常敏感。异常值会扭曲聚类中心并影响聚类结果。
Comments NOTHING